❌

Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraĂźchir la page.
À partir d’avant-hierFlux principal

Des nouvelles de Unvanquished

La derniĂšre dĂ©pĂȘche sur le jeu Unvanquished a Ă©tĂ© publiĂ©e ici en 2023, pour son dixiĂšme anniversaire. La derniĂšre version annoncĂ©e ici Ă©tait la version 0.53, en 2022. Alors que nous sommes Ă  deux mois de 2025 et Ă  quelques jours de la prochaine version 0.55, c’est l’occasion de faire un point sur ce qui s’est passĂ© ces derniĂšres annĂ©es et d’ajouter un Ă©pisode Ă  la sĂ©rie « des nouvelles de [votre jeu prĂ©fĂ©rĂ©] » et de faire suite Ă  celui sur Xonotic.

Unvanquished

Laisse-moi sortir de là ! — rĂ©clame la version 0.55


Unvanquished est un jeu de stratĂ©gie en temps rĂ©el (RTS) Ă  la premiĂšre personne (FPS) oĂč des extraterrestres Ă©volutifs et des humains lourdement armĂ©s s’affrontent pour leur survie. Son dĂ©veloppement, basĂ© sur Tremulous, a commencĂ© en 2011.

Sommaire

Quelques nouvelles en vrac

Un nouveau lanceur

En prĂ©vision de la prochaine version 0.55 qui arrive (deux « release candidates » ont dĂ©jĂ  Ă©tĂ© publiĂ©es), le « lanceur » (aussi appelĂ© « updater ») a Ă©tĂ© mis Ă  jour en juillet dernier.

Le lanceur est le moyen recommandĂ© d’installer Unvanquished : il permet une intĂ©gration optimale avec le systĂšme (possibilitĂ© de cliquer sur des liens pour lancer une partie) et propose la mise Ă  jour du jeu quand une nouvelle version est disponible. Le lanceur sait aussi se mettre Ă  jour et c’est ce qui a Ă©tĂ© fait en juillet.

Des améliorations graphiques

L’annĂ©e derniĂšre le projet Unvanquished avait annoncĂ© ĂȘtre en recherche d’un dĂ©veloppeur spĂ©cialisĂ© dans les moteurs de rendus. Reaper a rejoint l’équipe et a rĂ©alisĂ© un gros travail : dĂ©bugage et finalisation des miroirs rĂ©cursifs et d’autres choses. Il fait aussi progresser le moteur pour tirer partie d’OpenGL 4.6 et autre techniques avancĂ©es (« bindless textures », etc.).

Un explorateur de serveur minimaliste

Viech a publiĂ© un explorateur de serveur de jeu minimaliste qui tient dans la barre de notification (tray browser). C’est Ă  la fois simple et pratique.

Des vidéos et un compte Mastodon

Diverses vidĂ©o montrant les avancĂ©es du dĂ©veloppement ont Ă©tĂ© publiĂ©es sur la chaĂźne Youtube d’Unvanquished, c’est l’occasion de rappeler l’existence de cette chaĂźne : https://www.youtube.com/@UNVofficial

Pour ceux qui prĂ©fĂšrent Peertube, qui permet aussi de s’abonner aux chaĂźnes Ă  travers Mastodon et plus globalement le FĂ©diverse, avec la publication de certaines parties : https://vdo.unvanquished.greboca.com/

Un compte Mastodon a Ă©tĂ© crĂ©Ă© sur l’instance idtech.space dĂ©diĂ©e aux technologies id Tech et projets associĂ©s (le moteur d’Unvanquished dĂ©rive d’id Tech 3) : https://idtech.space/users/UNVofficial

Ce compte Mastodon s’ajoute aux comptes X et Facebook. Le public libriste sera peut-ĂȘtre plus intĂ©ressĂ© par ce compte Mastodon.

Unvanquished, ARMĂ© et dangereux

De nouvelles architectures

La version 0.54 de Unvanquished sortie en janvier 2023 avait Ă©tĂ© la premiĂšre Ă  ĂȘtre jouable autrement que sur PC (x86 et x86-64), en proposant des binaires pour les processeurs ARM (sous Linux seulement pour l’instant).

CĂŽtĂ© moteur la version 0.54 avait reçu de nombreuses optimisations pour mieux tourner sur des machines moins performances, par exemple, Certaines ressources logiciels optionnelles comme les deluxemaps ne sont plus chargĂ©es si dĂ©sactivĂ©es, ceci Ă©conomise non seulement le calcul, mais aussi la mĂ©moire de la carte graphique. Les lightstyles peuvent ĂȘtre dĂ©sactivĂ©s, ce qui peut accĂ©lĂ©rer le rendu graphique, etc. La compatibilitĂ© matĂ©rielle sera encore Ă©tendue avec la version 0.55.

À partir de la version 0.54 tous les binaires pour toutes les architectures matĂ©rielles et systĂšmes d’exploitation sont compilĂ©s dans des containers Docker, y compris les binaires macOS compilĂ©s dans un container Linux en utilisant Darling, Darling Ă©tant Ă  macOS ce que Wine est Ă  Windows. La version 0.55 sera produite de la mĂȘme maniĂšre.

La version 0.55 apportera la compatibilitĂ© pour un nouveau systĂšme d’exploitation ! đŸ€«ïž

Interface, jouabilité et bots

Chargement de carte

Le nouvel Ă©cran de chargement des cartes.

L’interface avait Ă©tĂ© revue Ă  l’occasion de la version 0.54 :

  • Nouvelles icĂŽnes d’inventaire contribuĂ©es par Nanaa, Gireen et Bob Vador
    Ces icÎnes donnent un coup de fraßcheur, on distingue mieux les deux types de grenades et les armures ainsi que le mode de déplacement.
  • L’écran de chargement des cartes affiche le nom de la carte et des auteurs (si renseignĂ©) depuis les mĂ©tadonnĂ©es. Historiquement, les artistes inscrivaient ces informations sur l’image d’illustration de la carte avec un logiciel de dessin
 (!!!)
  • La version 0.55 apportera des modifications d’interface rĂ©alisĂ©es par Grise.

CĂŽtĂ© jouabilitĂ©, la version 0.54 avait corrigĂ© le momentum nĂ©gatif qui Ă©tait particuliĂšrement pĂ©nalisant. Le momentum, est gĂ©nĂ©rĂ© par les Leech (Alien) ou les Drills (Humain). Il faut qu’il y ait assez de momentum pour pouvoir construire d’autres Ă©lĂ©ments.

La version 0.54 a apportĂ© toute une sĂ©rie de nouveautĂ©s au niveau des bots (entitĂ©s qui remplacent les joueurs afin de complĂ©ter les Ă©quipes) :

  • AmĂ©lioration de l’évitement d’obstacles pour les bots.
  • Les bots peuvent viser des cibles situĂ©es sur des navmesh diffĂ©rents.
  • Certains bots n’hĂ©siteront pas Ă  sauter pour atteindre une cible en hauteur, d’autres se retiennent d’exĂ©cuter une attaque qui pourraient les blesser si la cible est trop proche


Depuis quelque temps, le dĂ©veloppement des bots suscite un regain d’intĂ©rĂȘt. La version 0.55 ne sera pas la plus riche Ă  ce sujet car elle apportera surtout des amĂ©liorations du moteur. Le dĂ©veloppement de gameplay ne s’est pas ralenti mais s’est surtout focalisĂ© sur des mods dont il faudra fusionner les avancĂ©es dans le tronc commun aprĂšs la sortie de la version 0.55. Ces amĂ©liorations de gameplay sont dĂ©jĂ  jouables sur des serveurs en ligne.

L’amĂ©lioration du comportement des bots Ă  permis un nouveau type de jeu : Le PVE. C’est Ă  dire que les joueurs peuvent jouer ensemble contre l’ennemi pilotĂ© par le serveur. Certaines cartes ont Ă©tĂ© crĂ©Ă©es spĂ©cifiquement pour ce type de jeu, et d’autres ont Ă©tĂ© adaptĂ©es Ă  l’aide de layout qui Ă©taient dĂ©jĂ  utilisĂ©s pour crĂ©er des variantes de parties.

La version 0.54.1 n’avait pas vraiment proposĂ© de modifications des donnĂ©es, il s’agissait surtout de publier des correctifs de bugs gĂȘnant du moteur. La version 0.55 viendra avec une mise Ă  jour des donnĂ©es et donc avec les corrections attendues. Par exemple un bug dans la chaĂźne logicielle de conversion d’images avait produit des artefacts dans certaines textures, ce sera corrigĂ© dans la version 0.55.

La danse des submodules

            _________________
           /                 \
          |         ✝         |  
          |                   |
          |      beloved      |
          |     submodule     |
          |                   |
          |    2017-12-30     |
          |     2023-04-11    |
          |                   |
          |       R.I.P.      |
          |                   |  đŸ„”
  (,,)Ă©   |                   |   ɘ̀(âčâč)  ɘ̀(âčâč)
////////////////////////////////////////////////

Press F to Pay Respects!

Tous ceux qui doivent traiter avec Git savent que les submodules sont trÚs pratiques mais parfois bien ennuyeux. Un travail de fond réalisé sur les outils de production des données a permis la réintégration du dossier source unvanquished_src.dpkdir. Le générateur de code CBSE qui produit la plomberie pour la logique de jeu a été réintégré aussi. Cela rend plus facile de travailler sur des mods en évitant de devoir gérer plusieurs dépÎts différents.

Contributions

Unvanquished recrute
Voulez-vous en savoir plus ?

Comme vous le voyez, ce cycle de dĂ©veloppement a aussi vu de nouveaux contributeurs apporter leur concours au projet. Certaines de leurs amĂ©liorations ont dĂ©jĂ  Ă©tĂ© publiĂ©es dans la version mineure 0.54.1, d’autres arriveront avec la version 0.55.

Récement, le développeur Slipher qui est un des développeurs Unvanquished les plus prolifiques et les plus fidÚles a étendu ses activités au moteur de rendu et a rejoint la petite élite de ceux qui savent comment le moteur fonctionne. Il a corrigé entre autre le rendu de vidéo sur des surfaces et une fonctionnalité de sprites.

La liste de rĂ©gressions depuis le dĂ©sormais lointain ancĂȘtre d’Unvanquished, Tremulous, est maintenant rĂ©duite Ă  peau de chagrin.

Des traductions !

La grosse nouveautĂ© de la version 0.54.1 publiĂ©e en dĂ©cembre 2023 a Ă©tĂ© de proposer Ă  nouveau des traductions intĂ©grĂ©es au jeu. L’outil de traduction est gracieuseuement hĂ©bergĂ© par Weblate.

L’interface Weblate

L’interface de traduction Weblate.

Il y a longtemps, le jeu Ă©tait traduit, mais suite Ă  de trĂšs profonds changements (par exemple le remplacement total de la technologie utilisĂ©e pour faire des menus, dĂ©sormais sous RmlUi), l’effort de traduction avait Ă©tĂ© interrompu.

La traduction francophone est bien avancĂ©e, mais la traduction en breton a besoin de plus de contributions. Si vous souhaitez contribuer votre langue rĂ©gionale, vous ĂȘtes les bienvenus, c’est ici que cela se passe !

La 0.55 arrive !

Préparez votre souris et votre clavier, la version 0.55 arrive trÚs bientÎt.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Systemd v256

Systemd est une suite logicielle primordiale du monde GNU/Linux. Elle peut ĂȘtre prĂ©sente du dĂ©but Ă  la fin de l'allumage du systĂšme, permettant de gĂ©rer de maniĂšre fine la vie des autres services.

Systemd est sorti en 2010, en a énervé certains notamment en raison de l'approche audacieuse et intégrée, et a séduit une grande majorité de systÚmes GNU/Linux à partir de 2015. Aujourd'hui il est possible de voir Systemd dans la plupart des grandes distributions, gérant les arcanes du systÚme en s'appuyant sur les mécanismes noyau de cgroup, dbus et namespace notamment.

La version 256 succĂšde Ă  la v255 sortie en dĂ©cembre 2023, oĂč vous trouverez encore d'Ă©normes Ă©volutions et encore plus d'intĂ©gration afin de proposer un Ă©cosystĂšme cohĂ©rent, le plus automatique possible, compatible avec chacun des autres systĂšmes, et cherchant Ă  offrir de la sĂ©curitĂ© par dĂ©faut associĂ© Ă  une granularitĂ© de configuration et d'isolation.

Il peut ĂȘtre intĂ©ressant de remarquer qu'au moins, Ă  ma connaissance, deux dĂ©veloppeurs fortement actifs, sont des salariĂ©s de Microsoft, travaillant autant sur systemd qu'Ă  la normalisation d'un certain standard Linux par le truchement du groupe UAPI. Ce sont Lennart Poettering et Luca Boccassi, mais peut ĂȘtre en connaissez vous d'autres ?

Je vous invite Ă©galement Ă  vous pencher sur casync et mkosi (maintenu par Daan De Meyer, de chez Meta), deux nouvelles marottes de ces dĂ©veloppeurs fous mais qui semblent avoir rĂ©ussi le pari, qu'en pensez-vous ?

NdM : La dĂ©pĂȘche qui suit est une traduction en français des nouveautĂ©s de la version 256.

Sommaire

Une nouvelle version de systemd v256 est sortie

Modifications depuis la version précédente v255

Annonces de futures suppressions de fonctionnalités et de modifications incompatibles

  • La prise en charge du vidage automatique des caches de la base de donnĂ©es des utilisateurs/groupes nscd sera abandonnĂ©e dans une prochaine version.

  • La prise en charge du groupe de contrĂŽle cgroupv1 (hiĂ©rarchies « hĂ©ritĂ©es Â» et « hybrides Â») est dĂ©sormais considĂ©rĂ©e comme obsolĂšte, et systemd refusera par dĂ©faut de dĂ©marrer sous celui-ci. Pour rĂ©activer de force la prise en charge de cgroup v1, SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 doit ĂȘtre dĂ©fini sur la ligne de commande du noyau. L'option Meson 'default-hierarchy=' est Ă©galement obsolĂšte, c'est-Ă -dire que seul le groupe cgroup v2 (hiĂ©rarchie unifiĂ©e) peut ĂȘtre sĂ©lectionnĂ© comme valeur par dĂ©faut au moment de la compilation.

  • La prise en charge des scripts de service System V est Ă  prĂ©sent obsolĂšte et sera supprimĂ© dans une prochaine version. Veuillez vous assurer de mettre Ă  jour votre logiciel maintenant pour inclure un fichier d'unitĂ© systemd natif au lieu d'un hĂ©ritage de scripts System V, afin conserver la compatibilitĂ© avec les futures versions de systemd.

  • La prise en charge de la variable EFI SystemdOptions est Ă  prĂ©sent obsolĂšte. bootctl systemd-efi-options Ă©mettra un avertissement lorsqu'il sera utilisĂ©. Il semble que cette fonctionnalitĂ© soit peu utilisĂ©e et qu'il soit prĂ©fĂ©rable d'utiliser des approches alternatives comme les informations d'identification et les contextes. Le plan est d'abandonner complĂštement le support ultĂ©rieurement, mais cela pourrait ĂȘtre rĂ©examinĂ© en fonction des commentaires des utilisateurs.

  • Le commutateur --expand-environment= de systemd-run, qui est actuellement dĂ©sactivĂ© par dĂ©faut lorsqu'il est combinĂ© avec --scope, sera modifiĂ© dans une prochaine version pour ĂȘtre activĂ© par dĂ©faut.

  • Auparavant, systemd-networkd ne supprimait explicitement aucun ID de VLAN de pont attribuĂ© sur le maĂźtre de pont et les ports. Depuis la version 256, si un fichier .network pour une interface possĂšde au moins un paramĂštre valide dans la section [BridgeVLAN], alors tous les ID de VLAN attribuĂ©s sur l'interface qui ne sont pas configurĂ©s dans le fichier .network sont supprimĂ©s.

  • Le paramĂštre IPForward= dans le fichier .network est obsolĂšte et remplacĂ© par les paramĂštres IPv4Forwarding= et IPv6Forwarding=. Ces nouveaux paramĂštres sont pris en charge Ă  la fois dans le fichier .network et dans networkd.conf. S'ils sont spĂ©cifiĂ©s dans un fichier .network, ils contrĂŽlent les paramĂštres correspondants par lien. S'ils sont spĂ©cifiĂ©s dans networkd.conf, ils contrĂŽlent les paramĂštres globaux correspondants. Notez qu'auparavant IPv6SendRA= et IPMasquerade= impliquaient IPForward=, mais maintenant ils impliquent les nouveaux paramĂštres par lien. L'un des moyens les plus simples de migrer les configurations, qui fonctionnait comme un routeur avec la version prĂ©cĂ©dente, consiste Ă  activer Ă  la fois IPv4Forwarding= et IPv6Forwarding= dans networkd.conf. Voir systemd.network(5) et networkd.conf(5) pour plus de dĂ©tails.

  • systemd-gpt-auto-generator arrĂȘtera de gĂ©nĂ©rer des unitĂ©s pour les partitions ESP ou XBOOTLDR s'il trouve des entrĂ©es de montage pour ou en dessous des hiĂ©rarchies /boot/ ou /efi/ dans /etc/fstab. Cela permet d'Ă©viter que le gĂ©nĂ©rateur n'interfĂšre avec les systĂšmes dans lesquels l'ESP est explicitement configurĂ© pour ĂȘtre montĂ© sur un chemin, par exemple /boot/efi/ (ce type de configuration est obsolĂšte, mais reste courant).

  • Le comportement de systemd-sleep et systemd-homed a Ă©tĂ© mis Ă  jour pour geler les sessions utilisateur lors de l'entrĂ©e dans les diffĂ©rents modes de veille ou lors du verrouillage d'une zone d'accueil gĂ©rĂ©e par homed. Ceci est connu pour causer des problĂšmes avec les pilotes propriĂ©taires NVIDIA. Les conditionneurs des pilotes propriĂ©taires NVIDIA peuvent souhaiter ajouter des fichiers de configuration dĂ©roulants qui dĂ©finissent SYSTEMD_SLEEP_FREEZE_USER_SESSION=false pour systemd-suspend.service et les services associĂ©s, et SYSTEMD_HOME_LOCK_FREEZE_SESSION=false pour systemd-homed.service.

  • systemd-tmpfiles et systemd-sysusers, lorsqu'ils reçoivent un chemin de fichier de configuration relatif (avec au moins un sĂ©parateur de rĂ©pertoire /), ouvriront le fichier directement, au lieu de rechercher le chemin partiel donnĂ© dans les emplacements standard. L'ancien mode n'Ă©tait pas utile car la configuration tmpfiles.d/ et sysusers.d/ a une structure plate sans sous-rĂ©pertoires sous les emplacements standard et ce changement facilite le travail avec des fichiers locaux avec ces outils.

  • systemd-tmpfiles applique dĂ©sormais correctement la configuration imbriquĂ©e aux strophes (stanzas) « R Â» et « D Â». Par exemple, avec la combinaison de « R /foo Â» et « x /foo/bar Â», /foo/bar sera dĂ©sormais exclu de la suppression.

  • systemd.crash_reboot et les paramĂštres associĂ©s sont obsolĂštes au profit de systemd.crash_action=.

Modifications générales et nouvelles fonctionnalités v256

  • Divers programmes tenteront dĂ©sormais de charger le fichier de configuration principal Ă  partir d'emplacements situĂ©s sous /usr/lib/, /usr/local/lib/ et /run/, et pas seulement sous /etc/. Par exemple, systemd-logind recherchera /etc/systemd/logind.conf, /run/systemd/logind.conf, /usr/local/lib/systemd/logind.conf et /usr/lib/systemd/logind.conf et utilise le premier fichier trouvĂ©. Cela signifie que la logique de recherche pour le fichier de configuration principal et pour les drop-ins est dĂ©sormais la mĂȘme.

    • De mĂȘme, l'installation du noyau recherchera les fichiers de configuration dans /usr/lib/kernel/ et dans les autres emplacements de recherche, et prend dĂ©sormais Ă©galement en charge les drop-ins.
    • systemd-udevd prend dĂ©sormais en charge les drop-ins pour udev.conf.
  • Un nouveau binaire systemd-vpick a Ă©tĂ© ajoutĂ©. Il implĂ©mente le nouveau protocole vpick, dans lequel un rĂ©pertoire *.v/ peut contenir plusieurs fichiers dont les versions (suivant la spĂ©cification du format de version UAPI) sont intĂ©grĂ©es dans le nom du fichier. Les fichiers sont classĂ©s par version et la plus rĂ©cente est sĂ©lectionnĂ©e.

    • systemd-nspawn --image=/--directory=, systemd-dissect, systemd-portabled et les paramĂštres RootDirectory=, RootImage=, ExtensionImages= et ExtensionDirectories= pour les unitĂ©s prennent dĂ©sormais en charge le protocole vpick et permettent d'utiliser la derniĂšre version sĂ©lectionnĂ©e automatiquement si un rĂ©pertoire *.v/ est spĂ©cifiĂ© comme source.
  • Les informations d'identification du service chiffrĂ©es peuvent dĂ©sormais ĂȘtre rendues accessibles aux utilisateurs non privilĂ©giĂ©s. systemd-creds a obtenu de nouvelles options --user/ --uid= pour chiffrer/dĂ©chiffrer les informations d'identification d'un utilisateur spĂ©cifique.

  • Le nouvel outil de ligne de commande importctl pour tĂ©lĂ©charger, importer et exporter des images disque via systemd-importd est ajoutĂ© avec les verbes suivants : pull-tar, pull-raw, import-tar, import-raw, import-fs, export-tar, export-raw, list-transfers et cancel-transfer. Cette fonctionnalitĂ© Ă©tait auparavant disponible dans machinectl, oĂč elle Ă©tait utilisĂ©e exclusivement pour les images machine. Le nouveau importctl gĂ©nĂ©ralise cela pour les images de service sysext, confext et portables.

  • Les sources systemd peuvent dĂ©sormais ĂȘtre compilĂ©es proprement avec toutes les dĂ©prĂ©ciations d'OpenSSL 3.0 supprimĂ©es, y compris la logique du moteur OpenSSL dĂ©sactivĂ©e.

Sur la gestion des services

  • Un nouveau paramĂštre de gestionnaire systĂšme ProtectSystem= a Ă©tĂ© ajoutĂ©. C'est analogue au rĂ©glage de l'unitĂ©, mais s'applique Ă  l'ensemble du systĂšme. Il est activĂ© par dĂ©faut dans le fichier initrd.

    • Notez que cela signifie que le code exĂ©cutĂ© dans initrd ne peut pas ĂȘtre naĂŻvement attendu Ă  ce qu'il puisse Ă©crire dans /usr/ pendant le dĂ©marrage. Cela affecte dracut <= 101, lequel Ă©crit un crochet ("hooks") dans /lib/dracut/hooks/. src.
  • Un nouveau paramĂštre d'unitĂ© WantsMountsFor= a Ă©tĂ© ajoutĂ©. Il est analogue Ă  RequiresMountsFor=, mais crĂ©e une dĂ©pendance Wants= au lieu de Requires=. Cette nouvelle logique est dĂ©sormais utilisĂ©e Ă  divers endroits oĂč des montages ont Ă©tĂ© ajoutĂ©s en tant que dĂ©pendances pour d'autres paramĂštres (WorkingDirectory=-
, PrivateTmp=yes, lignes cryptsetup avec nofail).

  • Le nouveau paramĂštre d'unitĂ© MemoryZSwapWriteback= peut ĂȘtre utilisĂ© pour contrĂŽler le nouveau bouton de groupe de contrĂŽle memory.zswap.writeback ajoutĂ© dans le noyau 6.8.

  • Le gestionnaire a acquis une mĂ©thode D-Bus org.freedesktop.systemd1.StartAuxiliaryScope() pour dĂ©lĂ©guer certains processus d'un service vers une nouvelle portĂ©e.

    • Cette nouvelle Ă©tendue restera en cours d'exĂ©cution, mĂȘme lorsque l'unitĂ© de service d'origine est redĂ©marrĂ©e ou arrĂȘtĂ©e. Cela permet Ă  une unitĂ© de service de diviser certains processus de travail qui doivent continuer Ă  s'exĂ©cuter. Les propriĂ©tĂ©s du groupe de contrĂŽle de la nouvelle Ă©tendue sont copiĂ©es Ă  partir de l'unitĂ© d'origine, de sorte que diverses limites sont conservĂ©es.
  • Les unitĂ©s exposent dĂ©sormais les propriĂ©tĂ©s EffectiveMemoryMax=, EffectiveMemoryHigh= et EffectiveTasksMax=,

    • qui signalent la limite la plus stricte dont systemd a connaissance pour l'unitĂ© donnĂ©e.
  • Un nouveau spĂ©cificateur de fichier d'unitĂ© %D

    • correspondra Ă  $XDG_DATA_HOME pour les services utilisateur
    • ou correspondra Ă  /usr/share/ pour les services systĂšme
  • AllowedCPUs= prend dĂ©sormais en charge l'extension du spĂ©cificateur.

  • Le paramĂštre What= dans les unitĂ©s .mount et .swap accepte dĂ©sormais les identifiants de style fstab, par exemple UUID=
 ou LABEL=
