↩ Accueil

Vue lecture

Microsoft Open-Sources Windows Subsystem for Linux

Well here’s a turn up: Microsoft just released the source code for Windows Subsystem for Linux (WSL), making the nifty tech open-source nearly a decade after development began. The tech giant announced the news at this year’s BUILD event, where it made some other open-source related announcements, including its own CLI text editor called Edit. Source code for WSL was quickly made available on the Microsoft GitHub. For those not familiar with it, WSL is a specialised virtualisation setup that lets Windows users run Linux distributions (like Ubuntu) inside of Windows, with tight system, software and hardware integration. Microsoft says […]

You're reading Microsoft Open-Sources Windows Subsystem for Linux, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

  •  

Association LinuxFr et site LinuxFr.org en 2023/2024/2025

Le 12 mai 2025 a eu lieu l’assemblée générale de l’association LinuxFr (couvrant statutairement la période du 1ᵉʳ octobre 2023 au 30 septembre 2024). C’était aussi l’occasion de discuter des activités ne relevant pas directement de l’association, mais de la vie du site LinuxFr.org : c’est‑à‑dire y compris de bénévoles ou contributeurs non membres de l’association, sur une période comprise entre la période couverte lors de l’assemblée précédente et le jour de l’assemblée.

Les membres de l’association étaient statutairement convoqués, et les membres de l’équipe de modération, d’animation de l’espace de rédaction et de maintenance, ainsi que la présidente de l'April.

Le compte‑rendu complet est fourni en lien. Voici un résumé des thèmes abordés :

  • dans la partie bilan moral de l’association LinuxFr pour la période du 1ᵉʳ octobre 2023 au 30 septembre 2024 : assemblée générale, convention d'hébergement, prix mensuels, relations avec les autres associations et d'autres structures, événements, communication interne et externe, prise de position, potentiels risques juridiques, nouveaux membres, remerciements ;
  • dans la partie activités autour du site LinuxFr.org entre le 12 janvier 2024 et le 15 avril 2025 : administration système, développement, administration du site, modération du site, animation de la rédaction du site, contenus réguliers ou particulièrement notables, rencontres physiques, évolutions de l’équipe, visibilité externe (positive ou non), informations régulières des membres, diversité.
  • et enfin des discussions diverses sur les thèmes proposés par les personnes présentes.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

20 ans de Fedora-fr : sixième entretien avec Robert-André Mauchin empaqueteur RPM Go et Rust

Dans le cadre des 20 ans de Fedora-fr (et du Projet Fedora en lui-même), Charles-Antoine Couret (Renault) et Nicolas Berrehouc (Nicosss) avons souhaité poser des questions à des contributeurs francophones du projet Fedora et de Fedora-fr.

Grâce à la diversité des profils, cela permet de voir le fonctionnement du Projet Fedora sous différents angles pour voir le projet au-delà de la distribution mais aussi comment il est organisé et conçu. Notons que sur certains points, certaines remarques restent d’application pour d’autres distributions.

N’oublions pas que le Projet Fedora reste un projet mondial et un travail d’équipe ce que ces entretiens ne permettent pas forcément de refléter. Mais la communauté francophone a de la chance d’avoir suffisamment de contributeurs et des contributrices de qualité pour permettre d’avoir un aperçu de beaucoup de sous projets de la distribution.

Chaque semaine un nouvel entretien sera publié sur le forum Fedora-fr.org, LinuxFr.org et le blog de Renault.

