5502 links
  • GuiGui's Show

  • Home
  • Login
  • RSS Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
◄Older
page 1 / 276
  • Carte aux trésors 2025

    Depuis vendredi dernier (2 mai), une nouvelle saison inédite du jeu télévisé La Carte aux trésors est diffusée les vendredis soirs sur France 3. \o/

    Sun May 4 18:26:46 2025 - permalink -
    - http://shaarli.guiguishow.info/?HGSsJQ
  • Noms de domaine : changer de bureau d'enregistrement

    La semaine dernière, j'ai remplacé l'entité qui gère commercialement mes noms de domaine. C'était la première fois que je changeais de bureau d'enregistrement. Retour d'expérience.

    Si t'as du mal à visualiser ce qu'est un registre de noms de domaine, un bureau d'enregistrement, etc., je te renvoie à cet excellent guide de l'Anssi, notamment au schéma page 7 et aux explications à partir de la page 9. Pour une explication détaillée du fonctionnement d'un bureau d'enregistrement, voir cet excellent article de l'Afnic.


    Pourquoi ?

    Ma première motivation a été le prix.

    En 2023, j'écrivais que les tarifs TTC de Gandi, mon bureau d'enregistrement actuel, ont gonflé de 56 % en 9 ans. En 2024, nouvelle hausse de 13 € TTC par rapport à 2023, soit une hausse de 99 % en 10 ans, c'est-à-dire un doublement du prix (renouvellement d'un .info et d'un .fr pour 1 an en 2014 : 30,08 € TTC ; en 2024 : 59,98 € TTC).

    Ça n'allait pas s'arrêter là : dans une de ses notes, Genma relatait une nouvelle augmentation conséquente des tarifs de Gandi. J'ai donc vérifié sa grille tarifaire. Effectivement, en 2025, le renouvellement de mes deux noms allait passer de 59,98 € TTC à 100,78 € TTC, soit une nouvelle hausse de 68 % en un an, et un triplement en 11 ans.

    Comme je l'ai expliqué en 2023, les registres dont je dépends n'ont (quasi) pas augmenté le prix qu'ils facturent aux bureaux d'enregistrement. (Exemple : l'Afnic facture 5,07 € HT une opération sur les domaines qu'elle gère, dont .fr.)

    Johndescs m'a informé que, lors du renouvellement d'un de ses domaines dans un TLD différent des miens, Gandi ne l'a pas facturé selon la grille tarifaire publique, mais à un prix insignifiant rendant caduque toute velléité de changement. Peut-être une promotion ponctuelle et/ou sur un TLD précis. J'ai appris cela alors que le transfert d'un de mes domaines était en cours, donc, afin de ne pas embrouiller leur système d'information et bloquer mon domaine en simulant un renouvellement en parallèle, je n'ai pas pu vérifier si Gandi m'aurait proposé un bon prix. De toute façon, je n'aime pas les promotions (temporaires).

    Le seul service que j'utilise, c'est l'intermédiation avec les registres (Afnic pour mon .fr, Identity Digital ‒ ex-Afilias ‒ pour mon .info). Je suis mon hébergeur DNS. Je suis mon fournisseur de boîtes emails, etc. Mes interactions avec les registres se limitent à un renouvellement annuel et à un changement de délégation signée (DNSSEC) par an. Ça ne justifie pas cette explosion des tarifs.

    Évidemment, je sais mutualiser (cotiser pour d'autres) et encourager un petit acteur français plutôt que de renforcer de gros acteurs hégémoniques à la OVH ou Scaleway. Mais depuis 2023, les boîtes emails de Gandi sont devenues payantes, donc il m'est difficile de les proposer à des Moldus, et, en 2023, Gandi a fusionné avec le groupe néerlandais TWS (Your.Online), ce qui ne correspond pas à ma conception de « petit acteur français ».

    Bref, les tarifs de Gandi ne se justifient plus, ni par les services que je consomme, ni par des idéaux (mutualisation, petit acteur français).



    Ma deuxième motivation a été que Gandi s'est foutu de moi en matière de prospection et d'utilisation de mes données à caractère personnel (DCP).

    En juillet 2024, comme d'autres clients, j'ai reçu un email de Gandi pour me vanter son « pack Sécurité DNS+ » payant. J'estime qu'il s'agit de prospection commerciale que je n'ai pas sollicité. Des options gratuites (MFA, DNSSEC, verrous registre et bureau d'enregistrement, etc.) permettent d'atteindre un objectif de sécurité raisonnable. Le but est de vendre un sur-service. Gandi n'étant pas mon hébergeur DNS, je ne suis même pas éligible à ce service. De plus, l'email joue sur la peur (JOP 2024, « cybermenaces », olala), et je n'aime pas ça, d'autant que l'article censé appuyer les menaces encourues ne provient pas d'une source sûre, date de 2023, porte sur les seules institutions financières, et préconise DNSSEC (et non les fonctionnalités comprises dans le pack Sécurité DNS+). Bref, pour moi Gandi a merdé.

    La première réponse de Gandi à ma demande RGPD ne répondait pas à l'ensemble de mes questions (alors que Gandi y était contraint par ledit RGPD), la suivante n'était pas à la hauteur, niant à moitié le caractère promotionnel du message, pour, ensuite, s'enfoncer dans le silence face à ma démonstration dudit caractère promotionnel. Je n'aime pas cette attitude : si Gandi se braque sur ce minuscule problème d'usage de données à caractère personnel (DCP), qu'est-ce que ça doit être lors d'atteintes plus sévères. Je ne peux plus avoir confiance en Gandi pour gérer mes DCP. Au-delà de la gestion de DCP, il s'agit de la non-reconnaissance d'une erreur. Quand une personne ou une entité s'y refuse, c'est généralement mauvais signe.


    À savoir lors d'un changement de bureau d'enregistrement

    Changement de bureau = renouvellement 1 an

    Si j'ai été aussi indécis et lent à changer de bureau d'enregistrement, c'est que je pensais que le prix du transfert n'englobait que celui-ci, et qu'il fallait donc le cumuler avec le prix du renouvellement. Du coup, il fallait une explosion des tarifs de Gandi pour que l'opération soit profitable (ce qui est devenu le cas depuis septembre 2024). Or, ce n'est pas le cas : usuellement, un transfert (changement de bureau) prolonge d'un an la durée d'expiration du nom de domaine (a priori, certains registres ont une politique différente).

    Le point de départ de cette prolongation diffère selon les registres. Certains ajoutent un an à la date habituelle de renouvellement. D'autres ajoutent un an à la date du transfert. Dans ce deuxième cas, le titulaire perd le pro-rota entre la date usuelle de renouvellement et la date de transfert. (Exemples deux paragraphes plus bas.)

    Tu trouveras des documentations, comme celle de BookMyName (Scaleway), qui affirment que l'Afnic (.fr, entre autres) ajoute un an à la date de transfert. Comme le consigne les guides des procédures de l'Afnic, si c'était le cas avant 2022, ce n'est plus le cas depuis fin 2022 (page 13) : l'Afnic ajoute un an à la date d'expiration.

    Je cite les guides de procédures de l'Afnic : « Changement date d’expiration : Oui. La date d’expiration du nom de domaine est prolongée d’une année. Par exemple si la date initiale d’expiration du nom de domaine est le 20/06/2022 et que le transfert du nom de domaine abouti la nouvelle date d’expiration du nom de domaine sera alors le 20/06/2023. ». Avant : « Oui. Par exemple si la date initiale d’expiration du nom de domaine est le 20/06/2016 et que la fin du transfer a lieu le 08/05/2016, la nouvelle date d’expiration sera le 08/05/2017 (prise en compte de la date de l’opération) ». Je peux témoigner que, désormais, c'est bien un an à partir de la date d'expiration.

    (J'ai signalé à BookMyName l'obsolescence de sa documentation, j'ai reçu l'habituelle réponse polie « balek, frérot » aka « merci, on regardera un jour peut-être ».)


    Levée de la restriction sur le transfert (changement de bureau d'enregistrement)

    Dans tes calculs sur la durée d'un changement de bureau d'enregistrement, il faut prendre en compte la levée de la protection contre les transferts (« clientTransferProhibited ») par ton bureau d'enregistrement actuel (sortant).

    Le délai d'attente semble être à la discrétion du bureau d'enregistrement sortant. Chez Gandi, si la MFA n'est pas activée, un délai d'attente automatisé de 3 jours (de minute à minute) est imposé.

    Là encore, tu trouveras des documentations obsolètes, comme celle de Gandi, qui affirment que l'Afnic ne propose pas de verrouillage contre les changements indésirés de bureau d'enregistrement. Pourtant, j'ai bien dû demander la levée de cette restriction et, dans les bases de données publiques, je constate sa présence (« eppstatus: clientTransferProhibited »). L'Afnic propose donc la protection contre les transferts.

    (J'ai signalé à Gandi l'obsolescence de sa documentation, j'ai reçu l'habituelle réponse polie « balek, frérot » aka « merci, on regardera un jour peut-être ».)


    Vigilance DNSSEC

    Comme je suis mon hébergeur DNS, je n'avais pas identifié ce point de vigilance, je l'ai découvert durant le transfert de mon premier nom de domaine. Je m'attendais à ce que seules les informations administratives de mon nom de domaine soient modifiées (« c'est désormais l'entité X qui gère la relation commerciale avec le titulaire »). Que nenni. Par défaut, un changement de bureau d'enregistrement entraîne un retrait de la délégation signée (c'est-à-dire de l'enregistrement de type DS dans la zone parente).

    C'est plutôt logique : pour la majorité des domaines, le bureau d'enregistrement assure également la fonction d'hébergeur DNS. Si DNSSEC est activé, c'est donc lui qui signe la zone. Il détient donc la clé privée. Dès lors, un changement de bureau entraîne un changement de clé privée et le nouveau bureau déclarera une nouvelle délégation signée au registre.

    Certains registres, comme l'Afnic (pages 12 et 13), mettent à disposition des bureaux d'enregistrement, une option permettant de préserver la délégation signée. L'ennui, c'est que les bureaux ne proposent pas à leurs clients de l'activer. En tout cas, BookMyName ne le propose pas (je lui ai signalé, j'ai reçu l'habituelle réponse polie « balek, frérot » aka « merci, on regardera un jour peut-être »).

    Conséquence : pour éviter une panne temporaire liée à DNSSEC (le temps que les données mises en cache par les serveurs DNS récursifs expirent), il faut déclarer la délégation signée au nouveau bureau d'enregistrement immédiatement après la fin du transfert. J'ai vérifié : en faisant ainsi, les délégations signées de mes domaines n'ont jamais cessé d'être diffusées par les serveurs DNS qui font autorité sur .info et .fr. (car ces zones ne sont pas modifiées en temps réel, mais à intervalle régulier fréquent, toutes les 15 minutes, par ex.).


    Choix d'un bureau d'enregistrement

    Je ne fais pas la distinction entre un bureau d'enregistrement (Gandi, BookMyName, etc.) et un revendeur (Infomaniak, LeBureau.coop), c'est-à-dire une entité qui se repose sur un bureau d'enregistrement. D'abord, car cela ne me paraît pas pertinent dans mon cas d'usage (mais ça peut l'être lorsque l'on veut maîtriser sa chaîne d'approvisionnement / ses dépendances). Ensuite, car l'information est difficile à trouver (surtout qui est le revendeur).

    Mes critères :

    • Gère .fr et .info ;

    • Soumission d'une délégation signée (DNSSEC) aux registres de ces deux extensions ;

    • Entité relevant du droit français (consommer « local » ; résolution aisée des litiges ; connaissance du droit applicable) ;

    • Location aux particuliers avec un processus automatisé de location & gestion (je ne veux pas de commerciaux, de chefs de projets, etc.) ;

    • Prix le plus bas possible ;

    • J'ai aussi retiré des points aux organismes qui ne mettent pas rapidement en avant leur grille tarifaire complète (toutes les extensions et tous les prix ‒ création, renouvellement, transfert, etc.), et nominale (hors promotions).



    L'Afnic propose un annuaire des bureaux d'enregistrement accrédités (pour les seuls domaines / extensions qu'elle gère, mais comme je veux conserver mon .fr et recourir à un unique bureau d'enregistrement pour l'ensemble de mes noms…). Néanmoins, il souffre de plusieurs limitations : il ne permet pas d'exclure (les agences web, les FAI, etc.) pour n'avoir que les vendeurs grand-public ; probablement afin d'éviter tout procès, la liste n'est pas triée, donc une même entité peut revenir dans plusieurs pages de résultats, et d'autres entités peuvent ne pas apparaître ; la liste ne semble pas être à jour. (J'ai signalé tout cela à l'Afnic, j'ai reçu l'habituelle réponse polie « balek, frérot » aka « merci, on regardera un jour peut-être ».)

    Ainsi, je conseille plutôt la liste des bureaux d'enregistrement accrédités par l'Afnic mise à disposition en Open Data (jeu de données « I »).

    Je préfère éviter OVH : gros acteur = dangereux ; je ne veux pas mettre tous mes œufs dans le même panier (j'ai d'autres services là-bas) ; il y a 10 ans, la console d'administration ne proposait pas le niveau de service que j'attendais et, en interne, l'équipe en charge du DNS était injoignable, ce qui est mauvais signe.

    Hetzner (Allemagne), Infomaniak (Suisse), Amen (actionnaire italien, groupe européen), IONOS / ex-1&1 (groupe allemand), hosteur.com (Suisse), Ikoula (Sewan, gros groupe européen dépassant Scaleway), PulseHeberg (développement à l'international dont aux États-Unis d'Amérique, donc risque d'application de lois ricaines), etc., ne remplissent pas mon critère de nationalité. Je précise que le site web d'Amen est inutilisable sans BootstrapCDN et donc sans transfert de DCP vers les États-Unis, que la grille tarifaire complète est difficilement accessible, et que les tarifs sont proches de ceux de Gandi en 2024. Le tarif proposé par Hosteur.com sur le .info, 11,99 € HT, surpasse toute la concurrence. PulseHeberg propose un prix décent pour le renouvellement d'un .fr mais ne gère pas de .info.

    Nuxit, Ikoula : tarifs élevés à mes yeux (.fr : le prix HT d'un renouvellement 1 an est quasiment le double du prix à la sortie de l'Afnic ; .info : 60 % de plus que les gros du marché). De plus, j'ai eu un léger désaccord avec Celeste, proprio de Nuxit, dans le passé (je ne souhaite pas développer).

    LeBureau.coop : tarifs prohibitifs à mes yeux (.fr : le prix HT d'un renouvellement 1 an hors hébergement est quasiment le quadruple du prix Afnic ; .info : plus du double de ce que propose les gros du marché) alors que je ne crois plus aux initiatives coopératives ; pas assez mature pour que je me lance (absence des mentions obligatoires RGPD, formulaire de contact pour devenir sociétaire et client donc pas de processus de location automatisé, etc.).



    Au final, j'ai choisi BookMyName, marque de Scaleway.

    Ce choix a été difficile, car, en sus qu'il est un gros acteur économique (= danger), je n'ai aucune confiance en Scaleway en matière de protection de mes DCP :

    • Scaleway fait partie du groupe Iliad. En 2024, les sociétés sœur Free et Free Mobile sont responsables d'une fuite massive de DCP ;

    • Ces 5 dernières années, la Commission nationale de l'informatique et des libertés (CNIL) a mis les mêmes sociétés à l'amende à plusieurs reprises (sources : 1, 2) ;

    • En 2022, il m'a fallu insister auprès du délégué à la protection des DCP (DPO) de Scaleway pour n'obtenir, au final, que des réponses médiocres. Les réponses médiocres ou lunaires sont toujours à l'ordre du jour en 2025. Le DPO ne semble avoir aucune volonté ni influence / pouvoir (c'est pourtant une obligation du RGPD, articles 37 à 39) ;

    • Le DPO de Free Mobile (celui d'Iliad, a priori) n'a pas répondu entièrement et dans les délais prescrits à ma demande d'accès (article 15 du RGPD) de fin 2024.

    J'ai décidé de prioriser le prix. Le choix contraire aurait été un sacrifice inutile puisque très peu d'entités s'attachent véritablement à la protection de nos DCP.



    Quelques retours sur BookMyName :

    • Comme je le savais, l'interface de gestion de mes noms de domaine est minimaliste, délabrée, mais elle répond à mes besoins ;

    • BookMyName ne propose pas le paiement par virement bancaire, uniquement CB (sa FAQ mentionne Paypal, mais ça ne m'a pas été proposé) ;

    • L'assistance, à qui j'ai suggéré d'ajouter une option pour permettre la conservation de la délégation signée et d'actualiser leur FAQ à propos du changement de la date d'expiration après transfert d'un .fr, n'est pas la plus vive d'esprit, n'analyse pas vraiment la demande et les ressources pointées, et s'exprime dans un français plus qu'aléatoire (même l'IA générative fait mieux).


    Déroulement des opérations

    Création d'un compte BookMyName

    La fourniture d'un numéro de téléphone est obligatoire. J'en ai donné un dans la plage réservée aux numéros figurant dans une œuvre audiovisuelle (page 83). Contrairement au 01 23 45 67 89, ces numéros ne peuvent pas être attribués. Oui, je sais que l'ICANN impose la fourniture de véritables coordonnées sinon fin de la location du nom de domaine, blablabla, mais je n'ai vraiment pas envie de me faire emmerder par téléphone, ma tranquillité d'abord, j'ai déjà donné mon adresse postale, basta. De plus, lorsque BookMyName a vérifié le titulaire de mon .info, il m'a demandé de confirmer uniquement mon nom, prénom et adresse emails.

    Lors de la création du compte, on nous parle d'un lien dans un email pour en confirmer la création. Or, le lien dans l'email renvoie vers la procédure de perte du mdp… Je déteste toujours autant les instructions qui diffèrent de ce qu'il faut effectuer, ça illustre toujours un manque de soin.


    Désactiver la protection contre le changement indésiré de bureau d'enregistrement

    Depuis le bureau d'enregistrement sortant (actuel).

    Chez Gandi, dans la console d'administration, choisir le domaine, onglet « Transfert sortant », bouton « désactiver Protection contre le transfert ». Si tu n'as pas activé la MFA (authentification multi-facteurs), tu pars pour 3 jours d'attente de minute à minute (Gandi envoie un email). Le message d'information est ambigu et évoque à la fois un délai maximal de 3 jours (comme si un humain allait agir avant) et un délai ferme…

    Le retrait du verrou sur mon .info a entraîné le retrait de celui sur mon .fr, ce qui est inattendu (je peux vouloir transférer un seul nom, il m'apparaît difficile de déterminer si l'usage le plus fréquent est de transférer tous ses domaines). Je l'ai signalé à Gandi, j'ai reçu l'habituelle réponse polie « balek, frérot » aka « merci, on regardera un jour peut-être ».

    Le message « DNSSEC est actuellement activé sur ce domaine. Veuillez désactiver DNSSEC avant de lancer un transfert sortant pour éviter d'éventuels futurs problèmes. » n'est pertinent que si Gandi est aussi l'hébergeur DNS.

    La présence ou l'absence de ce verrou se constate aussi dans les bases de données publiques consultables avec les protocoles whois ou RDAP. Pour un .info : « Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited » (verrou) ou « Domain Status: ok https://icann.org/epp#ok » (absence de verrou et de tout autre état). Pour un .fr : « eppstatus: clientTransferProhibited » (verrou) ou « eppstatus: active (absence de verrou et de tout autre état).


    Transfert / changement de bureau

    Mon premier domaine

    Il s'agit de mon .info. Je ne fais rien d'important avec (ce shaarli peut disparaître, osef), donc je décide de transférer mon nom chez BookMyName un vendredi en fin de journée. (Un changement de bureau est entièrement automatisé, mais si ça foire, je peux me retrouver sans domaine jusqu'au lundi).

    Je récupère le code d'autorisation auprès du bureau d'enregistrement actuel (sortant). Chez Gandi : dans la console d'administration, choisir le domaine, onglet « Transfert sortant ».

    Je le communique au nouveau bureau d'enregistrement (entrant), et je paye la facture. Le nouveau bureau (BookMyName) envoie un email de confirmation à l'adresse emails déclarée chez lui (je n'ai pas compris l'intérêt de cette étape, mais, a priori, il s'agit d'un formulaire d'autorisation, peut-être imposé par Identity Digital, ex-Afilias, le registre de .info). Je confirme. Le suivi des opérations sur l'interface web de BMN affiche « Demande en cours au registre ». Dans la base de données publique : « Domain Status: pendingTransfer https://icann.org/epp#pendingTransfer ».

    Après 12 minutes, je reçois un email de Gandi (bureau sortant) qui me demande de confirmer (ou d'attendre 5 jours pour une confirmation automatique). Je confirme.

    Le changement de bureau est terminé. Le nom disparaît de ma console d'administration Gandi. Dans la base de données publique : « Registrar: Scaleway SAS » , « Domain Status: transferPeriod https://icann.org/epp#transferPeriod » (période de grâce de 5 jours en cas de problème durant lequel le bureau entrant peut se faire rembourser par le registre).

    J'effectue les vérifications que j'avais planifiées :

    • Mes données à caractère personnel ne sont pas publiées dans les bases de données publiques (vérification avec les protocoles whois ou RDAP) : OK ;

    • L'hébergement est bien délégué à mes serveurs DNS (whois, champ « Name Server » ; RDAP, tableau « nameservers »[*]) : OK ;

    • Présence de mon glue record (RDAP : nameservers/ipAddresses ou interroger les serveurs qui font autorité pour .info) : OK ;

    • Présence de la délégation signée (whois, attribut « DNSSEC: unsigned » ; RDAP, « secureDNS ») : pas OK ! Une requête DNS adressée aux serveurs DNS qui font autorité pour .info (dig NS info puis dig @d0.info.afilias-nst.org. DS guiguishow.info) me montre qu'elle est, en pratique, toujours en place, mais elle va disparaître lors de la prochaine génération de la zone info. Je déclare donc ma délégation signée dans l'interface de gestion de BookMyName (bureau entrant) et je retrouve un « DNSSEC: signedDelegation » ;

    • Vérifier la prolongation de la date d'expiration de mon domaine (whois, champ « Registry Expiry Date » ; RDAP : jq '.events[] | select(.eventAction=="expiration")') : OK, elle a été incrémentée d'une année à compter de la date usuelle de renouvellement.

    Le changement de bureau d'enregistrement a donc duré 30 minutes (+ 3 jours pour lever l'interdiction de changement de bureau en l'absence de MFA).

    Le lendemain, puisqu'il s'agit de mon premier nom de domaine en gestion chez BookMyName, cette entité me demandera de vérifier mes coordonnées (nom, prénom, adresse emails) en tant que titulaire de ce compte (procédure WAPS de l'ICANN).

    [*] : pour RDAP, je donne le nom de l'attribut dans le fichier JSON, chaque client RDAP (OpenRDAP, nicinfo, etc.) peut utiliser un label différent pour présenter l'information à l'utilisateur.


    Mon deuxième domaine

    Il s'agit de mon .fr. Mon adresse email principale, ma messagerie instantanée, etc. sont dans ce domaine, donc je décide d'attendre le prochain jour ouvré avant d'en confier la gestion à BookMyName (comme ça, en cas de dysfonctionnement technique durant le transfert, je peux légitimement supposer que des humains pourront me dépanner rapidement).

    Je récupère le code d'autorisation. Je le communique au bureau entrant. Je paye. Cette fois-ci, il ne m'envoie pas de demande d'autorisation / confirmation. « Demande en cours au registre ». Dans la base de données publique : « pending: TRANSFER » « eppstatus: pendingTransfer ».

    Moins d'une minute plus tard (rien à voir avec les 12 minutes pour .info), le bureau sortant m'envoie un email pour confirmer l'opération, ce que je fais.

    Le changement de bureau est terminé. Dans la base de données publique : « registrar: SCALEWAY », « status: transferPeriod », « eppstatus: active ». Après quelques dizaines de secondes de plus : « eppstatus: clientTransferProhibited ». Contrairement à mon .info, mon .fr a mis quasiment 15 minutes avant de disparaître de la console d'administration de Gandi (bureau sortant).

    J'effectue donc les vérifications que j'avais planifiées :

    • Mes données à caractère personnel ne sont pas publiées dans les bases de données publiques (vérification avec les protocoles whois / RDAP) : OK ;

    • L'hébergement est bien délégué à mes serveurs DNS (whois, attributs « nserver » ; RDAP, tableau « nameservers ») : OK ;

    • Présence de mon glue record (RDAP : nameservers/ipAddresses ou interroger les serveurs qui font autorité) : OK ;

    • Présence de la délégation signée (whois, attribut « key1-tag » ; RDAP, « secureDNS ») : pas OK ! Une requête DNS adressée aux serveurs DNS qui font autorité pour .fr (dig NS fr puis dig @d.nic.fr. DS <DOMAINE>) me montre qu'elle est, en pratique, toujours en place, mais elle va disparaître lors de la prochaine génération de la zone fr. Je déclare donc ma délégation signée dans l'interface de gestion de BookMyName (bureau entrant) et je retrouve un « key1-tag » ;

    • Vérifier la prolongation de la date d'expiration de mon domaine (whois, champ « Expiry Date » ; RDAP, jq '.events[] | select(.eventAction=="expiration")') : OK, elle a été incrémentée d'une année à compter de la date usuelle de renouvellement.

    Le changement de bureau d'enregistrement a donc duré moins de 15 minutes (+ 3 jours pour lever l'interdiction de transfert en l'absence de MFA).

    Rigolo : l'Afnic conserve les différents objets de type « nameserver » créés par les différents bureaux et les rend accessibles via le protocole RDAP.



    Au final, le renouvellement pour un an de mes deux noms de domaine, un .info et un .fr, m'a coûté 28,11 € TTC chez Scaleway, au lieu de 100,78 € TTC chez Gandi, soit 3,6 fois moins. Scaleway pratique les tarifs que Gandi pratiquait en 2014. :O

    Sun May 4 15:21:55 2025 - permalink -
    - http://shaarli.guiguishow.info/?hCft1w
  • Choisir sa pauvreté ?

    Dans le courrier des lecteurs du numéro 116 (février - avril 2025) de Fakir :

    Jean-Baptiste nous raconte son mode de vie, avec quelques gros angles morts quand même, mais qui esquisse peut-être un futur…

    À longueur de pages, on lit dans Fakir des témoignages de gens qui se sont flingué la santé à l'usine et qui n'arrivent pas à remplir leur caddie. Or, personne ne nous oblige à faire ce qu'on fait (ou à continuer de le faire). Je développe. Ici, dans la diagonale du vide, avec 500 € par mois, t'es le roi du pétrole (ou presque) si t'es proprio de ta bicoque (qui coûte pas cher). Il suffit de s'installer dans un centre-bourg à moitié vide (comme je l'ai fait), avec tous les commerces (je sais, ça devient rare), comme ça on évite de prendre la bagnole (gouffre financier]. La bouffe est pas chère (sauf si on est assez bête pour aller au supermarché). On peut se faire prêter un peu partout des bouts de terrain pour faire un potager (les vieux n'ont plus la force). Le troc marche à fond (légumes, services, etc.), on mutualise les bagnoles, les perceuses, les coups de main pour couper le bois, etc. Y a même du taf chez les artisans (les garagistes du coin s'arrachent les cheveux), dans les commerces et l'aide à la personne bien sûr. C'est sûr, c'est pas la vie de tous ces crétins de richards décérébrés (c'est beaucoup mieux d'ailleurs : moi je vois des loutres et des castors). En fait, je pense qu'on a tous des petits interrupteurs dans la tête, et qu'il suffit de basculer de « je subis ma pauvreté » à « je choisis ma pauvreté ». C'est vachement mieux, on a même l'impression d'être riches, quelque part.

    Ça rejoint les propos du diplomate iranien Majid Rahnema dans son livre Quand la misère chasse la pauvreté rapportés dans le numéro 105 de Fakir : la pauvreté est une façon de vivre sobrement mais dignement, en indépendance. La misère, c'est perdre son pouvoir, dépendre économiquement d'une aide extérieure qui ne permet même pas de vivre dignement.

    Fri Apr 18 22:13:10 2025 - permalink -
    - http://shaarli.guiguishow.info/?GgML_A
  • Intel Wireless 7260 comme point d'accès

    Pas de point d'accès en 5 Ghz (802.11ac) avec une carte Wi-Fi Intel Dual Band Wireless-AC 7260.

    Mais on peut déjà passer de 802.11g à 802.11n avec la conf' hostapd qu'il donne (attention : TKIP < CCMP). Je passe d'un débit moyen de 3 Mo/s à 12 Mo/s.

    Config hostapd :

    interface=<CHOISIR>
    driver=nl80211
    
    ssid=<CHOISIR>
    hw_mode=g
    channel=6
    
    # 802.11n
    wmm_enabled=1
    ieee80211n=1
    ht_capab=[HT40-][HT40+][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40][DSSS_CCK-40][DSSS_CCK-40]
    
    auth_algs=1
    wpa=2
    wpa_passphrase=<CHOISIR>
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=CCMP
    rsn_pairwise=CCMP
    Mon Apr 14 10:17:00 2025 - permalink -
    - https://vincent.bernat.ch/fr/blog/2014-intel-7260-access-point
  • Messagerie Signal et turn.cloudflare.com

    Je me note ça : la messagerie Signal se repose sur turn.cloudflare.com pour STUN (découverte de la présence d'un NAT et de l'adresse IP publique). Source : point d'accès Wi-Fi (hostapd) + wireshark.

    J'en retire pas grand-chose. Oui, ça envoie l'IP publique à Cloudflare et ça lui révèle les dates+heures des tentatives d'appel, mais bon, c'est anecdotique. D'un autre côté, ce n'est pas sorcier de proposer un serveur STUN, surtout en comparaison d'un logiciel de messagerie texte+audio+vidéo… Ça jette le doute : si Signal externalise pour si peu, peut-on avoir confiance ? On est dans l'habituelle flemme de faire soi-même…

    En revanche, je me demande si Signal utilise turn.cloudflare.com comme serveur TURN auquel cas les flux médias (audio et/ou vidéo) seraient relayés par Cloudflare. Le contenu des communications serait toujours chiffré, mais Cloudflare « saurait » qui parle à qui, quand, à quelle fréquence, etc. Dans ses paramètres, Signal propose une option pour relayer les flux médias via son infrastructure, donc je ne crois pas à l'utilisation du serveur TURN de CF. mais je vérifierai à l'occasion.

    Sun Apr 13 14:27:54 2025 - permalink -
    - http://shaarli.guiguishow.info/?bLfGag
  • Emplacements des centres de données / data centers en France avec OpenStreetMap et l'API OverPass

    Requête OverPass API (lien direct) :

    /*
    This has been generated by the overpass-turbo wizard.
    The original search was:
    “telecom=data_center in France”
    */
    [out:json][timeout:25];
    // fetch area “France” to search in
    {{geocodeArea:France}}->.searchArea;
    // gather results
    nwr["telecom"="data_center"](area.searchArea);
    // print results
    out geom;

    Évidemment, cela repose sur la qualité des données d'OSM. Il manquait au moins au centre de données (je l'ai ajouté).

    Via https://mastodon.gougere.fr/@bortzmeyer/114330101067096155.

    #datacenters

    Sun Apr 13 14:04:15 2025 - permalink -
    - http://shaarli.guiguishow.info/?IlZQlQ
  • Bug Report: Gnome Calculator (version 43.0.1) on Debian 12 (#451) · Tickets · GNOME / gnome-calculator · GitLab

    La calculette graphique de GNOME, gnome-calculator, plante (son affichage gèle) à son ouverture si elle ne parvient pas à récupérer des taux de change monétaires depuis la BCE et le FMI. LOL. La gestion des erreurs, sérieux… Pas cool non plus, les requêtes réseau à l'insu de l'utilisateur…

    Il y a quelques semaines, j'avais contourné avec gsettings set org.gnome.calculator refresh-interval 0. Source. Cela ne fonctionne plus aujourd'hui.

    Il faut se déconnecter du réseau, ouvrir la calculette, aller dans le menu, Préfèrences, et choisir la valeur « Jamais » pour le paramètre « Intervalle de rafraîchissement des taux de changes ».

    Sun Apr 13 14:03:37 2025 - permalink -
    - https://gitlab.gnome.org/GNOME/gnome-calculator/-/issues/451
  • Signal ou Silence ? Deux messageries chiffrées, laquelle choisir ? - GuiGui's Show

    J'ai réinstallé Signal :

    • Désormais, à la première utilisation, il demande « Qui peut me trouver grâce à mon numéro de téléphone ? », et on peut mettre personne. On peut trouver un autre utilisateur par pseudo. Bien ;

    • Il faut toujours un numéro de téléphone mobile pour recevoir un SMS de validation. En sus d'un hcaptcha -_- ;

    • Il va toujours fouiller dans le carnet d'adresses en promettant que c'est chiffré et que Signal n'a pas la clé. Je préfère qu'il ne fouille pas, donc je l'ai enfermé dans un contact scope de GrapheneOS. Le reste est également inchangé.
    Tue Apr 8 17:57:56 2025 - permalink -
    - http://shaarli.guiguishow.info/?TNWQwA
  • "Savez vous que le CO2 pollue ?" - Broute - CANAL+ - YouTube

    « Vous me l'apprenez, madame Lucette » :'D

    Ce sketch tourne dans ma tête depuis des jours. Je pensais que ça viendait du Groland, mais non, c'est de Broute.

    Wed Apr 2 20:10:56 2025 - permalink -
    - https://www.youtube.com/watch?v=Wxm766Yy1NA
  • Réparer Linux Mint, Windows 10, et un multiboot des deux

    On fait appel à moi pour réparer un système GNU/Linux.

    Linux Mint 21.2. Gros affichage (en réalité, 800x600), plus de réseau WiFi, plus d'imprimante USB, et plus de son. A priori, suite à une mise à jour. Étrange car la plus récente version majeure de Mint (22.1) n'est pas installée, donc c'était une màj mineure, donc peu probable qu'elle ait tout cassé.

    Puisque màj, je me dis qu'elle a peut-être été interrompue, mais apt install -f me dément.

    Je me dis que, puisque tout est cassé, autant mettre à jour en Mint 22.1. Ça ne change rien.



    Pour le WiFi, lspci n'affiche aucun pilote en cours d'utilisation. Ha, idem pour le réseau filaire (qui est donc HS). Je passe sur un liveUSB Mint. Là, tout fonctionne (affichage, WiFi et filaire, imprimante, son). J'utilise apt-file pour identifier dans quels paquets sont les pilotes affichés par lspci pour le réseau (WiFi et filaire) : linux-modules-extra-<version_noyau>. Je chroot dans le Mint installé, j'installe le paquet, je redémarre : WiFi et filaire OK.

    Origine de ce problème ? Aucune idée. Sur le forum web de Mint, on trouve l'idée que, lors d'une mise à jour, le paquet linux-modules-extra-<version_noyau> correspondant au noyau qui sera installé, est installé, par dépendance, par le paquet linux-image-generic, sauf s'il est manquant. Dans mon cas, il était présent, donc ce n'est pas la bonne explication. Je n'en ai pas d'autre.



    Concernant l'affichage, la disponibilité de la seule définition 800x600 indique que c'est le pilote ultra-minimaliste qui est en action. Pourtant, le pilote officiel de Nvidia est installé. La carte graphique, une Geforce GT 545, est prise en charge jusqu'à la version 390 du pilote officiel (pour savoir quelle version du pilote convient à telle carte graphique, il suffit de faire semblant de télécharger le pilote depuis le site de Nvidia). Mint 22.1 livre la version 6.8 de Linux. Or, la version 390 du pilote officiel Nvidia est incompatible avec Linux 6.

    J'avais constaté que le liveUSB Mint 22.1 utilise le pilote libre nouveau. J'ai donc désinstallé xserver-xorg-video-nvidia-390, nvidia-driver-390, nvidia-utils-390, nvidia-settings, etc. Mais toujours rien après redémarrage. lspci affiche deux pilotes potentiels (dont aucun en cours d'utilisation) : nvidiafb et nouveau. J'en déduis que nvidiafb entre en conflit. apt-file search le trouve dans aucun paquet donc j'empêche son chargement dans le noyau. Après redémarrage, nouveau a pris la main et l'affichage est impec.

    Là encore, aucune idée de l'origine du problème (Linux Mint 21.2 a un noyau 5.15, donc le pilote Nvidia officiel aurait dû fonctionner avant ma mise à jour vers 22.1 avec Linux 6.8).



    Le son et l'imprimante fonctionnent sans intervention de ma part.



    Je remarque que le gestionnaire Bluetooth, Thunderbird et un autre logiciel s'ouvrent automatiquement à l'ouverture de session. L'utilisatrice me dit qu'elle a jamais voulu ça. Je fais le ménage depuis le Menu, Préférences, Applications au démarrage.



    Linux Mint est installé à côté de Windows 10 (dual boot). Tout porte à croire que winwin fonctionnait avant mon intervention puisque, le Mint étant cassé depuis des semaines, l'utilisatrice l'utilisait en secours. Après mon intervention, il ne démarre plus. Quelle que soit l'entrée choisie dans le menu de démarrage de l'EFI, ça démarrage Linux. Je ne vois pas comment j'aurais pu casser quelque chose avec le peu de commandes que j'ai utilisé… Erreur de ma part : ne pas avoir collecté plus d'informations avant de travailler (constater que winwin démarre, avec quelle entrée du menu EFI, etc.).

    Chaque système est installé sur un disque dur dédié. Même si je débranche le disque Linux, l'EFI lance GRUB qui se plaint qu'il ne trouve pas le disque avec tel UUID (le disque Linux, donc). L'utilisatrice me dit que winwin démarrait automatiquement et qu'elle utilisait F9 (menu de démarrage) pour démarrer Mint (je l'ai vu faire) en sélectionnant « SATA 0 ». Donc winwin 10 serait en mode legacy / MBR (sinon il faudrait sélectionner Windows Boot Manager dans les sources EFI, mais il n'y figure pas) ? Étrange. Sur le disque dur dédié à winwin, il y a une partition qui a le drapeau boot et qui contient « bootmgr.exe », « bootnxt », « bootsect.bak », l'arborescence « Boot/BCD », etc. Une autre partition contient aussi « bootmgr.exe » et des documents de l'utilisatrice (parce que pourquoi pas ?). La partition système contient « bootnxt » et un dossier « Boot » vide. Le disque winwin a une table des partition au format MBR, celle du disque dur dédié à Linux est au format GPT. Seul le disque Linux a une partition EFI (aka ESP), mais elle ne contient pas l'arborescence « EFI/Microsoft/Boot » (et donc pas « bootmgfw.efi », « BCD », etc.). La commande efibootmgr affiche aucune entrée propre à Windows. J'ai essayé de forcer le prochain démarrage (efibootmgr -n <numéro_entrée>) sur la ligne louche la plus probable (« BBS USB »), sans succès. Bref, c'est le foutoir, et j'hésite entre un winwin MBR ou EFI. Seules certitudes : la commande os-prober ne détecte pas winwin, et le menu GRUB était désactivé (« GRUB_TIMEOUT_STYLE=hidden » dans /etc/default/grub) donc l'utilisateur choisisait son système depuis le menu de démarrage de l'EFI.

    Je débranche le disque dur Mint de l'ordinateur, je démarre sur une clé USB d'installation de winwin 10. Je teste l'outil de réparation du démarrage. Évidemment, il ne parvient pas à corriger quoi que ce soit. J'utilise bootrec /fixmbr : l'ordi démarre toujours sur le GRUB présent sur le disque dur alors que je m'attendais à une réécriture du MBR avec le gestionnaire de démarrage de winwin. bootrec /fixboot termine en « Accès refusé ». D'après plusieurs sources sur le web, c'est le cas depuis la version 1709 de winwin 10 donc depuis 2017. Je peine à croire à un dysfonctionnement, je pense que c'est voulu par Microsoft. Reste à comprendre pourquoi, et pourquoi sa documentation n'est pas à jour. Consolation : bootrec /ScanOS détecte winwin sur la bonne partition.

    Je tente de chaîner l'amorceur winwin à GRUB en pointant sur le début de chaque partition du disque winwin (directive chainloader +1 de GRUB après avoir défini la racine) : échec (« Invalid EFI file path »). Je tente de pointer sur les binaires bootmgr que j'ai identifié dans plusieurs partitions du disque winwin (directive GRUB : ntldr /bootmgr) : échec (« ntldr: command not found »). C'était voué à l'échec : GRUB ne permet pas de chaîner du non-EFI quand il est lancé en mode EFI, et inversement, et c'est logique (source 1, source 2). Mais sur un malentendu…

    Depuis l'invite de commande d'une clé d'installation winwin 10, je me décide à faire ce que je ne voulais pas : reconstruire l'arborscence Microsoft sur la partition EFI (du disque Linux, donc). Je ne le voulais pas car ça signifie que les deux systèmes, Mint et winwin, ne sont plus véritablement indépendants : sans le disque dur Linux, winwin ne peut pas démarrer… Pour ce faire, j'ai adapté ce tuto : cd /d M:\EFI ; mkdir Microsoft\Boot ; cd Microsoft\Boot ; bcdboot C:\Windows /l fr-fr. Au redémarrage, le menu de démarrage de l'EFI présente une nouvelle entrée dans la rubrique « Sources de démarrage EFI » : « Windows Boot Manager ». Winwin démarre.

    Depuis le Mint installé, os-prober détecte désormais winwin (et l'ajoute au menu GRUB lors d'un update-grub, sous réserve qu'il soit configuré pour le faire (« GRUB_DISABLE_OS_PROBER=false » dans /etc/default/grub.

    Winwin étant une espèce invasive, dès qu'on démarre sur lui, ce n'est plus GRUB qui a la main lors des redémarrages successifs. J'ai désactivé le démarrage rapide de winwin (fast startup), sans succès. J'ai pas creusé plus loin. J'ai même oublié de vérifier l'ordre de démarrage dans l'EFI (en tout cas, dans le menu de démarrage du même EFI, winwin occupe la première place devant Mint). Pas grave, l'utilisatrice a l'habitude de démarrer Mint avec F9 (menu de démarrage EFI), j'ai remis comme c'était, aucun poids sur ma conscience.

    Là encore, aucune idée sur l'origine du problème. Lors de la mise à jour vers Mint 22.1, y a-t-il eu un grub-install automatique qui a détruit l'amorceur winwin sur le disque dur dédié winwin ? Un update-grub qui a changé la config du GRUB du disque Linux (vers lequel pointe le MBR du disque winwin) ? Un effacement de l'arborescence Microsoft sur la partition EFI ? Tout cela paraît improbable.



    L'utilisatrice me dit qu'il n'y a plus de son sous winwin. Forcément, quand on branche les haut-parleurs sur le port microphone de l'ordi… Mais Linux fait avec. :D J'avais déjà vu ça.

    Sun Mar 16 20:23:37 2025 - permalink -
    - http://shaarli.guiguishow.info/?vf3qNw
  • Quelques syntaxes Sieve

    Sieve est un langage de script de manipulation d'emails côté serveur. On peut classer des emails dans un dossier, écrire un répondeur, ignorer des spams, évaluer le retour d'un antivirus, chiffrer les emails entrants (avec un plugin, pas juste du Sieve), etc. RFC 5228. Beaucoup d'extensions : RFC 5233 pour travailler plus simplement sur des sous-adresses (étiquettes), RFC 5232 pour manipuler les drapeaux IMAP, RFC 5230 pour un répondeur, RFC 5235 pour évaluer simplement le résultat d'un antivirus / antispam, etc.

    Les utilisateurs peuvent envoyer leurs scripts à leur serveur emails avec le protocole ManageSieve (je ne le fais pas, je passe par SSH).

    Comme toujours, il y a la norme technique et les implémentations. Pour ma part, j'utilise Pigeonhole, l'implémentation de Sieve de Dovecot (qui, en sus d'être un serveur IMAP / POP peut aussi être un MDA, un agent local de livraison des emails, qui s'occupe des derniers kilomètres, comme un facteur humain, nommé dovecot-lda). Documentation. Exemples. Autres exemples.

    Un script Sieve est compilé (en une représentation binaire) afin d'accélérer son exécution. Dovecot y procède si le binaire n'existe pas (et on peut utiliser la commande sievec pour le faire nous même), c'est le fichier ~/.dovecot.svbin (qu'on peut lire avec sieve-dump).

    Ci-dessous, je note les quelques syntaxes que j'utilise.


    Structure

    [] : liste de chaînes de caractères. On peut bosser sur plusieurs entêtes et/ou plusieurs valeurs en une expression.
     

    require : charger des extensions. Ex. : require ["fileinto", "envelope", "subaddress", "imap4flags", "body"];
     

    if / elsif / else
     

    if not
     

    if anyof (condition_1, condition_2) : OR (« ou » logique), une seule condition suffit
    if allof (condition_1, condition_2) : AND (« et » logique), il faut remplir toutes les conditions


    Commandes de test dans les conditions

    Quelques commandes de test (en sus de not, anyof et allof qui figurent déjà ci-dessus :

    • envelope (nécessite le chargement de l'extension du même nom) : travailler sur l'enveloppe (MAIL FROM, RCPT TO, etc.)

    • header : travailler sur un ou plusieurs entête de l'email

    • address : sous-ensemble de header, portant uniquement les adresses (expéditeur, destinataire, copie, etc.)

    • body : travailler sur le corps de l'email

    • exists (un entête existe), size, etc.
       

    if header :is "Subject" "Check out my profile on LinkedIn" : si le sujet est « Check out my profile on LinkedIn »
    if header :contains "Subject" "Check out my profile on LinkedIn" : si le sujet contient, entre autres la chaîne « Check out my profile on LinkedIn »
     

    La comparaison entre un entête ou le corps de l'email et une chaîne de caractère n'est pas sensible à la case (parce que la norme du format des emails l'impose). Y compris les adresses emails (dont la partie locale est sensible à la case, pour rappel). Pour avoir une sensibilité à la case : if header :comparator "i;octet" :contains "Subject" "LoLmDr" / if address :comparator "i;octet" :localpart :is "From" "ToTo".
     

    if address :is "From" "invitations@linkedin.com"
    if address :contains "From" "@newsletter.voyages-sncf.com" / if address :domain :is "From" "newsletter.voyages-sncf.com" : comparer uniquement le domaine (inversement, il existe :localpart)
     

    if header :contains "From" "quelquechose" : chercher plus librement dans tout le From (ou dans le To ou…), pas juste dans l'adresse. J'y ai déjà eu recours quand address ne matchait pas sur le domaine d'une adresse pour une raison qui m'échappait.
     

    if address :is "To" "toto@example.com" / if header :is "To" "toto@example.com"
    if envelope :is "To" "toto@example.com" / if header :is "Delivered-To" "toto@example.com" : quand l'adresse de destination ne figure pas dans les entêtes (copie cachée, alias, liste, etc.)
     

    if header :contains "List-Id" "nomliste.lists.example.com" : quand l'email provient d'une liste de diffusion précise
     

    if exists "List-ID" : l'email provient d'une liste de diffusion (sans chercher laquelle)
     

    if address :contains "To" "+test" / if address :detail :is "To" "test" / if envelope :contains "To" "+test" / if envelope :detail :is "To" "test" : travailler sur une étiquette / sous-adresse (« test » dans « toto+test@example.com »). (Les 2e et 4e syntaxes nécessitent l'extension subaddress. La 4e nécessite de configurer Postfix pour transmettre l'adresse complète à Dovecot-lda, « toto+test@example.com » au lieu de « toto@example.com » en laquelle Postfix l'aura résolu.)
     

    if body :contains "blablabla" (nécessite l'extension du même nom)
     

    Il existe également l'extension regex.
     

    L'ordre des paramètres d'une commande n'est pas important : if address :is :domain :comparator "i;octet" "From" "example.com" = if address :comparator "i;octet" :domain :is "From" "example.com", alors que seule la 2e respecte strictement le RFC. Évidemment, il ne faut pas inverser l'entête sur laquelle on travaille et sa valeur (ex. de truc foireux : if header :is "example.org" "From"), car le compilateur ne les détecte pas tous (comme l'exemple donné ici), et c'est logique. Le type de comparaison (exacte avec :is, sous-chaîne avec :contains, ou métacaractères / joker avec :matches) est optionnel et vaut :is par défaut, mais je trouve que ne pas l'indiquer rend la règle illisible.


    Actions

    Toutes les actions doivent être suivies d'un point-virgule.

    discard : ignorer un email (il disparaît)
     

    fileinto "dossier" (nécessite l'extension fileinto) : déplacer l'email dans le dossier nommé « dossier »
     

    setflag "\\Seen" (nécessite l'extension imap4flags) : marquer l'email comme lu. Il doit être positionné avant un fileinto. / fileinto :flags "\\Seen" "dossier"
     

    stop : ne pas poursuivre l'exécution du script car on a fait tout ce qu'on voulait
     

    Il existe aussi redirect, vacation (répondeur, cf. ci-dessous), etc.


    Commandes utiles

    Pour tester un script (aussi bien sa syntaxe que son effectivité), Dovecot propose la commande sieve-test <chemin/vers/script/sieve> <email_à_tester>. (Évidemment, le script sera compilé, donc analysé en entier, donc toute erreur de syntaxe sera remontée, même si l'email ne déclenche qu'un sous-ensemble.) Si l'on veut juste tester la syntaxe, on peut uniquement compiler le script : sievec .dovecot.sieve.

    Pour appliquer un script Sieve sur des emails déjà réceptionnés : sieve-filter (attention : le manuel exige d'être très prudent, bugs, tout ça).


    Exemple de répondeur

    Aeris avait mis à disposition le script Sieve suivant qui envoie un email à toute personne le contactant avec une adresse email hébergée par un GAFAM. Je le recopie ci-dessous. Dovecot n'envoie pas l'email en réponse à une liste de diffusion et autres messages de masse (source).

    if anyof (
            address :is :domain "From" "gmail.com",
            address :is :domain "From" "live.com",
            address :is :domain "From" "msn.com",
            address :is :domain "From" "hotmail.com",
            address :is :domain "From" "hotmail.fr",
            address :is :domain "From" "yahoo.com",
            address :is :domain "From" "yahoo.fr"
    ) {
        vacation :days 1 :subject "Protection de la vie privée" text:
    ### Message automatique ###
    
    Bonjour,
    
    Vous m’écrivez depuis une adresse mail dont le fournisseur ne respecte pas ma
    vie privée et dont je n’ai aucunement approuvé les conditions générales
    d’utilisation liberticides.
    Je vous saurai donc gré de cesser d’utiliser cette adresse pour me joindre, et
    de vous tourner vers des fournisseurs de mail respectueux de ma vie privée (à
    défaut de la vôtre).
    
    Votre mail ne recevra donc probablement aucune réponse de ma part, afin de ne
    pas continuer à fournir mes données privées à votre fournisseur.
    
    https://imirhil.fr/et-puis-merde-à-la-vie-privée.html
    --
    Aeris
    
    Protégez votre vie privée, chiffrez vos communications
    GPG : EFB74277 ECE4E222
    OTR : 5769616D 2D3DAC72
    https://café-vie-privée.fr/
    .
    ;
    }
    Sun Mar 9 12:07:14 2025 - permalink -
    - http://shaarli.guiguishow.info/?pXtpPg
  • Double effort de guerre - Groland - CANAL+ - YouTube

    (Journaliste) ‒ Devons-nous avoir peur de la Russie ? Nous, au Groland, on n'a pas peur. La preuve, nous venons de doubler notre effort de guerre. Désormais, chaque soldat grolandais devra boire deux fois plus de vin à la cantine.
    (Bidasse bourré) ‒ Pas peur, moi.

    :D

    Thu Mar 6 21:46:44 2025 - permalink -
    - https://www.youtube.com/watch?v=u1oJtvJM6Os
  • François Sureau, encore

    Liberté

    François Sureau invité aux Idées mènent le Monde 2024 :

    Comme l'écrit [Georges] Bernanos, défendre les libertés en général, c'est défendre les libertés des autres. Ce qui m'éloigne de tout une partie du monde moderne, c'est que les gens qui revendiquent la liberté la revendique pour eux-mêmes. Alors qu'en réalité la bonne défense de la liberté, c'est de se soucier d'abord de la liberté d'autrui, ce qui n'est pas possible si l'on n'a pas essentiellement un sentiment de fraternité.
    […]
    Quand j'ai commencé à m'intéresser aux libertés, c'est parce qu'en fait, j'étais très frappé de la facilité avec laquelle nous abandonnions un certain nombre de principes sur lesquels on avait fonctionné pendant longtemps. Pour moi, on ne peut pas rentrer la nuit chez quelqu'un si l'on n'a pas le mandat d'un juge, c'est aussi tarte que ça. C'est pas bien d'être surveillé tout le temps. Il ne faut pas que les incriminations pénales soient trop larges sans ça ça permettrait d'envoyer en prison a priori le tiers des personnes qui sont dans cette salle. Et j'ai vu, parce que nous étions inquiets de violence, du terrorisme, de la dislocation sociale, on avait tendance à revenir sur ces principes et je n'aimais pas ça, mais je n'aimais pas ça de manière absolument concrète et immédiate. Et puis, au bout d'un moment, j'ai cessé d'en parler quand je me suis rendu compte que mes sorties sur la liberté étaient utilisées ou me faisaient le complice de gens avec qui je n'avais absolument rien de commun : les défenseurs de l'islamisme intégral, les fous de Chavez. Je me suis rendu compte que nous ne parlions pas de la même chose, que pour moi la liberté n'était pas la liberté de faire n'importe quoi selon sa petite conscience personnelle, mais plutôt l'organisation d'un système général de libertés publiques qui nous permettrait de poursuivre notre chemin dans la société à l'abris des interventions de l'État. Et puis, en plus, dans les années qui viennent de s'écouler, d'autres puissances sont apparues, beaucoup plus puissantes que l'État : les mouvements de l'opinion publique, la tyrannie de la majorité, les gens qu'on envoie au pilori sur des soupçons, les réseaux sociaux, ça rend assez difficile la position classique du juriste libéral qui dit que c'est l'État qui est mauvais. Non, l'État n'est pas mauvais, nous le sommes autant que lui, puisque c'est parce que nous lui concédons toutes ces facilités qu'il a la possibilité d'intervenir dans nos vies. Donc je suis très content d'avoir fait ça, je continue à préférer la Déclaration des droits de l'Homme à son absence, naturellement, mais peut-être que j'y mets moins de passion qu'autrefois.



    François Sureau nous présente "S'en aller" :

    La liberté, c'est que rien ne vienne s'opposer aux tentatives que nous pouvons faire pour coïncider véritablement avec nous-mêmes dans ce que nous avons de bien : lire tout ce qu'on veut, écrire tout ce qu'on veut, penser tout ce qu'on veut, voyager comme on veut, une liberté qui soit essentiellement positive


    Spiritualité

    François Sureau nous présente "S'en aller" :

    À l'origine de tout, je pense qu'il y a un sentiment que beaucoup de gens ont, que peut-être vous avez eu, que peut-être les gens qui nous écoutent ont eu, qui est un sentiment extrêmement profond de l'étrangeté du monde [paradoxes, contraires, binarité gauche/droite, athée/catho, etc.]. Un sentiment éprouvé dans l'enfance, qui ne m'a absolument jamais quitté, qui m'a d'ailleurs empêché de prendre au sérieux, au fond, quelle institution que ce soit. Vous savez, c'était le propos de l'aumônier de la brigade Alsace-Lorraine de Malraux, Bockel, auquel on demandait « alors, qu'avez-vous appris en 50 ans de pratique de la confession ? » et il répondait « ho, c'est assez simple, il n'y a pas de grande personne ». J'ai eu ce sentiment très jeune que les grandes personnes que l'on me présentait, pour que je les admire ou que je les déteste, n'étaient que des enfants qui continuaient de jouer dans l'âge adulte les rôles particuliers que jouent les enfants à l'intérieur d'une classe, que ce à quoi ils s'occupaient profondément était assez vain et que ce monde qui était pourtant extrêmement joyeux et réconfortant à certains égards était l'envers d'un autre ou la préfiguration d'un autre, qu'il existait quelque chose au-delà d'un voile qu'on pouvait écarter, et pour moi, la manière de rentrer dans cet autre monde a été la littérature. […] C'est pas ici c'est une vallée de larmes et puis il y a un autre monde derrière qui est extrêmement sympathique, non, pas du tout, c'est que tout ce qui était bien ici et dont on ne comprenait pas nécessairement le sens prenait sens ailleurs, une dialectique entre les deux, en permanence. De manière négative et positive, des choses magnifiques ici dont je pouvais ressentir négativement le caractère éphémère mais qui en fait étaient une préfiguration de l'éternité ou des souffrances ici dont je me disais qu'elles préparaient en quelque sorte une éternité meilleure, un lien, une espèce de pont permanent entre les deux.



    Pour beaucoup, l'Église (catho), par son formalisme, son caractère construit, etc. contraint, alors que pour Sureau, au contraire, c'est la famille, les études, etc. qui le corsetaient et l'Église qui le libérait :

    Dans ce monde soumis à l'usine, au ministre, au percepteur, il y avait un endroit où tout le monde allait le dimanche, toutes classes sociales confondues, où un type montait à l'autel dans une chasuble […] et expliquait ou disait des choses absolument mystérieuses et qui pour moi étaient un appel prodigieux à l'imagination. Y compris des choses qu'on dit dans la liturgie au moment des morts, « souviens-toi de nos morts dont toi seul connaît la droiture », cette phrase me faisait rêver, j'avais l'impression que le monde tel que je le connaissais, le monde des concours, le monde des institutions, des grandeurs d'établissement, était un monde dans lequel chacun portait jugement sur chacun dans l'idée que chacun était capable de formuler un jugement sur la valeur des personnes, et par cette simple phrase, un pauvre gars montant à l'autel dans sa chasuble disait, au fond, « seul Dieu connaît la droiture des Hommes ».



    Dans le christianisme orthodoxe, on retrouve plus un Christ guérisseur que rédempteur (catholicisme), et on part de l'expérience humaine (peur de la mort, désir, etc.) plutôt que de la révélation (catho).


    Politique

    François Sureau nous présente "S'en aller" :

    Dans l'anarchisme de droite, il y a deux choses qui ne me vont pas. Dans l'anarchisme, il y a malgré tout cette idée qu'un mode d'organisation particulier, l'anarchie, celle de Guérin, de Kropotkine, permettrait de nous faire un monde plus vivable : je ne le crois aucunement. Et puis, dans la droite, il y a quelque chose qui ne me va pas non plus […] : je trouve que la caractéristique des anarchistes de droite est très souvent que ce sont des petits bourgeois animés par le ressentiment. […] On a toujours l'impression qu'ils ne sont pas reconnus à leur juste valeur : dans un monde bien fait, ils seraient ministres ou prince du sang, et ils ne le sont pas, et c'est la raison pour laquelle ils deviennent [Michel] Déon ou [Louis] Dimier. Moi pas du tout, je ne suis pas animé par cette forme particulière du ressentiment d'une classe moyenne désaxée qui était d'ailleurs à l'origine de tous les mouvements fascistes.



    Autres thèmes abordés dans les deux vidéos sus-pointées : trouver son unité, qui je suis, d'abord en élaguant les branches mortes pour forcer l'unité, puis en s'acceptant ; monastère = mónos != seul mais plutôt unité de soi ; départ / arrivée / instant présent ; exprimer le désir de partir, c'est déjà être parti ; jugement / condamnation versus pardon / oubli ; culpabilité / rédemption.

    Sat Feb 22 17:14:42 2025 - permalink -
    - http://shaarli.guiguishow.info/?LgwRXA
  • Telle chose politique vous rendra-t-elle plus heureux ?

    François Sureau invité aux Idées mènent le Monde 2024 :

    […] Un autre exemple de la manière dont [la littérature] sert à la vie. On se demande aujourd'hui, là, en politique, s'il faut voter à droite, voter à gauche, etc., et moi je me suis beaucoup détaché de ça au fil des années, mais, à chaque fois que je lis des choses politiques dans les journaux, je pense à la description que donne Victor Hugo des funérailles de Chateaubriand. Vous vous souvenez que Victor Hugo adorait Chateaubriand, quand il était jeune, il disait « être Chateaubriand ou rien ! ». Et puis Chateaubriand meurt en 1848 [fin de la monarchie de Juillet, 2e République, Chateaubriand était un royaliste]. […] [Hugo écrit] : « Peu de temps avant sa mort, mes amis et moi sommes allés voir M. de Chateaubriand. M. de Chateaubriand ne disait rien de la République, si ce n'est « vous fera-t-elle plus heureux ? » ». […] Ça, c'est l'expression la plus exacte du sentiment qu'on peut avoir, d'étrangeté, de familiarité, à l'égard de la vie extérieure, la vie politique, par exemple, telle que nous la voyons.

    Sun Feb 2 19:53:12 2025 - permalink -
    - http://shaarli.guiguishow.info/?L-UVoQ
  • C'était mieux avant, âge d'or de la France, blablabla

    François Sureau nous présente "S'en aller" :

    […]
    ‒ Comment votre regard sur la France a-t-il évolué ?
    ‒ […] En fait, je ne fais pas partie des gens qui pensent que c'était mieux avant. Mais pas du tout. Je me souviens… Cette France de mon enfance [années 60-70], j'y suis attaché parce que c'était le territoire de mes rêves, dans mon enfance, mais la France réelle de mon enfance, celle qui, précisément, me faisait m'évader dans le rêve, cette France-là n'était pas extraordinaire du tout, elle était dure, aux femmes, aux Bretons, aux Arabes, aux esprits libres de manière générale, les barrières de classe étaient beaucoup plus solides que maintenant, et énormément de choses, même sur le plan intellectuel, enfin, quand je faisais mes études, 30 % des électeurs étaient en réalité adeptes de l'URSS de Staline, quand Simon Leys publiait, il se faisait étriller comme agent de la CIA en une du Monde, les gens adoraient le génocide cambodgien et vantaient les charmes de Pol Pot, et si vous étiez d'un avis un peu différent, vous étiez un fasciste, tout de suite, donc moi j'ai l'impression d'avoir vécu mon enfance et ma jeunesse [années 60-70] dans un pays effarant et plombé. Ceux qu'étaient pas effarants et plombés, c'était les ministres pompidoliens dont on se demandait s'ils ne touchaient pas tous plus ou moins sur la construction de l'auditorium Tartemolle ou des nouvelles halles de Paris, vous voyez ? Donc l'idée, maintenant, que je vois se répandre chez les gens qu'ont l'âge d'être mes enfants qu'il existait un âge d'or quand j'étais jeune est juste surprenante. […] On souffre d'abord de son propre pays […] avant de souffrir d'autres choses, et je pense qu'un esprit sensible souffre de son pays à toutes les époques, et souffre de son temps à toutes les époques.
    […]

    Ça me rappelle ceux qui, a juste titre, rapportent que les années 80 étaient loin d'être les glamours années fric que l'on présente aujourd'hui. Comme d'hab, ça dépendait de ta position dans la société.

    Sun Feb 2 19:20:43 2025 - permalink -
    - http://shaarli.guiguishow.info/?DxMCLA
  • Mon installation Thunderbird 2024 / Thunderbird 128

    En janvier 2024, mon profil utilisateur Thunderbird avait plus de 10 ans. Forcément, ça s'encrasse : des paramètres disparaissent, etc. Le format de stockage Maildir, ou, plus précisément, un dérivé, est disponible dans les paramètres depuis 2019 pour les nouveaux comptes, donc j'avais envie d'essayer. Mes pratiques ont évolué : j'envoyais des emails au format texte (alors que le format HTML a ses avantages avec les Moldus et/ou des messages structurés), j'avais limité la largeur des lignes de texte à 80 colonnes (comme sur les vieux terminaux…), y compris en émission, etc. J'avais un bug : quand je déplaçais un email, surtout s'il était chiffré, le sujet du dernier email du dossier de destination était remplacé, en dur, dans le mbox, par celui de l'email qui précédait l'email déplacé dans le dossier source (il fallait alors aller dans les propriétés du dossier contenant l'email et utiliser l'outil de réparation… qui ne fait rien de plus que tout détruire et re-télécharger tous les emails). Un profil vierge (et Maildir) ne fait pas disparaître ce bug. :( Dans le temps, Thunderbird me perdait des emails… Depuis la version 115, si l'espace de stockage est plein, Thunderbird corrompt ses fichiers (ce n'était pas le cas avant). Je trouvais aussi que le dossier ImapMail occupait bien trop d'espace de stockage comparé à l'occupation des emails sur mon serveur (> 2 Go d'écart). Bien entendu, il y a les index (pour accélérer la recherche), mais je trouvais cet écart déconnant, et je pensais que le compactage ne faisait pas son taff (menu Fichier, Compacter les dossiers = réécrire un fichier mbox pour effacer réellement les emails supprimés, un équivalent du VACUUM de sqlite ou pgSQL, quoi). Un nouveau profil et un passage à Maildir ne changent rien sur ce point.

    Vu que j'étais reparti d'un profil Firefox vierge, j'ai décidé d'en faire de même avec Thunderbird.

    Pourquoi pas Betterbird ? Je n'en ai pas besoin, Thunderbird me convient environ, rien ne me déplaît foncièrement. Ensuite, je recherche trois choses : pérennité, suivi et facilité de mise à jour. Par définition, un logiciel de messagerie est exposé sur l'extérieur, et des failles de sécurité sont corrigées tous les mois, donc il faut que les mises à jour soient rapides et automatisées via un canal de distribution de confiance (sans suivi, mutualisé avec d'autres logiciels, comme les dépôts d'un système Debian, par ex.). Bref, je fuis les logiciels qui ne sont pas empaquetés dans Debian, c'est toujours la galère pour les mettre à jour. J'attends de voir combien de temps Betterbird sera maintenu.

    La configuration consignée ci-dessous est destinée à des utilisateurs avancés de Thunderbird. Je n'appliquerai pas les mêmes paramétrages chez un utilisateur lambda.



    Contrairement à Firefox, il n'est pas possible de renommer un ancien profil. Enfin, si, mais si l'on s'en sert, Thunderbird re-télécharge alors l'ensemble des emails depuis le serveur, à cause de chemins codés en dur dans le profil (notamment dans folderCache.json)…



    Étape 1 : installer le dictionnaire français (sinon de nombreux mots sont marqués, à tort, comme des erreurs par le correcteur, déjà qu'avec le dico il peine à proposer les bonnes corrections de mots accentués…).



    Étape 2 : retrouver la barre de menus (clic droit, barre de menus).



    Étape 3 : modifier les paramètres accessibles depuis le menu (édition, paramètres) :

    • Général

      • Décocher Afficher la page de démarrage au lancement de Thunderbird

      • En fonction des goûts, cocher la case Masquer la barre de titre

      • En fonction des goûts, décocher la case Masquer automatiquement la barre d'onglets

      • Polices, avancé, je choisis la police DejaVu adaptée pour chaque catégorie (serif, sans, etc.), j'augmente la taille, et je décoche Autoriser les messages à utiliser d'autres polices

      • Courrier entrant. Décocher Afficher un avertissement et jouer un son dans Quand un nouveau message arrive

      • Accusé de réception. Cocher Ne jamais envoyer d'accusé de réception

      • Espace disque. Cocher Modifier la gestion automatique du cache et choisir 0 Mo

      • Décocher Compacter les dossiers quand cela économise au moins… (même si ça ne sert à rien avec Maildir)

      • Type de stockage des messages pour les nouveaux comptes : maildir
    • Rédaction

      • Orthographe. Décocher Vérifier l'orthographe avant l'envoi. Langue : j'ai coché Français (et pas Français (France))

      • Adressage. Décocher Les carnets d'adresses locaux et Ajouter les adresses des messages sortants dans…

      • Pièces jointes. Décocher Proposer le partage pour les fichiers de plus de…
    • Vie privée et sécurité
      • Contenu web. Décocher Accepter les cookies

      • Contenu web. Cocher Envoyer aux sites web un signal « Ne pas me pister » (même si je vois aucun intérêt pour mon cas d'usage)

      • Collecte de données par Thunderbird. Décocher Autoriser Thunderbird à envoyer des données techniques et des données d'interaction à Mozilla. Je ne comprends pas pourquoi Debian ne décoche pas cela par défaut, comme il le fait dans Firefox.

      • Sécurité. Décocher Signaler si le message en cours de lecture est susceptible d'être frauduleux

      • Certificats. Décocher Interroger le répondeur OCSP (explication), et, dans Gérer les certificats, Autorités, je retire ma confiance à toutes les autorités x509 (mon serveur email utilise un certificat autosigné). Une raison est consignée ici, une autre est que ça empêche Thunderbird d'afficher des pages web, y compris les communications de Mozilla et les pixels espions, qui reposent sur HTTPS.



    Étape 4 : modifier les paramètres avancés (Paramètres, Général, Éditeur de configuration… tout en bas)

    • breakpad.reportURL => ""

    • browser.cache.disk.enable => false

    • browser.safebrowsing.allowOverride => false

    • browser.safebrowsing.downloads.enabled => false

    • browser.safebrowsing.downloads.remote.block_potentially_unwanted => false

    • browser.safebrowsing.downloads.remote.block_uncommon => false

    • browser.safebrowsing.downloads.remote.enabled => false (les paramètres proposés dans le menu ne suffisent pas)

    • browser.safebrowsing.downloads.remote.url => ""

    • browser.safebrowsing.malware.enabled => false

    • browser.safebrowsing.phishing.enabled => false

    • browser.xul.error_pages.expert_bad_cert => true

    • captivedetect.canonicalURL => ""

    • datareporting.policy.dataSubmissionEnabled => false

    • extensions.getAddons.showPane => false

    • mail.server.default.check_all_folders_for_new => true

    • mail.server.server1.max_cached_connections = le nombre de dossiers dans lesquels TB doit vérifier la présence de nouveaux emails (car IMAP IDLE = 1 connexion par dossier)

    • mail.server.default.check_time => 2

    • network.connectivity-service.enabled => false

    • network.dns.disablePrefetch => true

    • network.predictor.enabled => false

    • network.prefetch-next => false

    • network.trr.mode => 5

    • pdfjs.disabled => true

    • privacy.resistFingerprinting.block_mozAddonManager => true

    • privacy.resistFingerprinting => true

    • security.pki.crlite_mode => 0

    • security.ssl.require_safe_negotiation => true

    • security.ssl.treat_unsafe_negotiation_as_broken => true

    • security.tls.enable_0rtt_data => false

    • toolkit.coverage.opt-out => true

    • toolkit.telemetry.archive.enabled => false

    • toolkit.telemetry.bhrPing.enabled => false

    • toolkit.telemetry.coverage.opt-out => true

    • toolkit.telemetry.firstShutdownPing.enabled => false

    • toolkit.telemetry.newProfilePing.enabled => false

    • toolkit.telemetry.server => data:

    • toolkit.telemetry.shutdownPingSender.enabled => false

    • toolkit.telemetry.unified => false

    • toolkit.telemetry.updatePing.enabled => false



    Étape 5 : ajouter les comptes emails.

    Dans les paramètres des comptes (menu Édition) :

    • Copies et dossiers : décocher Conserver les archives dans

    • Paramètres des indésirables : décocher Activer les contrôles adaptatifs…

    • Synchronisation et espace disque, Avancé…. Vérifier que tous les dossiers sont cochés

    Dans les propriétés de chaque dossier d'une boîte dont on veut que TB vérifie avec assiduité et promptitude les nouveaux emails, cocher « Lors de la réception de nouveaux messages pour ce compte, toujours vérifier ce dosier » dans l'onglet « Informations générales ».

    Envoyer un email pour aussi faire mémoriser le mot de passe du serveur SMTP.

    Comme depuis 2021, galérer à faire accepter un certificat autosigné pour les serveurs IMAP et SMTP.

    Si l'on a plusieurs comptes, définir celui par défaut (= qui sera utilisé quand on cliquera sur Écrire sans être dans un compte, quand on répondra à un email adressé à une identité pas configurée, etc.) : paramètres des comptes, sélectionner le compte qui doit être celui par défaut, bouton Gestion des comptes, Compte par défaut.



    Étape 6 : OpenPGP. Rien à signaler. Importer sa paire de clés dans le gestionnaire ad-hoc, ajouter un mot de passe au gestionnaire de mots de passe afin de protéger sa clé privée (Paramètres, Vie privée et sécurité, Mots de passe, Utiliser un mot de passe principal). Importer la clé publique de ses destinataires. Associer une clé publique à un domaine / une liste de destinataires, à une adresse email qui n'est pas l'une des identités de la clé (exemple : adresse email avec un délimiteur) / une étiquette / un tag.



    Étape 7 : ajouter toutes les identités (adresses emails, nom ou absence de nom, etc.) pour un compte emails, notamment si l'on utilise des alias ou des adresses emails avec un délimiteur) / une étiquette / un tag. Pour ce faire : paramètres des comptes, choisir un compte, bouton Gérer les identités tout en bas.



    Étape 8 : changer l'apparence. À partir de la version 115, l'interface change pour devenir kikoo-moderne, faire comme tout le monde, sans ergonomie. J'en avais entendu du mal (ici et là), j'en avais été préservé (un paramètre était automatiquement placé dans le profil lors d'une mise à jour), mais on peut obtenir, sans trop d'efforts, une interface semblable aux versions antérieures et fonctionnelle (contrairement à Gajim).

    • Cacher la barre d'espaces (la barre verticale à gauche) : bouton tout en bas de celle-ci

    • Comme je l'ai écrit, on peut faire revenir la barre de titre de la fenêtre (Paramètres, Général)

    • Menu Affichage, Disposition, Classique

    • Menu Affichage, Disposition, Panneau d'affichage des messages

    • Dans un dossier, Options d'affichage de la liste des messages (bouton tout à droite, à côté de Filtre rapide), Vue en tableau

    • Dans un dossier, sélectionner un message, bouton Autres, Personnaliser, tout décocher

    • Personnaliser la barre unifiée (celle au-dessus de la barre de menus et sous la barre de titre de la fenêtre) avec clic droit, personnaliser, pour y ajouter les boutons Relever, Écrire, etc.

    Sans rapport avec la nouvelle interface :

    • Menu Affichage, Corps du message en, texte seul

    • Pour chaque dossier : menu Affichage, Trier par, Discussion non groupées

    • Pour chaque dossier, personnaliser la liste des messages (colonnes en plus ou en moins, emplacement de chaque colonne, etc.)
    Fri Jan 17 22:15:50 2025 - permalink -
    - http://shaarli.guiguishow.info/?ywWEZA
  • Mon installation Firefox 2024 / Firefox 128

    En janvier 2024, je rencontrais quelques désagréments avec Firefox, notamment sur YouTube. De plus, j'ai fait évoluer quelques-unes de mes pratiques, notamment mon filtrage des traceurs, transferts de données à caractère personnel et des autres merdes qui composent le web aujourd'hui (je suis passé d'une politique « bloquer tout ce qui est tierce partie » à « bloquer les ressources web bien connues pour apparaître partout et qui ne sont pas pris en charge par une liste de filtrage uBlock Origin »). Enfin, les ajouts et retraits successifs, car les paramètres de Firefox changent, rendent mon dernier article sur le sujet difficile à lire (d'autant qu'il date d'avant le formatage Markdown dans Shaarli).

    Évacuons la question toute de suite : pourquoi pas un clone de Firefox spécialisé dans la vie privée, comme Waterfox, Librefox, Librewolf, Floorp, etc. ? D'abord, car aucun n'a, par défaut, les paramètres que je veux. Ensuite, je recherche trois choses : pérennité, suivi et facilité de mise à jour. Par définition, un navigateur web est exposé sur l'extérieur, et des failles de sécurité sont corrigées tous les mois, donc il faut que les mises à jour soient rapides et automatisées via un canal de distribution de confiance (sans suivi, mutualisé avec d'autres logiciels, comme les dépôts d'un système Debian, par ex.). Bref, je fuis les logiciels qui ne sont pas empaquetés dans Debian, c'est toujours la galère pour les mettre à jour (on parle du dépôt Debian de Librewolf qui a changé d'adresse ?). Un paquet de clones de Firefox n'ont pas survécus, donc j'évite de me précipiter sur le dernier venu. À titre subsidiaire : Floorp et Waterfox sont derrière Cloudflare. Librewolf derrière Amazon. Respectueux de la vie privée, disions-nous ? (Oui, je sais, Mozilla, Debian, OpenStreetMap, le RIPE, et tant d'autres, sont aussi derrière ces géants, ce qui me désole au plus haut point).

    La configuration consignée ci-dessous est destinée à des utilisateurs avancés de Firefox. Je n'appliquerai pas les mêmes paramétrages chez un utilisateur lambda.



    Étape 1 : installer le dictionnaire français (sinon de nombreux mots sont marqués, à tort, comme des erreurs par le correcteur).



    Étape 2 : retrouver la barre de menus (clic droit, barre de menus) et la barre de titre (clic droit, personnaliser la barre d'outils, cocher « barre de titre » tout en bas à gauche). Personnaliser la barre d'outils (ajouter l'outil de capture d'écran, supprimer les icônes Pocket et compte / synchronisation).



    Étape 3 : modifier les paramètres accessibles depuis le menu (édition, paramètres) :

    • Général

      • Ouvrir les fenêtres et onglets précédents

      • Apparence : sombre

      • Polices, avancé, décocher Autoriser les pages web à utiliser leurs propres polices

      • Fichiers et applications

        • Toujours demander où enregistrer les fichiers

        • Demander s'il faut ouvrir ou enregistrer les fichiers
      • Navigation

        • Décocher Activer les contrôles pour l'incrustation vidéo

        • Décocher Contrôler la lecture des médias via le clavier, un casque ou l’interface virtuelle

        • Décocher Recommander des extensions

        • Décocher Recommander des fonctionnalités
      • Paramètres réseaux : Utiliser un DNS distant lorsque SOCKS v5 est actif
    • Accueil

      • Page d'accueil et nouvelle fenêtre : page vide

      • Nouveaux onglets : page vide
    • Recherche

      • Décocher Afficher les suggestions de recherche

      • Ce n'est pas dans ce menu, mais ajouter la barre de recherche à la barre d'outils (clic droit, personnaliser la barre d'outils)

      • Ce n'est pas dans ce menu, mais ajouter les différents moteurs de recherche désirés à la barre de recherche (Startpage, DuckDuckGo, Qwant, Google, Wikipedia FR, Wikipedia EN, Wiktionnaire, Larousse, Robert, Bescherelle, Urban dictionary, OpenStreetMap, Nitter, Sepia search, YouTube, packages.debian.org, etc.). Soit en allant sur le site web, soit, pour ceux qui n'ont pas ajouté la balise opensearch qui convient à leur site web, en utilisant ce générateur. Dans le menu : trier les moteurs, indiquer celui par défaut, etc.
    • Vie privée et sécurité

      • Protection stricte

      • Demander aux sites web de ne pas vendre ni partager mes données (GPC) / Ne pas me pister (DNT). Ce n'est pas respecté par les éditeurs de sites web, et ça contribue à créer une empreinte unique (donc facilement reconnaissable) du navigateur web, donc à chacun de choisir…

      • Supprimer les cookies et les données des sites à la fermeture. Ajouter des exceptions si besoin. Dans mon cas : eu.startpage.org, duckduckgo.com, et www.qwant.com afin qu'ils conservent mes paramètres (thème sombre, pas de filtrage des résultats pour me protéger, pas de suggestions, pas d'IA, etc.).

      • Décocher Proposer d'enregistrer les identifiants et les mots de passe

      • Décocher Enregistrer et renseigner les moyens de paiement

      • Décocher Afficher des alertes pour les mots de passe de sites concernés par des fuites de données

      • Décocher Compléter le champ des cartes bancaires automatiquement

      • Historique

        • Règles de conservation : utiliser les paramètres personnalisés

        • Conserver l'historique des recherches et des formulaires

        • Vider l'historique lors de la fermeture. Dans les paramètres : cocher cookies et données de sites, fichiers et pages en cache temporaire
      • Permissions :

        • Localisation : bloquer les nouvelles demandes

        • Caméra : idem

        • Micro : idem

        • Notifications : idem

        • Lecture auto : par défaut = bloquer l'audio et la vidéo

        • Réalité virtuelle : bloquer
      • Collecte de données par Firefox : tout est décoché par défaut dans Debian, et c'est ce qu'il faut

      • Les préférences publicitaires des sites web, c'est-à-dire la Privacy preserving attribution, soit la même merde que Google Privacy sandbox, sont désactivées par défaut dans Debian, et c'est ce qu'il faut

      • Décocher Bloquer les contenus dangereux ou trompeur (Google Safebrowsing)

      • Certificats : décocher Interroger le répondeur OCSP (explication) ; Dans Afficher les certificats, Autorités, désactiver les autorités x509 inutiles

      • Activer le mode HTTPS uniquement dans toutes les fenêtres

      • Désactiver le DNS via HTTPS (j'utilise un VPN vers un FAI associatif, les serveurs DNS récursifs sont à l'autre bout de ce VPN, et je veux que Firefox ait le même comportement que mes outils de diagnostic DNS en ligne de commande



    Étape 4 : on installe et configure des extensions

    D'abord, les indispensables :

    • uBlock Origin

      • Paramètres : cocher Je suis un utilisateur/une utilisatrice avancé(e)

      • Listes de filtres :

        • uBlock filters : toutes (Ads, badware risks, privacy, quick fixes, unbreak)

        • Publicités : toutes (EasyList, AdGuard Ads, AdGuard Mobile Ads)

        • Confidentialité : EasyPrivacy, AdGuard Tracking Protection, AdGuard URL Tracking Protection

        • Protection anti-malware et sécurité : toutes (Online Malicious URL Blocklist, Phishing URL Blocklist)

        • Tout usage : Peter Lowe's Ad and tracking server list (Dan Pollock's hosts file contient des sites web dérangeants, crades, etc. genre 2girl1cup, ce qui ne constitue pas un motif de filtrage à mes yeux)

        • Bannières de cookie : toutes (EasyList/uBO - Cookie Notices et sous-listes, AdGuard/uBO - Cookie Notices et sous-listes)

        • Widgets de réseaux sociaux : toutes (EasyList - Social Widgets, AdGuard - Social Widgets, Fanboy - Anti-Facebook)

        • Nuisances : toutes (EasyList - Annoyances et sous-listes, AdGuard - Annoyances et sous-listes, uBlock filters - Annoyances

        • Régions, langues : AdGuard Français

        • Mes propres listes :
          • Actually Legitimate URL Shortener Tool ( https://raw.githubusercontent.com/DandelionSprout/adfilt/refs/heads/master/LegitimateURLShortener.txt )

          • Fanboy's Annoyance List ( https://secure.fanboy.co.nz/fanboy-annoyance.txt )

          • AdGuard Spyware ( https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_3_Spyware/filter.txt

          • EasyList FR ( https://raw.githubusercontent.com/easylist/listefr/refs/heads/master/liste_fr.txt )
      • Mes filtres :
    # Merdes chez Microsoft Azure
    blob.core.windows.net
    
    # Tout script nommé ads.js
    /ads.js
    
    # # Sentry via un sous-domaine
    ://sentry.
    
    # Polices de caractères en tierce partie
    *$font,third-party
    • (Cette puce ne sert à rien, mais Shaarli oblige sa présence.)
      • Mon filtrage dynamique. L'objectif est de filtrer les ressources web que l'on retrouve sur de nombreux sites (bootstrapCDN, fonts Google, jsdelivr.net, etc.). Attention : ça casse de nombreux sites, mais ça évite des transferts de données à caractère personnel dans tous les sens.
    * addtoany.com * block
    * adobedtm.com * block
    * ajax.googleapis.com * block
    * akamai.net * block
    * akamaiedge.net * block
    * algolia.net * block
    * algolianet.com * block
    * amazon.com * block
    * amazonaws.com * block
    * appconsent.io * block
    * aticdn.net * block
    * bootstrapcdn.com * block
    * cachefly.net * block
    * cdn-apple.com * block
    * cdnfonts.com * block
    * cdninstagram.com * block
    * chartbeat.com * block
    * cdnjs.cloudflare.com * block
    * cloudflare.net * block
    * cloudfront.net * block
    * cookielaw.org * block
    * coralproject.net * block
    * i.creativecommons.org * block
    * dailymotion.com * block
    * disqus.com * block
    * dmcdn.net * block
    * donorbox.org * block
    * doubleclick.net * block
    * edgecastcdn.net * block
    * edgio.net * block
    * embed.ly * block
    * embedly.com * block
    * facebook.com * block
    * fastly.net * block
    * firestore.googleapis.com * block
    * fontawesome.com * block
    * fonts.googleapis.com * block
    * fonts.net * block
    * google.com * block
    * google.fr * block
    * googletagmanager.com * block
    * googleusercontent.com * block
    * gravatar.com * block
    * gstatic.com * block
    * hcaptcha.com * block
    * herokuapp.com * block
    * herokudns.com * block
    * hsappstatic.net * block
    * hsforms.net * block
    * hubspot.com * block
    * hubspot.net * block
    * imasdk.googleapis.com * block
    * impervadns.net * block
    * inbenta.io * block
    * incapdns.net * block
    * instagram.com * block
    * code.jquery.com * block
    * jsdelivr.map.fastly.net * block
    * jsdelivr.net * block
    * jwplayer.com * block
    * kameleoon.eu * block
    * kxcdn.com * block
    * mailchimp.com * block
    * mailjet.com * block
    * mapbox.com * block
    * maps.googleapis.com * block
    * maze.co * block
    * myfeelback.com * block
    * paypal.com * block
    * piano.io * block
    * polyfill-fastly.io * block
    * polyfill-fastly.net * block
    * polyfill.io * block
    * privacy-center.org * block
    * privacy-mgmt.com * block
    * ravenjs.com * block
    * rechargecdn.com * block
    * rosselcdn.net * block
    * sentry-cdn.com * block
    * skeepers.io * block
    * smile.io * block
    * soundcloud.com * block
    * storage.googleapis.com * block
    * stripe.com * block
    * tagcommander.com * block
    * tiktok.com * block
    * tiqcdn.com * block
    * transcend-cdn.com * block
    * twimg.com * block
    * twitch.tv * block
    * twitter.com * block
    * platform.twitter.com * block
    * typeform.com * block
    * typekit.net * block
    * typography.com * block
    * ultimedia.com * block
    * unpkg.com * block
    * usercentrics.eu * block
    * metrics.video-dns.com * block
    * vercel-dns.com * block
    * vimeo.com * block
    * wordpress.com * block
    * wp.com * block
    * youtube-nocookie.com * block
    * youtube.com * block
    * ytimg.com * block
    * zdassets.com * block
    * zencdn.net * block
    * zendesk.com * block
    www.amazon.fr amazon.com * noop
    www.amazon.fr amazon.map.fastly.net * noop
    www.amazon.fr amazonaws.com * noop
    www.dailymotion.com dailymotion.com * noop
    www.dailymotion.com dmcdn.net * noop
    www.dailymotion.com privacy-mgmt.com * noop
    images.google.com google.com * noop
    images.google.com gstatic.com * noop
    lens.google.com google.com * noop
    lens.google.com gstatic.com * noop
    news.google.com google.com * noop
    news.google.com googleusercontent.com * noop
    news.google.com gstatic.com * noop
    play.google.com google.com * noop
    play.google.com play.google.com * noop
    play.google.com googleusercontent.com * noop
    play.google.com gstatic.com * noop
    support.google.com google.com * noop
    translate.google.com google.com * noop
    translate.google.com gstatic.com * noop
    www.google.com google.com * noop
    www.google.com gstatic.com * noop
    www.google.fr google.fr * noop
    www.google.fr gstatic.com * noop
    www.instagram.com cdninstagram.com * noop
    www.instagram.com facebook.com * noop
    www.instagram.com instagram.com * noop
    www.instagram.com www.instagram.com * noop
    meteofrance.com * 3p block
    meteofrance.com cloudflare.com * noop
    meteofrance.com cdnjs.cloudflare.com * noop
    meteofrance.com cloudflare.net * noop
    meteofrance.com jsdelivr.map.fastly.net * noop
    meteofrance.com jsdelivr.net * noop
    meteofrance.com unpkg.com * noop
    www.openstreetmap.org dualstack.n.sni.global.fastly.net * noop
    www.openstreetmap.org jsdelivr.map.fastly.net * noop
    www.openstreetmap.org jsdelivr.net * noop
    www.openstreetmap.org cdn.jsdelivr.net.cdn.cloudflare.net * noop
    twitter.com edgecastcdn.net * noop
    twitter.com twimg.com * noop
    twitter.com twitter.com * noop
    vimeo.com com.cdn.cloudflare.net * noop
    vimeo.com api.vimeo.com.cdn.cloudflare.net * noop
    vimeo.com vimeo-video.map.fastly.net * noop
    vimeo.com vimeo.com * noop
    vimeo.com vimeo.map.fastly.net * noop
    x.com edgecastcdn.net * noop
    x.com twimg.com * noop
    x.com twitter.com * noop
    x.com twitter.map.fastly.net * noop
    www.youtube.com google.com * noop
    www.youtube.com googleusercontent.com * noop
    www.youtube.com gstatic.com * noop
    www.youtube.com youtube.com * noop
    www.youtube.com ytimg.com * noop
    • NoScript (Security Suite)

      • Général : cocher Définir temporairement les sites de haut niveau comme FIABLES

      • Apparence : cocher Lister les adresses complètes dans la fenêtre contextuelle des autorisations (https://www.noscript.net)
    • Smart Referer. Dans les préférences : choisir Strict pour le Domain name matching

    • LocalCDN

    • I still don't care about cookies

    • Cookie Autodelete

      • Paramètres des CAD

        • Activer le nettoyage automatique

        • 30 secondes avant le nettoyage automatique (après la fermeture d'un onglet ou le changement de domaine)

        • Activer le nettoyage des onglets abandonnés / non chargés

        • Activer le nettoyage lors d'un changement de domaine

        • Nettoyer tous les cookies expirés

        • Décocher Afficher la notification après le nettoyage automatique

        • Décocher Afficher les notifications de nettoyage manuel des données de site
      • Liste d'expressions : ajouter les domaines pour lesquels il ne faut pas supprimer les cookies (dans mon cas : eu.startpage.org, duckduckgo.com, et www.qwant.com afin qu'ils conservent mes paramètres (thème sombre, pas de filtrage des résultats pour me protéger, pas de suggestions, pas d'IA, etc.).



    Ensuite, en fonction des usages et des goûts :

    • PassFF (dans les préférences, section « Entrées », ajouter « ,account, identification » dans « Noms des champs d'identifiant »)

    • Dark Reader

    • Anchors Reveal

    • Cookie Quick Manager

    • Bypass Paywalls Clean (rêve pas, ça fonctionne sur très peu de site)



    Étape 5 : modifier les paramètres avancés dans about:config.

    D'abord, pour mes besoins persos et d'après mes expériences persos :

    • browser.cache.disk.enable => false

    • browser.download.start_downloads_in_tmp_dir => true

    • browser.formfill.enable => false

    • browser.pagethumbnails.capturing_disabled => true

    • browser.region.network.url => ""

    • browser.region.update.enabled => false

    • browser.search.openintab => true

    • browser.urlbar.trimURLs => false (aucun effet sur le schéma https://, mais, si true, http:// est bien supprimé)

    • device.sensors.enabled => false

    • dom.battery.enabled => false

    • dom.block_download_insecure => false

    • dom.disable_beforeunload => true (évite les messages JavaScript du type « Êtes-vous sûr de vouloir quitter ? » ;

    • dom.event.clipboardevents.enabled => true. Attention : le copier-coller dans deepl.com ou OnlyOffice dysfonctionne. C'est vraiment relou au quotidien. À l'inverse, très peu de sites web tentent d'interdire le copier-coller. Donc je ne désactive plus ce paramètre en le mettant à false.

    • dom.popup_allowed_events -> "click dblclick mousedown pointerdown"

    • dom.webnotifications.enabled => false

    • entity.fxaccounts.enabled => false

    • extensions.formautofill.addresses.enabled

    • extensions.pocket.enabled => false

    • geo.enabled => false

    • keyword.enabled => false

    • layout.spellcheckDefault => 2

    • media.autoplay.blocking_policy => 2

    • media.gmp-manager.url => ""

    • media.gmp-provider.enabled => false

    • media.peerconnection.ice.force_interface => tun0

    • permissions.default.shortcuts => 2. Explication.



    Ensuite, selon Arkenfox :

    • accessibility.force_disabled => 1

    • app.normandy.api_url => ""

    • app.normandy.enabled => false

    • breakpad.reportURL => ""

    • browser.download.alwaysOpenPanel => false

    • browser.download.manager.addToRecentDocs => false

    • browser.link.open_newwindow.restriction => 0

    • browser.newtabpage.activity-stream.feeds.telemetry => false

    • browser.newtabpage.activity-stream.telemetry => false

    • browser.places.speculativeConnect.enabled => false

    • browser.safebrowsing.allowOverride => false

    • browser.safebrowsing.downloads.enabled => false

    • browser.safebrowsing.downloads.remote.block_potentially_unwanted => false

    • browser.safebrowsing.downloads.remote.block_uncommon => false

    • browser.safebrowsing.downloads.remote.enabled => false (les paramètres proposés dans le menu ne suffisent pas)

    • browser.safebrowsing.downloads.remote.url => ""

    • browser.sessionstore.privacy_level => 2

    • browser.tabs.crashReporting.sendReport => false

    • browser.tabs.searchclipboardfor.middleclick => false

    • browser.uitour.enabled => false

    • browser.urlbar.addons.featureGate => false

    • browser.urlbar.mdn.featureGate => false

    • browser.urlbar.pocket.featureGate => false

    • browser.urlbar.quicksuggest.enabled => false

    • browser.urlbar.speculativeConnect.enabled => false

    • browser.urlbar.trending.featureGate => false

    • browser.urlbar.weather.featureGate => false

    • browser.urlbar.yelp.featureGate => false

    • browser.xul.error_pages.expert_bad_cert => true

    • captivedetect.canonicalURL => ""

    • datareporting.policy.dataSubmissionEnabled => false

    • dom.disable_window_move_resize => true

    • dom.security.https_only_mode_send_http_background_request => false

    • extensions.autoDisableScopes => 15

    • extensions.enabledScopes => 5

    • extensions.getAddons.showPane => false

    • extensions.htmlaboutaddons.recommendations.enabled => false

    • extensions.postDownloadThirdPartyPrompt => false

    • extensions.quarantinedDomains.enabled => false

    • geo.provider.use_geoclue => false

    • geo.provider.use_gpsd => false

    • media.memory_cache_max_size => 65536

    • network.auth.subresource-http-auth-allow => 1

    • network.captive-portal-service.enabled => false

    • network.connectivity-service.enabled => false

    • network.dns.disablePrefetchFromHTTPS => true

    • network.dns.disablePrefetch => true

    • network.file.disable_unc_paths => true

    • network.gio.supported-protocols => ""

    • network.http.speculative-parallel-limit => 0

    • network.IDN_show_punycode => true

    • network.predictor.enabled => false

    • network.prefetch-next => false

    • pdfjs.disabled => true

    • permissions.manager.defaultsUrl => ""

    • privacy.cpd.cookies => false

    • privacy.cpd.offlineApps => false

    • privacy.resistFingerprinting

    • privacy.resistFingerprinting.block_mozAddonManager => true

    • privacy.resistFingerprinting.pbmode => true

    • privacy.userContext.enabled => true

    • privacy.userContext.ui.enabled => true

    • privacy.window.maxInnerHeight", 900);

    • privacy.window.maxInnerWidth", 1600);

    • security.pki.crlite_mode => 0

    • security.ssl.require_safe_negotiation => true

    • security.ssl.treat_unsafe_negotiation_as_broken => true

    • security.tls.enable_0rtt_data => false

    • signon.autofillForms => false

    • signon.formlessCapture.enabled => false

    • toolkit.coverage.endpoint.base => ""

    • toolkit.coverage.opt-out => true

    • toolkit.telemetry.archive.enabled => false

    • toolkit.telemetry.bhrPing.enabled => false

    • toolkit.telemetry.coverage.opt-out => true

    • toolkit.telemetry.firstShutdownPing.enabled => false

    • toolkit.telemetry.newProfilePing.enabled => false

    • toolkit.telemetry.server => data:

    • toolkit.telemetry.shutdownPingSender.enabled => false

    • toolkit.telemetry.unified => false

    • toolkit.telemetry.updatePing.enabled => false

    • webchannel.allowObject.urlWhitelist => ""



    Casse des choses sans être utile :

    • gfx.font_rendering.opentype_svg.enabled
    Thu Jan 16 21:45:37 2025 - permalink -
    - http://shaarli.guiguishow.info/?h0g7vw
  • De Debian GNU/Linux Bullseye à Bookworm / Debian 11 à 12

    Comme à chaque passage à une nouvelle version de Debian GNU/Linux, voici un résumé de tout ce qui a foiré ou changé quand je suis passé à Bookworm (Debian 12). (Oui, cet article est en retard, mais, finalement, ça ne fait qu'un an que je suis passé à Debian 12, qui avait alors huit mois.)

    Pour effectuer la mise à jour, on suit la doc'.

    Peu de changements sur les logiciels serveurs que j'utilise.


    BIND

    Les directives de configuration additional-from-auth et additional-from-cache n'existent plus.


    Deluge

    En permanence, deluge consigne ce qui suit dans ~/.xsession-errors :

    [CRITICAL][twisted                           :147 ] Unhandled Error
    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/deluge/ui/gtk3/gtkui.py", line 246, in start
        reactor.run()
      File "/usr/lib/python3/dist-packages/twisted/internet/_glibbase.py", line 277, in run
        self._run()
      File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 1689, in main
        return _Gtk_main(*args, **kwargs)
      File "/usr/lib/python3/dist-packages/twisted/internet/_glibbase.py", line 308, in _simulate
        self.runUntilCurrent()
    --- <exception caught here\> ---
      File "/usr/lib/python3/dist-packages/twisted/internet/base.py", line 991, in runUntilCurrent
        call.func(*call.args, **call.kw)
      File "/usr/lib/python3/dist-packages/deluge/core/core.py", line 345, in _on_alert_session_stats
        self._update_session_cache_hit_ratio()
      File "/usr/lib/python3/dist-packages/deluge/core/core.py", line 361, in _update_session_cache_hit_ratio
        self.session_status['disk.num_blocks_cache_hits'] / blocks_read
    builtins.KeyError: 'disk.num_blocks_cache_hits'

    Il faut appliquer le patch suivant au fichier /usr/lib/python3/dist-packages/deluge/core/core.py.


    DHCP

    dhclient, du paquet isc-dhcp-client n'est plus maintenu depuis 2022, tout comme le relai DHCP de l'ISC. apt-listchanges nous expose qu'il sera donc supprimé après la version actuelle (4.4.3), mais il est toujours dans testing, donc bon, ça risque de traîner.

    NetworkManager de GNOME / Mate utilise sa propre implémentation (sudo grep dhcp /var/log/syslog : « dhcp: init: Using DHCP client 'internal' »). (On peut lui faire utiliser dhclient.) J'imagine qu'il en va de même de systemd-networkd. Du coup, ça ne pose pas de souci, sauf pour un client en ligne de commande dans un environnement restreint (sans systemd, quoi).


    dm-crypt / LUKS

    apt-listchanges nous expose qu'il existe un paquet additionnel, cryptsetup-suspend, qui permet de retirer de la RAM la clé de déchiffrement du support de stockage d'un système intégralement chiffré avant de suspend-to-ram ou suspend-to-disk (deux modes d'hibernation). J'étais hyper sceptique. J'ai lu cet article. J'ai testé (il suffit juste d'installer le paquet précité). Ça fonctionne au poil avec mon suspend-to-ram usuel.

    Ça ne démonte pas les supports de stockage externes chiffrés.

    L'article sus-pointé expose que systemd-homed permet de gérer les répertoires personnels des utilisateurs, y compris en les chiffrant, et, qu'alors, il officie comme cryptsetup-suspend mais uniquement à leur égard.

    Je n'ai pas un modèle de menace qui exige l'utilisation de cryptsetup-suspend (sinon, j'aurais éteint mon ordi toutes ces années au lieu de le mettre en hibernation), donc je l'ai désinstallé après mon essai.


    Gajim

    Johndescs m'avait prévenu que la nouvelle interface est kikoo-moderne, reprenant l'apparence (et la non-ergonomie) des applis de messagerie "modernes" pour smartphone (messages groupés, workspace, navigation au clavier dans les onglets imprédictible car le point de départ est la dernière convers active, etc.). Donc, avant de mettre à jour mon système, j'avais gelé les paquets de Gajim ('apt-mark hold`). Néanmoins, l'ancienne version refuse de se lancer sur Debian 12 (« err (org.gajim.Gajim:2828): libsoup-ERROR **: 23:18:06.243: libsoup2 symbols detected. Using libsoup2 and libsoup3 in the same process is not supported. Trappe pour point d'arrêt et de trace »). libsoup, version 2 ou 3, ne peut pas être désinstallée, car MATE et d'autres logiciels dépendent d'elle. Du coup, j'ai dû mettre à jour Gajim.

    L'historique de conservation se trouve dans le menu d'une conservation (bouton tout en bas à droite). Le champ permet de rechercher par mots-clés. Pour avoir l'historique pour un jour donné, il faut cliquer sur l'icône calendrier en haut à droite.

    Néanmoins, il y a le même bug qu'avec RocketChat : t'es dans l'historique à la ligne X puis pouf, à la ligne X+1 tu reviens sur le jour en cours ou sur le lendemain d'où tu étais… sans que la suite de la conversation archivée ne soit affichée. Bref, tu n'obtiens qu'une partie, aléatoire, de l'historique…

    Il est possible d'exporter tout l'historique (et tous les historiques) depuis le menu comptes, modifier le compte, choisir le compte, onglet confidentialité, exporter l'historique de discussion. On obtient un fichier texte par contact. Attention avec grep : l'heure n'étant plus affichée au début de chaque message (comme dans une appli de messagerie kikoo-moderne qui groupe les messages), un message multilignes sera tronqué lors d'une recherche par date.

    Pour copier-coller plusieurs messages depuis une fenêtre de conversation, il ne suffit pas, comme avant, de les surligner à la souris (ça permet d'obtenir un seul message à la fois, appli kikoo-moderne one more time…), il faut passer la souris sur un message, cliquer sur l'icône « … » à droite du message, puis select messages, et de cliquer sur chaque message…

    À cause du thème de mon environnement de bureau, indirectement, le champ de saisie est blanc et la couleur du texte… blanche. Bref, c'est inutilisable. J'ai essayé de personnaliser les couleurs dans les paramètres avancés de Gajim, mais rien ne concerne le champ de saisie. Au final, j'ai utilisé un autre thème sombre de MATE et j'ai fini par m'y habituer (d'ailleurs, il y a probablement de la config foireuse ou des paquets manquants à ce niveau-là puisque en fonction du thème choisi, mon environnement de bureau crashe, mais ce n'est pas la faute de Gajim).

    Autre bug : parfois, un alt+tab (y compris à la souris) vers Gajim rame à mort, il faut plus de 5 secondes avant de pouvoir écrire en ayant le retour de ce qu'on écrit. On dirait un bug de rafraîchissement de la fenêtre. Il suffit de fermer et de re-ouvrir Gajim pour corriger temporairement ce problème. J'ai trouvé un signalement similaire dans le bugtracker de Gajim. A priori, ça sent le bug GTK ou plus loin. Dans mate-tweak, onglet fenêtres, j'ai essayé de changer le gestionnaire de fenêtres (avec ou sans composition, etc.), sans succès (sur le moment, ça semble améliorer les choses, mais non, et ce n'est pas reproductible).

    Un bug n'est toujours pas corrigé : j'ai configuré Gajim pour ne pas changer d'état (absent, pas dispo) automatiquement et pour ne pas le transmettre à mes interlocuteurs. Je ne change jamais mon état manuellement. Pourtant, mes contacts voit « Guigui est maintenant en ligne » alors que je l'étais déjà, et ça correspond bien à mon inactivité sur l'ordi…


    hash-slinger

    Ce paquet fournit les scripts tlsa, sshfp et openpgpkey.

    Comme dans une version de Debian sur deux, soit il n'est pas empaqueté, soit ça déconne (cette fois-ci, c'est le cas de sshfp).

    J'ai récupéré les scripts dans le dépôt git du projet et les ai mis dans /usr/local/bin. Fin de chantier.


    hddtemp

    Il disparaît des dépôts logiciels officiels de Debian. On avait été informé lors du passage à Debian 11.

    Dans mon cas, mate-sensors-applet utilise udisks2 et ça fonctionne, donc je n'ai pas besoin d'aller plus loin. Sinon, il est possible d'utiliser le module noyau « drivetemps » (il faut le charger soi-même).


    htop

    Désormais, il comporte un onglet « I/O » qui ne dépend même pas d'iotop.


    JOSM

    Éditeur de la carte géographique OpenStreetMap.

    À son lancement, j'ai l'erreur suivante :

    Using /usr/lib/jvm/java-17-openjdk-amd64/bin/java to execute josm.
    Error occurred during initialization of boot layer
    java.lang.module.FindException: Module javafx.web not found

    Solution : apt install openjfx. Simple.


    libdvd-pkg

    Simplifie l'installation de la libdvdcss qui permet de lire des DVD (avec VLC, par ex.).

    Ça télécharge la lib, puis :

    libdvd-pkg: Checking orig.tar integrity...
    /usr/src/libdvd-pkg/libdvdcss_1.4.3.orig.tar.bz2: Réussi
    libdvd-pkg: `apt-get check` failed, you may have broken packages. Aborting...

    Sur le moment, puisque je ne mate pas de DVD, je n'avais pas de temps à perdre, donc j'avais apt remove libdvd-pkg. Basique. Cependant, aujourd'hui, un an plus tard, je constate que apt install libdvd-pkg fonctionne parfaitement. Il s'agissait donc d'une erreur temporaire côté VLC (qui héberge la libdvdcss).


    mat2

    Permet de lire et supprimer les métadonnées d'une palanquée de types de documents.

    Il me crache l'erreur : « no module named libmat2 ».

    Solution : apt install --reinstall mat2. Simple.


    nginx

    The packages nginx-core, nginx-full, nginx-light, nginx-extras are deprecated. Packages no longer distribute the nginx binary and are replaced by a metapackage to keep upgrades smooth.
    Please simply install 'nginx' and 'libnginx-mod-...' modules You need instead of these packages.


    nicinfo

    Un client RDAP pour interroger les bases de données publiques visant les objets d'Internet (adresses IP, noms de domaine, numéros d'AS).

    Il m'affiche l'erreur « bash: /usr/local/bin/nicinfo : ne peut exécuter : le fichier requis n'a pas été trouvé ».

    /usr/local/bin/nicinfo est un programme Ruby. Il énonce :

    # The application 'nicinfo' is installed as part of a gem, and
    # this file is here to facilitate running it.

    Il serait distribué sous forme de gem (un paquet Ruby, quoi). Or, gem list | grep nicinfo retourne une liste vide.

    Solution : sudo gem install nicinfo. Basique.


    non-free-firmware

    Un nouveau composant (une section) dans les dépôts logiciels officiels qui contient juste les firmwares non-libres (alors que non-free contient en sus des logiciels privateurs).

    Après vérification, j'ai toujours besoin de firmware-iwlwifi pour ma carte Wi-Fi Intel commercialisée en 2013…


    NTP

    La suite de logiciels NTP (ntpd, ntpq, ntpdate, etc.) n'est plus celle de ntp.org, mais du fork ntpsec.org. Source.

    Désormais, le fichier de conf' est /etc/ntpsec/ntp.conf, donc je supprime /etc/ntp.conf et /etc/cron.daily/ntp (purge des statistiques que je ne gènère pas). Je stocke désormais le décalage de l'horloge (driftfile) dans /var/lib/ntpsec/. Pour éviter l'écriture, dans son journal, d'une erreur non bloquante « statistics directory /var/log/ntpsec/ does not exist or is unwriteable, error No such file or directory » alors que je n'utilise pas les stats (je n'ai positionné aucune directive de configuration en ce sens), j'ai ajouté statsdir /var/lib/ntpsec/ dans ma config.

    systemctl <action> ntp continue de fonctionner grâce à un alias fourni par l'unit ntpsec. Le processus se nomme toujours ntpd.

    On peut donc effacer /etc/ntp.conf et /var/lib/ntp.


    OpenSSH

    D'une part, SSH désactive l'algorithme ssh-rsa, car il utilise SHA-1. C'était déjà le cas dans Ubuntu 22.04 (puisqu'une nouvelle version d'Ubuntu sort plus fréquemment que Debian).

    D'autre part, j'utilise des enregistrements DNS de type SSHFP. Sur mes serveurs dont le support de stockage est intégralement chiffré, j'ai deux enregistrement SSHFP : l'un pour le système régulier, l'autre pour l'initramfs qui me permet de déverrouiller mon système chiffré.

    Or, depuis sa version 8.7, OpenSSH n'accepte plus qu'un seul SSHFP par machine :

    debug3: verify_host_key_dns
    debug1: found 2 secure fingerprints in DNS
    debug3: verify_host_key_dns: checking SSHFP type 1 fptype 2
    debug1: verify_host_key_dns: matched SSHFP type 1 fptype 2
    debug3: verify_host_key_dns: checking SSHFP type 1 fptype 2
    debug1: verify_host_key_dns: failed SSHFP type 1 fptype 2
    debug1: mismatching host key fingerprint found in DNS

    À regret, j'utilise la même paire de clés pour mon système et son initrd…


    OpenSSL

    Passage à la version 3. Depuis cette version, le SECLEVEL 1 désactive SHA-1, qui est nécessaire pour utiliser TLS 1.0 et TLS 1.1. Donc, sur les bouses, il faudra diminuer le niveau de sécurité (SECLEVEL 0) dans le fichier de config' d'OpenSSL ou du logiciel… voire le recompiler.


    OpenVPN

    D'une part, OpenVPN est adossé à OpenSSL, qui, comme dit supra, désactive plusieurs vieux algorithmes de condensation et de chiffrement, les clés < 1024 bits, TLS < 1.2, etc. Si la négociation des algos entre serveur et clients n'est pas activée et que l'un des deux utilise des algos abandonnés, le VPN ne sera pas établi.

    D'autre part, c'est l'arrivée, dans Debian, du Data Channel Offload (DCO). OpenVPN tourne à la fois dans l'espace noyau (kernel-land) et dans l'espace utilisateur (userland) en fonction de la fonctionnalité (ex. : le réseau, les interfaces de type TUN, relèvent de l'espace noyau, alors qu'OpenVPN lui-même tourne en espace utilisateur). Il y a donc de nombreux transferts, en RAM, entre ces deux espaces. Cela ralentit les performances, et donc le débit, d'un tunnel OpenVPN. DCO est un module pour Linux qui fait remonter l'essentiel des opérations dans le noyau (pas uniquement la cryptographie, contrairement à ce qu'expose apt-listchange). Notons que le concurrent, Wireguard, tourne essentiellement dans l'espace noyau.

    Pour l'instant, DCO repose sur DKMS donc c'est pas optimal (il faut les entêtes de programmation du noyau, compiler le noyau, DKMS = hooks apt, etc.).

    Mise en place : sudo apt install linux-headers-$(uname -r) openvpn-dco-dkms. Puis redémarrer le serveur ou le client.

    Dans le journal d'OpenVPN :
    Avant : « Note: Kernel support for ovpn-dco missing, disabling data channel offload. »
    Après : « DCO version: 0.0+git20231103 »

    On voit également DCO dans ip -d l (dernière ligne) :

    7: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
         link/none  promiscuity 0  allmulti 0 minmtu 68 maxmtu 65463 
         ovpn-dco addrgenmode random numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 tso_max_size 65536 tso_max_segs 65535 gro_max_size 65536 


    PHP

    Le passage de PHP 7.4 à 8.2 pique…


    Wordpress

    create_function() n'existe plus pour créer une fonction anonyme… On peut soit déclarer directement une fonction anonyme (ça devient illisible), soit utiliser une fonction nommée standard. Exemple :

    # add_filter('login_errors',create_function('$a', 'return null;'));
    $nologinfo = function ($a) {
        return null;
    };
    add_filter('login_errors', $nologinfo);

    WordPress crache « PHP Warning: Constant FORCE_SSL_ADMIN already defined » ? Solution ici.


    Shaarli

    La fonction strftime() est obsolète, donc PHP affiche une notice de dépréciation. Shaarli l'utilise dans les templates, ce qui complique sa substitution…

    Une méthode d'une classe qui implémente une interface doit avoir le même type de retour que dans l'interface (logique…). Sinon, une notice de dépréciation est affichée. Il est possible d'ajouter « #[\ReturnTypeWillChange] » avant la méthode en question pour que PHP n'émette pas la notice. Dans shaarli, c'est la classe de stockage des liens (LinkDB), qui est centrale, qui est impactée, ce qui signifie que, tôt ou tard (on évoque PHP 9), ma version de shaarli ne pourra plus fonctionner sur un PHP à jour.

    En production, j'aime bien avoir des journaux verbeux afin de détecter les problèmes et les corriger. Mais, en l'état, je ne peux rien corriger, et mon shaarli génère 22 Mo de journal par tranche de 12 h, ce qui n'est pas tenable (je pourrais stocker 1,3 Go par mois, ce n'est pas la question, mais ça noie les autres erreurs).

    A priori, il existe une version de shaarli qui, à la fois, n'utilise plus LinkDB, et n'utilise pas encore composer. En attendant d'y réfléchir, dans index.php de Shaarli, je remplace la ligne « error_reporting[…] » par error_reporting(E_ALL^E_DEPRECATED); afin de tout consigner, sauf les dépréciations.


    RSS-Bridge

    ERROR Fatal Error 8192: Creation of dynamic property YoutubeBridge::$request is deprecated in bridges/YoutubeBridge.php line 321

    Hé oui, il n'est plus possible d'affecter un membre à une classe qui ne le déclare pas (logique, encore)… Solution : utiliser YouTubeCommunityTabBridge à la place de YouTubeBridge.


    Tiny Tiny RSS

    PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function ttrss_error_handler()

    Ben oui, PHP devient un peu exigeant sur l'ordre des paramètres, entre ceux obligatoires ou facultatifs, quitte à utiliser les paramètres nommés.

    Je décide de mettre à jour ttrss tout en sachant que, comme d'habitude, ça va être douloureux (l'absurdité de considérer que la branche master d'un dépôt git constitue une version stable d'un logiciel)…

    Premier problème : « Exception while creating PDO object:could not find driver ». La syntaxe du fichier config.php a changé. Désormais, il faut utiliser « PUTENV() »…

    Deuxième problème : sur l'interface web, j'ai l'erreur « Vous n’avez pas les permissions nécessaires pour exécuter ce script. ». OK, comme d'hab, ça essaye de mettre à jour la base de données alors que je suis connecté, sur l'interface web de ttrss, avec un compte utilisateur standard (!= administrateur de ttrss).

    Troisième problème : comme d'hab avec ttrss, le script de mise à jour échoue. Je dois jouer à la main la modification de la BDD de chaque version : mysql -u <nom_utilisateur> -p <nom_BDD> < /chemin/vers/ttrss/sql/mysql/migrations/140.sql puis 141.sql puis…

    Quatrième problème : les fichiers SQL précités, à partir du 143 (jusqu'au dernier, 147), ne met plus à jour, dans la BDD, la version du schéma de la BDD. Donc l'installateur veut toujours effectuer une mise à jour de la BDD (alors qu'elle est bien à la dernière version)… (Tu sens le problème de qualité du code ?) Je n'ai plus qu'à le faire moi-même : echo 'update ttrss_version set schema_version = 147;' | mysql -u <nom_utilisateur> -p <nom_BDD>.

    Cinquième problème : les favicons des sites suivis en RSS sont désormais stockés dans cache/feed-icons (au lieu de feed-icons), ce qui est une bonne chose. Néanmoins, le script qui met à jour les flux (update_daemon2.php) est lancé, par systemd, avec un utilisateur différent, qui n'a pas la permission d'écrire ici, donc aucune icône n'apparaît dans la liste des flux suivis dans l'interface web de ttrss. Je corrige ça avec un chmod classique.

    Sixième problème : sur certains flux RSS en erreur, le script de mise à jour des flux reçoit une erreur de la BDD : « Exception while updating feed 80: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'last_error' at row 1 ». Forcément, le flux RSS est en erreur HTTP 404, ce qui déclenche une exception dans le script de mise à jour, qui essaye de stocker toute la stacktrace dans un varchar de taille 250… Contournement : dans classes/RSSUtils.php, j'ai remplacé la ligne « 'last_error' => $error_message, » par « 'last_error' => mb_substr($error_message, 0, 250), ».


    pip3 / pipx

    J'utilise yt-dlp pour récupérer des vidéos YouTube ou autres. Comme YouTube change des bricoles tous les quatre matins pour entraver toute rétro-ingénierie, je l'installe et le mets à jour avec pip3. Bien que je sois le seul utilisateur de mon ordi, je l'installe « system-wide », pour tous les utilisateurs, dans /usr/local/bin.

    Après mon passage à Debian 12, je tente de mettre à jour yt-dlp avec pip3 et… c'est le drame :

    $ sudo pip3 install -U yt-dlp
    error: externally-managed-environment
    
    × This environment is externally managed
    ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install.
    
        If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed.
    
        If you wish to install a non-Debian packaged Python application, it may be easiest to use pipx install xyz, which will manage a virtual environment for you. Make sure you have pipx installed.
    
        See /usr/share/doc/python3.11/README.venv for more information.
    
    note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
    hint: See PEP 668 for the detailed specification.

    Ben oui, apt-listchanges nous avait prévenu :

    python-pip (23.0+dfsg-2) unstable; urgency=medium

    This version of pip introduces PEP 668 support. Debian's python3.11 interpreter will soon (>= 3.11.2-3) declare the installation to be EXTERNALLY-MANAGED, instructing pip to disallow package installation outside virtualenvs.

    See: https://peps.python.org/pep-0668/

    Practically, this means that you can't use pip to install packages outside a virtualenv, on Debian's Python interpreter by default, any more.

    You can override this behaviour by passing --break-system-packages to pip install, but be aware that if you are running pip as root, doing so can break your system.

    See /usr/share/doc/python3.11/README.venv for more details.

    Version courte : pour éviter les conflits (de bibliothèques de fonctions, etc.), notamment avec apt, désormais chaque logiciel Python est dans un conteneur (venv) qui lui est dédié.

    Rien n'empêche de créer un venv dédié à un logiciel dans /usr/local, avec un lien symbolique dans /usr/local/bin.

    Pour se simplifier la vie, /usr/share/doc/python3.11/README.venv recommande d'utiliser pipx qui est empaqueté dans les dépôts officiels Debian.

    Mais, que l'on soit simple utilisateur ou root, pipx crée les venvs dans le répertoire personnel de l'utilisateur qui l'appelle… tout en prétendant que le logiciel est disponible globalement (tout en ayant un doute sur le PATH)… :

    $ sudo pipx install yt-dlp
    ⚠️  Note: yt-dlp was already on your PATH at /usr/local/bin/yt-dlp
      installed package yt-dlp 2023.12.30, installed using Python 3.11.2
      These apps are now globally available
        - yt-dlp
    ⚠️  Note: '/root/.local/bin' is not on your PATH environment variable. These apps will not be globally accessible until your PATH is updated. Run `pipx ensurepath` to
        automatically add it, or manually modify your PATH in your shell's config file (i.e. ~/.bashrc).
    done! ✨ 🌟 ✨

    Pour rendre un logiciel Python disponible pour tous les utilisateurs (globalement), il existe l'option --global de pipx… qui n'est pas dispo avant sa version 1.5, alors que Debian 12 embarque sa version 1.1… Il est possible de passer des variables pour contourner ça.

    En résumé, voici ce que j'ai fait pour avoir un yt-dlp accessible à tous les utilisateurs de ma machine (le bazar est rangé dans /opt/pipx, un lien symbolique est créé dans /usr/local/bin qui est dans le PATH, et le manuel est déposé au bon endroit) :

    $ sudo mkdir /opt/pipx
    $ sudo PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin PIPX_MAN_DIR=/usr/local/share/man pipx install yt-dlp

    L'ennui, c'est qu'il faut rappeler ces variables d'environnement lorsque l'on veut mettre à jour yt-dlp : sudo PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin PIPX_MAN_DIR=/usr/local/share/man pipx upgrade yt-dlp. Vivement le --global.


    PulseAudio / PipeWire

    Je n'ai plus de son dans VLC, sur PeerTube, etc. VLC met trois plombes à se lancer, il ne lit pas les fichiers multimédias, comme s'il était en IO wait.

    PipeWire devient le serveur de son par défaut dans un environnement MATE. J'ai installé le paquet suivant sans trop savoir pourquoi puis j'ai redémarré mon ordi (je n'ai pas trouvé quel service redémarrer, et la réouverture de ma session graphique n'a produit aucun effet) : apt install wireplumber.

    Pour l'instant, j'utilise PipeWire en duo avec PulseAudio (via pipewire-pulse) sans trop savoir comment ça ils articulent, et avec pavucontrol pour régler le volume (il faudra que j'étudie comment on fait avec PipeWire).


    scrcpy

    Permet de diffuser / enregistrer l'écran d'un ordiphone Android sur son ordi et d'interagir avec ledit smartphone depuis un ordi.

    Il est pas disponible dans les dépôts officiels de Bookworm. :( Mais il est dans unstable, donc il va peut-être revenir à la prochaine version stable.


    usrmerge

    Je pensais que la grande transition /{bin,lib,sbin} vers /usr/{bin,lib,sbin} avait eu lieu lors de mon passage à Debian 10, mais a priori, non.

    J'ai eu un message d'erreur, uniquement sur mon ordi de travail, pas sur mes serveurs :

    Paramétrage de usrmerge (35) ...
    
    FATAL ERROR:
    Both /bin/open and /usr/bin/open exist.
    
    You can try correcting the errors reported and running again
    /usr/lib/usrmerge/convert-usrmerge until it will complete without errors.
    Do not install or update other Debian packages until the program
    has been run successfully.
    
    E: usrmerge failed.
    dpkg: erreur de traitement du paquet usrmerge (--configure) :
     le sous-processus paquet usrmerge script post-installation installé a renvoyé un état de sortie d'erreur 1
    Des erreurs ont été rencontrées pendant l'exécution :
    usrmerge
    E: Sub-process /usr/bin/dpkg returned an error code (1)

    Flemme de chercher la cause, donc apt install --fix-broken. Nouvelle erreur :

    Paramétrage de usrmerge (35) ...
    
    FATAL ERROR:
    Both /lib/x86_64-linux-gnu/libmnl.so.0 and /usr/lib/x86_64-linux-gnu/libmnl.so.0 exist.
    
    You can try correcting the errors reported and running again
    /usr/lib/usrmerge/convert-usrmerge until it will complete without errors.
    Do not install or update other Debian packages until the program
    has been run successfully.
    
    E: usrmerge failed.
    dpkg: erreur de traitement du paquet usrmerge (--configure) :
     le sous-processus paquet usrmerge script post-installation installé a renvoyé un état de sortie d'erreur 1

    Hum… /lib/x86_64-linux-gnu/libmnl.so.0 est un lien vers /lib/x86_64-linux-gnu/libmnl.so.0.1.0 qui est un lien vers /usr/lib/x86_64-linux-gnu/libmnl.so.0.1.0… Donc c'est plutôt bien… Je supprime /lib/x86_64-linux-gnu/libmnl.so.0.

    Paramétrage de usrmerge (35) ...
    
    FATAL ERROR:
    Both /lib/x86_64-linux-gnu/libfuse.so.2 and /usr/lib/x86_64-linux-gnu/libfuse.so.2 exist.
    
    You can try correcting the errors reported and running again
    /usr/lib/usrmerge/convert-usrmerge until it will complete without errors.
    Do not install or update other Debian packages until the program
    has been run successfully.
    
    E: usrmerge failed.
    dpkg: erreur de traitement du paquet usrmerge (--configure) :
     le sous-processus paquet usrmerge script post-installation installé a renvoyé un état de sortie d'erreur 1
    Des erreurs ont été rencontrées pendant l'exécution :
     usrmerge
    E: Sub-process /usr/bin/dpkg returned an error code (1)

    Hum… /lib/x86_64-linux-gnu/libfuse.so.2 est un lien vers /lib/x86_64-linux-gnu/libfuse.so.2.9.9, et /usr/lib/x86_64-linux-gnu/libfuse.so.2 est un lien vers /usr/lib/x86_64-linux-gnu/libfuse.so.2.9.7. Attention, il y a une différence de version. Je supprime /usr/lib/x86_64-linux-gnu/libfuse.so.2 et /usr/lib/x86_64-linux-gnu/libfuse.so.2.9.7 (ancienne version).

    update-alternatives --config open` + valider l'existant (/usr/bin/run-mailcap)
    apt install --fix-broken
    apt install --reinstall libmnl0 libfuse2

    Fin de chantier.


    VLC

    (Après avoir corrigé le problème PulseAudio / PipeWire rapporté supra.)

    Le nombre d'images par seconde semble inférieur à 25, je sens une latence permanente. J'ai une bande noire en bas de certaines vidéos. VLC n'arrive pas à décoder certaines images, je vois une bouillie de pixels, il affiche ce qui suit sur la console et, si je reviens en arrière dans la vidéo, au bout d'un moment, les images ne sont plus de la bouillie.

    libvdpau-va-gl: Decoder::Render_h264(): no surfaces left in buffer
    libvdpau-va-gl: Decoder::Render_h264(): no surfaces left in buffer
    libvdpau-va-gl: Decoder::Render_h264(): no surfaces left in buffer
    libvdpau-va-gl: Decoder::Render_h264(): no surfaces left in buffer
    libvdpau-va-gl: Decoder::Render_h264(): no surfaces left in buffer
    libvdpau-va-gl: Decoder::Render_h264(): no surfaces left in buffer

    VDPAU est le machin de NVIDIA pour décoder les vidéos sur le GPU. Je n'ai pas besoin de ça, mon CPU est largement assez puissant. Je le désactive : dans le menu outils de VLC, préférences, entrée/codecs, passer le « décodage matériel » de « automatique » à « désactiver ». Problème résolu.


    vmwgfx

    Sur l'une de mes machines virtuelles distantes, rien ne s'affiche sur le VNC après l'initrd (pas de demande de login, pas de console, rien). Si j'envoie ctrl+alt+F5 ou F3 ou F2, etc., je vois bien, en SSH, des processus agetty apparaître. Évidemment, je pense avoir la même conf' GRUB & co que sur mes autres machines distantes.

    Johndescs pense à un sous-système, genre DRM ou KMS, qui fait le malin, qui tente de changer la résolution ou autre paramètre de la carte graphique virtuelle, et se vautre.

    Sur la machine en question, lspci -v | grep -i vga ne renvoie rien… car il ne parvient pas à identifier les périphériques et m'affiche uniquement leur identifiant. La table de correspondance /usr/share/misc/pci.ids est absente. sudo apt install pci.ids. La commande précitée affiche désormais « VMware SVGA II Adapter ». Voilà une différence avec mon autre machine virtuelle distante qui, elle, affiche « Cirrus Logic GD 5446 ».

    En cherchant « vga » et « vmwgfx » (nom du pilote graphique de VMware) dans kern.log :

    kernel: [   40.962977] vmwgfx 0000:00:02.0: vgaarb: deactivate vga console
    kernel: [   41.040496] vmwgfx 0000:00:02.0: [drm] Running on SVGA version 2.
    kernel: [   41.040678] vmwgfx 0000:00:02.0: [drm] MOB limits: max mob size = 0 kB, max mob pages = 0
    kernel: [   41.040693] vmwgfx 0000:00:02.0: [drm] Maximum display memory size is 16384 kiB
    kernel: [   41.040696] [drm:vmw_probe.cold [vmwgfx]] *ERROR* Hardware has no pitchlock
    kernel: [   41.045327] vmwgfx: probe of 0000:00:02.0 failed with error -38

    L'hypothèse de Johndescs se confirme…

    J'ai décidé d'empêcher le chargement du pilote vmwgfx en ajoutant ce qui suit dans /etc/modprobe.d/blacklist.conf :

    blacklist vmwgfx
    install vmwgfx /bin/true

    Fin de chantier.



    #Debian 11 à Debian 12

    Thu Jan 16 15:41:35 2025 - permalink -
    - http://shaarli.guiguishow.info/?_lVXvA
  • De Debian GNU/Linux Buster à Bullseye / Debian 10 à 11

    Comme à chaque passage à une nouvelle version de Debian GNU/Linux, voici un résumé de tout ce qui a foiré ou changé quand je suis passé à Bullseye (Debian 11). (Oui, cet article est très en retard.)

    Pour effectuer la mise à jour, on suit la doc'.


    apt

    Par défaut, suppression auto, lors d'un full/dist-upgrade, des anciens noyaux qui ne sont pas en cours d'utilisation.


    Beamer

    J'ai constaté que le paquet latex-beamer a disparu des dépôts officiels. Il s'agissait d'un paquet de transition. J'arrive toujours à créer des présentations LaTeX Beamer à partir de Markdown, donc ça me va.


    Deluge

    Ce client BitTorrent est désormais autonome (standalone), on n'a plus besoin d'installer deluged.


    Exim

    Mise à jour majeure. Validation du certificat d'un smarthost sinon échec. On ne fait plus confiance aux valeurs fournies par un tiers (ex. : l'émetteur d'un email) pour décider où ranger l'email (nom du dossier), etc., il faut utiliser une nouvelle syntaxe comprenant un « lookup ».


    Gajim

    Accusé de lecture des messages envoyés à autrui (deux coches) : l'envoi d'un accusé de lecture se désactive au cas par cas dans le menu de chaque fenêtre de conversation. Aucune action possible du côté de l'émetteur.

    Afficher les accusés de réception de mes messages par autrui (une coche) : cela se désactive dans les préférences générales (menu Gajim), onglet discussions.

    L'envoi des accusés de réception par mon client ne se désactive pas.


    Hexdump

    Désormais livré dans le paquet bsdextrautils.


    KolourPaint

    La boîte à outils ne contient plus d'icônes, que du texte. Elle prend donc beaucoup plus de place.

    Solution : sudo apt install breeze.


    libvirt (virsh et virt-manager)

    Erreur au lancement d'une VM avec virt-manager :

    Erreur lors du démarrage du réseau « default »: internal error: Failed to apply firewall rules /usr/sbin/iptables -w --table nat --list-rules: # Warning: iptables-legacy tables present, use iptables-legacy to see them
    iptables v1.8.7 (nf_tables): table `nat' is incompatible, use 'nft' tool.

    La même avec virsh :

    $ sudo virsh net-start default
    erreur :Impossible de démarrer le réseau default
    erreur :internal error: Failed to apply firewall rules /usr/sbin/iptables -w --table nat --list-rules: # Warning: iptables-legacy tables present, use iptables-legacy to see them
    iptables v1.8.7 (nf_tables): table `nat' is incompatible, use 'nft' tool.

    Oui, j'utilise nftables pour placer des règles de filtrage entrantes et sortantes vu que j'utilise un VPN avec une IP publique (ce qui justifie les règles sur le trafic entrant) et que je ne veux pas de trafic hors VPN (ce qui justifie les règles sur le trafic sortant).

    Solution temporaire (qui tient tant Debian ne considère pas que la transition d'iptables vers nftables est achevée) :

    • sudo update-alternatives --config iptables, choisir « /usr/sbin/iptables-legacy » (par défaut : /usr/sbin/iptables-nft) ;

    • sudo systemctl restart libvirtd.service (sinon ça continue de foirer).

    Inconvénient : perte de lisibilité. En IPv4, nft list ruleset affiche uniquement mes règles (de type inet) alors que iptables -L -n -v affiche uniquement celle de la libvirt. En IPv6, nft list ruleset affiche tout.

    L'autre méthode, comme indiqué ici est de changer le nom de mes tables et chaînes dans /etc/nftables.conf, puis de redémarrer nftables et libvirtd. Ainsi, mes règles et celles de libvirt se cumulent dans un bazar incompréhensible (ce qui n'est vraiment pas top). A priori, cela ne permet aucune fuite hors VPN. Au pire, il suffit de redémarrer nftables après l'utilisation de libvirt pour remettre en place uniquement mes règles. L'avantage de cette deuxième méthode, c'est que ce problème persiste avec Debian 12, donc il ne doit pas être prioritaire côté libvirt…


    MariaDB

    Le processus et l'unit systemd ne contiennent plus le nom « mysql ». Enfin…

    /etc/mysql/debian.cnf est déprécié (auth par socket pour root).


    OpenVPN

    Plus de redémarrage automatique après la mise à jour. Ça fait longtemps que j'attendais ça. \o/


    RPCBind

    Il n'écoute plus (sur des ports aléatoires) par défaut. Ça fait longtemps que j'attendais ça (pour palier, je masquais, et je masque toujours, rcpbind avec systemd). \o/


    systemd-journald

    Activation du journal persistant dans /var/log/journal. Attention, donc, si tu dois garder un journal un certain temps bien précis (obligation légale, par ex.), RGPD, tout ça, il y a de la configuration à faire.

    Mes notes sur journald.


    Unbound

    L'inclusion des fichiers dans /etc/unbound/unbound.conf.d/ se fait désormais avec la directive include-toplevel, donc les fragments de conf' doivent avoir la bonne syntaxe, notamment bien énoncer la section de la conf' dans laquelle s'inscrit ce fragment (exemple : on ne peut plus espérer qu'un autre fragment chargé précédemment nous positionnera dans la bonne section genre « server »).


    tftpd

    Durant la mise à jour, il demande :

    Une entrée non reconnue pour tftp a été rencontrée dans /etc/inetd.conf pendant la tentative d'ajout de l'entrée suivante :

    tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp

    L'entrée non reconnue est la suivante :

    tftp dgram udp6 wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp

    Faut-il quitter l'entrée existante et continuer sans modifications ?

    La question est piège… J'avais répondu non, pour qu'il ne quitte pas sans modifier, c'est-à-dire qu'il modifie. J'ai rencontré l'erreur :

    Des erreurs ont été rencontrées pendant l'exécution :
    tftpd
    E: Sub-process /usr/bin/dpkg returned an error code (1)

    Je ne sais plus à quoi me servait ce logiciel, la dernière trace sur ce shaarli date de 2015, donc je l'ai désinstallé sans chercher à comprendre.


    xsane

    Upstream stopped working on xsane some time ago. Now the homepage and the archive are offline, too.
    If the situation doesn't change, xsane will be removed before Bullseye is released.

    J'avais déjà constaté cela lors de mon passage à Buster (Debian 10). Mais xsane est toujours présent dans les dépôts officiels Debian 12. :D



    #Debian 10 à Debian 11

    Wed Jan 15 13:07:38 2025 - permalink -
    - http://shaarli.guiguishow.info/?_V2wqw
  • bigard - les expressions - Vidéo Dailymotion

    En cette saison où l'on se souhaite une bonne année, il m'apparaît important de ressortir ce sketch de Bigard.

    Également approprié aux temps actuels : le lâcher de salopes.

    Fri Jan 3 16:46:51 2025 - permalink -
    - https://www.dailymotion.com/video/x3rrat
Links per page: 20 50 100
◄Older
page 1 / 276
Mentions légales identiques à celles de mon blog | CC BY-SA 3.0

Shaarli - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community