.

  • RestrictNetworkInterfaces= prend dĂ©sormais en charge les noms d'interface rĂ©seau alternatifs.

  • PAMName= implique dĂ©sormais SetLoginEnvironment=yes.

  • systemd.firstboot=no peut ĂȘtre utilisĂ© sur la ligne de commande du noyau pour dĂ©sactiver les requĂȘtes interactives,

    • mais autoriser d'autres configurations de premier dĂ©marrage en fonction des informations d'identification.
  • Le nom d'hĂŽte du systĂšme peut ĂȘtre configurĂ© via les informations d'identification systĂšme systemd.hostname.

  • Le binaire systemd ne chargera plus en chaĂźne le binaire telinit de sysvinit lorsqu'il est appelĂ© sous le nom init/telinit sur un systĂšme qui n'est pas dĂ©marrĂ© avec systemd.

    • Cela a dĂ©jĂ  Ă©tĂ© pris en charge pour garantir qu'une distribution sur laquelle les deux systĂšmes d'initialisation sont installĂ©s peut raisonnablement passer de l'un Ă  l'autre via un simple redĂ©marrage. Les distributions ont apparemment perdu tout intĂ©rĂȘt pour cela, et la fonctionnalitĂ© n'a pas Ă©tĂ© prise en charge sur la distribution principale Ă  laquelle elle Ă©tait encore destinĂ©e depuis longtemps, et a donc Ă©tĂ© supprimĂ©e maintenant.
  • Un nouveau concept appelĂ© capsules a Ă©tĂ© introduit.

    • Les capsules enveloppent des gestionnaires de services supplĂ©mentaires par utilisateur, dont les utilisateurs sont transitoires et ne sont dĂ©finis que tant que le gestionnaire de services est en cours d'exĂ©cution.
    • (Ceci est implĂ©mentĂ© via DynamicUser=1), permettant Ă  un gestionnaire d'utilisateurs d'ĂȘtre utilisĂ© pour gĂ©rer un groupe de processus sans avoir besoin de crĂ©er un compte utilisateur rĂ©el.
    • Ces gestionnaires de services fonctionnent avec les rĂ©pertoires personnels de /var/lib/capsules/<capsule-name>
      • et peuvent contenir des services rĂ©guliers et d'autres unitĂ©s.
    • Une capsule est dĂ©marrĂ©e via un simple systemctl start capsule@<name>.service.
    • Consultez la page de manuel capsule@.service(5) pour plus de dĂ©tails.
    • Divers outils systemd (y compris, et surtout, systemctl et systemd-run) ont Ă©tĂ© mis Ă  jour pour interagir avec les capsules via le nouveau commutateur --capsule=/-C.
  • Les unitĂ©s .socket ont obtenu un nouveau paramĂštre PassFileDescriptorsToExec=, prenant une valeur boolĂ©enne.

    • S'ils sont dĂ©finis sur true, les descripteurs de fichiers que l'unitĂ© de socket encapsule sont transmis Ă  ExecStartPost=, ExecStopPre=, ExecStopPost= en utilisant l'interface $LISTEN_FDS habituelle.
    • Cela peut ĂȘtre utilisĂ© pour effectuer des initialisations supplĂ©mentaires sur les sockets une fois qu'elles sont allouĂ©es. (Par exemple, pour y installer un programme eBPF supplĂ©mentaire).
  • Le paramĂštre .socket MaxConnectionsPerSource= (qui imposait jusqu'Ă  prĂ©sent une limite aux connexions simultanĂ©es par IP dans les unitĂ©s de socket Accept=yes),

    • a dĂ©sormais Ă©galement un effet sur les sockets AF_UNIX 
      • il limitera le nombre de connexions simultanĂ©es Ă  partir du mĂȘme UID source (tel que dĂ©terminĂ© via SO_PEERCRED).
    • Ceci est utile pour implĂ©menter les services IPC dans un simple mode Accept=yes.
  • Le gestionnaire de services maintiendra dĂ©sormais un compteur des cycles de redĂ©marrage logiciel effectuĂ©s par le systĂšme.

    • Il peut ĂȘtre interrogĂ© via les API D-Bus.
  • La logique d'exĂ©cution de systemd prend dĂ©sormais en charge la nouvelle API pidfd_spawn() introduite par la glibc 2.39,

    • qui nous permet d'invoquer un sous-processus dans un groupe de contrĂŽle cible et de rĂ©cupĂ©rer un pidfd en une seule opĂ©ration.
  • systemd/PID 1 enverra dĂ©sormais un message sd_notify() supplĂ©mentaire Ă  son VMM ou gestionnaire de conteneur superviseur signalant le nom d'hĂŽte sĂ©lectionnĂ© (X_SYSTEMD_HOSTNAME=) et l'ID de la machine (X_SYSTEMD_MACHINE_ID=) au dĂ©marrage.

    • De plus, le gestionnaire de services enverra des messages sd_notify() supplĂ©mentaires (X_SYSTEMD_UNIT_ACTIVE=) chaque fois qu'une unitĂ© cible est atteinte.
    • Cela peut ĂȘtre utilisĂ© par les VMM/gestionnaires de conteneurs pour planifier prĂ©cisĂ©ment l’accĂšs au systĂšme.
    • Par exemple, dĂšs qu'un systĂšme signale que ssh-access.target est atteint, un gestionnaire VMM/conteneur sait qu'il peut dĂ©sormais se connecter au systĂšme via SSH.
    • Enfin, un nouveau message sd_notify() (X_SYSTEMD_SIGNALS_LEVEL=2) est envoyĂ© au moment oĂč le PID 1 a terminĂ© avec succĂšs l'installation de ses diffĂ©rents gestionnaires de signaux de processus UNIX (c'est-Ă -dire le moment oĂč SIGRTMIN+4 envoyĂ© au PID 1 commencera Ă  avoir pour effet d'arrĂȘter proprement le systĂšme).
    • X_SYSTEMD_SHUTDOWN= est envoyĂ© peu de temps avant l'arrĂȘt du systĂšme et contient une chaĂźne identifiant le type d'arrĂȘt, c'est-Ă -dire poweroff, halt, reboot.
    • X_SYSTEMD_REBOOT_PARAMETER= est envoyĂ© en mĂȘme temps et porte la chaĂźne passĂ©e Ă  systemctl --reboot-argument= s'il y en avait une.
  • Les nouvelles propriĂ©tĂ©s D-Bus ExecMainHandoffTimestamp et ExecMainHandoffTimestampMonotonic sont dĂ©sormais publiĂ©es par unitĂ©s de services.

    • Cet horodatage est considĂ©rĂ© comme la toute derniĂšre opĂ©ration avant de transfĂ©rer le contrĂŽle aux binaires invoquĂ©s. Ces informations sont disponibles pour d'autres types d'unitĂ©s qui exĂ©cutent des processus (c'est-Ă -dire les unitĂ©s de montage, d'Ă©change, de socket), mais actuellement uniquement via systemd-analyze dump.
  • Un horodatage supplĂ©mentaire est dĂ©sormais pris par le gestionnaire de service lorsqu'une opĂ©ration d'arrĂȘt du systĂšme est lancĂ©e. Il peut ĂȘtre interrogĂ© via D-Bus pendant la phase d'arrĂȘt. Il est transmis lors des redĂ©marrages logiciels Ă  l'invocation suivante du gestionnaire de services, qui l'utilisera pour enregistrer le temps de « grisage Â» global de l'opĂ©ration de redĂ©marrage logiciel, c'est-Ă -dire l'heure Ă  laquelle l'arrĂȘt a commencĂ© jusqu'Ă  ce que le systĂšme soit Ă  nouveau complĂštement opĂ©rationnel.

  • systemctl status affichera dĂ©sormais l'ID d'invocation dans sa sortie habituelle, c'est-Ă -dire l'ID de 128 bits attribuĂ© de maniĂšre unique au cycle d'exĂ©cution actuel de l'unitĂ©.

    • L'ID est pris en charge depuis longtemps, mais il est dĂ©sormais affichĂ© de maniĂšre plus visible, car il s'agit d'un identifiant trĂšs utile pour un appel spĂ©cifique d'un service.
  • systemd gĂ©nĂšre dĂ©sormais une nouvelle chaĂźne taint unmerged-bin pour les systĂšmes qui ont /usr/bin/ et /usr/sbin/ sĂ©parĂ©s.

    • De nos jours, il est gĂ©nĂ©ralement recommandĂ© de faire de ce dernier un lien symbolique vers le premier.
  • Une nouvelle option de ligne de commande kernel systemd.crash_action= a Ă©tĂ© ajoutĂ©e qui configure ce qu'il faut faire aprĂšs le crash du gestionnaire systĂšme (PID 1).

    • Cela peut Ă©galement ĂȘtre configurĂ© via CrashAction= dans systemd.conf.
  • systemctl kill prend dĂ©sormais en charge --wait qui fera attendre la commande jusqu'Ă  ce que les services signalĂ©s se terminent.

Journalisation et autres gestions d'erreurs

  • systemd-journald peut dĂ©sormais transfĂ©rer les entrĂ©es de journal vers un socket (AF_INET, AF_INET6, AF_UNIX ou AF_VSOCK).

    • Le socket peut ĂȘtre spĂ©cifiĂ© dans journald.conf via une nouvelle option ForwardAddress= ou via les informations d'identification journald.forward_address.
    • Les enregistrements de journaux sont envoyĂ©s au format d'exportation du journal.
    • Un paramĂštre associĂ© MaxLevelSocket= a Ă©tĂ© ajoutĂ© pour contrĂŽler les niveaux de journalisation maximum pour les messages envoyĂ©s Ă  ce socket.
  • systemd-journald lit dĂ©sormais Ă©galement les informations d'identification de journal.storage lorsque cherche oĂč stocker les fichiers journaux.

  • systemd-vmspawn a obtenu une nouvelle option --forward-journal= pour transmettre les entrĂ©es de journal de la machine virtuelle Ă  l'hĂŽte.

    • Cela se fait via un socket AF_VSOCK, c'est-Ă -dire qu'il ne nĂ©cessite pas de mise en rĂ©seau dans l'invitĂ©.
  • journalctl a obtenu l'option -i comme raccourci pour --file=.

  • journalctl a gagnĂ© une nouvelle option -T/--exclude-identifier= pour filtrer certains identifiants syslog.

  • journalctl a gagnĂ© une nouvelle option --list-namespaces.

  • systemd-journal-remote accepte dĂ©sormais Ă©galement les sockets AF_VSOCK et AF_UNIX : il peut donc ĂȘtre utilisĂ© pour recevoir les entrĂ©es transmises par systemd-journald.

  • systemd-journal-gatewayd permet de restreindre la plage horaire des entrĂ©es rĂ©cupĂ©rĂ©es avec un nouveau paramĂštre d'URL realtime=[<since>]:[<until>].

  • systemd-cat a gagnĂ© une nouvelle option --namespace= pour spĂ©cifier l'espace de noms du journal cible auquel la sortie doit ĂȘtre connectĂ©e.

  • systemd-bsod a gagnĂ© une nouvelle option --tty= pour spĂ©cifier le TTY de sortie

À propos de la gestion des pĂ©riphĂ©riques

  • /dev/ contient dĂ©sormais des liens symboliques qui combinent des informations by-path & by-{label,uuid}:

    • /dev/disk/by-path/<chemin>/by-<label|uuid|
>/<label|uuid|
>
    • Cela permet de distinguer les partitions avec un contenu identique sur plusieurs pĂ©riphĂ©riques de stockage.
    • Ceci est utile, par exemple, lors de la copie du contenu brut du disque entre pĂ©riphĂ©riques.
  • systemd-udevd crĂ©e dĂ©sormais des liens symboliques /dev/media/by-path/ persistants pour les contrĂŽleurs multimĂ©dias.

    • Par exemple, le pilote uvcvideo peut crĂ©er /dev/media0 qui sera liĂ© en tant que /dev/media/by-path/pci-0000:04:00.3-usb-0:1:1.0-media-controller.
  • Une nouvelle unitĂ© systemd-udev-load-credentials.service a Ă©tĂ© ajoutĂ©e pour rĂ©cupĂ©rer les drop-ins udev.conf et les rĂšgles udev Ă  partir des informations d'identification.

  • Une liste d'autorisation/liste de refus peut ĂȘtre spĂ©cifiĂ©e pour filtrer les attributs sysfs utilisĂ©s lors de la crĂ©ation des noms d'interface rĂ©seau.

    • Ces listes sont stockĂ©es sous forme d'entrĂ©es hwdb
      • ID_NET_NAME_ALLOW_<sysfsattr>=0|1
      • et ID_NET_NAME_ALLOW=0|1
      • L'objectif est d'Ă©viter des modifications inattendues des noms d'interface lorsque le noyau est mis Ă  jour et que de nouveaux attributs sysfs deviennent visibles.
  • Une nouvelle unitĂ© tpm2.target a Ă©tĂ© ajoutĂ©e pour fournir un point de synchronisation pour les unitĂ©s qui s'attendent Ă  ce que le matĂ©riel TPM soit disponible.

    • Un nouveau gĂ©nĂ©rateur systemd-tpm2-generator a Ă©tĂ© ajoutĂ© qui insĂ©rera cette cible chaque fois qu'il dĂ©tectera que le micrologiciel a initialisĂ© un TPM, mais que Linux n'a pas encore chargĂ© de pilote pour celui-ci.
  • systemd-backlight prend dĂ©sormais correctement en charge les pĂ©riphĂ©riques numĂ©rotĂ©s crĂ©Ă©s par le noyau pour Ă©viter les collisions dans le sous-systĂšme LED.

  • L'opĂ©ration de mise Ă  jour systemd-hwdb peut ĂȘtre dĂ©sactivĂ©e avec une nouvelle variable d'environnement SYSTEMD_HWDB_UPDATE_BYPASS=1.

systemd-hostnamed offre divers maniĂšres de modifier le nom et la description du systĂšme

  • systemd-hostnamed expose dĂ©sormais l'ID de la machine et l'ID de dĂ©marrage via D-Bus.

    • Il expose Ă©galement les hĂŽtes AF_VSOCK CID, si disponible.
  • systemd-hostnamed fournit dĂ©sormais une interface Varlink de base.

  • systemd-hostnamed exporte les donnĂ©es complĂštes dans os-release(5) et machine-info(5) via D-Bus et Varlink.

  • hostnamectl affiche dĂ©sormais l'UUID du produit du systĂšme et le numĂ©ro de sĂ©rie du matĂ©riel s'il est connu.

La gestion du réseau avec systemd

  • systemd-networkd fournit dĂ©sormais une interface Varlink de base.

  • La prise en charge du proxy ARP de systemd-networkd a gagnĂ© une nouvelle option pour configurer une variante de VLAN privĂ© du proxy ARP pris en charge par le noyau sous le nom IPv4ProxyARPPrivateVLAN=.

  • systemd-networkd exporte dĂ©sormais les propriĂ©tĂ©s NamespaceId et NamespaceNSID via D-Bus et Varlink.

    • qui exposent l'inode et le NSID de l'espace de noms rĂ©seau gĂ©rĂ© par l'instance networkd)
  • systemd-networkd prend dĂ©sormais en charge les paramĂštres IPv6RetransmissionTimeSec= et UseRetransmissionTime= dans les fichiers .network pour configurer le temps de retransmission pour les messages de sollicitation de voisin IPv6.

  • networkctl a acquis de nouveaux verbes « mask Â» et « unmask Â» pour masquer les fichiers de configuration rĂ©seau tels que les fichiers .network.

  • networkctl edit --runtime permet de modifier la configuration volatile sous /run/systemd/network/.

  • La mise en Ɠuvre derriĂšre le paramĂštre rĂ©seau TTLPropagate= a Ă©tĂ© supprimĂ©e, et ce paramĂštre est dĂ©sormais ignorĂ©.

  • systemd-network-generator rĂ©cupĂ©rera dĂ©sormais la configuration situĂ© dans .netdev/.link/.network/networkd.conf Ă  partir des informations d'identification du systĂšme.

  • systemd-networkd rĂ©cupĂ©rera dĂ©sormais les secrets de wireguard depuis les informations d'identification (credentials).

  • L'API Varlink de systemd-networkd prend dĂ©sormais en charge l'Ă©numĂ©ration des homologues LLDP.

  • Les fichiers .link prennent dĂ©sormais en charge les nouveaux champs Property=, ImportProperty=, UnsetProperty= pour dĂ©finir les propriĂ©tĂ©s udev sur un lien.

  • Les diffĂ©rents fichiers .link fournis par systemd pour les interfaces censĂ©es ĂȘtre gĂ©rĂ©es uniquement par systemd-networkd portent dĂ©sormais une propriĂ©tĂ© udev ID_NET_MANAGED_BY=io.systemd.Network garantissant que les autres solutions de gestion de rĂ©seau honorant cette propriĂ©tĂ© udev n'entrent pas en conflit avec networkd, en essayant de gĂ©rer ces interfaces.

  • Les fichiers .link prennent dĂ©sormais en charge un nouveau paramĂštre ReceiverPacketSteeringCPUMask=

    • pour configurer les processeurs vers lesquels diriger les paquets entrants.
  • La section [RĂ©seau] des fichiers .network a gagnĂ© un nouveau paramĂštre UseDomains=,

    • qui est un bouton gĂ©nĂ©rique unique pour contrĂŽler les paramĂštres du mĂȘme nom dans [DHCPv4], [DHCPv6] et [IPv6AcceptRA].
  • Le fichier 99-default.link que nous livrons par dĂ©faut

    • (qui dĂ©finit la politique pour tous les pĂ©riphĂ©riques rĂ©seau auxquels aucun autre fichier .link ne s'applique)
    • rĂ©pertorie dĂ©sormais mac parmi AlternativeNamesPolicy=.
    • Cela signifie que les interfaces rĂ©seau recevront dĂ©sormais par dĂ©faut un nom de pĂ©riphĂ©rique alternatif supplĂ©mentaire basĂ© sur l'adresse MAC. (c'est-Ă -dire enx
)

À propos de systemd-nspawn, l'alternative sĂ©curisĂ©e et fine de chroot

  • systemd-nspawn fournit dĂ©sormais un rĂ©pertoire /run/systemd/nspawn/unix-export/ dans lequel la charge utile du conteneur peut exposer les sockets AF_UNIX pour leur permettre d'y accĂ©der de l'extĂ©rieur.

  • systemd-nspawn teintera l'arriĂšre-plan du terminal des conteneurs d'une couleur bleuĂątre. Cela peut ĂȘtre un contrĂŽleur avec le nouveau commutateur --background=.

  • systemd-nspawn a obtenu la prise en charge de l'option owneridmap pour les montages --bind= afin de mapper le propriĂ©taire du rĂ©pertoire cible depuis l'intĂ©rieur du conteneur vers le propriĂ©taire du rĂ©pertoire liĂ© au systĂšme de fichiers hĂŽte.

  • systemd-nspawn prend dĂ©sormais en charge le dĂ©placement des pĂ©riphĂ©riques rĂ©seau Wi-Fi dans un conteneur, tout comme les autres interfaces rĂ©seau.

À propos du multi rĂ©solveur systemd-resolved, qui peut remplacer dnsmasq, Avahi & libnss-mdns

  • systemd-resolved lit dĂ©sormais les codes d'erreur RFC 8914 EDE fournis par les services DNS en amont.

  • systemd-resolved et solvectl prennent dĂ©sormais en charge les enregistrements RFC 9460 SVCB et HTTPS, ainsi que les enregistrements RFC 2915 NAPTR.

  • solvectl a acquis une nouvelle option --relax-single-label= pour permettre d'interroger des noms d'hĂŽtes en une seule partie via DNS unicast pour chaque requĂȘte.

  • L'interface Varlink IPC de systemd-resolved prend dĂ©sormais en charge la rĂ©solution des services DNS-SD ainsi qu'une API pour rĂ©soudre les RR DNS bruts.

  • Les fichiers de description de service .dnssd DNS_SD de systemd-resolved prennent dĂ©sormais en charge les sous-types DNS-SD via le nouveau paramĂštre SubType=.

  • La configuration de systemd-resolved peut dĂ©sormais ĂȘtre rechargĂ©e sans redĂ©marrer le service, c'est-Ă -dire que systemctl reload systemd-resolved est dĂ©sormais pris en charge.

Une intégration fine de SSH

  • Un drop-in de configuration sshd pour permettre aux clĂ©s ssh acquises via userdbctl (par exemple exposĂ©es par des comptes de type systemd-homed) d'ĂȘtre utilisĂ©es pour l'autorisation des connexions SSH entrantes.

  • Un petit nouveau gĂ©nĂ©rateur d'unitĂ©s systemd-ssh-generator a Ă©tĂ© ajoutĂ©. Il vĂ©rifie si le binaire sshd est installĂ©. Si tel est le cas, il le lie via l'activation de socket par connexion Ă  diffĂ©rentes sockets en fonction du contexte d'exĂ©cution :

    • Si le systĂšme est exĂ©cutĂ© sur une VM prenant en charge AF_VSOCK, il lie automatiquement sshd au AF_VSOCK port 22 .
    • Si le systĂšme est invoquĂ© en tant que conteneur OS complet et que le gestionnaire de conteneur prĂ©-monte un rĂ©pertoire /run/host/unix-export/, il liera sshd Ă  un socket AF_UNIX /run/host/unix-export/ssh. L'idĂ©e est que la liaison du gestionnaire de conteneur monte Ă©galement le rĂ©pertoire Ă  un endroit appropriĂ© sur l'hĂŽte, de sorte que le socket AF_UNIX puisse ĂȘtre utilisĂ© pour se connecter facilement de l'hĂŽte au conteneur.
  • sshd est Ă©galement liĂ© Ă  un socket AF_UNIX /run/ssh-unix-local/socket, qui consiste Ă  utiliser ssh/sftp Ă  la maniĂšre de sudo pour accĂ©der aux ressources d'autres utilisateurs locaux.

  • Via l'option de ligne de commande du noyau systemd.ssh_listen= et les informations d'identification systĂšme ssh.listen, sshd peut ĂȘtre liĂ© Ă  des options supplĂ©mentaires explicitement configurĂ©es, notamment les ports AF_INET/AF_INET6.

  • En particulier, les deux premiers mĂ©canismes devraient faciliter grandement la gestion des machines virtuelles locales et des conteneurs de systĂšme d'exploitation complets, car les connexions SSH fonctionneront basiquement Ă  partir de l'hĂŽte – mĂȘme si aucun rĂ©seau n'est disponible.

  • systemd-ssh-generator gĂ©nĂšre optionnellement un fichier de service d'activation de socket par connexion en encapsulant sshd. Ceci n'est fait que si la distribution n'en fournit pas elle-mĂȘme sous le nom de sshd@.service. L'unitĂ© gĂ©nĂ©rĂ©e ne fonctionne correctement que si le rĂ©pertoire de sĂ©paration des privilĂšges SSH privsep existe. Malheureusement, les distributions varient & placent ce rĂ©pertoire de maniĂšre trĂšs variable. Voici une liste incomplĂšte :

    • /usr/share/empty.sshd/ (nouveau sous Fedora)
    • /var/empty/
    • /var/empty/sshd/
    • /run/sshd/ (debian/ubuntu ?)

Si le rĂ©pertoire SSH privsep est placĂ© sous /var/ ou /run/, il faut veiller Ă  ce que le rĂ©pertoire soit crĂ©Ă© automatiquement au dĂ©marrage si nĂ©cessaire, car ces rĂ©pertoires peuvent ĂȘtre ou sont toujours vides. Cela peut ĂȘtre fait via un drop-in tmpfiles.d/. Vous pouvez utiliser l'option meson sshdprivsepdir fournie par systemd pour configurer le rĂ©pertoire, au cas oĂč vous souhaiteriez que systemd crĂ©e automatiquement le rĂ©pertoire selon vos besoins, si votre distribution ne le couvre pas de maniĂšre native.

Recommandations aux distributions, afin que les choses fonctionnent correctement :

‱ Veuillez fournir un fichier de service SSH par connexion sous le nom sshd@.service.
‱ Veuillez dĂ©placer le rĂ©pertoire SSH privsep dans /usr/
* afin qu'il soit véritablement immuable sur les systÚmes d'exploitation basés sur des images
* qu'il soit strictement sous le contrĂŽle du gestionnaire de paquets
* et qu'il ne nécessite jamais de recréation si le systÚme démarre avec un répertoire /run/ ou /var vide.
‱ Dans le prolongement de ceci : veuillez envisager de suivre l'exemple de Fedora ici et d'utiliser /usr/share/empty.sshd/ pour minimiser les diffĂ©rences inutiles entre les distributions.
‱ Si votre distribution insiste pour placer le rĂ©pertoire dans /var/ ou /run/ alors veuillez au moins fournir un drop-in tmpfiles.d/ pour le recrĂ©er automatiquement au dĂ©marrage, afin que le binaire sshd fonctionne correctement, quel que soit le contexte dans lequel il se trouve appelĂ©.

  • Un petit outil systemd-ssh-proxy a Ă©tĂ© ajoutĂ©, censĂ© faire office de pendant de systemd-ssh-generator. C'est un petit plug-in pour le client SSH (via ProxyCommand/ProxyUseFdpass) pour lui permettre de se connecter aux sockets AF_VSOCK ou AF_UNIX. Exemple : ssh vsock/4711 se connecte Ă  une VM locale avec le cid 4711, ou ssh unix/run/ssh-unix-local/socket pour se connecter Ă  l'hĂŽte local via le socket AF_UNIX /run/ssh-unix-local/socket.

systemd-boot et systemd-stub et outils associés, une alternative minimale & ukify à grub

  • La prise en charge des mesures PCR TPM 1.2 a Ă©tĂ© supprimĂ©e de systemd-stub. Le TPM 1.2 est obsolĂšte et – en raison de la faiblesse (selon les normes actuelles) des algorithmes cryptographiques qu'il ne prend en charge – n'offre pas rĂ©ellement les avantages en matiĂšre de sĂ©curitĂ© qu'il est censĂ© offrir. Étant donnĂ© que le reste de la base de code de systemd n'a jamais pris en charge TPM 1.2, la prise en charge a Ă©galement Ă©tĂ© supprimĂ©e de systemd-stub.

  • systemd-stub mesurera dĂ©sormais sa charge utile via les nouvelles API EFI Confidential Computing (CC), en plus des mesures prĂ©existantes du TPM.

  • Les confextes (cf [systemd-sysext](https://www.freedesktop.org/software/systemd/man/latest/systemd-sysext.html)) sont Ă©galement chargĂ©s par systemd-stub depuis l'ESP.

  • kernel-install a obtenu le support de --root= pour le verbe list.

  • bootctl fournit dĂ©sormais une interface Varlink de base et peut ĂȘtre exĂ©cutĂ© en tant que service(dĂ©mon) via une unitĂ© modĂšle.

  • systemd-measure a obtenu de nouvelles options --certificate=, --private-key= et --private-key-source= pour permettre l'utilisation des moteurs ou fournisseurs d'OpenSSL comme mĂ©canisme de signature Ă  utiliser lors de la crĂ©ation de valeurs de mesure signĂ©es PCR TPM2

  • ukify a obtenu la prise en charge de la signature des signatures PCR via les moteurs et fournisseurs OpenSSL.

  • ukify prend dĂ©sormais en charge les noyaux zboot.

  • systemd-boot prend dĂ©sormais en charge la transmission de commutateurs de ligne de commande de noyau supplĂ©mentaires aux noyaux invoquĂ©s via une chaĂźne SMBIOS Type #11 io.systemd.boot.kernel-cmdline-extra. Ceci est similaire Ă  la prise en charge prĂ©existante de cela dans systemd-stub, mais s'applique Ă©galement aux entrĂ©es de spĂ©cification du chargeur de dĂ©marrage de type n°1.

  • La prise en charge automatique de l'inscription SecureBoot par systemd-boot prend Ă©galement en charge l'inscription dbx (auparavant, seule l'inscription db/KEK/PK Ă©tait prise en charge). Il prend Ă©galement dĂ©sormais en charge le mode UEFI « PersonnalisĂ© Â».

  • La politique pcrlock est enregistrĂ©e dans un fichier d'informations d'identification non chiffrĂ© pcrlock.<entry-token>.cred sous XBOOTLDR/ESP dans le rĂ©pertoire /loader/credentials/. Il sera rĂ©cupĂ©rĂ© au dĂ©marrage par systemd-stub et transmis Ă  initrd, oĂč il pourra ĂȘtre utilisĂ© pour dĂ©verrouiller le systĂšme de fichiers racine.

  • systemd-pcrlock a obtenu une option --entry-token= pour configurer le jeton d'entrĂ©e.

  • systemd-pcrlock fournit dĂ©sormais une interface Varlink de base et peut ĂȘtre exĂ©cutĂ© en tant que dĂ©mon via une unitĂ© modĂšle.

  • La politique d'accĂšs au TPM nvindex de systemd-pcrlock a Ă©tĂ© modifiĂ©e

    • cela signifie que les politiques pcrlock prĂ©cĂ©dentes stockĂ©es dans nvindexes sont invalidĂ©es.
    • Ils doivent ĂȘtre supprimĂ©s (systemd-pcrlock remove-policy) et recrĂ©Ă©s (systemd-pcrlock make-policy).
    • Pour le moment, systemd-pcrlock reste une fonctionnalitĂ© expĂ©rimentale, mais elle devrait devenir stable dans la prochaine version, c'est-Ă -dire la v257.
  • Le commutateur --recovery-pin= de systemd-pcrlock prend dĂ©sormais trois valeurs : hide, show, query. Si « afficher Â» est sĂ©lectionnĂ©, le code PIN de rĂ©cupĂ©ration gĂ©nĂ©rĂ© automatiquement est affichĂ© Ă  l'utilisateur. Si « requĂȘte Â» est sĂ©lectionnĂ©, le code PIN est demandĂ© Ă  l'utilisateur.

  • sd-stub prend dĂ©sormais en charge la nouvelle section PE .ucode dans les UKI, qui peut contenir des donnĂ©es de microcode CPU. Lorsque le contrĂŽle est transfĂ©rĂ© au noyau Linux, ces donnĂ©es sont ajoutĂ©es au dĂ©but de l'ensemble des initrds transmis.

systemd-run/run0, une alternative sécurisée à sudo

  • systemd-run est dĂ©sormais un binaire multi-appels. Lorsqu'il est invoquĂ© en tant que run0, il fournit une interface similaire Ă  sudo, tous les arguments commençant au premier paramĂštre non-option Ă©tant traitĂ©s comme la commande Ă  invoquer en tant que root.

    • Contrairement Ă  « sudo Â» et aux outils similaires, il n'utilise pas de binaires setuid ou d'autres mĂ©thodes d'Ă©lĂ©vation de privilĂšges
    • mais exĂ©cute Ă  la place la commande spĂ©cifiĂ©e comme une unitĂ© transitoire
    • Elle est dĂ©marrĂ©e par le gestionnaire de services systĂšme, de sorte que les privilĂšges sont supprimĂ©s plutĂŽt que gagnĂ©s.
    • Cela met ainsi en Ɠuvre un modĂšle de sĂ©curitĂ© beaucoup plus robuste et sĂ»r.
    • Comme d'habitude, l'autorisation est gĂ©rĂ©e via Polkit.
  • systemd-run/run0 teintera dĂ©sormais l'arriĂšre-plan du terminal sur les terminaux pris en charge :

    • dans un ton rougeĂątre lors de l'appel d'un service racine
    • dans un ton jaunĂątre sinon.
    • Cela peut ĂȘtre contrĂŽlĂ© et dĂ©sactivĂ© via le nouveau commutateur --background=.
  • systemd-run a gagnĂ© une nouvelle option --ignore-failure pour supprimer les Ă©checs de commandes.

Outillages en ligne de commande

  • systemctl edit --stdin permet la crĂ©ation de fichiers d'unitĂ© et de drop-ins avec du contenu fourni via l'entrĂ©e standard.

    • Ceci est utile lors de la crĂ©ation d’une configuration par programme ; l'outil se charge de dĂ©terminer le nom du fichier, de crĂ©er les rĂ©pertoires Ă©ventuels et de recharger ensuite le gestionnaire.
  • systemctl disable --now et systemctl mask --now fonctionnent dĂ©sormais correctement avec les modĂšles d'unitĂ©s.

  • systemd-analyze architectures rĂ©pertorie les architectures CPU connues.

  • systemd-analyze --json=
 est pris en charge pour les architectures, capability, exit-status

  • systemd-tmpfiles --purge purgera (supprimera) tous les fichiers et rĂ©pertoires crĂ©Ă©s via la configuration tmpfiles.d.

  • systemd-id128 a gagnĂ© de nouvelles options --no-pager, --no-legend et -j/ --json=.

  • hostnamectl a gagnĂ© -j comme raccourci pour --json=pretty ou --json=short

  • loginctl prend dĂ©sormais en charge -j/ --json=.

  • resolvectl prend dĂ©sormais en charge -j/ --json= pour --type=.

  • systemd-tmpfiles a gagnĂ© une nouvelle option --dry-run pour simuler ce qui serait fait sans rĂ©ellement agir.

  • varlinkctl a obtenu un nouveau commutateur --collect pour collecter toutes les rĂ©ponses d'un appel de mĂ©thode qui prend en charge plusieurs rĂ©ponses et le transforme en un seul tableau JSON.

  • systemd-dissect a acquis une nouvelle option --make-archive pour gĂ©nĂ©rer un fichier d'archive (tar.gz et similaire) Ă  partir d'une image disque.

systemd-vmspawn, permet de générer un systÚme d'exploitation dans une machine virtuelle

  • systemd-vmspawn a gagnĂ©

    • une nouvelle option --firmware= pour configurer ou lister les dĂ©finitions de firmware pour Qemu
    • une nouvelle option --tpm= pour activer ou dĂ©sactiver l'utilisation d'un TPM logiciel
    • une nouvelle option --linux= pour spĂ©cifier un noyau binaire pour le dĂ©marrage direct du noyau
    • une nouvelle option --initrd= pour spĂ©cifier un initrd pour le dĂ©marrage direct du noyau
    • une nouvelle option -D/--directory pour utiliser un rĂ©pertoire simple comme systĂšme de fichiers racine
    • une nouvelle option --private-users similaire Ă  celle de systemd-nspawn
    • de nouvelles options --bind= et --bind-ro= pour lier une partie de la hiĂ©rarchie du systĂšme de fichiers de l'hĂŽte Ă  l'invitĂ©
    • une nouvelle option --extra-drive= pour attacher du stockage supplĂ©mentaire
    • et -n/--network-tap/--network-user-mode pour configurer le rĂ©seau.
  • Un nouveau systemd-vmspawn@.service peut ĂȘtre utilisĂ© pour lancer systemd-vmspawn en tant que service.

  • systemd-vmspawn a obtenu les nouveaux commutateurs --console= et --background= qui contrĂŽlent la maniĂšre d'interagir avec la VM.

    • Comme auparavant, une interface de terminal interactive est fournie par dĂ©faut, mais dĂ©sormais avec un fond teintĂ© d'une teinte verdĂątre.
  • systemd-vmspawn peut dĂ©sormais enregistrer ses VM auprĂšs de systemd-machined, contrĂŽlĂ© via le commutateur --register=.

  • La commande start de machinectl (et associĂ©e) peut dĂ©sormais appeler des images

    • soit en tant que conteneurs via systemd-nspawn (le commutateur est --runner=nspawn, la valeur par dĂ©faut)
    • soit en tant que VM via systemd-vmspawn (le commutateur est --runner=vmspawn , ou court -V).
  • systemd-vmspawn prend dĂ©sormais en charge deux commutateurs --pass-ssh-key= et --ssh-key-type= pour configurer Ă©ventuellement des clĂ©s SSH transitoires Ă  transmettre aux machines virtuelles invoquĂ©es afin de pouvoir y accĂ©der en SSH une fois dĂ©marrĂ©es.

  • systemd-vmspawn activera dĂ©sormais diverses options sur les VMs

    • HyperV enlightenments"
    • et le VM Generation ID
  • Une nouvelle variable d'environnement $SYSTEMD_VMSPAWN_QEMU_EXTRA peut contenir des options de ligne de commande qemu supplĂ©mentaires Ă  transmettre Ă  qemu.

  • systemd-machined a acquis une nouvelle mĂ©thode D-Bus GetMachineSSHInfo() qui est utilisĂ© par systemd-vmspawn pour rĂ©cupĂ©rer les informations nĂ©cessaires pour se connecter au systĂšme.

    • systemd-machined a acquis une nouvelle interface Varlink qui est utilisĂ©e par systemd-vmspawn pour enregistrer les machines avec diverses informations & mĂ©tadonnĂ©es supplĂ©mentaires.

systemd-repart, pour retailler un disque à la volée

  • systemd-repart a obtenu de nouvelles options --generate-fstab= et --generate-crypttab=

    • pour Ă©crire les fichiers fstab et crypttab correspondant aux partitions gĂ©nĂ©rĂ©es.
  • systemd-repart a obtenu une nouvelle option --private-key-source=

    • pour permettre d'utiliser les moteurs ou fournisseurs d'OpenSSL comme mĂ©canisme de signature Ă  utiliser lors de la crĂ©ation de partitions de signature Verity.
  • systemd-repart a obtenu un nouveau paramĂštre DefaultSubvolume= dans les drop-ins repart.d/

    • qui permettent de configurer le sous-volume btrfs par dĂ©faut pour les systĂšmes de fichiers btrfs nouvellement formatĂ©s.

BibliothĂšques autours du monde systemd

  • libsystemd a obtenu un nouvel appel sd_bus_creds_new_from_pidfd()

    • pour obtenir un objet d'informations d'identification pour un pidfd
    • et sd_bus_creds_get_pidfd_dup() pour rĂ©cupĂ©rer le pidfd Ă  partir d'un objet d'informations d'identification.
  • La logique d'identification de sd-bus acquerra dĂ©sormais Ă©galement les listes de groupes UNIX du homologue

    • et le pidfd du homologue si pris en charge et demandĂ©.
  • La macro RPM %_kernel_install_dir a Ă©tĂ© ajoutĂ©e avec le chemin d'accĂšs au rĂ©pertoire des plugins d'installation du noyau.

  • Les dĂ©pendances liblz4, libzstd, liblzma, libkmod, libgcrypt ont Ă©tĂ© modifiĂ©es

    • de dĂ©pendances de bibliothĂšque partagĂ©e habituelles en dĂ©pendances basĂ©es sur dlopen().
    • Notez que cela signifie que ces bibliothĂšques pourraient ne pas ĂȘtre automatiquement rĂ©cupĂ©rĂ© lorsque les dĂ©pendances ELF sont rĂ©solues. En particulier le manque de libkmod peut causer des problĂšmes de dĂ©marrage. Cela affecte le dracut <= 101
  • Les binaires systemd ELF qui utilisent des bibliothĂšques via dlopen() sont maintenant construits avec une nouvelle section de note d'en-tĂȘte ELF, suite Ă  une nouvelle spĂ©cification dĂ©finie Ă 
    docs/ELF_DLOPEN_METADATA.md, qui fournit des informations sur lesquels le sonames sont chargés et utilisés s'ils sont trouvés au moment de l'exécution. Cela permet aux outils et packagers pour découvrir par programme la liste des éléments facultatifs
    dépendances utilisées par tous les binaires systemd ELF. Un analyseur avec packaging les outils d'intégration sont disponibles sur git

  • L'API sd-journal a obtenu un nouvel appel sd_journal_stream_fd_with_namespace()

    • qui ressemble Ă  sd_journal_stream_fd() mais crĂ©e un flux de journaux ciblĂ© sur un espace de noms de journal spĂ©cifique.
  • L'API sd-id128 a obtenu un nouvel appel d'API sd_id128_get_invocation_app_special()

    • pour acquĂ©rir un ID spĂ©cifique Ă  l'application dĂ©rivĂ© de l'ID d'appel de service.
  • L'API sd-event a obtenu un nouvel appel d'API sd_event_source_get_inotify_path()

    • qui renvoie le chemin du systĂšme de fichiers pour lequel une source d'Ă©vĂ©nement inotify a Ă©tĂ© crĂ©Ă©e.

systemd-cryptsetup systemd-cryptenroll, oĂč l'aide au chiffrement de disque

  • L'argument du nƓud de pĂ©riphĂ©rique pour systemd-cryptenroll est dĂ©sormais facultatif.

    • S'il est omis, il sera automatiquement dĂ©duit du pĂ©riphĂ©rique de bloc de support de /var/
      • (qui est trĂšs probablement le mĂȘme que le systĂšme de fichiers racine, ce qui signifie effectivement que si vous ne spĂ©cifiez rien, sinon l'outil enregistrera dĂ©sormais par dĂ©faut une clĂ© dans pĂ©riphĂ©rique LUKS du systĂšme de fichiers racine).
  • systemd-cryptenroll peut dĂ©sormais s'inscrire directement avec une clĂ© publique PKCS11 (au lieu d'un certificat).

  • systemd-cryptsetup systemd-cryptenroll peuvent dĂ©sormais verrouiller un disque avec une clĂ© EC fournie par PKCS#11

    • (auparavant, il ne prenait en charge que RSA).
  • systemd-cryptsetup prend en charge l'option crypttab link-volume-key=

    • pour lier la clĂ© du volume au jeu de clĂ©s du noyau lorsque le volume est ouvert.
  • systemd-cryptenroll n'activera plus la protection contre les attaques par dictionnaire (c'est-Ă -dire activer NO_DA) pour les inscriptions TPM qui n'impliquent pas de code PIN.

    • DA ne devrait pas ĂȘtre nĂ©cessaire dans ce cas (puisque l'entropie de la clĂ© est suffisamment Ă©levĂ©e pour rendre cela inutile),
    • mais un risque un verrouillage accidentel en cas de modifications inattendues du PCR.
  • systemd-cryptenroll prend dĂ©sormais en charge l'inscription d'un nouvel emplacement tout en dĂ©verrouillant l'ancien emplacement via TPM2

    • (auparavant, le dĂ©verrouillage ne fonctionnait que via un mot de passe ou FIDO2).

systemd-homed systemd-logind, systemd-userdbd

  • systemd-homed prend dĂ©sormais en charge le dĂ©verrouillage des rĂ©pertoires personnels lors de la connexion via SSH.

    • Auparavant, les rĂ©pertoires personnels devaient ĂȘtre dĂ©verrouillĂ©s avant toute tentative de connexion SSH.
  • Les enregistrements utilisateur au format JSON ont Ă©tĂ© Ă©tendus avec une zone de stockage publique distincte appelĂ©e « RĂ©pertoires binaires des enregistrements utilisateur Â» ("User Record Blob Directories").

    • Ceci est destinĂ© Ă  stocker l'image d'arriĂšre-plan de l'utilisateur, l'image de l'avatar et d'autres Ă©lĂ©ments similaires qui sont trop volumineux pour tenir dans l'enregistrement utilisateur lui-mĂȘme.
    • systemd-homed, userdbctl et homectl prennent dĂ©sormais en charge les rĂ©pertoires binaires.
    • homectl a gagnĂ© --avatar= et --login-background=
      • pour contrĂŽler deux Ă©lĂ©ments spĂ©cifiques des rĂ©pertoires binaires.
    • Un nouveau champ additionalLanguages a Ă©tĂ© ajoutĂ© aux enregistrements utilisateur JSON (tel que pris en charge par systemd-homed et systemd-userdbd),
      • qui est Ă©troitement liĂ© au preferredLanguage prĂ©existant, et permet de spĂ©cifier plusieurs langues supplĂ©mentaires pour le compte utilisateur.
      • Il est utilisĂ© pour initialiser la variable d'environnement $LANGUAGES lorsqu'elle est utilisĂ©e.
  • Une nouvelle paire de champs preferredSessionType et preferredSessionLauncher a Ă©tĂ© ajoutĂ©e aux enregistrements utilisateur JSON,

    • qui peuvent ĂȘtre utilisĂ©es pour contrĂŽler le type de session de bureau Ă  activer de prĂ©fĂ©rence lors des connexions de l'utilisateur.
  • homectl a gagnĂ© un nouveau verbe firstboot, et une nouvelle unitĂ© systemd-homed-firstboot.service

    • ce verbe est utilisĂ© pour crĂ©er des utilisateurs dans un environnement de premier dĂ©marrage,
      • soit Ă  partir des informations d'identification du systĂšme
      • soit en interrogeant de maniĂšre interactive.
  • systemd-logind prend dĂ©sormais en charge une nouvelle classe de session background-light qui n'envoie pas l'unitĂ© user@.service.

    • Ceci est destinĂ© aux sessions automatisĂ©es, type cron, sans nĂ©cessirĂ© d'interactions utilisateurs
    • Cela rend l'ouverture plus lĂ©gĂšre et rapide.
  • Le gestionnaire de services par utilisateur sera dĂ©sormais suivi comme un type de session « gestionnaire Â» (manager) distinct parmi les sessions de connexion de chaque utilisateur.

  • homectl prend dĂ©sormais en charge un mode --offline,

    • grĂące auquel certaines propriĂ©tĂ©s du compte peuvent ĂȘtre modifiĂ©es sans dĂ©verrouiller le rĂ©pertoire personnel.
  • systemd-logind a acquis une nouvelle mĂ©thode org.freedesktop.login1.Manager.ListSessionsEx()

    • qui fournit des mĂ©tadonnĂ©es supplĂ©mentaires par rapport Ă  ListSessions().
    • loginctl l'utilise pour lister des champs supplĂ©mentaires dans les sessions de liste.
  • systemd-logind a gagnĂ© une nouvelle mĂ©thode org.freedesktop.login1.Manager.Sleep()

    • qui redirige automatiquement vers SuspendThenHibernate(), Suspend(), HybridSleep() ou Hibernate(),
      • selon ce qui est pris en charge et configurĂ©,
        • une nouvelle paramĂštre de configuration SleepOperation=,
        • ainsi qu'une mĂ©thode d'assistance associĂ©e org.freedesktop.login1.Manager.CanSleep()
        • et une propriĂ©tĂ© org.freedesktop.login1.Manager.SleepOperation.
        • systemctl sleep appelle la nouvelle mĂ©thode pour mettre automatiquement la machine en veille de la maniĂšre la plus appropriĂ©e.
  • systemctl sleep appelle une nouvelle mĂ©thode pour mettre automatiquement la
    machine dans le mode sommeil de la maniÚre la plus appropriée.

systemd-creds, mĂ©canisme de gestion des authentifications, pour arrĂȘter de balancer du mot de passe en clair partout

  • systemd-creds fournit dĂ©sormais une API Varlink IPC pour chiffrer et dĂ©chiffrer les informations d'identification.

  • La sĂ©lection de clĂ© tpm2-absent de systemd-creds a Ă©tĂ© renommĂ©e en null, puisque c'est ce qu'elle fait rĂ©ellement :

    • chiffrer et signer avec une clĂ© nulle fixe.
    • --with-key=null ne doit ĂȘtre utilisĂ© que dans des cas trĂšs spĂ©cifiques,
    • car il n'offre aucune protection en matiĂšre d'intĂ©gritĂ© ou de confidentialitĂ©.
    • c'est-Ă -dire qu'il n'est sĂ»r Ă  utiliser comme solution de secours que dans des environnements dĂ©pourvus Ă  la fois d'un TPM et d'un accĂšs au systĂšme de fichiers racine pour utiliser la clĂ© de chiffrement de l'hĂŽte, ou lorsque l'intĂ©gritĂ© est assurĂ©e d'une autre maniĂšre.
  • systemd-creds a obtenu un nouveau commutateur --allow-null.

    • S'il est spĂ©cifiĂ©, le verbe decrypt dĂ©codera les informations d'identification chiffrĂ©es qui utilisent la clĂ© null
    • Par dĂ©faut, cela est refusĂ©, car l'utilisation de la clĂ© null annule le cryptage authentifiĂ© normalement effectuĂ©.

De quoi mettre en veille et mettre en veille prolongée

  • Le fichier de configuration sleep.conf a obtenu un nouveau paramĂštre MemorySleepMode=

    • pour configurer le mode veille plus en dĂ©tail.
  • Un nouveau petit service systemd-hibernate-clear.service a Ă©tĂ© ajoutĂ©

    • qui efface les informations d'hibernation de la variable EFI HibernateLocation,
      • au cas oĂč le pĂ©riphĂ©rique de reprise disparaĂźtrait.
      • Normalement, cette variable est censĂ©e ĂȘtre nettoyĂ©e par le code qui lance l'image de reprise depuis l'hibernation.
      • Mais lorsque le pĂ©riphĂ©rique est manquant et que ce code ne s'exĂ©cute pas,
      • ce service effectuera dĂ©sormais le travail nĂ©cessaire, garantissant qu'aucune information d'image d'hibernation obsolĂšte ne reste lors des dĂ©marrages suivants.

Espaces de noms utilisateurs non privilégiés et gestion des montages de disques

  • Un nouveau petit service systemd-nsresourced.service a Ă©tĂ© ajoutĂ©.

    • Il fournit une API Varlink IPC qui attribue une plage UID/GID de 64 Ko gratuite et allouĂ©e de maniĂšre transitoire Ă  un espace de noms d'utilisateur non initialisĂ© fourni par un client. Il peut ĂȘtre utilisĂ© pour implĂ©menter des gestionnaires de conteneurs sans privilĂšges et d'autres programmes nĂ©cessitant des plages d'ID utilisateur dynamiques. Il fournit Ă©galement des interfaces pour dĂ©lĂ©guer ensuite des descripteurs de fichiers de montage, des groupes de contrĂŽle et des interfaces rĂ©seau aux espaces de noms utilisateur configurĂ©s de cette maniĂšre.
  • Un nouveau petit service systemd-mountfsd.service a Ă©tĂ© ajoutĂ©.

    • Il fournit une API Varlink IPC pour monter des images DDI et renvoyer un ensemble de descripteurs de fichiers de montage pour celles-ci. Si un espace de noms utilisateur fd est fourni en entrĂ©e, alors les montages sont enregistrĂ©s avec l'espace de noms utilisateur. Pour garantir la confiance dans l'image, elle doit fournir des informations Verity (ou bien une authentification polkit interactive est requise).
  • L'outil systemd-dissect peut dĂ©sormais accĂ©der aux DDI sans aucun privilĂšge en utilisant systemd-nsresourced/systemd-mountfsd.

  • Si le gestionnaire de services s'exĂ©cute sans privilĂšges (c'est-Ă -dire systemd --user),

    • il prend dĂ©sormais en charge RootImage= pour accĂ©der aux images DDI, Ă©galement implĂ©mentĂ© via systemd-nsresourced/systemd-mountfsd.
  • systemd-nspawn peut dĂ©sormais fonctionner sans privilĂšges,

    • si un DDI appropriĂ© est fourni via --image=, encore une fois implĂ©mentĂ© via systemd-nsresourced/systemd-mountfsd.

Divers changements

  • timedatectl et machinectl ont obtenu l'option -P,
    • un alias pour --value --property=
.
  • Divers outils permettant d'imprimer joliment les fichiers de configuration mettront dĂ©sormais en Ă©vidence les directives de configuration.

  • varlinkctl a obtenu le support du transport ssh:.

    • Cela nĂ©cessite OpenSSH 9.4 ou plus rĂ©cent.
  • systemd-sysext a obtenu la prise en charge de l'activation des extensions systĂšme de maniĂšre mutable,

    • oĂč un rĂ©pertoire supĂ©rieur inscriptible est stockĂ© sous /var/lib/extensions.mutable/,
    • et une nouvelle option --mutable= pour configurer ce comportement.
    • Un mode « Ă©phĂ©mĂšre Â» n'est pas non plus pris en charge lorsque la couche mutable est configurĂ©e pour ĂȘtre un tmpfs qui est automatiquement libĂ©rĂ© lorsque les extensions systĂšme sont rattachĂ©es.
  • Les coredumps sont dĂ©sormais conservĂ©s pendant deux semaines par dĂ©faut (au lieu de trois jours comme auparavant).

  • Le paramĂštre portablectl --copy= a obtenu un nouvel argument mixte,

    • qui entraĂźnera la liaison des ressources appartenant au systĂšme d'exploitation
    • (par exemple : les profils portables) mais aux ressources appartenant Ă  l'image portable Ă  copier (par exemple les fichiers unitaires et les images elles-mĂȘmes).
  • systemd enregistrera dĂ©sormais les types MIME de ses divers types de fichiers

    • (par exemple, fichiers journaux, DDI, informations d'identification cryptĂ©es
) via l'infrastructure d'informations mime partagĂ©es XDG.
    • (Les fichiers de ces types seront ainsi reconnus comme leur propre Ă©lĂ©ment dans les gestionnaires de fichiers de bureau tels que les fichiers GNOME.)
  • systemd-dissect affichera dĂ©sormais la taille de secteur dĂ©tectĂ©e d'un DDI donnĂ© dans sa sortie par dĂ©faut.

  • systemd-portabled gĂ©nĂšre dĂ©sormais des messages de journal structurĂ©s reconnaissables chaque fois qu'un service portable est attachĂ© ou dĂ©tachĂ©.

  • La vĂ©rification de la signature Verity dans l'espace utilisateur (c'est-Ă -dire la vĂ©rification par rapport aux clĂ©s /etc/verity.d/) lors de l'activation des DDI peut dĂ©sormais ĂȘtre activĂ©e/dĂ©sactivĂ©e

    • via une option de ligne de commande du noyau systemd.allow_userspace_verity=
    • et une variable d'environnement SYSTEMD_ALLOW_USERSPACE_VERITY=.
  • La gestion des quotas du systĂšme de fichiers ext4/xfs a Ă©tĂ© retravaillĂ©e,

    • de sorte que quotacheck et quotaon soient dĂ©sormais invoquĂ©s en tant que services basĂ©s sur un modĂšle par systĂšme de fichiers
    • (par opposition Ă  des singletons uniques Ă  l'Ă©chelle du systĂšme), de style similaire Ă  la logique fsck, growfs, pcrfs.
    • Cela signifie que les systĂšmes de fichiers avec quota activĂ© peuvent dĂ©sormais ĂȘtre raisonnablement activĂ©s au moment de l'exĂ©cution du systĂšme, et pas seulement au dĂ©marrage.
  • systemd-analyze dot affichera dĂ©sormais Ă©galement les dĂ©pendances BindsTo=.

  • systemd-debug-generator a acquis la possibilitĂ© d'ajouter des unitĂ©s arbitraires en fonction de leur transmission via les informations d'identification du systĂšme.

  • Une nouvelle option de ligne de commande du noyau systemd.default_debug_tty= peut ĂȘtre utilisĂ©e pour spĂ©cifier le TTY pour le shell de dĂ©bogage, indĂ©pendamment de son activation ou de sa dĂ©sactivation.

  • portablectl a obtenu un nouveau commutateur --clean qui efface les donnĂ©es d'un service portable (cache, logs, state, runtime, fdstore) lors de son dĂ©tachement.

Documentations

Contributeurs

Contributions from: A S Alam, AKHIL KUMAR,
Abraham Samuel Adekunle, Adrian Vovk, Adrian Wannenmacher,
Alan Liang, Alberto Planas, Alexander Zavyalov, Anders Jonsson,
Andika Triwidada, Andres Beltran, Andrew Sayers,
Antonio Alvarez Feijoo, Arthur Zamarin, Artur Pak, AtariDreams,
Benjamin Franzke, Bernhard M. Wiedemann, Black-Hole1, Bryan Jacobs,
Burak Gerz, Carlos Garnacho, Chandra Pratap, Chris Simons,
Christian Wesselhoeft, Clayton Craft, Colin Geniet, Colin Walters,
Costa Tsaousis, Cristian RodrĂ­guez, Daan De Meyer,
Damien Challet, Dan Streetman, David Tardon, David Venhoek,
Diego Viola, Dionna Amalie Glaze, Dmitry Konishchev,
Edson Juliano Drosdeck, Eisuke Kawashima, Eli Schwartz,
Emanuele Giuseppe Esposito, Eric Daigle, Evgeny Vereshchagin,
Felix Riemann, Fernando Fernandez Mancera, Florian Schmaus,
Franck Bui, Frantisek Sumsal, Friedrich Altheide,
GabrĂ­el ArthĂșr PĂ©tursson, GaĂ«l Donval, Georges Basile Stavracas Neto,
Gerd Hoffmann, GNOME Foundation, Guido Leenders,
Guilhem Lettron, Göran Uddeborg, Hans de Goede, Harald Brinkmann,
Heinrich Schuchardt, Henry Li, Holger Assmann, Ivan Kruglov,
Ivan Shapovalov, Jakub Sitnicki, James Muir, Jan Engelhardt,
Jan Macku, Jeff King, JmbFountain, Joakim NohlgÄrd,
Jonathan Conder, Julius Alexandre, Jörg Behrmann, Keian, Kirk,
Kristian Klausen, Krzesimir Nowak, Lars Ellenberg,
Lennart Poettering, Luca Boccassi, Ludwig Nussel, LukĂĄĆĄ NykrĂœn,
Luna Jernberg, Luxiter, Maanya Goenka, Mariano Giménez,
Markus Merklinger, Martin Ivicic, Martin Srebotnjak,
Martin Trigaux, Martin Wilck, Matt Layher, Matt Muggeridge,
Matteo Croce, Matthias Lisin, Max Gautier, Max Staudt, MaxHearnden,
Michael Biebl, Michal KoutnĂœ, Michal Sekletár, Mike Gilbert,
Mike Yuan, Mikko Ylinen, MkfsSion, MrSmör, Nandakumar Raghavan,
Nick Cao, Nick Rosbrook, Norbert Lange, Ole Peder BrandtzĂŠg,
Ondrej Kozina, Oğuz Ersen, Pablo MĂ©ndez HernĂĄndez,
Pierre GRASSER, Piotr Drąg, QuonXF, RafaĂ«l Kooi, Raito Bezarius,
Rasmus Villemoes, Reid Wahl, Renjaya Raga Zenta, Richard Maw,
Roland Hieber, Ronan Pigott, Rose, Ross Burton, Sam Leonard,
Samuel BF, Sarvajith Adyanthaya, Sergei Zhmylev, Sergey A, Shulhan,
SidhuRupinder, Simon Fowler, Sludge, Stuart Hayhurst, Susant Sahani,
Takashi Sakamoto, Temuri Doghonadze, Thilo Fromm, Thomas Blume,
TobiPeterG, Tobias Fleig, TomĂĄĆĄ Pecka, Topi Miettinen,
Tycho Andersen, Unique-Usman, Usman Akinyemi, Vasiliy Kovalev,
Vasiliy Stelmachenok, Vishal Chillara Srinivas, Vitaly Kuznetsov,
Vito Caputo, Vladimir Stoiakin, Werner Sembach, Will Springer,
Winterhuman, Xiaotian Wu, Yu Watanabe, Yuri Chornoivan,
Zbigniew Jędrzejewski-Szmek, Zmyeir, aslepykh, chenjiayi,
cpackham-atlnz, cunshunxia, djantti, hfavisado, hulkoba, ksaleem,
medusalix, mille-feuille, mkubiak, mooo, msizanoen, networkException,
nl6720, r-vdp, runiq, sam-leonard-ct, samuelvw01, sharad3001, sushmbha,
wangyuhang, zzywysm, Ä°. Ensar GĂŒlƟen, Ɓukasz Stelmach,
Ć těpĂĄn Němec, æˆ‘è¶…ćŽ‰ćźł, êč€ìžìˆ˜

— Edinburgh, 2024-06-11

Vous ĂȘtes invitĂ© Ă  tĂ©lĂ©charger l'archive tar ici si vous souhaitez le compiler vous-mĂȘme.

Commentaires : voir le flux Atom ouvrir dans le navigateur

L’écriture et l’image, des Ăąges farouches au texte Ă©lectronique

Dans cette nouvelle excursion du Transimpressux, nous voyagerons chez les Mayas de l’époque prĂ©-colombienne ainsi que dans la Rome antique. Nous ferons un rapide tour des monastĂšres mĂ©diĂ©vaux, nous irons rendre une courte visite Ă  Aloys Senefelder Ă  Munich. Nous en profiterons pour aller voir Isaac Newton, Tintin et AstĂ©rix et on terminera notre voyage Ă  Kreutzal, en Allemagne. On n’y parlera pas de Rahan, quoique. On aura compris qu’il sera question d’image, d’écriture et de texte.

Le bar du Transimpressux vous propose un vaste Ă©chantillon issu du pas si grand livre des recettes de LinuxFr.org. En espĂ©rant qu’à la lecture de cette dĂ©pĂȘche vous aurez fait un beau voyage.

Train jaune

Sommaire

Préambule

Au dĂ©part, j’avais prĂ©vu de parler aussi de formats, mais, Ă  l’arrivĂ©e, c’est dĂ©jĂ  bien long. La question des formats fera donc l’objet d’une autre dĂ©pĂȘche de la sĂ©rie.

J’utilise indiffĂ©remment les termes de fonte, police, police de caractĂšre ou typographie. Et, comme il sera question de pĂ©riodes trĂšs Ă©loignĂ©es dans le temps, celles antĂ©rieures Ă  notre Ăšre seront indiquĂ©es sous la forme AEC (avant l’ùre commune).

Quelques définitions avant de commencer

Il est possible que certaines notions ne vous soient pas claires, ces quelques dĂ©finitions vous seront peut-ĂȘtre utiles.

L’écriture et l’image, des concepts diffĂ©rents vraiment ?

L’écriture n’est pas de l’image, l’image n’est pas de l’écriture. Oui et non.

L’exemple des hiĂ©roglyphes mayas

Le systĂšme d’écriture maya n’est pas purement logographique. D’ailleurs est-ce qu’un systĂšme d’écriture uniquement logographique ou pictographique existe vraiment ? On a vu prĂ©cĂ©demment sur LinuxFr.org concernant les systĂšmes d'Ă©criture que les hiĂ©roglyphes Ă©gyptiens et les sinogrammes n’étaient pas composĂ©s que de pictogrammes, mais qu’ils allaient de pair avec d’autres signes, notamment phonographiques. Il en va de mĂȘme avec l’écriture maya qui

est un systĂšme graphique normalisĂ© qui, au moyen de quelques centaines de « signes-mots Â» (ou logogrammes) et environ 150 phonogrammes marquant des syllabes de type Consonne-Voyelle1.

L’écriture maya est apparue, Ă  notre connaissance vers 400 AEC et a Ă©tĂ© utilisĂ©e jusqu’au XVIIe siĂšcle oĂč l’envahisseur espagnol a tout fait pour l’éradiquer, y compris en brĂ»lant des codex. Entre les Espagnols et le climat chaud et humide de la sphĂšre d’influence maya, on ne connaĂźt plus que trois codex mayas prĂ©colombiens2 : le codex de Dresde, celui de Paris et celui de Madrid. Un quatriĂšme codex, le codex Grolier, conservĂ© Ă  Mexico est sujet Ă  controverses, sa datation et son authenticitĂ© ne sont pas certaines. Mais on retrouve aussi l’écriture maya sur des monuments et du mobilier. On trouve Ă©galement des graffitis, signe, sans doute, d’un certain niveau d’alphabĂ©tisation de la population maya. L’écriture maya devait transcrire plusieurs langues amĂ©rindiennes, lesquelles langues ont toujours des locuteurs.

codex de Paris
Deux pages du codex de Paris

Pour autant qu’on sache, pour les Mayas, leur Ă©criture tout au moins, l’image Ă©tait importante. Selon Jean-Michel Hoppan :

Cette Ă©criture est rigoureuse et, tout Ă  la fois, trĂšs souple. Elle n’est pas normalisĂ©e, au contraire de l’idĂ©e qu’on se fait habituellement d’une Ă©criture. Le scribe peut privilĂ©gier l’esthĂ©tisme au dĂ©triment de la comprĂ©hension immĂ©diate (en tout cas pour nous). C’est encore plus Ă©vident sur les cĂ©ramiques, oĂč le texte est parfois complĂštement inintelligible. Le glyphe est lĂ , toujours chargĂ© du pouvoir de l’écrit, mais le contenu de la parole n’est plus. Il devient image. Il y a une grande partie de la cĂ©ramique oĂč l’on voit de l’écriture, mais qui, de fait, est constituĂ©e de pseudoglyphes.3

Les hiĂ©roglyphes mayas n’ont pas de bloc Unicode, mĂȘme si les chiffres y figurent depuis la version 11.0 (juin 2018). Un billet du blog du consortium (en) du 23 janvier 2020 annonçait l’existence d’une subvention « pour restituer numĂ©riquement des Ă©critures historiques et modernes supplĂ©mentaires, y compris des hiĂ©roglyphes mayas. Â». L’idĂ©e Ă©tant aussi de faire progresser la recherche de la connaissance de l’écriture et de la culture maya sur les sites de la pĂ©riode 250 – 900, une Ă©tape importante pour dĂ©terminer les signes Ă  intĂ©grer Ă  Unicode, et d’aboutir Ă  la crĂ©ation de polices OpenType. La derniĂšre version de la norme Unicode, 15.1.0, date du 12 septembre 2023, un peu juste pour incorporer les hiĂ©roglyphes mayas quand on sait que la crĂ©ation d’une police peut prendre de quatorze Ă  seize mois.

Le contre exemple romain

L’alphabet latin puise ses origines dans l’alphabet Ă©trusque, qui, lui-mĂȘme, provient du systĂšme d’écriture grecque et c’est, bien entendu, celui que nous utilisons sur LinuxFr.org (le latin, pas le grec, suivez un peu). C’est celui de l’ASCII. Il figure dans l’Unicode, Ă©videmment, oĂč il dispose de plusieurs blocs. Le bloc latin de base contient en fait tous les caractĂšres et commandes de l’ASCII. Il n’a pas Ă©tĂ© modifiĂ© depuis la version 1.0.0 d’Unicode.

D’aprĂšs les Ă©crits qui nous sont arrivĂ©s, les Romains avaient une vision trĂšs « utilitariste Â» de l’écriture. Pour eux (les Ă©crits qui nous sont parvenus sur le sujet proviennent essentiellement d’hommes) :

l’écriture est essentiellement destinĂ©e Ă  (
) reprĂ©senter [le langage]. De plus, dans sa version alphabĂ©tique, qui est Ă  peu prĂšs la seule Ă  laquelle pensent les Latins, l’écriture est une notation des sons, les lettres renvoient Ă  des sons Ă©lĂ©mentaires et l’alphabet correspond terme Ă  terme (en principe) Ă  un inventaire fini de ces sons.4

Il s’agissait donc pour les anciens Romains non pas de

faire une science de la langue Ă  travers sa reprĂ©sentation graphique, mais bien une science de l’écrit en tant qu’il renvoie Ă  la langue. (Françoise Desbordes).

Un support du langage bien imparfait d’ailleurs puisqu’il ne rend pas les effets du discours oral. Et ce facteur explique aussi que la graphie ait mis du temps Ă  se normaliser. L’écrit Ă©tant l’image de l’oral : la langue pouvait ĂȘtre prononcĂ©e par des locuteurs avec des accents diffĂ©rents et s’écrire ainsi en fonction de la prononciation.

Les Ă©crits des Romains Ă©taient variĂ©s, indĂ©pendamment des discours, naturellement et sous diverses formes : monumentales, tablettes de cire, papyrus, mais aussi graffitis que l’on pouvait retrouver sur les murs des Ă©difices privĂ©s. Des graffitis qui Ă©taient destinĂ©s Ă  ĂȘtre lus et Ă©taient trĂšs liĂ©s Ă  l’oral :

les messages interpellant parfois nommĂ©ment, au vocatif, une personne – homme ou femme. Ainsi s’explique aussi l’abondance des exclamations (feliciter ! salutem !), des salutations (salve vale !) et des vƓux (votum aux Lares pour la salus du maĂźtre de maison). Leur caractĂšre performatif ne fait pas de doute.5

graffiti
Graffiti de Pompéi vantant les exploits sexuels du miles Floronius (CIL, IV, 8767). Wolff 2012, 19, fig. 7.

La sĂ©paration du texte et de l’image

Des compétences, des métiers et des techniques différentes.

Les manuscrits mĂ©diĂ©vaux, une sĂ©paration parfois extrĂȘme

Le travail de copie des monastĂšres mĂ©diĂ©vaux, notamment (la profession se sĂ©cularisera Ă  partir du XIIIe siĂšcle), diffĂ©rait en fonction des lieux et des Ă©poques. Au dĂ©but, le, ou les copistes, suivant en cela, semble-t-il, les traditions grecques et romaines, Ă©taient Ă©galement chargĂ©s de l’ornementation. Les copistes, parce que la copie d’un manuscrit pouvait ĂȘtre distribuĂ©e en plusieurs cahiers Ă  diffĂ©rents copistes pour accĂ©lĂ©rer le travail de copie. La ponctuation, quant Ă  elle, Ă©tait gĂ©nĂ©ralement du ressort des correcteurs, quand il y en avait, pas des copistes.

Il arrivait aussi qu’il y ait un copiste pour le texte et un pour les enluminures, surtout pour les manuscrits les plus riches. Dans ce cas, le ou la copiste Ă©crivait la lettre Ă  enluminer et laissait la place nĂ©cessaire, Ă  charge pour l’enlumineur ou l’enlumineuse d’orner le parchemin. Les copies n’étant pas du ressort unique des monastĂšres, les enlumineurs et les enlumineuses Ă©taient souvent des peintres.

Et parce que le travail Ă©tait ainsi le fait de corps de mĂ©tier diffĂ©rents, il subsiste des manuscrits mĂ©diĂ©vaux pas finis, avec des « blancs Â» pour des enluminures qui ne verront jamais le jour.

L’imprimerie : des typographies ornementales

Jusqu’à la fin du XVIIIe siĂšcle, les techniques d’impression ont assez peu Ă©voluĂ©. Il y avait des perfectionnements et des amĂ©liorations, certes, mais, les techniques restaient grosso modo celles de Gutenberg. Les illustrations Ă©taient gravĂ©es Ă  part, puis, aprĂšs la dĂ©couverte fortuite de la lithographie par Aloys Senefelder en 1796 dessinĂ©es sur la pierre, ce qui permettait aux artistes de travailler directement sur la pierre sans avoir Ă  passer par l’intermĂ©diaire d’un graveur. La lithographie permet en effet de dessiner le motif sur la pierre, Ă  l’origine. Senefelder travaillera aussi sur plaque de zinc. La lithographie repose sur le principe de l’antagonisme de l’eau et de la graisse : les zones Ă  imprimer sont traitĂ©s Ă  la graisse, les autres sont mouillĂ©es. L’encre grasse se dĂ©pose ainsi seulement sur les zones grasses.

Si l’impression en noir et blanc pouvait se faire d’une traite, celle en couleurs, selon les exigences et les techniques utilisĂ©es, pouvait requĂ©rir jusqu’à quatorze opĂ©rations diffĂ©rentes, et presque autant de passages couleurs. L’offset actuel, un procĂ©dĂ© qui dĂ©rive de la lithographie, fonctionne en quadrichromie : cyan, magenta, jaune et noir (CMJN) et autant de passages couleur.

Les ornements plus susceptibles d’ĂȘtre rĂ©utilisĂ©s : lettrines, culs-de-lampe et autres fleurons, lignes et arabesques faisaient l’objet, quant Ă  eux, de fontes ornementales spĂ©cifiques. Il y avait mĂȘme des graveurs typographes spĂ©cialistes de typographie ornementale comme Joseph-Gaspard GillĂ© (pdf) (1766-1826). Aujourd’hui, ce genre de fonte peut se trouver, dans les blocs Unicode de systĂšmes d’écriture, notamment, latin. On y retrouve d’ailleurs bon nombre de ces polices ornementales purement figuratives mĂȘme si leur dessin ne correspond pas Ă  une lettre. Mais elles pourraient aussi bien figurer dans les flĂšches, les filets, les pavĂ©s, le bloc casseau ou encore les deux zones supplĂ©mentaires.

Les symboles du zodiaque
Les symboles du zodiaque de la collection de fontes de Gillé. Les symboles du zodiaque figurent dans les points de code Unicode U+2648 à 2653 (avec des dessins moins figuratifs).

Toutes les techniques d’imprimerie continuent Ă  exister, de façon plus ou moins anedoctique. Les deux plus rĂ©pandues Ă©tant l’offset, pour les gros volumes, et l’impression numĂ©rique (laser ou jet d’encre). Cette derniĂšre Ă©tant la seule Ă  imprimer les couleurs d’une seule traite.

La bande dessinĂ©e : des mĂ©tiers diffĂ©rents

La bande dessinĂ©e ce n’est pas un mĂ©tier mais quatre mĂ©tiers diffĂ©rents qui peuvent ou non, ĂȘtre assurĂ©s par la mĂȘme personne :

  • le scĂ©nario,
  • le dessin,
  • la couleur,
  • et le lettrage qui nous intĂ©resse ici.

Le lettrage, dans la bande dessinĂ©e ce sont en fait plusieurs types d’écriture :

le paratexte (titres, signatures, numĂ©rotation), les interventions du narrateur (rĂ©citatifs, didascalies, commentaires), toute la notation des sons (dialogues, onomatopĂ©es, bruits) – le lettrage assume ainsi une part trĂšs importante du « rĂ©gime sonore Â» de la bande dessinĂ©e, au point que l’on appelle « muettes Â» les bandes dessinĂ©es qui n’en comportent pas du tout (puisque le lettrage n’est pas indispensable Ă  la rĂ©alisation d’une bande dessinĂ©e).6

Gotlib (les Dingodossiers, la Rubrique à brac, Super Dupont, Gai-Luron) est entré en bande dessinée par la voie du lettrage.

L’élĂšve Chaprot roi
Un extrait des Dingodossiers de Gotlib, scĂ©nario de Goscinny. L’image comporte des didascalies Ă  gauche et en haut Ă  droite, une bulle de texte, en-dessous, du texte « sonore. Â»

D’autres auront leur lettreur attitrĂ©, comme HergĂ©. ArsĂšne Lemey a assurĂ© le lettrage de ses Tintin Ă  partir de la version allemande du Secret de la licorne, le onziĂšme album de la sĂ©rie. La police de caractĂšre crĂ©Ă©e par ArsĂšne Lemey pour Tintin est l’Arleson, elle sera intĂ©grĂ©e Ă  la photocomposeuse de Casterman dans les annĂ©es 1970. Pour la sĂ©rie AstĂ©rix ce sont les lettrages de Michel Janvier, en charge de cette tĂąche pour un certain nombre d’album depuis 1989, qui ont Ă©tĂ© numĂ©risĂ©s. Trois famille principale de typographies ont ainsi Ă©tĂ© crĂ©Ă©es par Le Typophage : Regularus pour les bulles, Boldus pour l’écriture trĂšs grasse et Graphix pour les onomatopĂ©es et les symboles graphiques.

Avoir sa propre police est actuellement assez facile en passant par des sites comme le Calligraphe qui permettent de gĂ©nĂ©rer une typographie Ă  partir de son Ă©criture manuscrite. C’est ce qu’a fait notamment heyheymomo (en) qui offre sa police en tĂ©lĂ©chargement (en).

Qu’est-ce que le texte ?

Au dĂ©but de l’informatique, chez IBM l’unitĂ© de mesure Ă©tait le mot (word). La capacitĂ© d’une machine s’évaluait donc en nombre de mots. Un mot Ă©tant, selon le manuel de l’IBM 605 constituĂ© de « dix chiffres et d’un signe algĂ©brique Â». Ainsi l’IBM 605 avait une capacitĂ© de 1 000 Ă  2 000 mots. Le texte n’était pas bien loin.

Mais, qu’est-ce que le texte ? Selon les points de vue, la notion de texte peut ĂȘtre trĂšs vaste. En musique par exemple, il est question de sous-texte et ça n’a rien Ă  voir avec les paroles de chanson ou de mĂ©lodies ou le livret des opĂ©ras. Dans le cadre de cette sĂ©rie qui, globalement, traite de l’informatique dans le contexte historique de l’écriture, j’opte pour une dĂ©finition restrictive et axĂ©e sur l’écriture et la lecture.

Le texte est ainsi de l’écriture qui peut se lire avec les yeux, les oreilles ou les doigts et qui peut aussi ĂȘtre lue par des robots. C’est du texte fait pour ĂȘtre lu pas pour ĂȘtre exĂ©cutĂ© dans le cadre d’un logiciel par exemple. Ce qui exclut le code informatique de la dĂ©finition, mĂȘme si c’est Ă©crit avec des Ă©diteurs de texte7. On doit pouvoir faire des recherches dans le texte, naviguer dedans, en extraire une partie pour la rĂ©utiliser ailleurs, etc.

Il s’ensuit qu’une image avec de l’écriture dessus, ce n’est pas du texte. Un fichier PDF, fac-similĂ© d’un livre imprimĂ© n’est pas du texte. Et les versions PDF des livres numĂ©risĂ©s que propose la BnF Gallica par exemple ne sont pas du texte. Un formulaire en PDF qui est en fait une image que l’on aura modifiĂ©e avec un outil de dessin (ou imprimĂ© et modifiĂ© Ă  la main puis numĂ©risĂ©) n’est pas du texte.

En revanche, si, de mon point de vue, la structure d’une base de donnĂ©es n’est pas du texte, son contenu par contre, oui. Ainsi, au hasard, celle de LinuxFr.org, est du texte, la partie publique tout au moins. Et ce n’est pas Claude qui me contredira.

Manchot Ă  tables
Un genre d’allĂ©gorie des tables de la base de donnĂ©es de LinuxFr.org.

Il est d’autant plus important d’insister lĂ -dessus qu’il se trouve encore des personnes qui ne font pas la diffĂ©rence entre les deux. Et ce, tout simplement parce que c’est Ă©crit et qu’elles, elles, peuvent lire ce qui est Ă©crit.

Nouveau Drop Caps : une police de lettrines

Puisque qu’il a Ă©tĂ© question plus haut de typographies purement dĂ©coratives, c’est l’occasion de vous prĂ©senter une police qui ne peut servir qu’à des lettrines ou des titres.

La police Nouveau Drops Caps

Nouveau Drop Caps est une fonte gĂ©nĂ©rĂ©e par Dieter Steffmann (en) un typographe de formation qui a crĂ©Ă© plus de trois-cent-cinquante polices. La plupart sont plutĂŽt plus Ă  des fins dĂ©coratives que des polices de texte. Dans l’ensemble, ses polices peuvent ĂȘtre utilisĂ©es pour la langue française, elles ont les caractĂšres qu’il faut. La position de Dieter Steffmann sur son travail est la suivante :

je considĂšre les polices de caractĂšres comme un patrimoine culturel, je ne suis pas d’accord avec leur commercialisation. Les polices autrefois fabriquĂ©es Ă  partir de caractĂšres mĂ©talliques avaient Ă©videmment un prix en fonction de la valeur du mĂ©tal, et le coĂ»t de conception, de dĂ©coupe et de moulage est convaincant, d’autant plus que l’acheteur devenait Ă©galement propriĂ©taire des polices achetĂ©es !

Le site sur lesquelles il les dĂ©pose, 1001 fonts a, d’ailleurs, une licence (en), avec une disposition assez originale. La police

peut ĂȘtre tĂ©lĂ©chargĂ©e et utilisĂ©e gratuitement pour un usage personnel et commercial, Ă  condition que son utilisation ne soit pas raciste ou illĂ©gale. (
)

Les fontes peuvent ĂȘtre librement copiĂ©es et transmises Ă  d'autres personnes pour un usage privĂ© mais pas ĂȘtre vendues ou publiĂ©es sans l’autorisation Ă©crite des auteurs et autrices.

Les textes et documents qui ont servi Ă  alimenter cette dĂ©pĂȘche

Les rĂ©fĂ©rences sont donnĂ©es Ă  peu prĂšs dans leur ordre d’apparition dans le texte. La plupart sont accessibles en ligne, et, volontairement, il y a un minimum de rĂ©fĂ©rences Ă  WikipĂ©dia. Il y a, Ă©galement, le minimum possible de sources en anglais.

L’écriture maya

Jean-Michel Hoppan est l’un des seuls (le seul ?) spĂ©cialiste français d’un domaine de recherche (l’écriture maya) qui ne compte qu’une centaine de personnes dans le monde.

La vision romaine de l’écriture

  • IdĂ©es romaines sur l’écriture, Françoise Desbordes, 1990, EPUB : ISBN 9782402324168, PDF : ISBN 9782402657495, marquage filigrane. La maison d’édition FeniXX qui Ă©dite ce livre est spĂ©cialisĂ©e dans la rĂ©Ă©dition des livres indisponibles du XXe siĂšcle.
  • L’écriture en libertĂ© : les graffitis dans la culture romaine, Michelle Corbier, extrait de Langages et communication : Ă©crits, images, sons, Corbier Mireille et Sauron Gilles (dir.), Ă©d. Ă©lectronique, Paris, Éd. du ComitĂ© des travaux historiques et scientifiques (Actes des congrĂšs nationaux des sociĂ©tĂ©s historiques et scientifiques), 2017.

Les manuscrits médiévaux

On peut se procurer ces livres au format PDF (fac-similĂ©), en texte brut (je travaille sur une version que je compte mettre en ligne pour chacun de ces livres), les emprunter en version EPUB Ă  la BnF si l'on a un compte, ou acheter l’EPUB. À noter que, selon les librairies, le fichier EPUB a ou non une protection numĂ©rique : ainsi, Le Furet du Nord indique qu’ils n’en ont pas, Cultura annonce une DRM LCP, et la FNAC une DRM Adobe.

Bonus ! Si vous voulez vous rincer l’Ɠil, l’IRTH (Institut de recherche et d’histoire des textes) a dressĂ© une liste de sites pour accĂ©der au manuscrit mĂ©diĂ©val numĂ©risĂ©.

L’imprimerie

La bande dessinée

  • Lettrage, Laurent Gerbier, CitĂ© internationale de la bande dessinĂ©e et de l’image, septembre 2017.

Postambule

La question des formats sera abordĂ©e dans le prochain chapitre qui est dĂ©jĂ  bien avancĂ©. Et ce n’est pas plus mal, finalement.

Dans le cadre de cette sĂ©rie, il va me falloir traiter aussi de la question des codes (sur laquelle j’ai quelques lacunes, vos suggestions sont bienvenues). Unicode, bien que dĂ©jĂ  pas mal abordĂ©, mĂ©rite un chapitre Ă  lui tout seul : histoire, composition du consortium, comment on ajoute un systĂšme d’écriture Ă  Unicode, et quelques paragraphes sur le code lui-mĂȘme (et là
). Je pense que je pourrais peut-ĂȘtre caser la norme ISO des Ă©critures dans ce chapitre. Si j’ai parlĂ© de conservation, il va falloir parler de l’archivage : protocoles, accĂšs, ce qui me permettra d’évoquer aussi de la science ouverte, je pense.


  1. L’écriture maya](https://www.inalco.fr/lecriture-maya), Jean-Michel Hoppan, INALCO. â†©

  2. Les codex Ă©taient Ă©crits sur un papier, l’amate, fait Ă  partir de l’écorce d’un figuier local. â†©

  3. Les glyphes mayas et leur dĂ©chiffrement, Jean-Michel Hoppan, 2009. â†©

  4. IdĂ©es romaines sur l’écriture, Françoise Desbordes & Centre national de la recherche scientifique & Anne Nicolas, 1990. â†©

  5. L’écriture en libertĂ© : les graffitis dans la culture romaine, Mireille Corbier, 2014. â†©

  6. Lettrage, Laurent Gerbier, septembre 2017. â†©

  7. Je reconnais qu’il peut y avoir matiĂšre Ă  pinaillage sur ce sujet. â†©

Commentaires : voir le flux Atom ouvrir dans le navigateur

GIMP 2.10.38 est sorti

Note : cette dĂ©pĂȘche est une traduction de l'annonce officielle de la sortie de GIMP 2.10.38 du 3 mai 2024 (en anglais).

Cette (peut-ĂȘtre derniĂšre) version stable de GIMP 2 apporte des rĂ©troportages trĂšs demandĂ©s de GTK3, y compris une prise en charge amĂ©liorĂ©e des tablettes sous Windows. Un certain nombre de corrections de bugs et d’amĂ©liorations mineures sont Ă©galement incluses dans cette version.

Sommaire

Cette actualité répertorie les changements les plus notables et visibles. En particulier, nous ne répertorions pas toutes les corrections de bogues ou améliorations mineures. Pour obtenir une liste plus complÚte des modifications, vous devez vous référer au fichier NEWS ou consulter l'historique des commits.

Nouvelles fonctionnalités et améliorations

Prise en charge améliorée des tablettes sous Windows

Avant cette version, GIMP prenait uniquement en charge la connexion de tablettes sous Windows via les pilotes WinTab plutÎt que les nouveaux pilotes Windows Ink. Pour cette raison, nous avons reçu un certain nombre de rapports concernant des tablettes présentant des problÚmes avec des boutons qui ne répondent pas, une sensibilité à la pression incorrecte, un mouvement de brosse retardé et des changements de position à mi-course.

Ces problĂšmes Ă©taient dus Ă  une limitation de GTK2, car la prise en charge de Windows Ink a Ă©tĂ© implĂ©mentĂ©e dans GTK3 par Luca Bacci, contributeur de longue date. Pour cette version, Luca a eu la gentillesse de rĂ©troporter ce support vers GTK2. Vous pouvez dĂ©sormais basculer entre les pilotes WinTab et Windows Ink (s’ils sont pris en charge par votre ordinateur) dans la boĂźte de dialogue PrĂ©fĂ©rences sous les paramĂštres du pĂ©riphĂ©rique d’entrĂ©e.

Windows Pointer Input API option in GIMP 2.10.38
Windows Pointer Input API peut ĂȘtre changĂ© maintenant - GIMP 2.10.38

RĂ©troportages d’autres fonctionnalitĂ©s de GTK3

Luca a Ă©galement contribuĂ© Ă  plusieurs autres fonctionnalitĂ©s portĂ©es de GTK3 Ă  GTK2. Certaines des amĂ©liorations rĂ©troportĂ©es incluent la mise Ă  jour de la taille de la boĂźte de dialogue d’impression afin que les boutons ne soient pas coupĂ©s, la rĂ©solution de problĂšmes avec les boĂźtes de dialogue contextuelles apparaissant derriĂšre les prĂ©cĂ©dentes et plusieurs correctifs concernant la saisie au clavier.

Ces amĂ©liorations concernent principalement Windows et sont dĂ©jĂ  incluses dans la version de dĂ©veloppement 2.99. Cependant, nous sommes trĂšs heureux que ces amĂ©liorations de la qualitĂ© de vie soient dĂ©sormais disponibles dans cette version stable de GIMP 2.10 !

Corrections de bogues

Crashs récents

Deux crashs fréquemment signalés ont été corrigés. Un changement dans GLib 2.80 a exposé un bogue dans notre processus de fermeture et provoqué un crash à la sortie. Luca Bacci a une fois de plus conçu un correctif pour la version 2.10.38 et la prochaine version candidate 3.0. Un autre crash que certains utilisateurs rencontraient lors de trÚs petites sélections a également été corrigé.

Autres correctifs

Un certain nombre d’autres petits bugs ont Ă©tĂ© corrigĂ©s dans cette version. Parmi eux :

  • Les PNG indexĂ©s avec transparence sont dĂ©sormais exportĂ©s avec les bonnes couleurs
  • Anders Jonsson a corrigĂ© les plages d’entrĂ©e de plusieurs filtres tels que Waves et Distort
  • Le champ de personnalisation de la barre de titre prend dĂ©sormais en charge les caractĂšres UTF-8
  • Les commentaires d’images existants ne « fuient Â» plus dans les images nouvellement crĂ©Ă©es

Statistiques de sortie

Depuis GIMP 2.10.36 :

  • 16 rapports ont Ă©tĂ© clos comme CORRIGÉS dans la version 2.10.38
  • 9 demandes de fusion ont Ă©tĂ© exĂ©cutĂ©es
  • 81 commits ont Ă©tĂ© poussĂ©s
  • 1 nouvelle traduction a Ă©tĂ© ajoutĂ©e : kabyle
  • 16 traductions ont Ă©tĂ© mises Ă  jour : biĂ©lorusse, portugais brĂ©silien, anglais britannique, danois, gĂ©orgien, allemand, grec, hongrois, islandais, italien, norvĂ©gien nynorsk, slovĂšne, espagnol, suĂ©dois, turc, espagnol

25 personnes ont apportĂ© des modifications ou des correctifs Ă  la base de code de GIMP 2.10.36 (l’ordre est dĂ©terminĂ© par le nombre de commits) :

  • 7 dĂ©veloppeurs : Alx Sa, Jehan, Luca Bacci, Jacob Boerema, Lukas Oberhuber, lillolollo, Øyvind KolĂ„s
  • 19 traducteurs : KolbjĂžrn StuestĂžl, Sabri Ünal, Bruce Cowan, Yuri Chornoivan, Vasil Pupkin, Anders Jonsson, Rodrigo LledĂł, JĂŒrgen Benvenuti, Sveinn Ă­ Felli, Andi Chandler, Juliano de Souza Camargo, Ekaterine Papava, BalĂĄzs Úr, Martin, Philipp Kiemle, Alan Mortensen, Dimitris Spingos, Marco Ciampa, Yacine Bouklif

Contributions sur d’autres dĂ©pĂŽts du GIMPverse (l’ordre est dĂ©terminĂ© par le nombre de commits) :

  • La branche gimp-2-10 de gimp-macos-build (scripts de build macOS) a eu 30 commits depuis la version 2.10.36 par 2 contributeurs : Lukas Oberhuber, Bruno Lopes.
  • La version flatpak est composĂ©e de 11 commits par 3 contributeurs : Jehan, Hubert FiguiĂšre et Bruno Lopes.
  • Notre site Web principal a eu 42 commits depuis la sortie du 2.99.18 par 4 contributeurs : Jehan, Alx Sa, Andre Klapper et Lukas Oberhuber.
  • Notre site Web du dĂ©veloppeur a enregistrĂ© 34 commits depuis la version 2.99.18 par 6 contributeurs : Bruno Lopes, Jehan, Alx Sa, bootchk, Alpesh Jamgade et Robin Swift.
  • Notre documentation 2.10 a eu 35 commits depuis la version 2.10.36 par 8 contributeurs : Alan Mortensen, Anders Jonsson, Rodrigo LledĂł, Jacob Boerema, KolbjĂžrn StuestĂžl, Marco Ciampa, Andi Chandler et Vittor Paulo Vieira da Costa.

N’oublions pas de remercier toutes les personnes qui nous aident Ă  trier dans Gitlab, rapportent des bugs et discutent avec nous d’éventuelles amĂ©liorations. Notre communautĂ© est Ă©galement profondĂ©ment reconnaissante envers les guerriers d’Internet qui gĂšrent nos diffĂ©rents canaux de discussion ou comptes de rĂ©seaux sociaux tels que Ville PĂ€tsi, Liam Quin, Michael Schumacher et Sevenix !

Remarque : compte tenu du nombre de composants dans GIMP et son univers, et de la maniĂšre dont nous obtenons des statistiques via les scripts git, des erreurs peuvent se glisser dans ces statistiques. N’hĂ©sitez pas Ă  nous dire si nous avons manquĂ© ou mal catĂ©gorisĂ© certains contributeurs ou contributions.

Nouvelles de l’équipe et processus de publication

Idriss, contributeur du GSoC 2023, a rĂ©cemment obtenu un accĂšs « dĂ©veloppeur Â» sur le rĂ©fĂ©rentiel source principal, pour le travail formidable qu’il a continuĂ© depuis lors.

Ville PĂ€tsi, contributeur de trĂšs longue date (plus de 20 ans !), sur divers sujets (design, thĂ©matisation et plus) a obtenu l’accĂšs « reporter » Ă  Gitlab pour aider au tri et Ă  l’organisation directement dans le tracker.

Autour de GIMP

Des nouvelles des miroirs

Depuis nos derniĂšres nouvelles, 3 nouveaux miroirs accueillent GIMP :

  • Clarkson Open Source Institute, États-Unis
  • FCIX, Suisse
  • TomĂĄs Leite de Castro, Portugal

Cela nous amÚne à un total de 49 miroirs répartis dans le monde.

Les miroirs sont importants, car ils aident le projet en partageant la charge de dizaines de milliers de téléchargements quotidiens. De plus, en disposant de miroirs répartis à travers le monde, nous garantissons que tous aient un accÚs rapide au téléchargement de GIMP.

Sponsors d’infrastructure et de matĂ©riel

Nous avons amĂ©liorĂ© la page sponsor avec 2 sections :

  • "Infrastructure Sponsors" rĂ©pertorie les sponsors qui aident GIMP au niveau de l’infrastructure :

    • CircleCI et MacStadium rendent possible notre plateforme d’intĂ©gration continue macOS.
    • Arm Ltd. sponsorise et administre plusieurs exĂ©cuteurs « Aarch64 Â» sur Windows pour notre version ARM 64 bits pour Windows ; et Microsoft avait offert des frais uniques pour leur Microsoft Store.
  • "Hardware Sponsors" rĂ©pertorie les sponsors qui ont fait don de matĂ©riel aux contributeurs pour les aider dans leur travail de dĂ©veloppement :

    • Arm Ltd. a rĂ©cemment fait don d’un kit de dĂ©veloppement Windows 2023 pour prendre en charge notre rĂ©cent support Aarch64/Windows.
    • Purism a fait don d’un Librem Mini en 2021.

Télécharger GIMP 2.10.38

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

  • Flatpaks Linux pour x86 et ARM (64 bits)
  • Installateur Windows universel pour x86 (32 et 64 bits) et pour ARM (64 bits)
  • Paquets macOS DMG pour le matĂ©riel Intel
  • Paquets macOS DMG pour le matĂ©riel Apple Silicon

D’autres paquets rĂ©alisĂ©s par des tiers devraient Ă©videmment suivre (paquets des distributions Linux ou *BSD, etc.).

Et ensuite ?

C’est clairement l’une des plus petites versions de la sĂ©rie 2.10, et elle pourrait ĂȘtre notre derniĂšre. Nous verrons, mĂȘme si nous savons aussi que certaines personnes restent bloquĂ©es plus longtemps que d’autres sur des sĂ©ries plus anciennes (en particulier lors de l’utilisation des distributions Long Term Support (LTS) de systĂšmes d’exploitation de logiciels libres), si nous pourrions donc faire (si nous pensons que c’est nĂ©cessaire), une version 2.10.40 avec des corrections de bogues juste avant ou juste aprĂšs la sortie de GIMP 3.0.0, en guise de conclusion.

Dans tous les cas, nous arrĂȘtons dĂ©sormais le rĂ©troportage des fonctionnalitĂ©s de la sĂ©rie 2.10. Ces amĂ©liorations de la prise en charge des tablettes graphiques pour Windows sont suffisamment importantes pour qu’elles aient dĂ» ĂȘtre intĂ©grĂ©es ; mais Ă  partir de maintenant, nous voulons nous concentrer uniquement sur la sortie de GIMP 3.0.0.

Maintenant, vous vous demandez peut-ĂȘtre quand cela se produira-t-il ? TrĂšs bientĂŽt ! Nous sommes sur le dernier sprint vers la release candidate. Cela inclut de nombreuses corrections de bugs, mais Ă©galement des modifications de l’API en cours. Nous vous tiendrons au courant !

N’oubliez pas que vous pouvez faire un don et financer personnellement les dĂ©veloppeurs de GIMP, comme moyen de redonner et accĂ©lĂ©rer le dĂ©veloppement de GIMP. L’engagement communautaire permet au projet de se renforcer ! đŸ’ȘđŸ„ł

Commentaires : voir le flux Atom ouvrir dans le navigateur

Les langues peu documentées et le libre : quelques enjeux scientifiques

Comme beaucoup de domaines scientifiques, la documentation de la diversitĂ© linguistique entretient une relation forte avec les mondes du Libre. Dans cette dĂ©pĂȘche, je vous propose de dĂ©couvrir ce domaine Ă  travers la prĂ©sentation de plusieurs logiciels et ressources libres ou en accĂšs ouvert. La documentation des langues Ă©tant un thĂšme peu courant sur LinuxFr.org, on commencera par une prĂ©sentation de cette problĂ©matique. Nous continuerons par une description des deux ressources principales existantes pour cataloguer et se repĂ©rer au sein de cette diversitĂ© linguistique. Je parlerai ensuite d’ELAN et de FLEX, deux logiciels utilisĂ©s pour annoter des enregistrements audio-visuels, une Ă©tape clef dans l’analyse linguistique, et qui permet le partage et la rĂ©utilisation de ces enregistrements. Enfin, aprĂšs un court passage sur la question de l’archivage, je prĂ©senterai deux compilations de corpus de documentation en accĂšs libre, une pratique rĂ©cente qui permet de nouveaux questionnements quantitatifs sur les langues orales peu documentĂ©es, et qui contribue Ă©galement Ă  la transparence et la traçabilitĂ© des analyses linguistiques.

    Sommaire

    L’étude des langues Ă  travers le monde

    Actuellement, environ 7000 langues ont Ă©tĂ© recensĂ©es Ă  travers le monde. Ce chiffre ne peut ĂȘtre qu’une approximation car, il n’y a pas de consensus sur la dĂ©finition de ce qu’est une langue. Une difficultĂ© par exemple est de dĂ©finir Ă  quel moment une langue est distincte d’une autre. Lorsqu’il y a variation, mais intercomprĂ©hension, de nombreux linguistes s’accordent Ă  dire qu’il s’agit alors de dialectes d’une mĂȘme langue, et donc, lorsqu’il n’y a pas intercomprĂ©hension, alors il s’agit diffĂ©rentes langues. Cette perspective considĂšre que tout le monde parle un dialecte (que ce soit celui de rĂ©fĂ©rence, ou un plus rĂ©gional comme celui de Paris, de Marseille, du QuĂ©bec), la langue n’étant qu’une abstraction permettant de regrouper les diverses pratiques langagiĂšres. En ce qui concerne l’intercomprĂ©hension, ce critĂšre n’est malheureusement pas absolu car elle peut varier selon les personnes et leur parcours personnel. Et lorsqu’on considĂšre l’évolution d’une langue Ă  travers le temps, sa diachronie, dĂ©finir ce qu’est une mĂȘme langue Ă  travers ses Ă©volutions temporelles se complexifie d’autant plus.

    Si certaines langues ont Ă©mergĂ© rĂ©cemment, on pense assez souvent aux langues dites crĂ©oles (le Bichelamar, les crĂ©oles malais, Ă  Madagascar ou au Cap Vert), ou Ă©galement lorsque certains dialectes se distinguent suffisamment pour ne plus ĂȘtre intercomprĂ©hensibles, la tendance actuelle est surtout Ă  la disparition massive des langues. Cette disparition est souvent rapportĂ©e Ă  travers la mort des derniers locuteurs et locutrices, on peut aussi considĂ©rer qu’une langue meurt lorsqu’elle n’est plus parlĂ©e d’une part, et qu’elle disparait si elle n’est pas documentĂ©e. Si certains aujourd’hui se questionnent sur la corrĂ©lation entre la diversitĂ© culturelle et la diversitĂ© Ă©cologique, il est Ă©vident que la disparition des langues correspond Ă©galement Ă  des inĂ©galitĂ©s et des tensions socio-politiques.

    Bref, la documentation des langues, c’est un sujet actuel, et d’un point de vue scientifique, la perte de cette diversitĂ© aura de tristes consĂ©quences sur la connaissance des langues et de l’univers des possibles languagiers, encore souvent sous-estimĂ© :

    • l’article The myth of language universals : Language diversity and its importance for cognitive science d’Evans donne un bel aperçu du dĂ©bat qui existe entre les linguistes fonctionnalistes, notamment les approches gĂ©nĂ©rativistes telles que proposĂ©es par Noam Chomsky. Pourtant, rĂ©guliĂšrement Ă  travers la documentation des langues, des catĂ©gories cognitives jusque-lĂ  non-soupçonnĂ©s, voire rejetĂ©es car non-observĂ©es, sont identifiĂ©s. Nous nous sommes rendu compte rĂ©cemment qu’un quart des langues grammaticalisaient l’emploi d’évidentiels, ces morphĂšmes qui indiquent la source d’une information. Au niveau de l’odorat, des neurologistes pensaient que si nous n’avions pas de termes abstraits pour catĂ©goriser les odeurs, c’était liĂ© au fait que notre cerveau ne le permettait pas. La description des termes liĂ©s Ă  l’odorat en Jahai (par ici si vous souhaitez Ă©couter du Jahai), qui possĂšde donc des termes spĂ©cifiques pour catĂ©goriser les odeurs, a montrĂ© le contraire.
    • accĂ©der Ă  des facettes non-matĂ©rielles de la prĂ©histoire, non-accessibles Ă  travers l’archĂ©ologie. La documentation des langues nous permet d’accĂ©der, dans une certaine mesure, aux termes et aux concepts utilisĂ©s durant les diffĂ©rentes prĂ©histoires Ă  travers la comparaison des langues et de leurs structures. Les travaux sont nombreux et anciens en ce qui concerne les langues europĂ©ennes, mais les recherches en linguistique historique (ou comparĂ©e) portent Ă©galement sur toutes les langues connues Ă  travers le monde. Les chercheurs et chercheuses de ce domaine collaborent assez rĂ©guliĂšrement avec les archĂ©ologues pour retracer les mouvements de population.
    • mettre au point des systĂšmes d’écriture pour les langues orales, ou simplement des traitements de texte adaptĂ© aux Ă©critures existantes. Parfois, certaines personnes savent Ă©crire dans la ou les langues officielles du pays, mais ne connaissent pas d’écriture pour une de leurs langues rĂ©gionales. C’est ainsi souvent le cas pour les personnes au Vanuatu. Le pays reconnait mĂȘme le droit d’enseigner les langues locales Ă  l’école, mais il n’existe que trĂšs rarement des ressources (que ce soit les personnes ou les manuels) pour cela. Parfois, les gens ne connaissent tout simplement pas de systĂšme d’écriture.

    Quelques concepts et termes liés à la documentation des langues

    Comme tout domaine de recherche, la terminologie et les concepts linguistiques Ă©voluent au grĂ© des discussions et peut se distinguer de l’usage attendu des termes. Une Ă©tape importante dans la documentation d’une langue est la production d’une grammaire dĂ©crivant les structures linguistiques de cette langue. De nombreux linguistes estiment alors qu’on peut dire que cette langue est dĂ©crite. Il ne faut pas se tromper cependant, aucun linguiste ne considĂšre qu’une langue est alors complĂštement dĂ©crite. Une grammaire ne contient que quelques aspects estimĂ©s actuellement essentielles par les linguistes de terrain. Ces points sont, le plus souvent, une description du systĂšme phonologique d’une langue (c’est-Ă -dire comment les sons d’une langue sont organisĂ©s les uns vis-Ă -vis des autres), des morphĂšmes et des processus morphologiques associĂ©s (la conjugaison, l’expression de la possession, les dĂ©clinaisons, les genres, les classifications, etc.) d’une langue et souvent un dĂ©but de description des processus syntaxiques. Il existe de nombreuses approches pour dĂ©crire les faits linguistiques, et la description d’une langue se fait souvent en dialogue avec les pratiques et terminologies qui ont Ă©tĂ© employĂ©es dans l'aire linguistique concernĂ©e.

    Depuis l’article Documentary and descriptive linguistics de Nicholaus Himmelman, qui a promu la distinction entre la documentation linguistique et la description linguistique, on accorde beaucoup plus d’importance Ă  la production d’un corpus d’enregistrements annotĂ©s. On dit alors d’une langue qu’elle est documentĂ©e si des enregistrements annotĂ©s, de prĂ©fĂ©rences audio-visuels, de cette langue existe. Enfin, il existe la problĂ©matique de l’outillage d’une langue, c’est-Ă -dire si ses locuteurs et locutrices ont accĂšs ou non aux outils informatisĂ©s, du traitement texte aux dictionnaires informatisĂ©s en passant par la reconnaissance vocale, la transcription automatique, voire aujourd’hui aux modĂšles de langues et autres ressources nĂ©cessitant des corpus beaucoup plus grands.

    Les catalogues et base de donnĂ©es pour l’identification des langues

    Une problĂ©matique rĂ©currente dans le domaine des langues est de clairement identifier la langue sur laquelle on travaille. Cependant, identifier une langue, ce qui relĂšve ou non de cette langue, oĂč elle est parlĂ©e, est l’enjeu de nombreux dĂ©bats, souvent politique, et n’est pas une tĂąche simple. Quoi qu’il en soit, il existe des ressources, bases de donnĂ©es, qui proposent d’associer Ă  des noms de langues, endonymes ou exonymes, des codes pour rendre leur identification univoque.

    L’Ethnologue et l’ISO 639 : une norme gĂ©rĂ©e par le Summer Institute of Linguistics (SIL)

    Ethnologue, Languages of the World, ou plus simplement l’Ethnologue, est une base de donnĂ©es dĂ©veloppĂ©e et maintenu par l’organisme Ă©vangĂ©lique SIL, Summer Institute of Linguistic depuis 1951. Elle vise Ă  recenser toutes les langues du monde. L’ISO 639 est une norme issue de ce catalogue, Ă©galement maintenue par le SIL. Cet organisme est trĂšs actif au niveau de la documentation des langues et de la crĂ©ation d’écritures, car un de ses objectifs est de traduire la Bible dans toutes les langues du monde. Historiquement, l’Ethnologue est un des premiers catalogues dont l’objet a Ă©tĂ© de recenser les langues. Si cette norme semble le plus souvent suffisamment exhaustive pour les besoins liĂ©s Ă  l’informatique, aprĂšs tout, les internautes consultent Internet en trĂšs peu de langue, d’un point de vue linguistique, il possĂšde de nombreuses lacunes.

    La liste SIL des langues

    Un premier souci est la nĂ©cessitĂ© d’avoir une granularitĂ© plus importante que simplement la langue. Les linguistes travaillent sur des dialectes et des variĂ©tĂ©s, sur des familles de langues, et parfois ont travaillĂ© sur des distinctions qui n’ont parfois plus cours. Afin de pouvoir associer ces ressources Ă  des langues, ou des entitĂ©s linguistiques particuliĂšres, l’approche du SIL ne suffit pas.

    Enfin, la gestion du catalogue par un organisme religieux, donc avec parfois d’autres enjeux qu’uniquement scientifiques, le fait qu’il s’agisse d’une norme, donc la nĂ©cessitĂ© de collaborer avec l’ISO, et le fait que seule une partie du catalogue est accessible (il faut un abonnement pour accĂ©der Ă  la totalitĂ© de la ressource) rend la ressource moins pertinente pour de nombreux linguistes. Ces limites ont poussĂ© des linguistes Ă  proposer une ressource alternative.

    Glottocode : par le Max Planck Institute for Evolutionary Anthropology.

    Le projet Glottolog, initialement dĂ©veloppĂ© par Sebastian Nordhoff et Harald Hammarström, catalogue non seulement les langues du monde actuelles et passĂ©s, les familles de langues et leurs diffĂ©rentes branches, mais Ă©galement « les restes Â» des hypothĂšses de langues ou de regroupements historiques. Cette granularitĂ© permet de retrouver les documents associĂ©s Ă  chacun de ces objets. Si le catalogue est dĂ©diĂ© aux langues moins connues, les langues les plus centrales sont elles aussi rĂ©pertoriĂ©es. Il s’agit actuellement du catalogue mis en avant par les linguistes documentant les langues Ă  travers le monde. L’application Glottolog est disponible via la licence MIT.

    Aperçu du Glottolog à travers la liste des langues

    Si aux premiers abords, la liste des langues du Glottolog ne se distingue pas franchement de celle de l’ISO 639, c’est parce qu’il faut regarder plus en dĂ©tail pour comprendre les diffĂ©rences essentielles entre les deux ressources. Notons tout de mĂȘme la colonne « Child dialects » : « Dialectes enfants », et les champs vides au niveau des colonnes Top-level-family et pour la langue Abai Tubu-Abai Sembuak dans la colonne « ISO-639-3 Â». La colonne « Child dialects » reprĂ©sente une information qui n’est pas documentĂ© dans l’ISO 639, ce n’est pas son objet aprĂšs tout, mais qui est intĂ©ressant pour les linguistes travaillant sur cette langue, indiquant qu’un minimum de donnĂ©es sociolinguistiques sont disponibles. Les champs vides dans la colonne « Top-level family » sont dus au fait que ces langues sont des isolats, c’est-Ă -dire que la linguistique comparĂ©e ne trouve pas de correspondances significatives entre cette langue et d’autres langues qui permettraient de les regrouper en une famille. Enfin, le vide dans la colonne ISO-963-3 rĂ©vĂšle que la langue Abai Tubu-Abai Sembuak ne possĂšde pas d’entrĂ©e dĂ©diĂ©e dans la norme.

    Ainsi, lorsque l’on consulte une langue en particuliĂšre, ici le Nisvai, on voit apparaitre tous les embranchements existants associĂ©s Ă  cette langue :

    La langue Nisvai dans le Glottolog

    Cette vue de l’arborescence associĂ©e Ă  une langue particuliĂšre rĂ©vĂšle tous les embranchements auxquels peut⁻ĂȘtre associĂ©e une langue. Et Ă  chacun de ces embranchements, si des ressources linguistiques ont Ă©tĂ© identifiĂ©es par les mainteneurs du Glottolog, celles peuvent ĂȘtre proposĂ©es. Cette fonction permet aux linguistes de trouver des ressources sur les langues proches, non pas gĂ©ographiquement (mĂȘme si en pratique c’est le plus souvent le cas), mais d’un point de vue gĂ©nĂ©alogique.

    Les autres

    Il existe d’autres initiatives pour cataloguer les langues du monde, que ce soit la liste proposĂ©e par Wikipedia, la liste de la CIA ou encore The Linguasphere Register, mais ces initiatives ne sont pas aussi pertinentes du point de vue de la documentation des langues.

    Documenter les langues

    ELAN : des schĂ©mas d’annotation flexibles

    ELAN est un des logiciels libres (GPL3) les plus utilisĂ©s par les linguistes pour annoter des enregistrements audio et vidĂ©o. Il permet d’élaborer des structures d’annotation complexes permettant ainsi de rendre compte des analyses que les linguistes souhaitent associer Ă  un enregistrement. Ces couches d’annotation sont reliĂ©es les unes aux autres par des relations logiques, avec le plus souvent une couche de rĂ©fĂ©rence indexĂ©e temporellement Ă  l’enregistrement. Les annotations les plus courantes sont une transcription, une traduction et une annotation morphologique. Mais des nombreuses autres analyses peuvent ĂȘtre incluses, que ce soit les parties du discours, les rĂ©fĂ©rences et anaphores, l'animĂ©itĂ©, mais aussi les gestes, la structuration du discours, les signes pour les sourds et malentendants.

    Extrait d’une narration prĂ©sente dans DoReCo, et vue sur les diffĂ©rentes couches d’annotation pouvant ĂȘtre associĂ©s Ă  un enregistrement.

    Dans cette capture d’écran issu d’un texte de DoReCo retravaillĂ© par l’auteur, on aperçoit un extrait de quelques secondes d’une narration nisvaie. Il s’agit d’un des modes de visualisation des annotations proposĂ©es par ELAN pour reprĂ©senter les diffĂ©rentes couches d’annotation. Certaines de ces annotations ont Ă©tĂ© rĂ©alisĂ©es Ă  la main par l’auteur, d’autres ont Ă©tĂ© retravaillĂ©es par les algorithmes mis en place par DoReCo, puis manuellement corrigĂ©s. Enfin, il y a Ă©galement des couches d’annotation de la prosodie par le biais de SLAM+.

    FLEX : gĂ©rer un projet de documentation

    FLEX est un logiciel dĂ©veloppĂ© par le SIL et dont le code source est rĂ©gie par la licence LGPL 2.1. Il est conçu davantage pour coordonner l’ensemble d’une documentation linguistique, de la gestion des textes Ă  l’élaboration d’un dictionnaire, en passant par les analyses linguistiques. En revanche, il ne gĂšre pas rĂ©ellement l’annotation d’enregistrements. De nombreux linguistes l’utilisent en complĂ©ment d’ELAN.

    Si le logiciel est prometteur sur le papier, Ă  chaque fois que je l’ai essayĂ©, j’ai Ă©tĂ© rebutĂ© par son cĂŽtĂ© usine Ă  gaz, et surtout ses nombreux plantages notamment lorsqu’on essaie de gĂ©rer des fichiers multimĂ©dia avec. Et il en est de mĂȘme pour les autres logiciels dĂ©veloppĂ© par le SIL, tel que SayMore pour gĂ©rer les mĂ©tadonnĂ©es des enregistrements, WeSay pour faire des dictionnaires en collaboration avec les locuteurs et locutrices, Ă  chaque fois que je les ai essayĂ©s, enthousiasmĂ© par leurs fonctionnalitĂ©s, j’ai Ă©tĂ© déçu par le fait qu’ils ne fonctionnaient pas correctement sur mon ordinateur.

    Aperçu de Flex

    Cette capture d’écran illustre un des modes de saisie de FLEX, ici la vue tabulaire du lexique, qui permet de rentrer et gĂ©rer les dĂ©finitions des lexĂšmes (les entrĂ©es du dictionnaire) de maniĂšre assez rapide. On aperçoit dans la partie en haut Ă  gauche les autres modes d’édition du lexique, et en dessous les autres catĂ©gories liĂ©es Ă  la gestion d’un projet de documentation : Texts & Words, Grammar, Notebook et Lists. C’est Ă  travers la catĂ©gorie Texts & Words que l’on peut par exemple importer des textes transcrits, voire des fichiers ELAN pour peupler la base de donnĂ©es lexicales. Grammar permet de dĂ©crire les paradigmes grammaticaux, FLEX propose d’ailleurs quelques algorithmes qui aident Ă  la construction des paradigmes grammaticaux. Notebook et Lists servent Ă  la gestion du projet, le premier pour prendre des notes diverses, et le second pour crĂ©er des listes, en particulier des tĂąches encore Ă  rĂ©aliser.

    Et il y en a bien d’autres encore

    Il existe de nombreux autres logiciels similaires, tels qu’EXmaralda pour l’annotation des enregistrements (surtout utilisĂ© en Allemagne Ă  ma connaissance), Sonal (non libre, et dont le dĂ©veloppement semble arrĂȘtĂ©) qui est utilisĂ© par les sociologues et les anthropologues pour une annotation thĂ©matique de leurs entretiens, Anvil, qui semble intĂ©ressant mais que je n’ai jamais rĂ©ellement vu utilisĂ©, ou enfin le vieux Transcriber qui lui Ă©tait encore employĂ© par certains projets il y a quelques annĂ©es. Rentrer dans le dĂ©tail de tous ces logiciels dĂ©passerait le cadre d’une dĂ©pĂȘche comme celle-ci, mais Ă©numĂ©rer la diversitĂ© logicielle montre qu’il s’agit d’un secteur un minimum dynamique, d’ailleurs la question de la transcription et de l’annotation des enregistrements ne se limite pas du tout qu’au domaine de la documentation des langues du monde.

    L’archivage et la compilation de corpus

    Afin de conserver et partager les corpus et donnée enregistrées par les linguistes, chercheurs voire simplement les personnes ayant documenté une langue, il existe des archives, le plus souvent en ligne. Il y a en France par exemple Pangloss, géré par le LACITO, dédié aux langues orales, ou ORTOLANG, plus générique, pour les corpus de langue. En Océanie, il y a Paradisec. Il y a aussi ELAR, autrefois à Londres, et qui a déménagé récemment à Berlin récemment.

    Ces archives proposent diverses interfaces pour dĂ©poser, gĂ©rer et parfois mĂȘme consulter les enregistrements et les annotations rĂ©alisĂ©s par les linguistes et leurs collaborateurs·e·s. À noter que pour ces archives, Ortolang dĂ©crit son architecture logicielle qui repose sur des briques ouvertes, en revanche concernant Paradisec et Pangloss, bien que leur statuts soient sĂ»rement similaires du fait de la dĂ©marche gĂ©nĂ©rale de ses ingĂ©nieurs, je n’ai pas trouvĂ© de liens vers les logiciels employĂ©s. Quant Ă  ELAR, le logiciel utilisĂ© est Preservica, une solution propriĂ©taire qui, quand on a le malheur de devoir l’utiliser, fonctionne bien lentement.

    La compilation de corpus, si elle se rapproche de l’archivage en ce qu’il s’agit Ă©galement de recueillir, conserver et publier les corpus des linguistes, correspond Ă©galement Ă  une Ă©dition particuliĂšre de ces corpus. La compilation de corpus est rĂ©alisĂ© Ă  travers la mise en place de processus de qualitĂ©, d’annotations et de conventions particuliĂšres. Les deux compilations de corpus prĂ©sentĂ©es ici sont des compilations de corpus de documentation de langues orales. Les enregistrements ont Ă©tĂ© systĂ©matiquement annotĂ©s en utilisant une convention nommĂ©e les gloses interlinaires (le nom fait en fait rĂ©fĂ©rence Ă  la pratique ancienne d’insĂ©rer des explications entre les lignes d’un texte. En pratique aujourd’hui, ce n’est plus vraiment ce que font les linguistes, puisque le travail est informatisĂ© et les annotations ne sont plus entre les lignes, mais, le terme a cependant Ă©tĂ© conservĂ©).

    DoReCo

    DoReCo est une compilation de 52 corpus en accĂšs ouvert (NdR : auquelle l’auteur a contribuĂ©). La compilation a nĂ©cessitĂ© la mise en place de processus de qualitĂ© afin d’assurer la cohĂ©rence de l’ensemble et de fournir un certain nombre de garanties quant aux qualitĂ©s du corpus.

    Les langues dans DoReCo

    Une premiĂšre qualitĂ©, et l’une des originalitĂ©s de DoReCo, est de proposer un alignement temporel est trĂšs fin. La durĂ©e de chaque phonĂšme, de chaque morphĂšmes, de chaque mot (ici suivant la dĂ©finition de la personne Ă  l’origine du corpus, car la dĂ©finition d’un mot n’a rien d’une Ă©vidence) et enfin de chaque groupe de souffle est fournie. Une deuxiĂšme qualitĂ© a Ă©tĂ© de s’assurer que pour l’ensemble des retranscriptions, chacun des termes et des morphĂšmes possĂšde une glose, c’est-Ă -dire qu’ils possĂšdent une explication linguistique.

    La compilation totalise une centaine d’heures d’enregistrements audio, en grande majoritĂ© des narrations monologiques. À noter que les corpus de la compilation sont accĂšs ouvert, via une licence Creative Commons, mais que les droits d’utilisation varient d’un corpus Ă  l’autre. Les donnĂ©es sont accessibles aux formats d’ELAN : .eaf, de Praat : . TextGrid, TEI.xml, et.csv.

    Multi-CAST

    Multi-CAST est Ă©galement une compilation de 18 corpus de documentation de langues diffĂ©rentes. Les textes annotĂ©s via le logiciel ELAN. Contrairement Ă  DoReCo, l’alignement temporel des annotations n’est pas rĂ©alisĂ© de maniĂšre prĂ©cise, mais manuellement, par les personnes Ă  l’origine du corpus, Ă  l’échelle de l’énoncĂ©. Les textes sont Ă©galement en grande majoritĂ© des narrations monologiques. L’originalitĂ© de cette compilation de corpus vient du fait que les textes contiennent trois couches d’annotation particuliĂšres : GRAID, Grammatical Relations and Animacy in Discourse, (voir), puis RefIND et ISNRef (Referent Indexing in Natural Language Discourse, voir Schiborr et al. 2018).

    La page d’accueil de Multi-Cast

    Cette compilation de corpus est aussi disponible dans plusieurs formats. XML Ă©videmment, puisque c’est le format natif d’ELAN, mais aussi TSV et il existe Ă©galement un paquet pour R. Tout cela est disponible via la licence CC-BY 4.0.

    Conclusion

    J’espĂšre que vous avez apprĂ©ciĂ© cette introduction Ă  la documentation des langues Ă  travers les logiciels libres. L’idĂ©e est surtout d’attiser la curiositĂ©, car il reste Ă©videmment encore de nombreux aspects ou points Ă  discuter et Ă  approfondir. La prochaine fois que j’aborderai le thĂšme de la documentation linguistique ici, j’espĂšre que ça sera pour prĂ©senter mon application basĂ©e sur Django pour faire de la lexicographie.

    Il y a Ă©galement un autre sujet sur lequel j’aimerais bien Ă©changer ici prochainement : la question des licences des donnĂ©es collectĂ©s et la nĂ©gociation lorsque l’on travaille avec des personnes Ă  tradition orale. Si ouvrir l’accĂšs aux donnĂ©es de recherche et aux corpus peut sembler ĂȘtre une Ă©vidence pour certains, il ne faut pas oublier que souvent, les chercheurs et chercheuses de terrain collectent des informations personnelles, que la connaissance n’est pas forcĂ©ment considĂ©rĂ©e comme un bien public et les enregistrements, notamment les narrations, qui ne sont pas forcĂ©ment perçues comme des fictions, sont souvent couverts par des droits locaux. Enfin, ouvrir ses donnĂ©es de recherche, si c’est permettre Ă  d’autres de rĂ©utiliser ses donnĂ©es, requiert beaucoup de travail de la part des linguistes, c’est une tĂąche longue, ingrate et surtout peu valorisĂ©e. Alors qu’il est de plus en plus prĂ©caire d’ĂȘtre chercheur en sciences humaines, il est aussi difficile de demander Ă  ces chercheurs et chercheuses de consacrer une grande partie de leur temps Ă  des tĂąches qui ne leur permettront pas de se constituer un CV, nĂ©cessaire si l’on souhaite avoir un poste stable (c’est-Ă -dire plus de deux ans).

    Label sans IA : ce texte a Ă©tĂ© rĂ©digĂ© sans aucun aide de la part d’une LLM.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Codeberg, la forge en devenir pour les projets libres ?

    Face aux risques que fait peser GitHub sur le monde des logiciels libres suite Ă  son rachat par Microsoft en 2018, une alternative semble avoir percĂ©. Cette dĂ©pĂȘche propose un tour d'horizon des problĂšmes posĂ©s par GitHub et expose comment Codeberg pourrait y rĂ©pondre.
    Logo Codeberg

      Sommaire

      Les points forts de Codeberg

      L'association Codeberg e.V. 1 et son projet Codeberg.org ont été fondés en janvier 2019, suite au rachat par Microsoft de GitHub. En plus d'un statut associatif à but non lucratif, ce qui limite les risques de disparition du jour au lendemain, Codeberg est basé en Europe (à Berlin), ce qui est un plus pour nos données personnelles.

      Son logo reprĂ©sente un sommet enneigĂ© sur fond de ciel bleu. En effet, en Allemand, der Berg veut dire la montagne et on pourrait donc traduire Codeberg par une « montagne de code Â». Et effectivement, la communautĂ© compte fin avril 2024 plus de 102 000 utilisateurs et plus de 129 000 projets y sont hĂ©bergĂ©s. L'association qui dirige le projet compte plus de 400 membres. Le financement s'effectue par les dons (dĂ©ductible des impĂŽts en Allemagne) et/ou contributions aux projets sous-jacents Ă  la forge.

      La forge est basĂ©e sur Forgejo, logiciel libre sous licence MIT, dont le nom vient de l'Esperanto forĝejo, ce qui est cohĂ©rent avec l'attention portĂ©e Ă  la langue de l'utilisateur et aux problĂšmes de traduction (service Weblate). Comme avec GitLab, la licence libre implique qu'un projet peut possĂ©der sa propre instance s'il le souhaite. On notera que Forgejo est un fork de Gitea, lui-mĂȘme fork de Gogs, et est donc Ă©crit en langage Go, langage sous licence BSD avec un brevet. Le projet Forgejo, Ă©videmment hĂ©bergĂ© sur Codeberg, est trĂšs actif avec plus de 900 Pull Requests acceptĂ©es depuis un an.

      La problématique du tout GitHub

      GitHub, lancĂ© en 2008, est devenu la plus grosse plateforme d'hĂ©bergement de codes sources, utilisĂ©e par un grand nombre de projets majeurs du monde du libre (Firefox, Matrix, Yunohost
). Ce qui par effet d'attraction — et de rĂ©seau centralisant, contraire au choix de git dĂ©centralisĂ© par nature — conduit souvent Ă  faire de Github un choix par dĂ©faut, facilitant les interactions avec les autres projets et permettant d'accĂ©der Ă  une large base de contributeurs potentiels. Quand on cite une URL GitHub dans un rĂ©seau social, on peut d'ailleurs voir apparaĂźtre ce genre de message :

      Contribute to Someone/my_project development by creating an account on GitHub.

      Cependant, si ce service fourni par Microsoft est actuellement encore gratuit, il est soumis à son bon-vouloir, avec le risque de voir se répéter l'épisode SourceForge (publicités trompeuses, installateurs modifiés, usurpation d'identité de projets partis ailleurs, etc.).

      Par ailleurs, derriĂšre une communication favorable Ă  l'open source, le code de la forge GitHub est volontairement fermĂ©. Vous ne pouvez donc pas avoir votre propre instance de GitHub. En outre, cela laisse un flou sur l'exploitation de nos donnĂ©es (au sens large, le code lui-mĂȘme et nos donnĂ©es personnelles, l'hĂ©bergement Ă©tant dĂ©lĂ©guĂ©). Avec l'arrivĂ©e du projet Copilot, il est cependant certain que nos codes servent Ă  alimenter un outil d'IA, permettant Ă  Microsoft de monĂ©tiser des suggestions de code en faisant fi des questions de licence. Une partie d'un code sous licence libre pourrait potentiellement se retrouver injectĂ©e dans un projet avec une licence incompatible et de surcroĂźt sans citation de l'auteur.

      Des alternatives possibles

      On pense tout d'abord à GitLab, logiciel lancé en 2011, qui permet d'avoir sa propre instance serveur pour maßtriser l'ensemble (client et serveur sont libres). Parmi les grands projets libres, on trouve en particulier GNOME et Debian qui utilisent leur propre instance GitLab CE (Community Edition), logiciel sous licence MIT. Mais il faut nuancer : la forge GitLab.com utilise GitLab EE (Enterprise Edition) qui est propriétaire et propose des fonctionnalités supplémentaires. GitLab suit donc un modÚle dit open core. GitLab compterait plus de 30 millions d'utilisateurs inscrits et l'entreprise GitLab Inc., lancée en 2014, génÚre plusieurs centaines de millions de dollars de revenus. On notera enfin qu'en 2018, le site migre de Microsoft Azure à Google Cloud Platform (USA), ce qui a posé des problÚmes d'accÚs dans certains pays.

      Autres projets de forges libres plus modestes :

      • Codingteam.net (une initiative française, service clĂŽturĂ© en 2019).
      • SourceHut http://sr.ht (et https://sourcehut.org/), initiĂ© par Drew DeVault.
      • Disroot basĂ© sur Forgejo comme Codeberg, mais il ne semble pas avoir attirĂ© de projets d'envergure (le portail, sorte de Framasoft nĂ©erlandais, est nĂ©anmoins Ă  recommander).
      • Chez un Chaton (GitLab ou Gitea pour la plupart).
      • L'auto-hĂ©bergement : chez-vous, dans un fablab, en datacenter sur serveur dĂ©dié 

      Pour vous faire venir sur Codeberg

      PremiĂšres impressions

      La page principale est accueillante et annonce que Codeberg.org ne vous piste pas et n'utilise pas de cookies tiers. Les statistiques actuelles sont affichĂ©es : nombre de projets, d'utilisateurs et de membres de l'association. Chose agrĂ©able, vous avez la possibilitĂ© de choisir le français parmi les nombreuses langues proposĂ©es pour l'interface. Petite icĂŽne qui attire l'attention : l'activitĂ© de chaque dĂ©pĂŽt peut ĂȘtre suivie grĂące Ă  un flux RSS. Sinon, l'organisation gĂ©nĂ©rale est trĂšs semblable Ă  celle de GitHub ou GitLab et la prise en main de Codeberg se fait donc sans effort.

      Fonctionnalités avancées

      • Codeberg pages : permet de disposer d'un site web statique pour le projet
      • Forgejo actions : pour dĂ©rouler automatiquement les actions nĂ©cessaires Ă  l'intĂ©gration continue (CI/CD)
      • Weblate : pour gĂ©rer les traductions de votre projet. On peut d'ailleurs y constater que parmi les traductions de Forgejo, le Français est dans le peloton de tĂȘte.

      Projets ayant migré ou ayant un miroir sur Codeberg

      Un certain nombre de projets importants utilisent désormais Codeberg, ce qui est à la fois un gage de confiance et assure une base de contributeurs a minima :

      • libreboot : remplacement libre de BIOS/UEFI.
      • Conversations : le client majeur XMPP sur Android.
      • WideLands : jeu libre basĂ© sur le concept de Settlers II.
      • LibreWolf : fork de Firefox axĂ© sur la vie privĂ©e.
      • F-Droid : magasin d'applications libres pour Android.
      • FreeBSD : miroir de https://cgit.freebsd.org/
      • FreeCAD : miroir officiel.
      • Forgejo : fork communautaire de Gitea suite Ă  la privatisation de celui-ci en 2022.
      • Fedilab : client Android pour le Fediverse.
      • irssi : client IRC.
      • Peppermint OS : une distribution Linux avec bureau minimaliste.
      • DivestOS : un fork de LineageOS orientĂ© sur la protection de la vie privĂ©e.
      • VeggieKarte : un service pour trouver des restaurants vĂ©gĂ©tariens/vĂ©gĂ©taliens.
      • 


      Comment migrer vers Codeberg ?

      Migrer le code source et l'éventuel Wiki associé ne devrait pas poser de problÚme particulier. Il suffit de configurer git pour pusher vers la nouvelle forge. Cette page décrit comment migrer l'ensemble de votre projet (incluant les issues, le wiki, les Pull Request, etc.) vers Codeberg : https://docs.codeberg.org/advanced/migrating-repos/

      Concernant les Workflows (CI), bien qu'il n'y ait pas de garantie de compatibilité avec les Actions Github, la syntaxe se veut similaire pour faciliter la transition : https://forgejo.org/2023-02-27-forgejo-actions/

      Au-delĂ  de l'aspect technique, il reste aussi Ă  faire migrer la communautĂ© d'utilisateurs (la prĂ©sence fortement suivie sur Mastodon peut ĂȘtre un avantage).

      Conclusion

      Codeberg est un outil prometteur. Il reste pour la communauté du logiciel libre à le faire grandir. Rappelons les statistiques : 100 millions de développeurs sur GitHub, 30 millions utilisant GitLab et 100 000 pour Codeberg. Le potentiel est grand, l'un des enjeux est de financer l'association pour accompagner la croissance de la communauté, tout en faisant monter en puissance l'infrastructure informatique.

      Sources / Liens

      Controverse GitHub

      Forges diverses

      Codeberg


      1. e.V. est l'abrĂ©viation de eingetragener Verein (association dĂ©clarĂ©e). â†©

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      L’informatique sans Ă©cran

      Lors d’un NoĂ«l de ma tendre jeunesse prĂ©-adolescente est arrivĂ© un « ordinateur Â» dans le foyer. Ce PC (Intel 386) a Ă©tĂ© installĂ© dans le bureau et a vite dĂ©gĂ©nĂ©rĂ© en console de jeux. Puis les annĂ©es passant c’est devenu une formidable source d’expĂ©rimentation informatique pour un geek en devenir. À cette Ă©poque on sensibilisait la jeunesse Ă  ne pas passer trop de temps devant la tĂ©lĂ©vision et la console de jeux, puis devant l’ordinateur et les jeux vidĂ©o violents. Mais on ne parlait pas vraiment de l’écran.

      Aujourd’hui les messages de sensibilisation se rĂ©sument aux Ă©crans :

      • « pas d’écran avant trois ans Â»
      • « nos jeunes passent leurs temps sur leurs Ă©crans Â» (comme si les « vieux Â» n’y Ă©taient pas non plus)
      • « attention les Ă©crans fabriquent une gĂ©nĂ©ration de crĂ©tins Â»
      • « les Ă©crans, les Ă©crans, les Ă©crans »

      Il est vrai qu’aujourd’hui l’informatique ne se rĂ©sume presque plus qu’à un Ă©cran. De l’ordinateur avec clavier+souris+Ă©cran, voire crayon optique, on est passĂ© aux tablettes et ordiphones qui n’ont plus que l’écran (tactile quand mĂȘme).

      Pour prendre le contre-pied de cette obsession des Ă©crans, je me demandais donc s’il existait encore une informatique « sans Ă©cran Â». La formidable multiplicitĂ© des activitĂ©s que l’on peut avoir sur un ordinateur pourrait-elle se faire sans Ă©cran ? Dans quelle mesure peut-on coder, surfer sur le web, lire/envoyer des mails sans Ă©cran ? Cette informatique fantasmĂ©e par notre ex-ministre de l’éducation est elle une rĂ©alitĂ© ?

        Sommaire

        L’informatique, une histoire d’abord sans Ă©cran

        Si l’on date la naissance de l’ùre de l’informatique avec Ada Lovelace, et qu’on estime l’arrivĂ©e des ordinateurs avec Ă©crans Ă  la fin des annĂ©es 1970, alors on peut aisĂ©ment dire que l’informatique a Ă©tĂ© plus longtemps sans Ă©cran qu’avec.

        Peinture d’Ada LovelaceMalgrĂ© son look cosplay de manga elle n’a pas subi trop d’écrans dans son enfance, elle.

        De mĂȘme, il est raisonnable de considĂ©rer l’ordinateur comme l’outil principal pour faire de l’informatique. Il fut largement sans Ă©cran Ă  ses dĂ©buts.

        Ken Thompson (assis) et Dennis Ritchie (debout) manipulant un DEC PDP-11
        Pas d’écran pour ces deux geeks qui ont dĂ©veloppĂ© UNIX et le langage C (source)

        L’altair8800, sorti en 1975 et sur lequel Microsoft a Ă©crit son BASIC, se programmait avec des rubans perforĂ©es, voire avec des commutateurs, et l’affichage se faisait avec quelques diodes (DEL) en face avant.
        Les cartes à trous étant plutÎt utilsées avec les gros ordinateurs (aka Big Iron).

        Vue de face de l’Altair8800Difficile de considĂ©rer ces deux lignes de diodes rouges comme l’écran de l’Altair8800

        L’écran ≠ la vue

        Pour faire sans Ă©cran, on pense instinctivement Ă  utiliser d’autres sens que la vue comme l’ouĂŻe ou le toucher (pour le goĂ»t ou l’odorat difficile d’imaginer la chose). Mais l’histoire de l’informatique nous montre que les premiĂšres interfaces homme-machine ne fonctionnaient pas avec des Ă©crans, et pourtant utilisaient la vue (lumiĂšre, LED, imprimante, position mĂ©canique
).

        Mais qu’appelle-t-on Ă©cran ?

        D’aprĂšs la dĂ©finition de WikipĂ©dia, « un Ă©cran d’ordinateur est un pĂ©riphĂ©rique de sortie vidĂ©o d’ordinateur. Il affiche les images gĂ©nĂ©rĂ©es par la carte graphique de l’ordinateur. GrĂące au taux de rafraĂźchissement d’écran Ă©levĂ©, il permet de donner l’impression de mouvement. »

        Donc si l’on s’en tient Ă  wikipĂ©dia, un Ă©cran d’ordinateur c’est :

        • des images gĂ©nĂ©rĂ©es par une carte graphique d’ordinateur. Exit la tĂ©lĂ© cathodique avec un tuner analogique (qui devient rare aujourd’hui avec la TNT).
        • avec un taux de rafraĂźchissement Ă©levĂ©. Exit les liseuses et autres appareils utilisant un affichage type «  papier Ă©lectronique Â».
        • pas d’indication de rĂ©solutions.

        On peut sans doute rajouter les écrans (comme les télés) qui ne sont pas raccordés à une carte graphique dans la catégorie écran.

        Cela serait donc la résolution (définition et taille
) et le rafraßchissement (fréquence de balayage) du périphérique de sortie vidéo qui font un écran.

        La matrice 5 × 5 d’un micro:bit ne correspond pas Ă  un critĂšre de rĂ©solution suffisant, pas plus que les deux poussoirs ne pourraient prĂ©tendre Ă  ĂȘtre un clavier.
        micro:bit Pourtant il affiche bien une « image » de cƓur <3 !

        Les afficheurs 7 segments ne peuvent pas ĂȘtre considĂ©rĂ©s comme des Ă©crans. Ils n’affichent que des chiffres et quelques symboles. Difficile de crĂ©er une impression de mouvement avec seulement des segments.
        Afficheur 7 segmentsEn faisant un effort, on arrive Ă  reconstituer quelques lettres.

        En doublant le nombre de segments, on arrive à afficher l’ensemble des lettres de l’alphabet latin
        Afficheur 14 segmentsSans diacritiques, faut pas pousser

        Un « panel Â» LCD 20×4 et ses caractĂšres de 8 pixels sur 5 forme un Ă©cran de 100 pixels sur 32, la rĂ©solution est dĂ©jĂ  meilleure, mĂȘme s’il est toujours prĂ©vu pour n’afficher que du texte. NĂ©anmoins on se rapproche de l’idĂ©e que l’on se fait d’un « Ă©cran Â».

        Du papier Ă©lectronique ne peut pas ĂȘtre un Ă©cran. La rĂ©solution peut ĂȘtre excellente mais le rafraĂźchissement reste insuffisant.

        Finalement la dĂ©finition de WikipĂ©dia n’est guĂšre rigoureuse ni efficace, entre l’unique LED du panneau de contrĂŽle et l’écran haute rĂ©solution, il y a un continuum de pĂ©riphĂ©riques de sortie utilisant des signaux lumineux pour former des images. Il faut peut-ĂȘtre alors chercher les systĂšmes informatiques qui, dans leur usage normal, utilisent d’autres pĂ©riphĂ©riques de sortie ou pas de pĂ©riphĂ©riques de sortie du tout.

        L’embarquĂ©e, une informatique massivement sans Ă©cran

        Bien sĂ»r il faut dĂ©finir le mot « informatique Â». Si l’on se rĂ©fĂšre Ă  la dĂ©finition de WikipĂ©dia :

        L’informatique est un domaine d’activitĂ© scientifique, technique, et industriel concernant le traitement automatique de l’information numĂ©rique par l’exĂ©cution de programmes informatiques hĂ©bergĂ©s par des dispositifs Ă©lectriques-Ă©lectroniques : des systĂšmes embarquĂ©s, des ordinateurs, des robots, des automates, etc.

        Avec cette dĂ©finition, le moindre dispositif Ă©lectronique embarquĂ© est de l’informatique. Lancer une machine Ă  laver, programmer son four ou prĂ©parer une cafetiĂšre pour le lendemain est donc une forme de manipulation informatique
 qu’on peut envisager sans Ă©cran.

        Cependant dĂšs que vient le besoin de dĂ©velopper un systĂšme embarquĂ© ou mĂȘme de le rĂ©parer/dĂ©verminer, l’écran revient au galop. On a rapidement besoin d’un Ă©cran pour y connecter son environnement de dĂ©veloppement et sa sonde de debug. Et mĂȘme l’oscilloscope ou l’analyseur logique que l’on branche pour « voir Â» les signaux dispose d’un Ă©cran.

        En usage normal donc, certains dispositifs informatiques sont conçus pour ne pas nĂ©cessiter d’écran parce qu’ils disposent d’un autre pĂ©riphĂ©rique de sortie. Certains centres commerciaux, certaines gares proposent des distributeurs d’histoires courtes : trois boutons comme pĂ©riphĂ©rique d’entrĂ©e et une imprimante thermique comme pĂ©riphĂ©rique de sortie. Appuyez et vous aurez de la lecture pour une, trois ou cinq minutes.

        Distributeur d’histoires courtes en gare de Lyon-PerracheSoyons optimistes : il n’y aura pas plus de cinq minute d’attente !

        Plus courant, une box Internet domestique est aussi un dispositif informatique sans Ă©cran.

        Livebox 6- Il est oĂč l’écran ? - Dans ton
 navigateur

        Il faut reconnaĂźtre que si l’usage courant, la connexion Ă  l’Internet, ne nĂ©cessite pas d’écran sur la box, son paramĂ©trage en utilise bien un : celui de l’ordinateur sur lequel tourne votre navigateur prĂ©fĂ©rĂ©.

        Les assistants vocaux sont des ordinateurs sans Ă©cran. Les principaux pĂ©riphĂ©riques d’entrĂ©e comme de sortie sont audio : commande vocale, rĂ©ponse Ă©galement. Radio France fait d’ailleurs la publicitĂ© pour son offre pour enfants, une histoire et
 Oli, sur cette absence d’écran, jouant, sans trop le dire, sur cette peur parentale des Ă©crans.

        Pourrait-on pousser l’utilisation de ces ordinateurs pour faire du dĂ©veloppement et «coder en vocal» ? Possible, il est tout Ă  fait possible de programmer l’ouverture de ses volets, la lecture d’une musique ou le thermostat de sa chaudiĂšre avec. Mais ça n’est pas du dĂ©veloppement.

        L’éducation numĂ©rique mais sans Ă©cran

        Il est largement possible d’apprendre l’informatique sans Ă©cran, et mĂȘme sans ordinateur.

        La robotique pĂ©dagogique se dĂ©veloppe depuis l’apparition de la tortue Logo. Actuellement, pour les plus jeunes dĂšs l’école maternelle, c’est une abeille qui est proposĂ©e comme initiation Ă  la programmation.

        Bee-Bot en actionSi, si, je suis bien un ordinateur

        La Bee-Bot se programme Ă  l’aide de sept touches et les pĂ©riphĂ©riques de sortie sont les moteurs de dĂ©placement, un petit haut-parleur et en option un porte-crayon. Avec une interface HommeEnfant-Machine aussi simple, il s’agit plutĂŽt d’une mĂ©morisation de sĂ©quences de mouvements que de programmation Ă  proprement parler et pour en utiliser toutes les capacitĂ©s, un interfaçage avec une application ou un ordinateur plus conventionnel est possible, mais on y retrouve un Ă©cran ! De nombreux autres robots pĂ©dagogiques, un peu plus complexes et performants, existent mais ceux-ci utilisent un Ă©cran classique pour accĂ©der Ă  l’interface de programmation.

        Quitte Ă  supprimer les Ă©crans autant aller au bout de la dĂ©marche et supprimer l’ordinateur dans son ensemble. Des pĂ©dagogues ont ainsi inventĂ© l’informatique dĂ©connectĂ©e. Un papier, un crayon, ni Ă©cran ni matĂ©riel comme le jeu du robot idiot. Les esprits chagrins pourraient y voir une solution au manque de matĂ©riel des Ă©tablissements scolaires.
        Plus que d’informatique il s’agit en fait d’initiation à l’algorithmie.

        Mais peut-on se passer d’écran pour dĂ©velopper ?

        Les plages braille

        Il existe une catĂ©gorie de population qui est contrainte de se passer d’écran pour se servir d’un ordinateur : les aveugles.

        Les personnes aveugles peuvent pourtant se servir d’ordinateur, notamment grĂące Ă  un clavier spĂ©cifiquement dĂ©veloppĂ© pour eux nommĂ© « plage braille Â». GrĂące Ă  ces plages brailles, les aveugles peuvent lire les caractĂšres en braille en touchant une ligne munie de petites pointes pilotĂ©s.

        Le prix de ces appareils est assez prohibitif pour quelqu’un qui voudrait jouer avec sans en avoir rĂ©ellement besoin (un geek quoi). C’est pourtant une bonne maniĂšre de faire de l’informatique sans Ă©cran. Pour le codage informatique, on utilise un braille Ă  huit points au lieu des six habituels ce qui permet d’avoir 256 combinaisons, soit autant que la table ASCII. La table braille informatique actuelle a Ă©tĂ© approuvĂ©e Ă  l’unanimitĂ© en 2007 par la Commission Évolution du Braille Français, elle porte le numĂ©ro TBFR2007.

        Que vaudrait un jeu vidĂ©o dĂ©veloppĂ© pour une plage braille ? Et pourrait-on l’appeler jeu vidĂ©o ?

        Avec du papier et un stylo/machine à écrire/carte perforé puis scanner

        On peut Ă©galement faire beaucoup de choses un papier un crayon/stylo/pinceau puis le scanner pour qu’il soit utilisĂ© dans l’ordinateur. Ça reste gĂ©nĂ©ralement qu’une Ă©tape du dĂ©veloppement les programmes ne sont pas plus rĂ©alisĂ©s intĂ©gralement sur papier avant d’ĂȘtre intĂ©grĂ© Ă  l’ordinateur.

        Pour conclure

        Avec des Ă©crits comme « la fabrique du crĂ©tin digital Â» et des propos comme ceux de notre ex-ministre de l’éducation, les Ă©crans sont devenus la bĂȘte noire de tous les pĂ©dagogos.

        Mais l’important n’est-il pas de savoir ce que l’on fait avec un Ă©cran ? Faut-il vraiment s’acharner Ă  s’en passer ?

        Sans doute pas.

        Il serait cependant intĂ©ressant d’apprendre Ă  se servir d’outils rĂ©servĂ©s aux aveugles par exemple. Si nous n’avons plus besoin de la vue pour coder, nous pourrions ĂȘtre un peu plus multi-tĂąches et coder tout en
 regardant la tĂ©lĂ© !

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        Degate : espionner un CPU depuis les waters

        Degate est un logiciel libre pour faire de l'ingénierie inverse sur les processeurs.

        Pour le présenter, Dorian Bachelot, mainteneur du projet, a accepté de répondre à nos questions.

        Logo Degate

        Sommaire

        Présentation

        Entretien avec Dorian Bachelot

        Présentation

        Qui ĂȘtes-vous ? Quel est votre parcours ?

        C’est sĂ»rement trĂšs « bateau Â», mais comme beaucoup je suis avant tout un passionnĂ© d’informatique et d’électronique. J’ai commencĂ© Ă  programmer dans mes annĂ©es collĂšge (dĂ©but des annĂ©es 2010) et suis rapidement arrivĂ© Ă  dĂ©couvrir Linux ainsi que d’autres galaxies (C++, git, virtualisation, reverse engineering
). Par la suite j’ai eu la chance de rĂ©aliser un diplĂŽme d’ingĂ©nieur Ă  l’ESIEA (Ă©cole d’ingĂ©nieur gĂ©nĂ©raliste sur Laval) qui m’a permis de dĂ©couvrir de nombreux domaines comme l’électronique embarquĂ©e, la cybersĂ©curitĂ© et l’intelligence artificielle. Comme beaucoup, j’ai un faible pour les domaines complexes et devoir me limiter Ă  une seule spĂ©cialitĂ© pour mes Ă©tudes ne m’allait pas trop. C’est sur ce dernier point que dĂ©marre l’aventure Degate au cĂŽtĂ© du laboratoire de recherche en cybersĂ©curitĂ© de mon Ă©cole. Cette derniĂšre proposait en effet un format « espoir recherche Â» permettant de creuser un sujet de recherche en plus des cours. Mon sujet a justement portĂ© sur Degate, puisque comme nous allons le voir la rĂ©tro-ingĂ©nierie matĂ©rielle a l’avantage de toucher autant Ă  l’électronique, qu’à la physique, la cybersĂ©curitĂ© et l’intelligence artificielle !

        Quant Ă  aujourd’hui, aprĂšs avoir travaillĂ© sur le sujet de la rĂ©tro-ingĂ©nierie matĂ©rielle pendant presque 3 ans (en publiant 5 articles dans Hackable et en travaillant sur Degate) et avoir obtenu mon diplĂŽme, je suis Tech Lead R&D Cyber/IA chez Neverhack (on vient de lever 100 millions d’euros). J’ai pu en effet garder une dualitĂ© de spĂ©cialitĂ©, Ă  travers la cybersĂ©curitĂ© et l’intelligence artificielle, principalement grĂące Ă  cette aventure d’espoir recherche (et donc en partie de Degate) 1.

        Est-ce que vous ĂȘtes parent de Roselyne ?

        Et non, du tout, mais bien vu ;)

        Qu’est-ce que Degate ?

        En une phrase : Degate est un logiciel open source (GPL-3.0) et multiplateforme aidant ses utilisateurs à effectuer de la rétro-ingénierie sur des puces de silicium 2.

        Maintenant, pour donner un peu de contexte, le dĂ©veloppement de Degate a commencĂ© dĂšs 2008 avec la thĂšse de master de Martin Schobert 3. Jusqu’à la fin de cette derniĂšre en 2011, Martin a pu faire Ă©voluer la solution et collaborer avec d’autres chercheurs pour l’utiliser sur des sujets de cybersĂ©curitĂ©. Par exemple, Degate a pu ĂȘtre utilisĂ© 4 pour aider Ă  la rĂ©tro-ingĂ©nierie de la puce RFID MIFARE Classic de NXP (le dĂ©veloppement de Degate a d’ailleurs pour source ce cas prĂ©cis). Par la suite, les chercheurs Karsten Nohl et Starbug ont pu trouver une faille cryptographique dans la puce permettant d’outrepasser toutes les sĂ©curitĂ©s (on parle ici d’un impact Ă©conomique Ă©norme pour NXP) 5.

        Degate est donc un logiciel avec une histoire riche de plus de 10 ans, qui a dĂ©jĂ  permis d’avoir un impact dans l’industrie (et, suite au cas MIFARE Classic, dans la sociĂ©tĂ©). Il est aujourd’hui le seul bastion permettant Ă  n’importe qui (ou presque) d’effectuer de la rĂ©tro-ingĂ©nierie matĂ©rielle sur des puces.

        Pourquoi dis-tu que c’est le seul bastion ?

        On peut voir ça sous diffĂ©rents angles, mais je parle d’unique bastion car Degate est le seul logiciel disponible Ă  la fois gratuit, accessible (traduction de l’interface, documentation, etc.) et extensible (car open source). Or, les alternatives payantes sont gĂ©nĂ©ralement vendues sous conditions et donc difficilement accessibles. Seulement, comme je l’ai expliquĂ© (modulo une dĂ©formation par mon parcours), la sĂ©curitĂ© d’aujourd’hui passe, pour moi, forcĂ©ment par une utilisation de la rĂ©tro-ingĂ©nierie matĂ©rielle beaucoup plus massive pour valider tout matĂ©riel critique. Et Degate n’est pas qu’un logiciel (surtout Ă  sa crĂ©ation en 2008, c’était plus un outil ou un dĂ©monstrateur), c’est aussi une preuve d’importance (MIFARE Classic) et des ressources en ligne (wiki, articles, thĂšse, etc.). Il ne faut pas seulement voir le logiciel (avec ses dĂ©fauts), mais plutĂŽt l’approche : essayer de rendre plus accessible la rĂ©tro-ingĂ©nierie matĂ©rielle. Je ne clame pas que Degate rĂ©ussit Ă  remplir cette vision, mais je crois que nous sommes quasiment les seuls Ă  essayer depuis maintenant plus de 10 ans (outre les projets visant Ă  « rĂ©tro-ingĂ©nierier Â» certaines puces en particulier, sans prendre le prisme de la sĂ©curitĂ© et de l’accessibilitĂ©).

        Comment ça fonctionne ?

        Avant tout il faut comprendre les contraintes et mĂ©thodes permettant d’effectuer de la rĂ©tro-ingĂ©nierie sur un objet aussi petit et complexe qu’une puce de silicium. Quand on parle d’une puce, on parle d’un agencement de milliards de transistors sur quelques millimĂštres et de leurs liens rĂ©partis sur plusieurs couches. La premiĂšre Ă©tape est alors de dĂ©finir un objectif, pouvant ĂȘtre la reconstruction d’un algorithme implĂ©mentĂ© matĂ©riellement (et donc dans une zone rĂ©duite de la puce) ou encore la reconstitution complĂšte du fonctionnement de la puce, par exemple pour construire un simulateur. Ensuite, il faut rĂ©ussir Ă  rĂ©cupĂ©rer des images de la puce et de toutes ses couches (images en 2D ou 3D, un de mes articles dans Hackable aborde le sujet 6). Toutes les mĂ©thodes permettant d’obtenir ces images impliquent un processus destructeur pour la puce. Cela passe par exemple par un processus de polissage itĂ©ratif et la prise de photographies (attention, on parle d’un exercice trĂšs complexe puisqu’une couche de silicium c’est extrĂȘmement fin, et trop polir implique de devoir recommencer sur une nouvelle puce). On peut aussi prendre une approche chimique (utilisation d’acide pour attaquer couche par couche) ou laser. Sans dĂ©velopper beaucoup plus, ce processus est le plus important, car c’est avec ces photos trĂšs hautes rĂ©solutions que l’on va pouvoir dĂ©buter l’analyse de la puce.

        C’est lĂ  que Degate rentre en jeu, son objectif est de permettre d’utiliser les images obtenues, de les importer dans le logiciel (on parle gĂ©nĂ©ralement d’images de plusieurs Giga, voire Tera, tellement la rĂ©solution et leur taille sont grandes) puis de commencer l’analyse. Ensuite, l’utilisateur peut analyser les parties de la puce en partant de la couche la plus basse, celle avec les transistors, et ainsi reconstruire les portes logiques (c’est ici que des connaissances en physique et en Ă©lectronique sont importantes, il faut savoir lire Ă  travers les transistors !). Comme vous vous en doutez, effectuer l’analyse de chaque transistor quand il peut y en avoir des milliards serait trop fastidieux, et Degate facilite le processus. Ce dernier propose en effet de construire une bibliothĂšque de portes logiques reconstituĂ©e depuis une zone de l’image de la puce, et puisque l’agencement des transistors ne change pas pour chaque porte logique, on peut alors automatiser la recherche et reconstitution de ces portes via des algorithmes de reconnaissance d’images. Il ne reste alors Ă  l’utilisateur qu’à analyser les connexions entre les portes logiques toujours grĂące aux images de la puce (couches supĂ©rieures, les liaisons entre couches sont appelĂ©es des « Via Â») et ainsi reconstituer les algorithmes utilisĂ©s par la puce. Degate permet lĂ  encore d’automatiser une partie du processus en aidant Ă  la reconnaissance des connexions et en proposant d’exporter toute l’analyse dans un langage type VHDL (permettant de simuler le fonctionnement de la puce, si l’analyse a Ă©tĂ© rĂ©ussie).

        Degate ne permet donc pas d’automatiser tout le processus de rĂ©tro-ingĂ©nierie, et une expertise humaine reste nĂ©cessaire (dĂ©capage de la puce, prise des photos, analyses des portes logiques puis des connexions), mais il permet de gagner un temps non nĂ©gligeable sur l’analyse en automatisant plusieurs Ă©tapes. Pour cela, Degate implĂ©mente des algorithmes de reconnaissances d’images, supporte l’importation d’images extrĂȘmement grandes (plusieurs millions de pixels de large), vous aide dans la navigation des images et couches, vous permet d’identifier les portes logiques formĂ©es par des transistors et bien plus.

        Si le sujet vous intĂ©resse, je peux vous donner les rĂ©fĂ©rences suivantes : on peut citer Ken Shirriff qui est LA personne Ă  suivre sur le sujet (auteur de beaucoup d’analyses sur des puces historiques 7, comme la Intel 8086 ou la fameuse Z80), ou encore la communautĂ© Visual 6502 8 qui ont rĂ©tro-ingĂ©nieriĂ© plusieurs puces (en partant de simples images pour finir par la crĂ©ation de simulateurs complets) ! Vous pourrez Ă©galement explorer le super site Silicon Pr0n 9. Enfin, pour trouver une liste plus complĂšte n’hĂ©sitez pas Ă  vous rendre directement sur le dĂ©pĂŽt de Degate 10.

        Il existe des protections contre ceci ? J’imagine que certaines entreprises n’aimeraient pas qu’on fasse de la retro-ingĂ©nierie sur leur puce, il me semble que certaines puces possĂšdent un genre de grillage.

        En effet, il existe beaucoup de mĂ©thodes pour essayer de s’en protĂ©ger. On parle de deux grandes catĂ©gories : les protections passives et actives. Les protections passives peuvent par exemple prendre la forme de rĂ©sine que l’on “coule” sur les puces pour complexifier leurs rĂ©cupĂ©rations (et aussi empĂȘcher la rĂ©cupĂ©ration des rĂ©fĂ©rences), ou d’une couche directement dans le silicium pour bloquer l’analyse visuelle de surface. D’autres mĂ©thodes existent, mais gĂ©nĂ©ralement de l’huile de coude et du bon matĂ©riel permettent de passer outre. Les mĂ©thodes actives sont plus recherchĂ©es et protĂšgent contre d’autres approches de la rĂ©tro-ingĂ©nierie matĂ©rielle. Comme citĂ© dans la question, l’ajout d’un grillage actif est une solution assez rĂ©pandue dans les puces de cartes bleues par exemple. L’idĂ©e est Ă  la fois de bloquer une analyse visuelle de surface de la puce, mais aussi d’empĂȘcher le “probing” (essayer d’utiliser une sonde directement sur un “circuit” de la puce) ou la modification de la puce (par exemple en connectant deux “circuits” de la puce). Cela passe par un maillage avec des formes complexes (on peut voir ça comme un labyrinthe) alimentĂ© par un courant qui, en cas de modification du circuit, peut rendre la puce non fonctionnelle. Il est alors compliquĂ© d’aller voir et manipuler les couches infĂ©rieures en laissant la puce fonctionnelle. 11

        Est-ce que les diffĂ©rentes façons de gravure qui utilise diffĂ©rent MOSFET (CMOS, FinFET, MBCFET, FD-SOI etc) ne demandent pas des analyses diffĂ©rentes ? Est-ce que ça sera fiable avec les derniers types de gravure avec des transistors imbriquĂ©s 3D ?

        À tout problĂšme sa solution : les mĂ©thodes d’analyses 3D de puces de silicium se dĂ©veloppent Ă©galement 6. Si le matĂ©riel nĂ©cessaire pour crĂ©er les donnĂ©es 3D venait Ă  ĂȘtre plus accessible, je prĂ©vois dĂ©jĂ  l’ajout d’un mode d’analyse Ă  Degate permettant de les exploiter. Je ne doute cependant pas que les mĂ©thodes d’analyses actuelles fonctionnent pour la majoritĂ© des cas, mĂȘme si le problĂšme est dĂ©jĂ  suffisamment complexe pour ne pas rajouter ces spĂ©cificitĂ©s. Je n’ai personnellement pas pu couvrir toutes les mĂ©thodes de gravures dans mes analyses ni les nouvelles approches en 3D. Seulement, ces mĂ©thodes s’appliquent pour l’instant majoritairement Ă  la mĂ©moire, ce qui n’est pas forcĂ©ment la cible des analyses.

        Qui se sert de Degate ? Est-ce une communautĂ© de fans de consoles ou des professionnels confrontĂ©s Ă  des puces qui ne sont plus documentĂ©es ou des gens du logiciel libre, etc. ?

        DĂšs ses premiers jours, Degate a Ă©tĂ© pensĂ© pour la cybersĂ©curitĂ©. L’idĂ©e Ă©tait de pouvoir faciliter l’analyse d’algorithmes implĂ©mentĂ©s directement dans les puces de silicium, Ă  la fois pour essayer d’identifier des failles, mais aussi pour vĂ©rifier la prĂ©sence de portes dĂ©robĂ©es. En effet, d’un point de vue sĂ©curitĂ© trop peu de personnes vont voir ces puces alors que tout dĂ©pend d’elles. Comment faire confiance Ă  un systĂšme si l’on ne peut pas vĂ©rifier la sĂ©curitĂ© de son composant le plus important et bas niveau ? Permettre Ă  des chercheurs et passionnĂ©s d’attaquer le sujet est ma principale motivation quand je travaille sur Degate, le sujet est pour moi majeur. On a trop tendance Ă  s’arrĂȘter Ă  la rĂ©tro-ingĂ©nierie logicielle, et c’est malheureusement un risque que l’on oublie trop.
        Je sais aujourd’hui que Degate est utilisĂ© (ou a Ă©tĂ© Ă©tudiĂ©) par des entreprises amĂ©ricaines dans le cadre de l’analyse de puces (je ne sais pas pour quel objectif), par la police allemande et par une universitĂ©.

        Malheureusement le domaine n’encourage pas beaucoup la communication et Degate pourrait ĂȘtre utilisĂ© ailleurs. J’ai d’ailleurs de gros doutes sur son utilisation par une entreprise amĂ©ricaine sous forme de fork non-partagĂ© (ne respectant alors pas la licence GPL qui est copyleft
). Mais ça, c’est un combat classique du monde libre (pour dire, on m’avait mĂȘme proposĂ© de me payer pour travailler dessus
).

        Mais autrement, le logiciel peut ĂȘtre utilisĂ© par d’autres communautĂ©s, comme pour les fans de vieux systĂšmes. Je sais que la communautĂ© qui s’occupe de rĂ©tro-ingĂ©nierer la PlayStation s’est dĂ©jĂ  intĂ©ressĂ©e Ă  Degate 12.

        Concernant la sĂ©curitĂ©, quels types de puces sont concernĂ©es ? J’imagine qu’il ne s’agit pas d’analyser les processeurs gĂ©nĂ©ralistes de nos ordinateurs
 Ce sont des puces qu’on trouve dans quels matĂ©riels ?

        C’est trĂšs large, gĂ©nĂ©ralement on parle de puces avec des missions/parties critiques. Par exemple (comme pour le cas MIFARE Classic), des puces implĂ©mentant des algorithmes cryptographiques sont importantes Ă  regarder : au niveau logiciel on recommande (et c’est un euphĂ©misme) de ne jamais rĂ©implĂ©menter ses propres primitives cryptographiques, pourtant beaucoup de puces le font (mĂ©thode simple pour booster les performances, aujourd’hui tout utilise de la cryptographie). Maintenant, on parle gĂ©nĂ©ralement de certaines parties/fonctions d’une puce plus que des puces entiĂšres. On peut par exemple citer en plus de la cryptographie tout ce qui concerne le stockage de donnĂ©es critiques (comme les clĂ©s de chiffrement). Aujourd’hui, je pense que l’on retrouve ces fonctionnalitĂ©s dans tout type de matĂ©riel.

        Comment en ĂȘtes-vous devenu le mainteneur ?

        Comme je l’ai expliquĂ© prĂ©cĂ©demment, c’est via un programme proposĂ© par mon Ă©cole d’ingĂ©nieur que j’ai Ă©tĂ© amenĂ© Ă  travailler sur le sujet de la rĂ©tro-ingĂ©nierie matĂ©rielle Ă  partir de fin 2018. Et comme Degate Ă©tait le seul programme gratuit et open source permettant d’automatiser une partie du processus (indispensable pour arriver Ă  des rĂ©sultats sans y passer 10 ans), j’ai rapidement eu l’occasion de pouvoir l’utiliser. Malheureusement l’auteur originel du logiciel ne contribuait plus au projet depuis quasiment 8 ans Ă  l’époque, et j’ai rapidement rencontrĂ© des difficultĂ©s pour l’utiliser plus largement dans mes recherches.

        AprĂšs quelques mois de travail et un refactor Ă  70 % du projet (j’ai par exemple refait toute la GUI en Qt5 + OpenGL moderne) pour repartir sur de bonnes bases, j’ai publiĂ© mon fork sur Github. Par la suite Martin (l’auteur originel de Degate) a prĂ©fĂ©rĂ© mettre le projet initial en archive sur Github, et faire une redirection vers cette nouvelle version (aujourd’hui refaite Ă  quasiment 80 % par moi-mĂȘme). L’idĂ©e Ă©tait de garder le nom et la communautĂ© mĂȘme si la grande majoritĂ© du logiciel a Ă©tĂ© refait.

        Maintenant, suite Ă  la fin de mes Ă©tudes, je dispose de moins de temps qu’avant et je suis forcĂ©ment moins actif. Mais j’essaie de traiter toutes les issues et pull request, tout en continuant Ă  travailler sur de nouvelles fonctionnalitĂ©s. Je cherche Ă©galement Ă  faire pĂ©renniser le projet en proposant Ă  des Ă©tudiants comme moi (Ă  l’époque) un financement pour travailler sur le sujet (et surtout Degate). Reste maintenant Ă  trouver des personnes motivĂ©es, car le sujet est vraiment complexe.

        Tu n’utiliseras donc pas Degate dans le cadre de ton travail ?

        Aujourd’hui non, mais je sais que la question se pose pour des collĂšgues. Le test d’intrusion matĂ©riel se dĂ©veloppe, et le sujet se pose de plus en plus. Maintenant les compĂ©tences nĂ©cessaires pour s’attaquer Ă  la rĂ©tro-ingĂ©nierie de puces de silicium sont un frein pour descendre aussi bas, sans compter le problĂšme du matĂ©riel (faut-il encore pouvoir dĂ©caper/dĂ©stratifier les puces avant de pouvoir commencer l’analyse). La solution actuelle est de pouvoir accĂ©der au design des puces (test en white box), mais les limites sont dĂ©jĂ  visibles (un matĂ©riel est gĂ©nĂ©ralement composĂ© de nombreuses puces de constructeurs diffĂ©rents).

        Quelle est ta motivation ? Qu’est ce qui t’anime avec Degate ? Puisque tu as commencĂ© l’informatique assez jeune, tu jouais peut-ĂȘtre avec des consoles ; est-ce que Degate te permet aussi d’imaginer recrĂ©er les puces de ton enfance ?

        Étant aujourd’hui un ingĂ©nieur chercheur portĂ© sur la cybersĂ©curitĂ©, cela me force Ă  voir Degate et la rĂ©tro-ingĂ©nierie matĂ©rielle Ă  travers ce prisme. Pouvoir permettre Ă  des chercheurs d’analyser des puces utilisĂ©es dans des millions de matĂ©riels Ă  travers la planĂšte est ce qui m’anime, mĂȘme si je ne doute pas que bien d’autres cas d’utilisations peuvent ĂȘtre tout aussi intĂ©ressants. Je suis par exemple aussi trĂšs portĂ© sur l’histoire, et la rĂ©tro-ingĂ©nierie matĂ©rielle est aussi un moyen de ne pas perdre certaines piĂšces de notre histoire.

        Est-ce que vous tirez un revenu de ce travail ? Est-ce une bonne wafer ?

        Je suis actuellement financĂ© 100$/mois par le mainteneur principal de Rizin/Cutter (logiciel de rĂ©tro-ingĂ©nierie software) et j’ai dĂ©jĂ  eu plusieurs autres propositions de financement. Ayant Ă©galement publiĂ© des articles sur le sujet, j’ai quand mĂȘme pu ĂȘtre rĂ©munĂ©rĂ© pour ce travail, mais on est trĂšs loin de quelque chose me permettant de vivre (et ce n’est pas l’objectif).

        Pour finir

        Que dire sur vos autres projets ?

        Au niveau personnel je travaille (quand j’ai le temps) sur une nouvelle approche IA au service de la cybersĂ©curitĂ© dĂ©fensive. Malheureusement mon temps est trĂšs limitĂ©, et j’évite de trop m’éparpiller. Au niveau professionnel je suis aujourd’hui Tech Lead et Team Leader sur un projet d’automatisation de cybersĂ©curitĂ© offensive. L’idĂ©e Ă©tant de crĂ©er un outil entiĂšrement automatisĂ© par IA permettant de jouer des attaques avec le mĂȘme niveau de sophistication que les vrais acteurs (gĂ©nĂ©ralement quand je parle du projet on me parle de Skynet, pour ceux ayant la rĂ©fĂ©rence). Un produit devrait sortir dans les deux ans, nous avons dĂ©jĂ  fait de nombreuses avancĂ©es scientifiques mais la route est encore longue. C’est aujourd’hui ce qui occupe le plus clair de mon temps !

        Que pensez-vous de la directive NIS 2 sur la cybersĂ©curitĂ© ?

        La France a Ă©tĂ© pionniĂšre en matiĂšre de rĂ©glementation dans le domaine de la cybersĂ©curitĂ©, et je pense que la directive NIS 2 se place dans le mĂȘme esprit que ce que l’on fait dĂ©jĂ  depuis plusieurs annĂ©es (avec la LPM de 2013 par exemple). Je sais que ces rĂ©glementations peuvent aussi faire peur, et l’accompagnement sera une condition nĂ©cessaire pour rĂ©ussir son application. Malheureusement je pense qu’il est nĂ©cessaire d’agir au plus vite, les rĂ©cents Ă©vĂšnements gĂ©opolitiques ainsi que les (trĂšs) nombreuses attaques observĂ©es chaque semaine imposent d’investir dans la sĂ©curitĂ© de nos entreprises. Je pense Ă©galement que comme la NIS 1, la NIS 2 n’est qu’une Ă©tape, et que des Ă©volutions seront nĂ©cessaires dans la prochaine dĂ©cennie pour Ă©tendre les attentes concernant la sĂ©curitĂ© des entreprises europĂ©ennes.

        Au niveau personnel, quels logiciels libres utilisez-vous, sur quel OS ?

        J’utilise depuis maintenant quatre ans Manjaro, venant de Debian/Ubuntu, et je suis trùs satisfait (le modùle rolling release me plaüt beaucoup à l’usage).

        Au niveau professionnel, quels logiciels libres utilisez-vous, sur quel OS ?

        Au niveau professionnel je tourne sur du Ubuntu 22.04, et j’utilise principalement du VS Code.

        Quelle est votre distribution GNU/Linux prĂ©fĂ©rĂ©e et pourquoi, quels sont vos logiciels libres prĂ©fĂ©rĂ©s ?

        Manjaro et Ubuntu sont les distributions que j’utilise dans la vie de tous les jours. Concernant les logiciels, la question est difficile puisque j’en utilise tellement. En ce moment je ne pourrais plus me passer de Joplin ou Signal, mais je pourrais en citer beaucoup (Virtual box, Kali linux, VSCode, Zotero
).

        Références

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        ❌
        ❌