L’entretien du jour concerne Robert-André Mauchin (pseudo eclipseo), empaqueteur du Projet Fedora en particulier concernant l’écosystème Go et Rust.

    Sommaire

    Bonjour Robert-André, peux-tu présenter brièvement ton parcours ?

    Hello,
    Je suis Robert-André, aka eclipseo ou zebob sur Internet, né en janvier 1984, un millenial donc.

    Mon parcours en informatique commence dans les années 90 avec le PC professionnel de mon père, un Amstrad PC 1512 avec 20 MB de RAM, 2 lecteurs de disquette 5 1/4 et une variante de CP/M de Gary Kidall appelée DOS Plus. Il avait aussi une interface graphique appelée GEM Desktop. On avait aussi une console appelée Alice fabriquée par Matra Hachette où je m’amusais à faire des scripts Batch.

    Ensuite on a eu un 386 avec MS-DOS, puis un Cyrix 6x86 avec Windows 95. Je cherchais à bidouiller dessus, voir ce qu’on pouvait faire avec Windows, etc. Mais le Cyrix 6x86, c’est lent par rapport à un Intel ou futur AMD K6 de l’époque, j’avais envie de tester d’autres trucs pour voir si on pouvait avoir de meilleures performances autrement. Bref, j’étais dans la campagne, sans Internet ou sans boutique informatique proche (pour les particuliers tout du moins). Mais on avait un tabac qui vendait des magazines informatiques.

    Mon magazine favori de l’époque était PC Team, édité par Posse Presse. En parallèle, j’écoute une émission quotidienne à la radio avec Francis Zegut (d’où le zebob sur IRC à l’époque) et Arnaud Chaudron appelée //Plug-In, dédiée aux « nouvelles technologies ».

    Principalement dédié aux jeux vidéo, mais avec un Cyrix 6x86 on ne va pas loin. Par contre il y avait de la bidouille, plein de shareware de logiciels et parfois on y mentionnait un truc appelé Linux. Ensuite j’ai acheté de temps à autre des magazines spécialisés Linux (je ne saurais dire spécifiquement lesquels à l’époque) qui contenaient des CD avec des distributions. J’ai testé les trucs de l’époque, Debian, Redhat, Mandrake, Corel Linux, Suse. Jamais Slackware néanmoins. Je ne suis jamais resté dessus longtemps, juste pour tester, voir comment ça se configure, le système de fichiers, etc. La grosse galère c’était pour configurer X, je crois que j’avais une S3 Trio 64V à l’époque. Ensuite pour configurer le modem 56K.

    Je reviens ensuite à Linux dans les années 2000. J’ai déménagé dans une vraie ville, dans un appartement qui n’a pas de prise téléphonique, mais le câble. Noos, puis Numéricable à l’époque, avec des plafonds de données. Mais du coup on peut télécharger des distributions (et la presse informatique s’est un peu écroulée). Je reviens donc sous Linux avec Ubuntu Linux Warty Warthog (4.10). On a GNOME 2, c’est super plus simple qu’avant, beaucoup plus accessible, je m’investis un peu dans la communauté, je fais de la traduction de GNOME 2 en français.

    J’utilise Ubuntu jusqu’à 8.04 LTS (Hardy Heron), soit 4 ans. Je commence à ne pas trop apprécier la politique de Canonical vis-à-vis de l’upstream, le fait de vouloir faire les trucs dans leur coin à leur sauce. J’ai échappé à Unity du coup, que je n’ai jamais utilisé. Je passe donc vers l’upstream Debian. Je ne saurais dire combien de temps j’y reste, mais en 2011, il se passe un truc, GNOME 3. Et j’ai beau essayer pendant plusieurs mois, ça ne colle pas pour moi. Je dois être trop traditionnel dans mon approche des environnements de bureau. J’avais déjà testé KDE avant en version 3 et c’était pas mon truc non plus, trop playskool. En parallèle, Debian commence à me courir sur le haricot aussi à cause de son inertie, c’est stable mais c’est vieux et j’ai envie de tester les nouveautés le plus tôt possible. Et faire mes propres packages Deb pour tester des trucs était super complexe pour pas grand-chose à mon avis.

    Donc je cherche des alternatives. Il me faut quelque chose de simple, car je ne veux pas perdre mon temps à configurer mon OS, je veux que l’installation soit simple et que le système soit utilisable juste après. Et il me faut une distribution populaire avec une communauté derrière qui soit bienveillante. Si je me rappelle bien à l’époque, j’avais donc Fedora et OpenSUSE dans le viseur. Je ne souhaitais pas une dérivée d’Ubuntu pour les raisons sus-cités. Gentoo non, j’ai un ordinateur portable pourri, et Arch Linux il parait que c’était compliqué à l’époque.

    Donc je me retrouve sur Fedora-fr, inscrit en octobre 2011 avec pour premier message si j’en crois mon profil :

    Petit retour sur l’Alpha : J’ai eu quelques soucis avec  l’installation. Outre qu’Anaconda ne me demandait pas ma source d’installation comme d’habitude (cf. Installation sans media), il se bloquait à la copie des paquets ; apparemment il n’aime les partitions root en btrfs. Il me semblait qu’elles étaient prises en charge depuis quelque temps pourtant. Sur l’installation de GRUB les choses ont aussi changé : j’ai plusieurs disques dur, et j’installe GRUB sur le MBR du second disque sdb. Par défaut, Anaconda me propose de l’installer sur sda. Auparavant je changeais « l’ordre des disques » dans les options pour qu’il me propose de l’installer sur sdb, mais maintenant même si je modifie l’ordre, l’option d’installation reste bloquée sur sda. J’ai dû rebooter en mode « rescue » pour corriger tout ça.

    C’était l’alpha de Fedora 16.

    Apparemment j’étais passé sous KDE à cette époque avec Fedora 15 :

    Je suis « nouveau » sous KDE, donc je ne peux pas vraiment t’aider, mais  j’avais un problème similaire sous F15 avec une carte similaire (Geforce 6150 intégrée). Plasma-desktop s’affolait à partir de quelques heures d’utilisation, je devais le tuer, et le relancer. Je ne sais pas exactement d’où ça vient mais peut-être qu’une extension est responsable.

    À cette époque, suite à des soucis personnels je ne contribue plus à GNOME non plus, plus la motivation.
    Je repasse sous Windows vers 2012, je me dis à l’époque, je reviendrais plus tard quand Wayland sera plus mature… Bon on est en 2024, c’est pas encore au point, mais c’est mieux.

    Je reviens en 2016 sous Fedora, on peut voir dans le forum (je retrace avec vous, car c’est un peu vague les dates).

    Après 4 ans de Windows, de retour sous Linux avec un nouveau laptop.

    • Méthode d’installation : Live du spin KDE Live Workstation
    • Problèmes majeurs : Le spin KDE boot mais n’arrive pas à l’interface graphique. Le live Workstation démarre mais kernel panic aléatoirement dans les cinq minutes d’utilisation, ce qui rend l’installation compliquée… après un google du problème, je teste plusieurs options pour désactiver acpi, sans succès. Finalement tout fonctionne avec « nouveau.modeset=0 » comme option du noyau.
    • Soucis mineurs : Installer KDE est simple, mais désinstaller tous les programmes GNOME par défaut est toujours compliqué.
    • Points positifs : C’est rapide et peu de chose ont changé en 4 ans.
    • Points négatifs : Wayland n’est toujours pas prêt pour la production sous KDE.

    À partir de ce moment, je ne quitte plus Fedora Linux. Il y a toujours un dual boot sur ma machine. J’ai dû supprimer Windows définitivement quand Steam Proton est devenu plus que viable. Je n’ai pas le temps de jouer de toute façon et je n’utilise pas de logiciels métiers spécifiques.

    Peux-tu présenter brièvement tes contributions au projet Fedora ?

    Alors, dans un premier temps j’ai envisagé de revenir à la traduction pour Fedora.

    Ensuite, le packaging RPM Spec, avec un seul fichier à remplir, c’est quand même beaucoup plus simple qu’un Deb.

    J’ai commencé par faire des paquets pour moi, le premier : https://forums.fedora-fr.org/d/66715-intel-hybrid-driver-décodage-vp9-matériel-sous-skylakekabylake

    Je suis tombé par hasard sur un post très intéressant aujourd’hui qui  expliquait comment activer le décodage matériel de VP9 pour plateforme Skylake (et potentiellement encodage sur Kabylake) : https://gist.github.com/Brainiarc7/24de2edef08866c304080504877239a3 Vu que j’utilise pas mal VP9 au lieu de H.264, et que l’absence de décodage matériel sous Linux me mettait en rogne, je me suis attelé à la compilation selon les instructions données. Et donc voilà pour vous : le Intel Hybrid driver, disponible sur mon COPR : https://copr.fedorainfracloud.org/coprs/eclipseo/libva-intel-hybrid-driver/

    C’est pas mal COPR quand même pour tester des trucs.

    Mais j’ai voulu l’upstreamer dans la distribution, et du coup, le 30 août 2017 :

    Petite mise à jour:  J’ai été sponsorisé et je suis donc maintenant un empaqueteur libva-intel-hybrid-driver est dans updates-testing de F26 et bientôt dans stable. À utiliser conjointement avec libva-intel-driver de RPMFusion pour bénéficier de l’accélération de VP9.

    Les premiers mois ensuite je fais pas mal de revues de paquets, on avait un énorme backlog, plusieurs milliers. Si j’en crois bugzilla :

    • Product: Fedora
    • Classification: Fedora
    • Component: Package Review
    • Assignee: zebob.m@gmail.com

    Showing 1 to 20 of 4,803 entries

    J’ai fait plus de 4,800 revues de paquets pour Fedora.

    En parallèle à cette époque, je traine un peu sur les forums, Reddit, je regarde ce que les gens souhaitent que l’on peut empaqueter.

    Et du coup je me retrouve avec plein de paquets à gérer.

    Qu’est-ce qui fait que tu es venu sur Fedora et que tu y es resté ?

    Comme expliqué plus haut, il me fallait une distribution plus à jour que Debian, avec une communauté, facile d’utilisation. Ce qui est bien aussi avec Fedora, c’est qu’on teste assez rapidement des nouvelles technologies, PulseAudio, PipeWire par exemple me viennent à l’esprit. Mais on a souvent des Change Requests pour tester le bleeding edge, ce qui est cool.

    Pourquoi contribuer à Fedora en particulier ? Contribues-tu à  d’autres Logiciels Libres ? Si oui, lesquels et comment ?

    Alors Fedora en particulier, c’est le hasard de mon choix de distribution, c’est parce que je l’utilise que je veux l’améliorer.

    J’ai précédemment contribué à GNOME en tant que traducteur.

    Ensuite pour les besoins du packaging, j’envoie des patchs à tout un tas de projets divers et variés pour corriger des bugs. J’ai passé mes 15 jours de vacances débout mais à patcher 15/20 programmes pour FFmpeg 7.0.

    Utilises-tu Fedora dans un contexte professionnel ? Et pourquoi ?

    Non. Tous les métiers où je suis passé sont Microsoft only, Office 365, Active Directory, Hyper V. J’ai fait un petit stage dans une boite qui développait un logiciel pour les écoles tournant sous Linux, mais j’ai du y mettre court car ça ne correspondait pas à ce je devais faire durant mon stage (je faisais du bêta testing du-dit logiciel au lieu de ce qui était prévu).

    Mon employeur actuel, ou tout du moins le client de mon employeur actuel pour lequel nous travaillons (ESN oblige), a apparemment débarqué une personne qui a trop parlé de Linux pendant son passage au siège. Donc ce n’est pas prévu. Les seules VM Linux qu’ils ont font tourner Prometheus.

    Est-ce que tes contributions à Fedora sont un atout direct ou  indirect dans ta vie professionnelle ? Si oui, de quelle façon ?

    Pas à ma connaissance. Peut-être dans le futur si je trouve une boîte qui fait plus de Linux.

    Tu es membre des équipes Go SIG et Rust SIG, peux-tu nous expliquer  leur rôle et ce que tu y fais ? Participer à deux groupes de travail n’est pas si courant, pourquoi tu participes aux deux ? Ces deux langages sont modernes et ont des communautés très dynamiques, quels sont les défis que tu rencontres avec eux pour les inclure dans le Projet Fedora ? Ils ont aussi des infrastructures propres pour la compilation, ce qui les distingue de Python et Perl d’une part, mais aussi de C ou C++ d’autre part, penses-tu que c’est un obstacle ?

    Alors oui, j’ai un peu de mal à y contribuer ces derniers temps, j’ai dû mettre mes contributions en pause.

    Pour Go ça a commencé avec rclone ou micro, je ne sais plus. Go est statically linked, mais la politique de Fedora est de ne pas bundler les bibliothèques. Donc il faut empaqueter toutes les dépendances. Pour micro, j’ai dû empaqueter des dizaines de dépendances, certaines cycliques bien sûr. À l’époque avec quelques personnes on décide de se synchroniser et monter un SIG pour pouvoir mettre à jour les paquets plus facilement.

    C’est toujours un gros bazar néanmoins, je n’ai pas trop le temps de mettre à jour, il y a des milliers de paquets. On utilise des outils écrits par Nicolas Mailhot qui fonctionnent avec GOPATH, alors que Go est passé avec un système de modules (go mod), mais on a perdu notre développeur de macros (Nicolas donc), donc pour l’instant on survit. Les interdépendances de paquets sont sans fin et c’est un problème pour mettre un logiciel à jour.

    Rust, j’ai voulu empaqueter quelques outils en ligne de commande, j’ai été ajouté au SIG, c’est un problème similaire, même si on a pas autant de dépendances cycliques. Il y a toujours beaucoup de paquets interdépendants comme Go : tu en mets un à jour et tu as toutes les chaînes de dépendances à mettre à jour. Au moins ils utilisent Semver. Chez Go, Semver c’est plus récent, avant tu étais content si tu avais un numéro de version et pas un hash de commit à empaqueter. Du coup si l’API change et que tu mets à jour, tu peux casser plein d’autres paquets.

    Oui c’est un gros gros obstacle.

    Quelle valeur ajoutée de les fournir plutôt que de les importer soi-même en tant qu’utilisateur ? N’est-ce pas trop difficile de suivre le rythme de publication de Rust en particulier ?

    Alors Rust, je ne suis pas attentivement. Mais le but n’est absolument pas que les utilisateurs les installent eux-mêmes. Si tu développes en Go ou en Rust tu n’installes pas les bibliothèques Go ou Rust de Fedora, leur seule utilité pour nous est de compiler le binaire final, sans qu’il y ait des failles de sécurité à cause des bibliothèques pas à jour, qui lui sera installé par l’utilisateur.

    Si tu avais la possibilité de changer quelque chose dans la distribution Fedora ou dans sa manière de fonctionner, qu’est-ce que ce serait ?

    On a besoin de plus de contributeurs et contributrices.

    Un wiki aussi bien que celui d’ArchLinux.

    On a besoin d’une forge plus complète. J’aimerais bien qu’on mette Bugzilla de côté pour Fedora et intégrer les rapports de bug à la Forge. Mais je me doute que Redhat veut garder Bugzilla, et il est très intégré à l’infra.

    Le système d’emboarding des nouveaux contributeurs et contributrices n’est pas au point pour le packaging. Pas assez de gens font des revues, j’en ai fait plusieurs milliers, mais je n’ai plus le temps. On en a 500 dans le backlog.

    Pour être sponsorisé, il faut qu’on puisse suivre les nouveaux contributeurs et contributrices et les aider à faire des revues. On n’a pas assez de bras pour ça, ce qui les décourage.

    Et un Spin KDE Plasma mis au même niveau que Workstation avec GNOME.

    À l’inverse, est-ce qu’il y a quelque chose que tu souhaiterais  conserver à tout prix dans la distribution ou le projet en lui-même ?

    Le bleeding edge, tester les nouvelles technologies. Matthew Miller a fait des vagues récemment en parlant d’A.I. mais il faut qu’on s’y plonge aussi pour ne pas être à la ramasse.

    Le système de vote et de discussion sur les Changes Requests. L’aspect communautaire.

    COPR / Koji.

    RPM. Je sais que le projet pense que Silverblue, les systèmes immuables c’est le futur, avec Flatpak, etc. Mais pour moi, c’est trop restrictif parfois. Je préfère un fichier SPEC.

    Que penses-tu de la communauté Fedora-fr que ce soit son évolution et sa situation actuelle ? Qu’est-ce que tu améliorerais si tu en avais la possibilité ?

    Malheureusement je ne participe pas trop à la communauté Fedora, et encore moins Fedora-fr. Mes visites sur le forum ont été très peu nombreuses au fil des années. Et de manière générale, je ne suis pas très intéressé par l’internet franco-français. Je suis incapable de citer les personnalités de l’Internet français, Youtubers, Twitter et autres leaders d’opinion, de la toile française des deux dernières décennies. Je sais qu’il y a Nick de The Linux Experiment qui est Brestois, ou Adrien LinuxTricks, mais à part ça je ne connais pas grand monde.

    Concernant Fedora-fr, et Fedora en général, il faudrait plus d’évangélisation, et pas seulement aux rencontres linux-linuxiennes des JdLL de Lyon. Il faudrait aller dans les endroits où on ne va pas assez. Les écoles ? Fac ? Les associations d’ordinateurs usagés ? D’aides aux personnes en difficulté ? Je ne sais pas, je n’ai pas la réponse, je ne suis pas un bon communicant.

    Néanmoins, on a une carte à jouer avec Microsoft qui se tire une balle dans le pied : pubs dans le Menu Démarrer, capture d’écran de ton écran pour analyse de tes données, fin du support de Windows 10 en octobre 2025… Bien sûr, la majorité des gens ne sont pas informés ou s’en contrefichent, et cela ne va pas les faire passer à Linux pour autant, mais peut-être qu’une poignée vont se poser des questions. Le Steam Deck aident aussi, même s’il est sous Arch.

    Quelque chose à ajouter ?

    Fedora avec Plasma 6 est la meilleure.

    Merci Robert-André pour ta contribution !

    Conclusion

    Nous espérons que cet entretien vous a permis d’en découvrir un peu plus sur l’empaquetage de Fedora.

    Si vous avez des questions ou que vous souhaitez participer au Projet Fedora ou Fedora-fr, ou simplement l’utiliser et l’installer sur votre machine, n’hésitez pas à en discuter avec nous en commentaire ou sur le forum Fedora-fr.

    À dans 10 jours pour un entretien avec Johan Cwiklinski, ancien contributeur de Fedora-fr.org et actuel mainteneur du logiciel de gestion Galette.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •  

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

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

    [JHM] Les logiciels libres donnent des ailes

    Le vendredi 16 mai 2025.

    Informaticien de métier et passionné par les logiciels libres depuis environ 20 ans, Antoine Petit est le président d’Ailes-52. Depuis mars dernier, les cafés du logiciel libre organisés à Nogent permettent d’échanger, d’apprendre, mais également d’éviter les déchets numériques. Rencontre.

    [cio-online.com] Les marchés bureautiques des ministères vont être soumis à l'avis de la Dinum

    ✍ Reynald Fléchaux, le vendredi 16 mai 2025.

    Un courrier interministériel enjoint les ministères à obtenir un avis de conformité de la DSI de l’Etat y compris sur ces contrats.

    [Silicon] Les technologies open source sont des piliers de l'autonomie numérique souveraine

    ✍ Oliver Hellawell, le vendredi 16 mai 2025.

    Le choix de l’open source comme levier d’autonomie numérique devient une décision stratégique et souveraine dans le contexte actuel au sein duquel les rapports de force technologiques prennent une dimension géopolitique.

    [Le Monde Informatique] La popularité de Python atteint un sommet historique

    ✍ Paul Krill, le lundi 12 mai 2025.

    L’intérêt pour le langage Python ne se dément pas et le propulse à une popularité record dans l’index de Tiobe. Il creuse ainsi l’écart avec ses concurrents.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •  

    NOALYSS : campagne de financement

    spark développe NOALYSS, serveur de comptabilité et ERP totalement libre (GNU GPL2) depuis plus de 20 ans. Cette dépêche est une conversion de son journal. Noalyss a fait partie des solutions comptables présentées dans un article-bilan récent concernant la comptabilité d'entreprise.

    Afin de rester à jour, il faut développer la facturation électronique, obligatoire en Belgique à partir de 2026 qui doit suivre le format UBL3.0 et pour développer cela, il faut du financement. Et malheureusement le modèle économique du libre, ne génère pas énormément d’argent pour la majorité des projets. Une campagne de financement est donc lancée pour NOALYSS.

    Si NOALYSS récolte suffisamment de fonds, il sera possible de tout conserver en libre, sans avoir à réaliser un module payant. Cela concerne le module facturation (génération de factures) mais aussi Document (vidéo d'une saisie rapide de factures) afin de pré-compléter l’opération d’achat.

    Nous comptons aussi améliorer NOALYSS dans le mouvement, par exemple pour avoir la double authentification (avec courriel, OTP), l’export en fichier Calc.

    En échange d’un versement, une facture pour « Développement e-invoice » sera envoyée afin que les contributeurs puissent le déduire fiscalement ; seuls les auto-entrepreneurs, indépendants, PME, etc. pourront le déduire de leurs impôts comme frais professionnels : ils paient un développement de logiciel, qui sera déclaré et taxé comme revenus chez nous. Une page présente la procédure.

    Voilà donc à vos bons cœurs de libristes :-)

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •  

    Intel Adds OpenMP Multi-Threading To Its Speedy x86-simd-sort Library

    Intel's x86-simd-sort open-source project is a C++ template library for high performance sorting routines that can leverage AVX2 and AVX-512 for crazy fast sorting. The x86-simd-sort code in turn is used by Numpy, more recently adopted by PyTorch too, and has shown off the great performance potential of AVX-512 for very fast sorting algorithms. Out today is x86-simd-sort 7.0 and it's even faster due to now supporting OpenMP parallelization...
    •  

    Samsung Back To Working On Upstreaming Tesla FSD SoC Support In The Linux Kernel

    In early 2022 Samsung engineers began working on upstreaming support for the Tesla Full Self-Driving "FSD" SoC to the mainline Linux kernel. Those early patches were mainlined in Linux 5.18 and later in 2022 turned to working on the PCIe support for the Tesla FSD SoC with the mainline kernel, but then work seemingly ceased on this upstreaming effort. More than two years later, the work was restarted today with Samsung posting the latest patches for enabling PCI Express support for the Tesla FSD SoC in the Linux kernel...
    •  

    Vivaldi 7.4 Update Adds New Keyboard Shortcut Controls

    A new version of the Vivaldi web browser is available to download, carrying changes said to make our collective “everyday browsing smoother, faster, and just a little more delightful.” How does Vivaldi 7.4 make browsing the increasingly gamified, algorithmically manipulative and Ai slopified modern web more ‘delightful’? Shortcuts. More specifically, Vivaldi 7.4 gives you the ability to “fine-tune” how shortcuts behave on a per-site basis. If you want a website’s shortcuts to take priority over Vivaldi’s, you can. “It’s about putting you in control, making sure your shortcuts work where and when you need them most”, says Jon von Tetzchner, […]

    You're reading Vivaldi 7.4 Update Adds New Keyboard Shortcut Controls, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

    •  

    9to5Linux Weekly Roundup: May 18th, 2025

    9to5Linux Roundup May 18th

    The 9to5Linux Weekly Roundup for May 18th, 2025, brings news about Debian 12.11, GIMP 3.0.4, Shotcut 25.05, Inkscape 1.4.2, KDE Plasma 6.4 beta, Archinstall 3.0.5, IPFire 2.29 Core Update 194, and more.

    The post 9to5Linux Weekly Roundup: May 18th, 2025 appeared first on 9to5Linux - do not reproduce this article without permission. This RSS feed is intended for readers, not scrapers.

    •  

    GIMP 3.0.4 Open-Source Image Editor Is Now Available for Download with Bug Fixes

    GIMP 3.0.4

    GIMP 3.0.4 open-source image editor is now available for download with various fixes for bugs, crashes, regressions, and other issues.

    The post GIMP 3.0.4 Open-Source Image Editor Is Now Available for Download with Bug Fixes appeared first on 9to5Linux - do not reproduce this article without permission. This RSS feed is intended for readers, not scrapers.

    •  

    Open-Source NVIDIA Blackwell + Hopper Support Slated For Linux 6.16

    Coming somewhat as a surprise is the Nouveau driver patches for enabling NVIDIA Blackwell and Hopper GPUs has now been queued to DRM-Next ahead of the Linux 6.16 merge window. So barring any surprises, this next version of the Linux kernel will feature preliminary open-source mainline kernel driver support for these newer NVIDIA GPUs...
    •  

    Device Memory TCP TX Support Queued Ahead Of Linux 6.16

    Google engineers the past few years have been working on Device Memory TCP for the Linux kernel to allow zero-copy receive of TCP payloads to DMA-BUF regions such as device memory attached directly to a GPU or AI accelerator or other device memory accessible with DMA-BUF. For Linux 6.12 that initial Device Memory TCP receive support was merged while slated for the upcoming Linux 6.16 cycle is Device Memory TCP TX transfer support...
    •  

    Campagne de dons : Yunohost a besoin de vous !

    Cher·es ami·es, cher·es camarades, nos amours, nous lançons aujourd’hui une campagne d’appel à dons.

    Car vous en avez probablement conscience : si notre activité est essentiellement bénévole et que YunoHost est offert à qui veut l’employer, notre activité a un coût. Or sur cette trajectoire et à ce rythme, nous ne pourrons couvrir que la moitié de nos dépenses projetées pour boucler notre budget.

    page d'accueil Yunohost

    Notre situation financière n’est pas alarmante à ce stade : la générosité de notre communauté nous permet d’ores et déjà de financer notre infrastructure. Mais nous aimerions être en capacité de faire mieux : prendre soin du collectif, maintenir et développer des fonctionnalités, nous rencontrer et faire connaître YunoHost.

    Dans le cadre de cette campagne de dons, nous avons réalisé deux pages pour expliquer comment nous utilisons l'argent et ce que nous souhaiterions réaliser cette année :

    N’hésitez pas à relayer ces messages, voire à rédiger les vôtres et nous les partager : votre aide est la bienvenue ! Qu’il s’agisse de témoigner de votre usage, de parler de votre implication voire de faire un don, tous les coups de main sont très appréciés !

    Grand merci pour vos contributions et votre enthousiasme !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •  

    Nouvelles de Haiku - 1er trimestre 2025

    Il est temps de s'intéresser à nouveau aux nouveautés de Haiku pour ce dernier trimestre.

    Les gros changements sont:

    • Un nouvel allocateur mémoire qui permet enfin d'allouer plus de 3GiB par application (un reste de l'historique de Haiku sur les systèmes 32 bits), tout en étant plus rapide et moins gourmand en mémoire,
    • Des raccourcis claviers sans touches modificatrices,
    • De grosses mises à jour dans la bibliothèque C,
    • La poursuite du nettoyage de code et de l'optimisation du navigateur de fichiers Tracker,
    • La reprise du travail sur le pilote NFS4 pour les systèmes de fichiers en réseau,
    • Et bien sûr, de très nombreuses corrections de bugs et petites améliorations un peu partout dans le système.

    Sommaire

    Google Summer of Code

    Le Google Summer of Code est un programme organisé par Google pour encourager de nouveaux développeurs à se lancer dans la contribution aux logiciels libres. Il prend la forme d'un stage, où un projet de logiciel libre fournit un sujet et une équipe d'encadrement, et Google se charge de financer le nouveau contributeur pour quelques semaines.

    Cette année, la candidature de Haiku a été rejetée, la préférence étant donnée à des projets engagés dans l'intelligence artificielle et dans la cybersécurité (deux domaines beaucoup demandés par les personnes souhaitant participer au programme). Ce n'est finalement peut-être pas une mauvaise chose pour Haiku: les développeurs d'autres projets se sont plaints d'avoir reçu des centaines de candidatures visiblement générées par des LLM sans aucun travail de préparation, ce qui leur demande donc beaucoup de temps pour faire le tri dans les candidatures. Les développeurs de Haiku vont cette année pouvoir se consacrer à d'autres tâches.

    Applications

    Tracker

    Le travail de refonte du Tracker se poursuit. Les changements intégrés en début d'année ont provoqué un certain nombre de régressions qui sont corrigées petit à petit:

    • Il est à nouveau possible d'ouvrir le dossier contenant un résultat de requête en double cliquant la colonne "emplacement" dans les résultats.
    • Correction d'un crash et de problèmes de gestion de la mémoire et de problèmes de synchronisation entre threads.
    • Ré-optimisation de la gestion des menus dynamiques pour éviter de les reconstruire à chaque clic de souris, mise en cache de certaines parties du menu dont la construction nécessite des accès disque (liste de patrons pour le menu "nouveau document", liste d'add-ons)

    Toujours beaucoup de nettoyage de code à faire dans le Tracker:

    • correction de dimensions en dur dans les menus spéciaux du Tracker,
    • nettoyage du glisser-déposer,
    • refactorisation de la logique de dessin,
    • amélioraiton du chargement des add-ons,

    Optimisation de la méthode de surveillance des dossiers, utilisation d'un "node monitor" (équivalent de inotify sous Linux) récursif pour surveiller un dossier et tous ses sous-dossiers au lieu de créer un monitor pour chaque dossier. Cela a nécessité des changements au niveau du noyau avec l'ajout du flag B_QUERY_WATCH_ALL pour couvrir ce cas d'usage.

    Par jscipione, waddlesplash

    MediaPlayer

    L'infobulle sur le "scrubber" (barre de navigation temporelle dans le fichier) s'affiche dès que la souris est au-dessus de la barre. Elle contient le marqueur de temps correspondant à la position de la souris, permettant de naviguer avec précision dans le fichier. Ceci a nécessité des évolutions dans BToolTip, la classe responsable des infobulles, qui n'était pas prévue pour faire des infobulles persistantes poursuivant le déplacement de la souris.

    Ajout d'une option pour afficher une vidéo à 25% de sa taille originale (les contenus en 4K ou plus se faisant plus courants).

    Par AkashKumar7902, x512, waddlesplash

    WebPositive

    WebPositive ne prétend plus savoir traiter les liens utilsant le protocole gopher. Ces liens ne fonctionnaient plus depuis le retour à l'utilisation de cURL pour la couche réseau de WebKit au lieu d'essayer de réimplémenter un client HTTP maison.

    Amélioration de la gestion des sessions : sauvegarde du workspace utilisé pour chaque fenêtre, restauration de la session complète lorsque le navigateur est démarré en cliquant sur un lien, avec ouverture du lien dans une fenêtre du workspace courant s'il y en a déjà une, et dans une nouvelle fenêtre sinon.

    Par nephele, ilzu

    HaikuDepot

    Amélioration de performances, en particulier lors de l'affichage des résultats de recherche, qui étaient très très lents sur les machines un peu anciennes.

    Par apl, oco, waddlesplash

    ProcessController

    Affichage de "system resources" avant "caches" afin de rendre les statistiques d'utilisation mémoire plus claires et plus lisibles.

    Correction de problèmes dans la mesure d'utilisation de resources par le noyau.

    Par OscarL, waddlesplash

    Terminal

    Correction d'un bug d'initialisation de la couleur du curseur, visible principalement lorsque le terminal est utilisé comme réplicant dans une autre application. Cette possibilité est utilisée dans l'IDE Genio par exemple.

    Par jackburton

    StyledEdit

    Interdiction d'entrer des caractères de contrôle ASCII dans un fichier texte (via les raccourcis clavier control+une lettre).

    Par OscarL

    Screenshot

    Ajout de la possibilité de sélectionner un rectangle à capturer (en plus des possibilités existantes de capturer tout l'écran ou la fenêtre active).

    Préférences

    Nettoyage de code inutile dans les préférences d'affichage

    Amélioration de la gestion des erreurs dans les préférences de sons si le dossier où devraient se trouver les fichiers son n'existe pas.

    Par captain0xff, humdinger

    Outils en ligne de commande

    strace: Décodage des arguments passés à rlimit ainsi que de l'argument "type" pour mmap, affichage correct des valeurs de type ssize_t ne pouvant pas être représentées sur 32 bits.

    Fusion des outils query et filteredquery. Ces deux outils permettent de rechercher des fichiers à partir de leurs attributs (xattrs) qui sont indexés par le système de fichier. Cette méthode de recherche retourne tous les résultats, le filtrage pour limiter à certains dossiers doit donc être fait par l'outil après avoir récupéré les résultats de la recherche. Cette fonction étant très utile, il n'y a pas de raison de l'implémenter comme un outil séparé.

    keymap: l'option -h affiche l'aide, en conformité avec les bonnes pratiques d'interface utilisateur. L'option pour afficher un header est donc réaffectée et devient -H.

    leakanalyzer (outil d'analyse des fuites mémoire): ignore la mémoire allouée en interne par le "locale kit" pour le support des locales dans la librairie C, cette mémoire ne peut pas être libérée.

    listusb: correction de l'alignement vertical du statut des ports qui n'était pas en face des autres informations affichées.

    waitfor (petite application permettant d'attendre différents évènements, très utile dans certains scripts) peut maintenant attendre la disponibilité d'une connexion réseau.

    Par humdinger, jmairboeck, korli, OscarL, waddlesplash

    Kits

    Interface Kit

    Les raccourcis claviers pour les menus peuvent maintenant ne pas utiliser la touche "Commande" du clavier. Cela permet de définir des raccourcis sans touches modificatrices ou avec des touches non-standard. L'utilisation de ce type de raccourcis est relativement rare, mais nécessaire dans quelques cas particuliers. Par exemple, la touche "Supprimer" peut être utilisée pour supprimer un fichier ou un élément de liste de lecture, la touche "F2" pour renommer un fichier dans le Tracker, …

    Correction de la gestion des raccourcis claviers dans BPopUpMenu qui pouvaient être associés à la mauvaise fenêtre.

    Amélioration du mode sombre: meilleure méthode de choix de la couleur de fond dans BTextView, utilisation d'une combinaison de couleurs cohérentes pour les boutons des barres de défilement.

    Ajout de définitions et de documentation pour tous les côdes de contrôle ASCII dans InterfaceDefs.h. Certains d'entre eux n'étaient pas documentés, ce qui pouvait laisser penser qu'il restait de la place libre utilisable pour coder d'autres choses.

    Ajout de vérifications dans BMenuField::SetLabel pour traiter correctement les labels NULL.

    Optimisations de BScrollView et BColumnListView pour limiter les rafraîchissements inutiles de l'affichage (dans le cadre des améliorations de performances pour HaikuDepot). Dans BColumnListView, ajout d'APIs pour ajouter et supprimer un ensemble d'éléments d'un seul coup, ce qui est beaucoup plus rapide que de les traiter un par un.

    Meilleure gestion du sémaphore de synchronisation des menus dans BWindow. Tous les menus dans Haiku sont implémentés comme des fenêtres, ce qui signifie que chaque menu s'exécute dans un thread dédié avec sa propre boucle d'évènements. La synchronisation peut donc être particulièrement complexe.

    Correction d'un use-after-free (utilisation de mémoire libérée qui ne devrait logiquement plus être accédée) dans BSlider.

    BDecimalSpinner (un contrôle pour changer une valeur numérique au clavier ou avec des boutons '+' et '-') utilise BNumberFormat et affiche donc le nombre en fonction des préférences de localisation.

    Par apl, bitigchi, jscipione, korli, nipos, nephele, PulkoMandy, waddlesplash, x512

    Support Kit

    Modification de BObjectList pour passer l'argument "owning" en paramètre de template plutôt qu'en paramètre du constructeur. Cela améliore les résultats d'analyse statique qui détectaient de nombreux faux positifs "double free" ou "use after free", et rend également plus difficile de faire des erreurs sur la gestion de la mémoire avec ces listes.

    Certaines utilisations de BObjectList<BString> ont été remplacées par la classe dédiée BStringList, plus simple à utiliser pour ce cas particulier.

    Amélioration de performances dans BList, BMessage et certaines parties du code les utilisant beaucoup pour réduire la quantité d'allocations mémoire dynamiques, en utilisant la pile comme stockage temporaire ou simplement en retardant au maximum les allocations. Par exemple, plutôt que de pré-allouer de la mémoire pour une liste dès la création de cette dernière, on attend l'insertion du premier élément dans la liste. On élimine ainsi des allocations dans les cas où du code crée une liste, mais n'insère finalement jamais rien dedans.

    Amélioration des erreurs remontées par les classes de traitement de fichiers JSON.

    Ajout de vérifications de pointeurs NULL manquantes dans BString pour corriger des crashs quand il n'y a plus de mémoire et qu'une allocation échoue.

    Par ilzu, waddlesplash

    Storage Kit

    Amélioration de BFilePanel pour mieux réagir lorsque le dossier de destination n'existe pas.

    Inhibition de BBlockCache lors de l'utilisation d'un allocateur mémoire de debug ou avec des gardes pour détecter les mauvaises utilisations mémoire. Dans ce cas, il vaut mieux se dispenser des gains de performance de la mise en cache mais détecter correctement l'utilisation de mémoire après sa remise à disposition dans le cache.

    Ajout d'un type MIME pour les BMessage serialisés sur disque (souvent utilisés pour sauvegarder les préférences d'applications par exemple).

    Par augiedoggie, nephele, waddlesplash

    Serveurs

    input server

    Amélioration du clavier virtuel pour se mettre à jour automatiquement lors des changements de résolution d'écran et de disposition du clavier. Ce clavier virtuel n'est pas inclus par défaut dans l'installation de Haiku, il est réservé aux personnes aventureuses qui utilisent Haiku sur une tablette ou qui débugguent un pilote de clavier en ne disposant que d'un écran tactile comme périphérique d'entrée.

    Correction du traitement des appels systèmes interrompus (SIGINT), ce qui permet à input server de s'arrêter (et de se redémarrer) lorsqu'on le lui demande. Cela est principalement utile pour tester les pilotes de périphériques d'entrée.

    screen blanker

    L'écran de veille utilise le mot de passe "système" (configuré dans /etc/passwd) au lieu d'implémenter son propre système de mot de passe. La commande screen_blanker permet de lancer l'écran de veille immédiatement, et peut être configurée comme un raccourci clavier pour implémenter un verrouillage simple de la session (note: ne faites pas confiance à l'écran de veille pour sécuriser votre session, actuellement il est assez facile à contourner par exemple à l'aide du debugger noyau).

    launch daemon

    Améliorations sur le launch_daemon: correction du traitement des conditions échouées pour lancer un service, ajout de la possibilité de définir une condition sur le contenu d'un fichier au format "driver settings" (format similaire aux fichiers ini) en plus des fichiers BMessage (format binaire), correction de l'arrêt des services.

    app server

    Remise en route du test_app_server (outil de test permettant de lancer un deuxième app_server dans une fenêtre, et donc de tester des changements sur le serveur graphique sans avoir besoin de redémarrer tout le système).

    Correction de bugs dans app_server pour l'affichage de texte: retrait de code dupliqué, ajout de nouveaux cas de test, meilleure gestion du clipping et des "bounding boxes" des glyphes, correction de problèmes sur les lignes de "décoration" (texte souligné, barré) utilisées en combinaison avec une transformation (rotation, déformation).

    Par augiedoggie, korli, nipos, madmax

    Pilotes

    Le pilote i2c prend en charge les plateformes AMD en plus des machines PCH Intel. Le module i2c utilisé (conçu par Designware) est le même pour les deux fabricants à quelques petits détails près.

    Amélioration de la détection du pointeur racine ACPI: ce pointeur était fourni par le bootloader sur les machines EFI, mais détecté par l'OS après démarrage sur les machines BIOS. C'est désormais la seule responsabilité du bootloader dans les deux cas, ce qui simplifie le code.

    Correction d'un crash sur certaines machines dans le pilote des batteries ACPI.

    Ajout de vérifications supplémentaires et corrections du traitement de quelques cas particuliers dans la pile XHCI (USB3).

    La gestion des "révisions" des périphériques virtio a été mise en conformité avec la spécification virtio. Pour les anciennes versions de virtio, ce champ de la configuration PCI indiquait la version du protocole virtio à utiliser. Mais cela implique qu'un seul pilote virtio (identifiant les périphériques par leur ID PCI uniquement) doit implémenter toutes les versions de virtio. Pour les nouvelles spécifications, ce sera donc le "device ID" qui va changer, et il sera beaucoup plus simple de développer des pilotes spécifiques "virtio v1", "virtio v2", etc pour chaque version majeure.

    Mise à jour des pilotes wifi iaxwifi200 (nommé iwx chez BSD) et ethernet atheros813x pour supporter de nouvelles générations de matériel. Import du nouveau pilote FreeBSD pour les cartes MT7601U, mais il n'y a pas encore de confirmation de son bon fonctionnement sous Haiku.

    Nettoyage de code dans les pilotes SCSI et ralinkwifi.

    Dans le pilote NVMe, activation de l'option de mise en veille automatique qui permet de réduire la consommation électrique lorsque le disque n'est pas sollicité (réduction de 1W constatée sur certaines machines).

    Correction de problèmes dans les pilotes d'entrée (clavier, souris) qui empêchent de redémarrer l'input_server et de retrouver l'usage de ces périphériques.

    Ajout de la tablette graphique Cintiq13HD dans le pilote Wacom.

    Correction du pilote framebuffer pour ne mapper en mémoire que la zone utilisée pour le framebuffer, et pas toute la mémoire de la carte graphique. Non seulement cela réduit la consommation mémoire reportée, mais surtout, le reste de la mémoire peut ainsi être configuré pour autre chose (par exemple, de l'accélération 3D).

    Ajout des cartes Polaris 10 et correction de quelques erreurs de versions du chipset pour d'autres cartes dans le pilote Radeon HD. Ces cartes récentes sont toujours désactivées dans le pilote, le support reste expérimental et peut conduire à un écran noir. Il vaut mieux donc utiliser les pilotes VESA ou framebuffer pour l'instant.

    Par ilzu, korli, Lt-Henry, waddlesplash

    Systèmes de fichiers

    Poursuite d'investigations pour améliorer le temps d'exécution de "git status" qui est anormalement lent par rapport à la même opération sous Linux. Amélioration de l'itération sur les arbres B+ dans BFS, qui faisaient plusieurs "get" et "put" du même bloc disque successif (les opérations "get" et "put" permettent d'obtenir l'accès exclusif à un bloc disque, puis de le libérer, le cache de blocs se chargeant de lire les blocs depuis le disque, puis de les réécrire lorsque c'est nécessaire).

    Amélioration également des verrous de parallélisme dans BFS, ce qui devrait corriger quelques kernel panic.

    Correction d'un blocage de ramfs lors de l'utilisation de "trim" pour libérer de la mémoire.

    Ajout d'un contrôle du flag O_DIRECTORY dans plusieurs systèmes de fichiers lors de l'ouverture d'un fichier. En particulier cela permet d'écrire une image disque sur un disque à l'aide de la commande cp fichier.image /dev/disk/.../raw.

    Plusieurs corrections sur le pilote NFS4 qui était délaissé depuis quelque temps: gestion des inodes "périmés" (fichier présent dans un cache local, mais supprimé par une autre machine sur le serveur), et correction d'autres problèmes rendant le pilote instable. Ajout également de divers outils de debug pour investiguer l'état du pilote.

    Le serveur userlandfs peut être lancé plusieurs fois (B_MULTIPLE_LAUNCH), ce qui permet d'utiliser plusieurs systèmes de fichiers FUSE ou userlandfs en même temps.

    Par augiedoggie, Jim906, waddlesplash, x512

    libroot

    Bibliothèque C standard

    dlsym(RTLD_NEXT) et d'autres fonctions similaires du runtime_loader recherchent maintenant les symboles dans toutes les régions ELF chargées, et pas seulement dans la première.

    Ajout de RTLD_NOLOAD dans la fonction dlopen, ce qui permet d'accéder à des symboles déjà présents dans l'exécutable sans charger un fichier de librairie à nouveau. Il ne s'agit pas d'une fonction standard C ou POSIX, mais d'une extension proposée par GNU et la glibc.

    Ajout de la fonction getloadavg qui permet d'obtenir une mesure de la charge du système. Cela peut être simplement informatif (dans des outils comme htop) ou utilisé pour allouer au mieux les ressources CPU (l'outil de build ninja peut par exemple utiliser cette valeur pour décider combien de jobs lancer en parallèle)

    Mise en conformité de l'ordre d'appel des destructeurs de pthread_key (il faut potentiellement appeler les destructeurs plusieurs fois, jusqu'à PTHREAD_DESTRUCTOR_ITERATIONS, pour contourner les problèmes d'interdépendances). Correction de l'ordre d'appel des destructeurs lors de l'arrêt d'une application: les destructeurs globaux C++ doivent être appelés avant les destructeurs de threads (il existe plusieurs méthodes pour enregistrer des fonctions à exécuter à l'arrêt d'un thread ou d'un programme, et c'est assez compliqué de toutes les séquencer correctement).

    Une petite optimisation de pthread_cond_signal pour éviter un appel système dans certains cas.

    Poursuite du remplacement de fonctions de la libroot par les versions provenant de musl: memmove, strlen, strlcat, ainsi que toutes les fonctions de conversions entre chaînes de caractères et nombres flottants.

    Synchronisation de l'implémentation de glob avec FreeBSD.

    Optimisation de la famille de fonctions memcmp, strcmp, strncmp: utilisation de comparaisons sur 64 bits lorsque c'est pertinent, retrait de calculs inutiles.

    Réécriture et optimisation des fonctions génériques memcpy et memset (utilisées pour les machines qui n'ont pas une version optimisée manuellement en assembleur). Utilisation de la version optimisée de NetBSD pour les machines x86 32 bits. Pour la version 64 bits, le code utilisé par Haiku est meilleur que celui des autres systèmes, et reste donc en place. Le bootloader utilise uniquement la version générique pour simplifier les choses (il n'a pas besoin de fonctions de très haute performance).

    Correction de la fonction write() avec une taille supèrieure à 2Gio sur les systèmes 64 bits (la taille était accidentellement tronquée à 32 bits).

    Mise en conformité POSIX de la fonction dup3: retour de EINVAL si l'ancien et le nouveau descripteur de fichier sont identiques.

    Déplacement de la fonction qsort_r de la libgnu vers la libroot (elle a été standardisée dans POSIX Issue 8). Il s'agit d'une version de qsort permettant de passer un paramètre supplémentaire à la fonction de comparaison contenant un contexte réservé à l'utilisateur de la fonction.

    Nettoyage du code restant dans la libroot qui provient de la glibc: retrait de déclarations internes présentes dans les en-têtes publics, retrait de fonctions qui ont déjà été remplacées, suppression de fichiers non utilisés, remplacement d'un maximum de fonctions par les versions de musl ou de BSD, ajout des fonctions stdio_ext de musl en remplacement des fonctions privées supprimées, retrait d'une partie des fonctions mathématiques au profit de celles de musl, retrait d'une couche d'abstraction pour l'interfaçage entre la glibc et le support des locales dans Haiku. Certaines parties de la glibc continuent d'être utilisées pour assurer la compatibilité avec BeOS, mais l'objectif est de minimiser cette partie et d'utiliser les fonctions de BSD ou de musl, qui sont souvent beaucoup plus simples. La raison est que la glibc est conçue pour pouvoir être utilisée comme librairie C alternative sur de nombreux systèmes, et doit donc avoir un comportement très proche de la librairie C originale. Par exemple, le format des nombres "long double" peut être différent d'une architecture et d'un système à l'autre, et la glibc implémente de nombreux formats spécifiques, là où musl se contente des formats les plus classiques.

    Mise à jour de getopt, printf et scanf avec la verson de la glibc 2.41. Pour l'instant ces fonctions continuent d'utiliser la version de la glibc, afin de préserver la compatibilité avec les applications existantes (notamment les applications pour BeOS). En effet, des structures internes sont exposées dans l'ABI et ne peuvent pas être facilement remplacées par une autre implémentation.

    Tous ces changements sur la librairie C standard sont faits également en collaboration avec un développeur de la gnulib, dont la suite de tests permet de repérer de nombreux comportements incorrects ou non standards.

    Gestion de la mémoire

    Finalisation d'un gros chantier de refonte de la gestion de la mémoire, avec en particulier la possibilité de fusionner des zones de mémoire adjacentes lorsqu'elles sont redimensionnées. Suite à ces changements, l'allocateur mémoire hoard2 a pu être remplacé par une nouvelle implémentation basée sur celle de OpenBSD, avec quelques adaptations et améliorations spécifiques à Haiku, dont en particulier un cache d'allocation global pour chaque application. Le nouvel allocateur est légèrement plus rapide en général, et plusieurs ordres de grandeur plus rapide sur certains cas particuliers (par exemple: gcc avec les options de link-time-optimization, ou le compilateur SDCC, ou un test de compilation passe de plusieurs heures à une ou deux minutes). Ce nouvel allocateur est également moins consommateur de mémoire et permet aux applications d'allouer plus de mémoire (hoard2 limitait les allocations à environ 3Go y compris sur les systèms 64 bits).

    Amélioration des messsages d'erreur de la "guarded heap" (allocateur mémoire de débug) pour afficher des messages d'erreurs plus spécifiques au lieu de "generic segfault".

    Autres changements

    Ajout de macros manquantes dans le fichier elf.h ainsi que de la constante MAP_FILE (inutile mais présente sur Linux et tous les systèmes BSD) pour faciliter le portage de WebKit.

    Interdiction de l'appel de create_sem avec un compteur négatif. Cela était interdit par BeOS mais autorisé par Haiku et il n'y a pas vraiment de raison de le faire.

    Modification du code assembleur d'appel des appels systèmes pour inclure des informations de debug sur la pile d'appels. D'autre part, dladdr a été modifié pour pouvoir accéder aux informations sur ces symboles, qui sont chargés dans la commpage (une zone de mémoire partagée entre le noyau et les processus utilisateurs, qui n'est pas à proprement parler une section de code classique en mémoire). Cela permet à libunwind d'analyser une stacktrace comprenant un appel système.

    Par korli, PulkoMandy, trungnt2910, waddlesplash, zeldakatze

    Noyau

    Désactivation des états de veille C5 et C6 sur les machines Intel "Skylake", car elles empêchent ces machines de démarrer correctement pour l'instant.

    Réparation du cache d'objets "guarded heap" qui permet de détecter et d'investiguer certains problèmes d'allocation mémoire dans le noyau.

    Traitement d'un cas d'erreur dans le cache de fichiers, si la taille d'un fichier est devenue plus petite que son cache entre le moment ou une application demande un accès et le moment où l'accès va effectivement être réalisé.

    Protection de l'accès à certains "spinlock" par des mutex. L'accès aux spinlocks doit être rapide, puisque l'attente est faite de façon active et monopolise un coeur de CPU. Il faut donc s'assurer que le spinlock pourra être rapidement disponible. En particulier, l'affichage de logs à l'écran lors du démarrage pouvait considérablement ralentir les choses (l'affichage se fait page à page et le processus de démarrage est mis en pause en attendant que l'utilisateur appuie sur une touche).

    Déplacement de la calibration du timer APIc x86 dans le noyau au lieu du bootloader. Amélioration de la précision de la mesure et utilisation de la calibration fournie via les registres CPUID si elle est disponible (c'est le cas pour certains hyperviseurs par exemple, sur lesquels le système virtualisé peut difficilement faire lui-même une mesure fiable).

    Correction du traitement d'un cas particulier par mprotect, qui se manifestait par un kernel panic lors de l'utilisation du navigateur Iceweasel.

    Ajout d'un timeout sur l'envoi d'infos sur le port série sur les machines x86. Par exemple sur le Steam Deck, le port série n'est pas du tout présent et cela empêchait le démarrage du système.

    Réécriture de la fonction x86_{read|write}_msr pour les machines 32 bit en tant que fonction inline (c'était déjà le cas pour les machines 64 bits).

    Correction de problèmes trouvés en essayant de démarrer Haiku sur un laptop très récent: ajout du support de X2APIC dans le bootloader EFI, allocation de la page "PML4" avec une adresse physique < 4Go pouvant être codée sur 32 bits, et à l'inverse traitement correct de la table GDT lorsqu'elle se trouve au-delà de cette limite de 4Go.

    Déplacement de code de bfs vers le VMCache générique pour traiter le cas particulier du mmap sur un fichier dont la taille n'est pas un multiple de la taille de pages du système. La dernière page doit alors être remplie avec des 0. Cela avait été corrigé pour bfs, mais le problème était également présent pour d'autres systèmes de fichiers dont en particulier ramfs.

    Réécriture des FIFOs noyaux (utilisés pour implémenter pipe(2)). Le benchmark stress-ng --pipe 1 passe de 230 Mo/s à 2.5Go/s (dans une machine virtuelle).

    Ajout d'une option syslog_max_history pour pouvoir conserver plus que 2 fichiers de syslog (ce qui reste l'option par défaut).

    Nettoyage et optimisation de la structure Thread utilisée dans le noyau pour représenter les threads: utilisation d'une liste doublement chaînée pour accélérer les manipulations de la liste, correction du décomptage du temps CPU utilisé par les processus, correction d'une fuite mémoire, et correction d'un problème dans la fonction get_next_thread_info si les identifiants de threads bouclent (c'est-à dire que plus de 4 milliards de threads ont été créés et que des identifiants de threads ont donc dû être recyclés).

    Le kernel panic se produisant si un thread tente de libérer un mutex qui ne lui appartient pas affiche automatiquement la stacktrace du thread qui est propriétaire du mutex.

    Ajout d'un appel à cpu_pause dans le code des conditions variables pour réduire la consommation électrique inutile lors d'une attente active.

    Correction de plusieurs problèmes de sauvegarde du contexte de la FPU pour l'architecture x86_64:

    • Remise à 0 de l'état de la FPU lors des changements de threads,
    • Stockage de l'état de la FPU dans la structure d'info sur le thread au lieu de la stocker sur la pile,
    • Envoi des bons codes d'exception FPE_* lors des exceptions SIGFPE,
    • Gestion des "control words" lors des changements de contexte.

    Cela corrige des crashs d'application et même des kernel panic dans certains cas.

    Les drapeaux de protection des zones de mémoire du noyau ne sont plus visibles par les utilisateurs non privilégiés. L'utilisateur "user" principal peut toujours y accéder, cela est utilisé par exemple par ProcessController. Correction d'un flag mal positionné pour les zones mémoire de l'allocateur "slab", qui n'étaient pas indiquées comme accessibles en écriture.

    Renommage des fonctions concernant la gestion des interruptions pour éviter l'abbréviation "int" qui pouvait prêter à confusion avec "integer" dans certains cas. Utilisation du mot complet "interrupt" lorsque c'est possible, ou à défaut de "intr".

    Correction d'une fuite de mémoire dans la gestion de la mémoire physique avec du paging à 5 niveaux (LA57).

    Correction d'un interblocage dans le cache du système de fichier identifié à l'aide des tests de gVisor.

    Correction d'un bug dans la fonction vsnprintf du noyau qui n'affichait pas correctement les nombres inférieurs à 0.1 (les 0 après le point étaient perdus, et donc 0.01, 0.001. 0.0001, … étaient tous affichés comme 0.1).

    L'appel système create_dir retourne EEXIST si un fichier ou un dossier existe déjà à l'endroit demandé, et ce, même si le système de fichier est en lecture seule. Auparavant, l'appel système retournait EROFS, ce qui perturbe certaines applications.

    Amélioration du traitement des "doubles fautes" (lorsque le traitement d'une exception matérielle déclenche une autre exception matérielle) sur x86. Le registre GS était corrompu, ce qui empêchait l'utilisation du debugger dans ce cas, et plusieurs autres problèmes conduisaient vraissemblablement à une "triple faute" (une exception dans le traitement de l'exception dans le traitement de… bon vous voyez le principe), et à un redémarrage de la machine car à ce stade il est peu probable qu'aucune autre opération ne remette le système dans un état cohérent.

    Bootloader

    Amélioration du bootloader PXE pour afficher clairement "Network" dans la méthode de démarrage, ainsi que l'adresse IP du serveur de disque fournissant le rootfs.

    Remise en route du développement sur la console graphique utilisée pour simuler un mode texte pour le menu de démarrage, lorsque la machine ne fournit pas un mode texte matériel ou au niveau de son BIOS (c'est le cas par exemple sur certains Chromebooks avec SeaBIOS). Pour l'instant, cela nécessite une version du bootloader compilée spécifiquement pour ce cas de figure, car on ne sait pas encore détecter de façon fiable si le mode texte du BIOS est disponible.

    Par Anarchos, augiedoggie, korli, phcoder, waddleslplash

    Scripts de compilation

    Poursuite du travail pour corriger tous les warnings détectés par le compilateur, ainsi que quelques problèmes détectés par les sanitizers de gcc (libasan et libubsan) qui sont maintenant compatibles avec Haiku.

    Correction de problèmes empêchant de cross-compiler Haiku depuis FreeBSD ou un système Linux utilisant la libc musl. Correction également de problèmes pour le build depuis macOS.

    Suppression de fichiers inutiles dans la version de unzip intégrée dans le build de Haiku.

    Généralisation des options permettant d'activer la "stack protection" à plus de parties du système.

    Remplacement de la commande which par command -v. Cette dernière est un builtin de la plupart des shells, elle est donc plus rapide à exécuter et ne nécessite pas une dépendance supplémentaire.

    Migration de Python 2 à Python 3 pour le script générant les fichiers "libroot stubs" (utilisé uniquement lors du bootstrapping de Haiku pour une nouvelle architecture).

    Mise à jour de la version de m4 utilisée pour le bootstrap de Haiku (compilation de tous les paquets à partir des sources, utile en particulier pour le portage sur une nouvelle architecture).

    Ajout des modules PCI manquants dans l'image de bootstrap.

    Par korli, PulkoMandy, waddlesplash

    Documentation

    Ce trimestre, il y a principalement du travail sur la documentation interne. Il s'agit d'un document destiné aux développeurs de Haiku, par opposition aux développeurs d'applications pour Haiku, qui se tourneront plutôt vers le Haiku book pour les informations sur les interfaces publiques du système.

    Mise à jour de la documentation sur la procédure à suivre pour synchroniser du code avec d'autres systèmes. Haiku réutilise du code de FreeBSD, NetBSD, OpenBSD, musl et quelques autres, et maintient également deux copies de gcc et des binutils. Il est important d'avoir une procédure bien définie pour tracer ce qui a été importé, depuis quelle version, et quels changements ont été effectués. Plusieurs documentations existaient avec différentes fçons de faire, dont certaines étaient obsolètes.

    Dans la documentation du device manager, ajout d'une image montrant un exemple de device tree, pour mieux visualiser ce qui est expliqué dans la page.

    Déplacement d'articles sur l'implémentation des appels systèmes du site web principal vers la documentation interne (dans le cadre d'un très long projet pour réorganiser la documentation et libérer le site principal de nombreux articles techniques pour en faire une vitrine plus orientée vers les utilisateurs).

    Ajout dans la documentation interne d'un article sur le profilage et l'analyse de performance des applications.

    Correction de liens internes morts dans la documentation interne sur la gestion des paquets, suite à des erreurs de formatage.

    Mise à jour de la documentation interne sur le processus de bootstrap.

    Par kuku929, oco, PulkoMandy, waddlesplash

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •  

    05/18 Athena Rolling

    Athena OS is an Arch-derived Linux distribution designed for penetration testing, bug-bounty hunting and InfoSec students. The distribution provides a way to connect directly to some of the e-learning hacking resources, such as Hack The Box, Offensive Security, PWNX and InfoSec certifications, and it provides integration with the Hack The Box hacking platform and connections to InfoSec communities. Athena OS also introduces InfoSec roles (e.g. penetration tester or open-source intelligence specialist) based on user preferences, so the user's system is populated with relevant tools only.
    •  

    ByoWave Proteus Controller Support Coming To Linux

    The ByoWave Proteus Controller Kit is a modular gaming controller that allows snapping together different combinations of input toggles and to reposition the triggers and buttons depending upon your preferences. Support for the ByoWave Proteus Controllers is already supported by Valve's SteamOS while now the controllers will soon be supported by the mainline Linux kernel...
    •  

    Ubuntu 25.04 Delivers Decisive Lead Over Fedora 42 For Ampere Altra Performance

    With the recently-launched Ubuntu 25.04 and Fedora 42 Linux distributions I've been seeing very healthy competition on Intel and AMD x86_64 hardware between these two leading Linux operating systems. But, surprisingly, after evaluating the AArch64 performance I was surprised to find Ubuntu 25.04 delivering a decisive advantage over Fedora 42 when testing on Ampere Altra using a System76 Thelio Astra workstation.
    •  

    Debian 12.11 “Bookworm” Released with 81 Bug Fixes and 45 Security Updates

    Debian 12.11

    Debian 12.11 is now available for download as a new point release to Debian 12 “Bookworm” with 81 bug fixes and 45 security updates.

    The post Debian 12.11 “Bookworm” Released with 81 Bug Fixes and 45 Security Updates appeared first on 9to5Linux - do not reproduce this article without permission. This RSS feed is intended for readers, not scrapers.

    •