December 20, 2025

Carl Chenet

Le travail en profondeur (deep work)

🧠 Le travail en profondeur (deep work en anglais) est l’énorme oubliĂ© de l’activitĂ© sur site. Étant donnĂ© l’organisation actuelle des bureaux, il n’est aujourd’hui possible (quasiment) qu’en tĂ©lĂ©travail.

⚠ Pour rappel, le travail en profondeur s’incarne dans des plages de temps de travail ininterrompues, de 1h à 4h. Vous commencez à voir le problùme.

📳 Impossible de se concentrer dans un open space. Les discussions au tĂ©lĂ©phone incessantes vous en empĂȘchent. Des rĂ©unions dĂ©marrent tous les demi-heures, parfois tous les quarts d’heure, et viennent briser votre concentration.

📱 Entre les deux, des collĂšgues discutent de diffĂ©rents projets, mais aussi de la pluie et du beau temps sous votre nez, vous interpellent directement s’ils ont une question, perturbant les calculs complexes que vous Ă©tiez laborieusement en train d’essayer de mener Ă  leur terme.

🍔 À midi, c’est le grand dĂ©part, des groupes se joignent, il faut courir pour manger avec untel ou unetelle, ou on vient vous chercher sans vergogne Ă  votre bureau, sans se soucier du rythme de travail qui est nĂ©cessaire pour mener Ă  bien votre Ă©tude en cours.

📝 Bien sĂ»r, tous les mĂ©tiers n’ont peut-ĂȘtre pas besoin de travail en profondeur. Les mĂ©tiers rĂ©actifs, ou on se met en avant en rĂ©agissant Ă  tout ce qui se passe dans l’entreprise (et souvent Ă  rien), sont ceux qui permettent d’ĂȘtre le plus visible et donc de se mettre en avant. Mais beaucoup le nĂ©cessitent. Le dĂ©veloppement d’applications, la conception d’architecture complexe, et sĂ»rement beaucoup d’autres demandent un travail en profondeur pour ĂȘtre menĂ© Ă  bien et dans les meilleures conditions.

❓ Et vous ? Comment gĂ©rez-vous vos plages de travail en profondeur ? Vous y arrivez sur site ou vous attendez vos jours de tĂ©lĂ©travail ? Dites moi tout en commentaires 🙏

L’auteur

đŸ§‘â€đŸ’» Je suis architecte infrastructure cloud (AWS et Azure) senior freelance, adepte du tĂ©lĂ©travail et du travail en profondeur, et conçois les infrastructures dont vous avez besoin pour faire tourner les services IT de vos entreprises. Disponible pour une nouvelle mission dĂšs mi-janvier 2026. N’hĂ©sitez pas Ă  me contacter si je peux vous aider dans vos projets.

20 December, 2025 01:08PM by Carl Chenet

December 07, 2025

Vincent Bernat

Compression des fichiers embarqués dans Go

La fonctionnalitĂ© embed de Go permet d’intĂ©grer des ressources statiques dans un exĂ©cutable, mais elle les stocke non compressĂ©es. Cela gaspille de l’espace : une interface web avec de la documentation peut faire gonfler un binaire de plusieurs mĂ©gaoctets. Une proposition pour activer optionnellement la compression a Ă©tĂ© dĂ©clinĂ©e car il est difficile de gĂ©rer tous les cas d’usage. Une solution ? Mettre toutes les ressources dans une archive ZIP ! đŸ—œïž

Code

La bibliothÚque standard de Go inclut un module pour lire et écrire des archives ZIP. Il contient une fonction qui transforme une archive ZIP en une structure io/fs.FS. Cette derniÚre peut remplacer embed.FS dans la plupart des cas1.

package embed

import (
  "archive/zip"
  "bytes"
  _ "embed"
  "fmt"
  "io/fs"
  "sync"
)

//go:embed data/embed.zip
var embeddedZip []byte

var dataOnce = sync.OnceValue(func() *zip.Reader {
  r, err := zip.NewReader(bytes.NewReader(embeddedZip), int64(len(embeddedZip)))
  if err != nil {
    panic(fmt.Sprintf("cannot read embedded archive: %s", err))
  }
  return r
})

func Data() fs.FS {
  return dataOnce()
}

Pour construire l’archive embed.zip, nous pouvons utiliser une rĂšgle dans un Makefile. Les fichiers Ă  y placer sont spĂ©cifiĂ©s comme des dĂ©pendances pour s’assurer que les changements sont dĂ©tectĂ©s. La variable automatique $@ est la cible de la rĂšgle, tandis que $^ est remplacĂ©e par la liste des dĂ©pendances, modifiĂ©es ou non.

common/embed/data/embed.zip: console/data/frontend console/data/docs
common/embed/data/embed.zip: orchestrator/clickhouse/data/protocols.csv
common/embed/data/embed.zip: orchestrator/clickhouse/data/icmp.csv
common/embed/data/embed.zip: orchestrator/clickhouse/data/asns.csv
common/embed/data/embed.zip:
    mkdir -p common/embed/data && zip --quiet --recurse-paths --filesync $@ $^

Gain d’espace

Akvorado, un collecteur de flux Ă©crit en Go, embarque plusieurs ressources statiques :

  • des fichiers CSV pour traduire les numĂ©ros de ports, les protocoles ou les numĂ©ros d’AS ;
  • du HTML, CSS, JS et des images pour l’interface web ;
  • la documentation.
Répartition de l'espace utilisé par chaque paquet avant et aprÚs l'introduction de embed.zip. Il est affiché comme une carte arborescente et nous pouvons voir de nombreux fichiers embarqués remplacés par un plus gros.
Répartition de l'espace utilisé par chaque composant avant (gauche) et aprÚs (droite) l'introduction de embed.zip.

L’intĂ©gration de ces ressources dans une archive ZIP a rĂ©duit la taille de l’exĂ©cutable de plus de 4 Mio :

$ unzip -p common/embed/data/embed.zip | wc -c | numfmt --to=iec
7.3M
$ ll common/embed/data/embed.zip
-rw-r--r-- 1 bernat users 2.9M Dec  7 17:17 common/embed/data/embed.zip

Perte de performance

Lire depuis une archive compressĂ©e n’est pas aussi rapide que lire un fichier Ă  plat. Un benchmark simple montre que c’est plus de 4 fois plus lent. De plus, la lecture de l’archive alloue de la mĂ©moire2.

goos: linux
goarch: amd64
pkg: akvorado/common/embed
cpu: AMD Ryzen 5 5600X 6-Core Processor
BenchmarkData/compressed-12     2262   526553 ns/op   610 B/op   10 allocs/op
BenchmarkData/uncompressed-12   9482   123175 ns/op     0 B/op    0 allocs/op

Chaque accĂšs Ă  une ressource nĂ©cessite une Ă©tape de dĂ©compression, comme on peut le voir dans ce graphique :

🖼 Graphique en flammes lors de la lecture de donnĂ©es depuis embed.zip comparĂ© Ă  la lecture directe
Graphique en flammes du CPU comparant le temps passĂ© sur le CPU lors de la lecture des donnĂ©es depuis embed.zip (Ă  gauche) et lors de la lecture directe (Ă  droite). Parce que Go exĂ©cute le benchmark pour les donnĂ©es non compressĂ©es 4 fois plus souvent, il utilise le mĂȘme espace horizontal que le benchmark pour les donnĂ©es compressĂ©es. Le graphique est interactif.

Bien qu’une archive ZIP ait un index pour trouver rapidement le fichier demandĂ©, se dĂ©placer Ă  l’intĂ©rieur d’un fichier compressĂ© n’est actuellement pas possible3. Par consĂ©quent, les fichiers retournĂ©s depuis une archive compressĂ©e n’implĂ©mentent pas les interfaces io.ReaderAt ou io.Seeker, contrairement aux fichiers directement embarquĂ©s. Cela empĂȘche certaines fonctionnalitĂ©s du serveur HTTP, comme servir des fichiers partiels ou dĂ©tecter le type MIME.


Pour Akvorado, c’est un compromis acceptable pour Ă©conomiser quelques mĂ©bioctets d’un exĂ©cutable de presque 100 Mio. La semaine prochaine, je continuerai cette aventure futile en expliquant comment j’ai empĂȘchĂ© Go de dĂ©sactiver l’élimination de code mort ! đŸŠ„


  1. Elle autorise la lecture de plusieurs fichiers simultanĂ©ment. Cependant, elle n’implĂ©mente pas les mĂ©thodes ReadDir() et ReadFile(). ↩

  2. Il serait possible de conserver en mĂ©moire les ressources frĂ©quemment consultĂ©es. Cela rĂ©duirait l’usage du CPU et Ă©changerait la mĂ©moire cache contre de la mĂ©moire rĂ©sidente. ↩

  3. SOZip est un profil qui permet de rĂ©aliser un accĂšs alĂ©atoire rapide dans un fichier compressĂ©. Cependant, le module archive/zip de Go ne sait pas l’utiliser. ↩

07 December, 2025 11:05PM by Vincent Bernat

September 22, 2025

Akvorado release 2.0

Akvorado 2.0 est sorti aujourd’hui ! Akvorado est un collecteur de flux rĂ©seau IPFIX et sFlow. Il enrichit les flux et les stocke dans une base de donnĂ©es ClickHouse. Les utilisateurs peuvent parcourir les donnĂ©es via une console web. Cette version introduit un changement architectural important et d’autres amĂ©liorations mineures. Regardons plus en dĂ©tails ! đŸ€ż

$ git diff --shortstat v1.11.5
 493 files changed, 25015 insertions(+), 21135 deletions(-)

Nouveau service « outlet »

Le changement majeur dans Akvorado 2.0 est la sĂ©paration du service inlet en deux parties : l’inlet et l’outlet. Auparavant, l’inlet gĂ©rait tout le traitement des flux : rĂ©ception, dĂ©codage et enrichissement. Les flux Ă©taient ensuite envoyĂ©s Ă  Kafka pour stockage dans ClickHouse :

Traitement des flux Akvorado avant le changement : les flux sont reçus et traitĂ©s par l'inlet, envoyĂ©s Ă  Kafka et stockĂ©s dans ClickHouse
Traitement des flux Akvorado avant l'introduction du service outlet

Les flux rĂ©seau atteignent le service inlet via des chaussettes UDP, un protocole non fiable. L’inlet doit les traiter assez rapidement pour Ă©viter de perdre des paquets. Pour gĂ©rer un grand nombre de flux, l’inlet crĂ©e plusieurs ensembles de workers pour recevoir les flux, rĂ©cupĂ©rer les mĂ©tadonnĂ©es et assembler les flux enrichis pour Kafka. De nombreuses options de configuration existaient pour la montĂ©e en charge, ce qui augmentait la complexitĂ© pour les utilisateurs. Le code devait Ă©viter tout blocage, rendant la chaĂźne de traitement complexe et parfois peu fiable, notamment le composant BMP1. L’ajout de nouvelles fonctionnalitĂ©s sans aggraver le problĂšme devenait difficile2.

Dans Akvorado 2.0, l’inlet reçoit les flux et les pousse vers Kafka sans les dĂ©coder. Le nouveau service outlet gĂšre les tĂąches restantes :

Traitement des flux Akvorado aprĂšs le changement : les flux sont reçus par l'inlet, envoyĂ©s Ă  Kafka, traitĂ©s par l'outlet et insĂ©rĂ©s dans ClickHouse
Traitement des flux Akvorado aprĂšs l'introduction du service outlet

Ce changement va au-delĂ  d’un simple dĂ©coupage3 : l’outlet lit maintenant les flux depuis Kafka et les pousse vers ClickHouse, deux tĂąches qu’Akvorado ne gĂ©rait pas auparavant. Les flux sont groupĂ©s par lots pour augmenter l’efficacitĂ© et rĂ©duire la charge sur ClickHouse en utilisant ch-go, un client Go bas niveau pour ClickHouse. Quand les lots sont trop petits, des insertions asynchrones sont utilisĂ©es (e20645). Le nombre de workers de l’outlet s’ajuste dynamiquement (e5a625) en fonction de la cible sur la taille des lots et de la latence (50 000 flux et 5 secondes par dĂ©faut).

Cette nouvelle architecture nous permet Ă©galement de simplifier et optimiser le code. L’outlet rĂ©cupĂšre les mĂ©tadonnĂ©es de façon synchrone (e20645). Le composant BMP devient plus simple en supprimant le multitĂąche coopĂ©ratif (3b9486). RĂ©utiliser le mĂȘme objet RawFlow pour dĂ©coder les flux Protobuf depuis Kafka rĂ©duit la pression sur le ramasse-miettes (8b580f).

L’effet sur les performances globales d’Akvorado Ă©tait quelque peu incertain, mais un utilisateur a indiquĂ© gagner 35 % d’utilisation CPU en moins aprĂšs migration depuis la version prĂ©cĂ©dente, ainsi que la rĂ©solution du problĂšme de longue date du composant BMP. đŸ„ł

Autres changements

Cette nouvelle version inclut de nombreux changements divers. On y trouve par exemple la complĂ©tion pour les ports sources et destinations (f92d2e), et le redĂ©marrage automatique de l’orchestrateur (0f72ff) lors de changements de configuration pour Ă©viter un piĂšge courant pour les nouveaux utilisateurs.

Concentrons-nous sur quelques domaines clĂ©s pour cette version : observabilitĂ©, documentation, CI, Docker, Go et JavaScript.

Observabilité

Akvorado expose des mĂ©triques pour fournir une visibilitĂ© sur la chaĂźne de traitement et aider Ă  diagnostiquer les problĂšmes. Elles sont disponibles au format Prometheus, via par exemple /api/v0/inlet/metrics. Avec l’introduction de l’outlet, de nombreuses mĂ©triques ont Ă©tĂ© dĂ©placĂ©es. Certaines ont Ă©galement Ă©tĂ© renommĂ©es (4c0b15) pour correspondre aux bonnes pratiques Prometheus. Une mĂ©trique pour mesurer le dĂ©calage des consommateurs Kafka a Ă©tĂ© ajoutĂ©e (e3a778).

Si vous n’avez pas votre propre pile d’observabilitĂ©, la configuration Docker Compose fournie avec Akvorado en propose une. Vous pouvez l’activer avec les profils introduits Ă  cette fin (529a8f).

Le profil prometheus fournit Prometheus pour stocker les mĂ©triques et Alloy pour les collecter (2b3c46, f81299 et 8eb7cd). Les mĂ©triques Redis et Kafka sont collectĂ©es via l’exporteur intĂ©grĂ© Ă  Alloy (560113). Les autres mĂ©triques sont exposĂ©es au format Prometheus et sont automatiquement rĂ©cupĂ©rĂ©es par Alloy Ă  l’aide d’annotations Docker. C’est similaire Ă  ce qui est fait pour configurer Traefik. cAdvisor a Ă©galement Ă©tĂ© ajoutĂ© (83d855) pour fournir des mĂ©triques liĂ©es aux conteneurs.

Le profil loki fournit Loki pour stocker les logs (45c684). Bien qu’Alloy puisse collecter et envoyer les logs vers Loki, ses capacitĂ©s d’analyse sont limitĂ©es : je n’ai pas trouvĂ© de moyen de prĂ©server toutes les mĂ©tadonnĂ©es associĂ©es aux logs structurĂ©s produits par de nombreuses applications, y compris Akvorado. Vector remplace Alloy (95e201) et propose un langage, VRL, pour transformer les logs. Malheureusement, il ne peut actuellement pas rĂ©cupĂ©rer les logs Docker prĂ©cĂ©denat son dĂ©marrage.

Mise Ă  jour (11.2025)

Alloy peut désormais préserver les champs des logs structurés dans les métadonnées en utilisant une expression réguliÚre. Voir PR #4629.

Enfin, le profil grafana fournit Grafana, mais les tableaux de bord fournis sont pour le moment cassés. Ce sera corrigé dans une prochaine version.

Documentation

La configuration Docker Compose fournie par Akvorado facilite la mise en route rapide. Cependant, Akvorado nĂ©cessite quelques Ă©tapes obligatoires pour ĂȘtre fonctionnel. Il est livrĂ© avec une documentation complĂšte, y compris un chapitre sur le dĂ©pannage des problĂšmes. J’espĂ©rais que cette documentation rĂ©duirait la charge de support. Il est difficile de savoir si cela fonctionne. Les utilisateurs satisfaits rapportent rarement leurs succĂšs, tandis qu’une poignĂ©e d’utilisateurs ouvrent des discussions pour demander de l’aide sans avoir vraiment lu la documentation.

Dans cette version, la documentation a été considérablement améliorée.

$ git diff --shortstat v1.11.5 -- console/data/docs
 10 files changed, 1873 insertions(+), 1203 deletions(-)

La documentation a Ă©tĂ© mise Ă  jour (fc1028) pour correspondre Ă  la nouvelle architecture d’Akvorado. La section de dĂ©pannage a Ă©tĂ© réécrite (17a272). Une documentation sur comment amĂ©liorer les performances de ClickHouse lors de la mise Ă  niveau depuis des versions antĂ©rieures Ă  1.10.0 a Ă©tĂ© ajoutĂ©e (5f1e9a). Un LLM a relu l’ensemble (06e3f3). La documentation destinĂ©e aux dĂ©veloppeurs a Ă©galement Ă©tĂ© amĂ©liorĂ©e (548bbb, e41bae et 871fc5).

Du point de vue de l’utilisabilitĂ©, les sections de la table des matiĂšres peuvent maintenant se replier (c142e5). Les avertissements aident Ă  attirer l’attention des utilisateurs sur les points importants (8ac894).

Avertissement dans la documentation d'Akvorado demandant à un utilisateur de ne pas ouvrir un ticket ou démarrer une discussion avant d'avoir lu la documentation
Exemple d'utilisation des avertissements dans la documentation d'Akvorado

Intégration continue

Cette version inclut des efforts pour accĂ©lĂ©rer l’intĂ©gration continue sur GitHub. Les tests de couverture et de concurrence s’exĂ©cutent en parallĂšle (6af216 et fa9e48). L’image Docker se construit pendant les tests mais ne reçoit son Ă©tiquette qu’aprĂšs leurs succĂšs (8b0dce).

Flux GitHub pour la CI avec de nombreuses tùches, certaines s'exécutant en parallÚle, d'autres non
Flux GitHub pour tester et construire Akvorado

Les tests de bout en bout (883e19) s’assurent que la configuration Docker Compose fournie fonctionne comme attendu. Hurl exĂ©cute des tests sur diverses URL, notamment pour vĂ©rifier les mĂ©triques (42679b et 169fa9). Par exemple :

## Test inlet has received NetFlow flows
GET http://127.0.0.1:8080/prometheus/api/v1/query
[Query]
query: sum(akvorado_inlet_flow_input_udp_packets_total{job="akvorado-inlet",listener=":2055"})
HTTP 200
[Captures]
inlet_receivedflows: jsonpath "$.data.result[0].value[1]" toInt
[Asserts]
variable "inlet_receivedflows" > 10

## Test inlet has sent them to Kafka
GET http://127.0.0.1:8080/prometheus/api/v1/query
[Query]
query: sum(akvorado_inlet_kafka_sent_messages_total{job="akvorado-inlet"})
HTTP 200
[Captures]
inlet_sentflows: jsonpath "$.data.result[0].value[1]" toInt
[Asserts]
variable "inlet_sentflows" >= {{ inlet_receivedflows }}

Docker

Akvorado est fourni avec une configuration Docker Compose complĂšte pour aider les utilisateurs Ă  dĂ©marrer rapidement. Elle assure un dĂ©ploiement cohĂ©rent, Ă©liminant de nombreux problĂšmes liĂ©s Ă  l’environnement et la configuration. Elle sert Ă©galement de documentation.

Cette version apporte quelques petites amĂ©liorations autour de Docker :

Auparavant, de nombreuses images Docker provenaient de la bibliothĂšque de conteneurs Bitnami. Cependant, Bitnami a Ă©tĂ© rachetĂ© par VMWare en 2019 et VMWare a Ă©tĂ© rachetĂ© par Broadcom en 2023. En consĂ©quence, les images Bitnami ont Ă©tĂ© dĂ©prĂ©ciĂ©es en moins d’un mois. Ce n’était pas vraiment une surprise4. Les versions prĂ©cĂ©dentes d’Akvorado avaient dĂ©jĂ  commencĂ© Ă  s’en Ă©loigner. Dans cette version, l’image Kafka du projet Apache remplace celle de Bitnami (1eb382). GrĂące au passage au mode KRaft, Zookeeper n’est plus nĂ©cessaire (0a2ea1, 8a49ca et f65d20).

Les images Docker d’Akvorado Ă©taient auparavant compilĂ©es avec Nix. Cependant, construire des images AArch64 sur x86-64 est lent car cela repose sur l’émulation de QEMU. Le Dockerfile mis Ă  jour utilise des constructions multi-Ă©tapes et multi-plateformes : une Ă©tape construit la partie JavaScript sur la plateforme hĂŽte, une Ă©tape construit la partie Go en compilation croisĂ©e sur la plateforme hĂŽte, et la derniĂšre Ă©tape assemble l’image en se basant sur une image lĂ©gĂšre (268e95 et d526ca).

# Ceci est une version simplifiée
FROM --platform=$BUILDPLATFORM node:20-alpine AS build-js
RUN apk add --no-cache make
WORKDIR /build
COPY console/frontend console/frontend
COPY Makefile .
RUN make console/data/frontend

FROM --platform=$BUILDPLATFORM golang:alpine AS build-go
RUN apk add --no-cache make curl zip
WORKDIR /build
COPY . .
COPY --from=build-js /build/console/data/frontend console/data/frontend
RUN go mod download
RUN make all-indep
ARG TARGETOS TARGETARCH TARGETVARIANT VERSION
RUN make

FROM gcr.io/distroless/static:latest
COPY --from=build-go /build/bin/akvorado /usr/local/bin/akvorado
ENTRYPOINT [ "/usr/local/bin/akvorado" ]

Lors de la construction pour plusieurs plateformes avec --platform linux/amd64,linux/arm64,linux/arm/v7, les Ă©tapes de construction jusqu’à la ligne surlignĂ©e ne s’exĂ©cutent qu’une seule fois pour toutes les plateformes. Cela accĂ©lĂšre considĂ©rablement la compilation. 🚅

Akvorado livre maintenant des images Docker pour ces plateformes : linux/amd64, linux/amd64/v3, linux/arm64 et linux/arm/v7. Lors du tĂ©lĂ©chargement de ghcr.io/akvorado/akvorado, Docker sĂ©lectionne la meilleure image pour le CPU actuel. Sur x86-64, il y a deux choix. Si votre CPU est assez rĂ©cent, Docker tĂ©lĂ©charge linux/amd64/v3. Cette version contient des optimisations supplĂ©mentaires et devrait s’exĂ©cuter plus rapidement que la version linux/amd64. Il serait intĂ©ressant de livrer une image pour linux/arm64/v8.2, mais Docker ne supporte pas encore le mĂȘme mĂ©canisme pour AArch64 (792808).

Go

Cette version inclut de nombreux changements liés à Go mais non visibles pour les utilisateurs.

ChaĂźne de compilation

Par le passĂ©, Akvorado supportait les deux derniĂšres versions de Go, empĂȘchant l’utilisation immĂ©diate des derniĂšres amĂ©liorations. L’objectif Ă©tait de permettre aux utilisateurs de distributions stables d’utiliser les versions de Go fournies avec leur distribution pour compiler Akvorado. Cependant, cela pouvait ĂȘtre frustrant quand des fonctionnalitĂ©s intĂ©ressantes, comme go tool, Ă©taient publiĂ©es. Akvorado 2.0 nĂ©cessite Go 1.25 (77306d) mais peut ĂȘtre compilĂ© avec des chaĂźnes de compilation plus anciennes en tĂ©lĂ©chargeant automatiquement une version plus rĂ©cente (94fb1c).5 Les utilisateurs peuvent toujours modifier GOTOOLCHAIN pour annuler cette dĂ©cision. La chaĂźne de compilation recommandĂ©e est mise Ă  jour hebdomadairement via la CI pour s’assurer d’obtenir la derniĂšre version mineure (5b11ec). Ce changement simplifie aussi les mises Ă  jour vers des versions plus rĂ©centes : seul go.mod doit ĂȘtre mis Ă  jour.

GrĂące Ă  ce changement, Akvorado utilise maintenant wg.Go() (77306d) et j’ai commencĂ© Ă  convertir certains tests unitaires vers le nouveau paquet test/synctest (bd787e, 7016d8 et 159085).

Tests

Pour tester l’égalitĂ©, j’utilise une fonction Diff() qui affiche les diffĂ©rences en cas d’échec :

got := input.Keys()
expected := []int{1, 2, 3}
if diff := helpers.Diff(got, expected); diff != "" {
    t.Fatalf("Keys() (-got, +want):\n%s", diff)
}

Cette fonction utilise kylelemons/godebug. Ce paquet n’est plus maintenu et prĂ©sente des lacunes : par exemple, par dĂ©faut, elle ne compare pas les champs privĂ©s des structures, ce qui peut causer des tests qui rĂ©ussissent de façon inattendue. Je l’ai remplacĂ© par google/go-cmp, qui est plus strict et formatte la diffĂ©rence de maniĂšre plus lisible (e2f1df).

Un autre paquet pour Kafka

Un autre changement est le passage de Sarama Ă  franz-go pour interagir avec Kafka (756e4a et 2d26c5). La principale motivation pour ce changement est de travailler avec un meilleur modĂšle de concurrence. Sarama repose fortement sur les canaux et il est difficile de savoir quand un objet n’est plus utilisĂ©. franz-go utilise une approche plus moderne6 et performante avec des fonctions de rappel. Il est Ă©galement livrĂ© avec un paquet pour lancer de faux clusters Kafka, ce qui est plus pratique que les fonctions de simulation fournies par Sarama.

Table de routage améliorée pour BMP

Pour stocker les routes, le composant BMP utilisait kentik/patricia, une implĂ©mentation d’un arbre patricia axĂ©e sur la rĂ©duction de la pression sur le ramasse-miettes. gaissmai/bart est une alternative plus rĂ©cente utilisant une adaptation de l’algorithme ART de Donald Knuth qui promet de meilleures performances et les fournit : recherches 90 % plus rapides et insertions 27 % plus rapides (92ee2e et fdb65c).

Contrairement Ă  kentik/patricia, gaissmai/bart n’aide pas Ă  stocker efficacement les valeurs attachĂ©es Ă  chaque prĂ©fixe. J’ai adaptĂ© la mĂȘme approche utilisĂ©e par kentik/patricia pour stocker les listes de routes pour chaque prĂ©fixe : stocker un index 32 bits pour chaque prĂ©fixe, et l’utiliser pour construire un index 64 bits pour rechercher les routes dans un tableau associatif, qui est une structure particuliĂšrement efficace de Go.

gaissmai/bart supporte Ă©galement une version sans verrous de la table de routage, mais ce n’est pas aussi simple car nous aurions besoin d’étendre cela au tableau stockant les routes et au mĂ©canisme d’internement. J’ai Ă©galement tentĂ© d’utiliser le nouveau paquet unique de Go pour remplacer le paquet intern inclus dans Akvorado, mais les performances Ă©taient pires7.

Divers

Les versions prĂ©cĂ©dentes d’Akvorado utilisaient un encodeur Protobuf personnalisĂ© pour les performances et la flexibilitĂ©. Avec l’introduction du service outlet, Akvorado n’a besoin que d’un schĂ©ma statique simple, donc ce code a Ă©tĂ© supprimĂ©. Cependant, il est possible d’amĂ©liorer les performances avec planetscale/vtprotobuf (e49a74 et 8b580f). De plus, la dĂ©pendance Ă  protoc, un programme C++, Ă©tait quelque peu ennuyeuse. Par consĂ©quent, Akvorado utilise maintenant buf, Ă©crit en Go, pour convertir un schĂ©ma Protobuf en code Go (f4c879).

Une autre petite optimisation pour rĂ©duire la taille du binaire d’Akvorado de 10 MB a consistĂ© Ă  compresser les ressources statiques intĂ©grĂ©es dans Akvorado dans un fichier ZIP. Cela inclut la base des numĂ©ros d’AS, ainsi que les images SVG pour la documentation. Un bout de code rend ce changement transparent (b1d638 et e69b91).

JavaScript

RĂ©cemment, deux grandes attaques de la chaĂźne d’approvisionnement ont frappĂ© l’écosystĂšme JavaScript : une affectant les paquets populaires chalk et debug et une autre impactant le paquet populaire @ctrl/tinycolor. Ces attaques existent aussi dans d’autres Ă©cosystĂšmes, mais JavaScript est une cible privilĂ©giĂ©e en raison de l’usage intensif de petites dĂ©pendances. La version prĂ©cĂ©dente d’Akvorado reposait sur 653 dĂ©pendances.

npm-run-all a été supprimé (3424e8, 132 dépendances). patch-package a été supprimé (625805 et e85ff0, 69 dépendances) en déplaçant les définitions TypeScript manquantes vers env.d.ts. eslint a été remplacé par oxlint, un linter écrit en Rust (97fd8c, 125 dépendances, plugins inclus).

J’ai basculĂ© de npm vers Pnpm, un gestionnaire de paquets alternatif (fce383). Pnpm n’exĂ©cute pas les scripts d’installation par dĂ©faut8 et empĂȘche l’installation de paquets trop rĂ©cents. Il est Ă©galement significativement plus rapide9. Contrairement Ă  npm, il n’est pas livrĂ© avec Node.js. Cependant, Node.js contient Corepack, qui nous permet d’utiliser Pnpm sans l’installer. Pnpm peut Ă©galement lister les licences utilisĂ©es par chaque dĂ©pendance, supprimant le besoin d’utiliser license-compliance (a35ca8, 42 dĂ©pendances).

Pour des améliorations de vitesse supplémentaires, au-delà du passage à Pnpm et Oxlint, Vite a été remplacé par sa version Rolldown plus rapide (463827).

AprĂšs ces changements, Akvorado ne nĂ©cessite plus « que » 225 dĂ©pendances. đŸ˜±

Prochaines étapes

J’aimerais intĂ©grer trois fonctionnalitĂ©s dans la prochaine version d’Akvorado :

  • Ajouter des tableaux de bord Grafana pour complĂ©ter la pile d’observabilitĂ©. Voir le ticket #1906 pour les dĂ©tails.

  • IntĂ©grer le plugin Grafana d’OVH en fournissant une API stable pour de telles intĂ©grations. La console web d’Akvorado resterait utile pour parcourir les rĂ©sultats, mais si vous voulez crĂ©er et partager des tableaux de bord, vous devrez passer Ă  Grafana. Voir le ticket #1895.

  • DĂ©placer une partie du travail actuellement fait dans ClickHouse (dictionnaires personnalisĂ©s, GeoIP et ajout d’informations liĂ©es aux IP) vers le service outlet. Cela devrait donner plus de flexibilitĂ© pour ajouter des fonctionnalitĂ©s comme celle demandĂ©e dans le ticket #1030. Voir le ticket #2006.


J’ai commencĂ© Ă  travailler sur la division de l’inlet il y a plus d’un an. J’ai retrouvĂ© de la motivation ces derniers mois, en partie grĂące Ă  Claude Code, que j’ai utilisĂ© comme canard en plastique. Presqu’aucun code produit n’a Ă©tĂ© conservĂ©10 : c’est comme un stagiaire qui n’apprend pas. D’ailleurs, il est aussi flemmard. Pour la traduction en Français, il a fallu insister de nombreuses fois pour traduire l’intĂ©gralitĂ© de l’article. 🩆


  1. De nombreuses tentatives ont Ă©tĂ© faites pour rendre le composant BMP Ă  la fois performant et non bloquant. Voir par exemple PR #254, PR #255 et PR #278. MalgrĂ© ces efforts, ce composant restait problĂ©matique pour la plupart des utilisateurs. Voir le ticket #1461 comme exemple. ↩

  2. Certaines fonctionnalitĂ©s ont Ă©tĂ© dĂ©placĂ©es vers ClickHouse pour Ă©viter le coĂ»t de traitement dans l’inlet. Voir par exemple PR #1059. ↩

  3. C’est le plus gros changement :

    $ git show --shortstat ac68c5970e2c | tail -1
    231 files changed, 6474 insertions(+), 3877 deletions(-)
    

    ↩

  4. Broadcom est connu pour ses actions hostiles aux utilisateurs. Regardez ce qui s’est passĂ© avec VMWare. ↩

  5. En tant que dĂ©veloppeur Debian, je n’aime pas ces mĂ©canismes qui contournent le gestionnaire de paquets de la distribution. J’ai finalement changĂ© d’avis quand Go 1.25 a passĂ© un mois dans la file NEW de Debian, un mĂ©canisme arbitraire que je n’aime pas du tout. ↩

  6. Aux dĂ©buts de Go, l’utilisation des canaux Ă©tait fortement encouragĂ©e. Sarama a Ă©tĂ© conçu pendant cette pĂ©riode. Quelques annĂ©es plus tard, une approche plus nuancĂ©e a Ă©mergĂ©. Voir notamment « Go channels are bad and you should feel bad ». ↩

  7. Cela devrait ĂȘtre Ă©tudiĂ© davantage, mais ma thĂ©orie est que le paquet intern utilise des entiers 32 bits, tandis que unique utilise des pointeurs 64 bits. Voir le commit 74e5ac. ↩

  8. C’est aussi possible avec npm. Voir le commit dab2f7. ↩

  9. Une alternative encore plus rapide est Bun, mais elle est moins disponible. ↩

  10. Les exceptions sont une partie du code pour les blocs d’avertissement, le code pour replier la table des matiĂšres et une partie de la documentation. ↩

22 September, 2025 08:12AM by Vincent Bernat

March 17, 2025

PKI hors ligne avec 3 YubiKeys et une carte ARM

Une PKI hors ligne renforce la sĂ©curitĂ© en isolant physiquement l’autoritĂ© de certification des menaces rĂ©seau. Une YubiKey est une solution Ă©conomique pour stocker un certificat racine. Vous avez Ă©galement besoin d’un environnement isolĂ© pour les opĂ©rations sur l’autoritĂ© de certification racine.

PKI s'appuyant sur un ensemble de 3 YubiKeys : 2 pour l'autoritĂ© de certification racine et 1 pour l'autoritĂ© de certification intermĂ©diaire.
PKI hors ligne sauvegardée par 3 YubiKeys

Ce billet dĂ©crit un systĂšme PKI hors ligne utilisant les composants suivants :

  • 2 YubiKeys pour l’autoritĂ© de certification racine (avec une validitĂ© de 20 ans) ;
  • 1 YubiKey pour l’autoritĂ© de certification intermĂ©diaire (avec une validitĂ© de 5 ans) ;
  • 1 carte Libre Computer Sweet Potato comme nano-ordinateur isolĂ©.

Si nĂ©cessaire, il est possible d’ajouter plus de YubiKeys comme sauvegarde de l’autoritĂ© de certification racine. Ce n’est pas utile pour l’autoritĂ© de certification intermĂ©diaire car vous pouvez en gĂ©nĂ©rer une nouvelle si l’actuelle est dĂ©truite.

La partie logicielle

offline-pki est une petite application Python pour gĂ©rer une PKI hors ligne. Elle s’appuie sur yubikey-manager pour gĂ©rer les YubiKeys et sur cryptography pour les opĂ©rations cryptographiques non exĂ©cutĂ©es par les YubiKeys. L’application a certains choix de conception opiniĂątres. Notamment, la cryptographie est codĂ©e en dur pour utiliser la [courbe elliptique NIST P-384][].

La premiĂšre Ă©tape consiste Ă  rĂ©initialiser toutes vos YubiKeys :

$ offline-pki yubikey reset
This will reset the connected YubiKey. Are you sure? [y/N]: y
New PIN code:
Repeat for confirmation:
New PUK code:
Repeat for confirmation:
New management key ('.' to generate a random one):
WARNING[pki-yubikey] Using random management key: e8ffdce07a4e3bd5c0d803aa3948a9c36cfb86ed5a2d5cf533e97b088ae9e629
INFO[pki-yubikey]  0: Yubico YubiKey OTP+FIDO+CCID 00 00
INFO[pki-yubikey] SN: 23854514
INFO[yubikit.management] Device config written
INFO[yubikit.piv] PIV application data reset performed
INFO[yubikit.piv] Management key set
INFO[yubikit.piv] New PUK set
INFO[yubikit.piv] New PIN set
INFO[pki-yubikey] YubiKey reset successful!

Ensuite, gĂ©nĂ©rez l’autoritĂ© de certification racine et crĂ©ez autant de copies que vous voulez :

$ offline-pki certificate root --permitted example.com
Management key for Root X:
Plug YubiKey "Root X"...
INFO[pki-yubikey]  0: Yubico YubiKey CCID 00 00
INFO[pki-yubikey] SN: 23854514
INFO[yubikit.piv] Data written to object slot 0x5fc10a
INFO[yubikit.piv] Certificate written to slot 9C (SIGNATURE), compression=True
INFO[yubikit.piv] Private key imported in slot 9C (SIGNATURE) of type ECCP384
Copy root certificate to another YubiKey? [y/N]: y
Plug YubiKey "Root X"...
INFO[pki-yubikey]  0: Yubico YubiKey CCID 00 00
INFO[pki-yubikey] SN: 23854514
INFO[yubikit.piv] Data written to object slot 0x5fc10a
INFO[yubikit.piv] Certificate written to slot 9C (SIGNATURE), compression=True
INFO[yubikit.piv] Private key imported in slot 9C (SIGNATURE) of type ECCP384
Copy root certificate to another YubiKey? [y/N]: n

Vous pouvez examiner le rĂ©sultat :

$ offline-pki yubikey info
INFO[pki-yubikey]  0: Yubico YubiKey CCID 00 00
INFO[pki-yubikey] SN: 23854514
INFO[pki-yubikey] Slot 9C (SIGNATURE):
INFO[pki-yubikey]   Private key type: ECCP384
INFO[pki-yubikey]   Public key:
INFO[pki-yubikey]     Algorithm:  secp384r1
INFO[pki-yubikey]     Issuer:     CN=Root CA
INFO[pki-yubikey]     Subject:    CN=Root CA
INFO[pki-yubikey]     Serial:     1
INFO[pki-yubikey]     Not before: 2024-07-05T18:17:19+00:00
INFO[pki-yubikey]     Not after:  2044-06-30T18:17:19+00:00
INFO[pki-yubikey]     PEM:
-----BEGIN CERTIFICATE-----
MIIBcjCB+aADAgECAgEBMAoGCCqGSM49BAMDMBIxEDAOBgNVBAMMB1Jvb3QgQ0Ew
HhcNMjQwNzA1MTgxNzE5WhcNNDQwNjMwMTgxNzE5WjASMRAwDgYDVQQDDAdSb290
IENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAERg3Vir6cpEtB8Vgo5cAyBTkku/4w
kXvhWlYZysz7+YzTcxIInZV6mpw61o8W+XbxZV6H6+3YHsr/IeigkK04/HJPi6+i
zU5WJHeBJMqjj2No54Nsx6ep4OtNBMa/7T9foyMwITAPBgNVHRMBAf8EBTADAQH/
MA4GA1UdDwEB/wQEAwIBhjAKBggqhkjOPQQDAwNoADBlAjEAwYKy/L8leJyiZSnn
xrY8xv8wkB9HL2TEAI6fC7gNc2bsISKFwMkyAwg+mKFKN2w7AjBRCtZKg4DZ2iUo
6c0BTXC9a3/28V5aydZj6rvx0JqbF/Ln5+RQL6wFMLoPIvCIiCU=
-----END CERTIFICATE-----

Ensuite, vous pouvez crĂ©er un certificat intermĂ©diaire avec offline-pki yubikey intermediate et l’utiliser pour signer des certificats en fournissant leur CSR Ă  offline-pki certificate sign. Soyez prudent et inspectez la CSR avant de la signer, car seul le nom du sujet peut ĂȘtre remplacĂ©. Consultez la documentation pour plus de dĂ©tails. Obtenez les options disponibles en utilisant l’option --help.

La partie matérielle

Pour garantir que les opérations sur les autorités de certification racine et intermédiaire sont isolées du réseau, une solution économique consiste à utiliser une carte ARM64. Le Libre Computer Sweet Potato est une alternative plus ouverte au célÚbre Raspberry Pi.1

Ordinateur monocarte Libre Computer Sweet Potato s'appuyant sur le SOC Amlogic S905X
SBC Libre Computer Sweet Potato, alimenté par le SOC AML-S905X

J’interagis avec lui via un convertisseur USB vers sĂ©rie :

$ tio /dev/ttyUSB0
[16:40:44.546] tio v3.7
[16:40:44.546] Press ctrl-t q to quit
[16:40:44.555] Connected to /dev/ttyUSB0
GXL:BL1:9ac50e:bb16dc;FEAT:ADFC318C:0;POC:1;RCY:0;SPI:0;0.0;CHK:0;
TE: 36574

BL2 Built : 15:21:18, Aug 28 2019. gxl g1bf2b53 - luan.yuan@droid15-sz

set vcck to 1120 mv
set vddee to 1000 mv
Board ID = 4
CPU clk: 1200MHz
[
]

L’assemblage Nix

Pour coller tout ensemble, j’utilise Nix avec un Flake fournissant :

  • un paquet pour l’application offline-pki, avec la complĂ©tion pour le shell ;
  • un shell de dĂ©veloppement, incluant une version Ă©ditable de l’application offline-pki ;
  • un module NixOS pour configurer la PKI, rĂ©initialisant le systĂšme Ă  chaque dĂ©marrage ;
  • une image QEMU pour les tests ;
  • une image de carte SD Ă  utiliser sur le Sweet Potato ou une autre carte ARM64.
# Exécuter localement l'application
nix run github:vincentbernat/offline-pki -- --help
# Eécuter l'application dans une machine virtuelle QEMU
nix run github:vincentbernat/offline-pki\#qemu
# Construire l'image d'une carte SD pour Sweet Potato ou un Raspberry Pi
nix build --system aarch64-linux github:vincentbernat/offline-pki\#sdcard.potato
nix build --system aarch64-linux github:vincentbernat/offline-pki\#sdcard.generic
# Obtenir un shell de développement avec l'application
nix develop github:vincentbernat/offline-pki

  1. La clĂ© pour l’autoritĂ© de certification racine n’est pas gĂ©nĂ©rĂ©e par la YubiKey. L’utilisation d’un ordinateur isolĂ© est d’autant plus importante. Mettez-le dans un coffre-fort avec les YubiKeys quand vous avez terminé ! ↩

17 March, 2025 08:12AM by Vincent Bernat

March 08, 2025

Expansion automatique des alias dans Zsh

Pour Ă©viter les frappes superflues, fish propose des abrĂ©viations de commandes qui se substituent aprĂšs avoir appuyĂ© sur la barre d’espace. Nous pouvons Ă©muler cette fonctionnalitĂ© avec Zsh:

# Définition de abbrev-alias pour la substitution automatique des alias
typeset -ga _vbe_abbrevations
abbrev-alias() {
    alias $1
    _vbe_abbrevations+=(${1%%\=*})
}
_vbe_zle-autoexpand() {
    local -a words; words=(${(z)LBUFFER})
    if (( ${​#_vbe_abbrevations[(r)${words[-1]}]} )); then
        zle _expand_alias
    fi
    zle magic-space
}
zle -N _vbe_zle-autoexpand
bindkey -M emacs " " _vbe_zle-autoexpand
bindkey -M isearch " " magic-space

# Corriger des typos
(( $+commands[git] )) && abbrev-alias gti=git
(( $+commands[grep] )) && abbrev-alias grpe=grep
(( $+commands[sudo] )) && abbrev-alias suod=sudo
(( $+commands[ssh] )) && abbrev-alias shs=ssh

# Économiser quelques touches
(( $+commands[git] )) && abbrev-alias gls="git ls-files"
(( $+commands[ip] )) && {
  abbrev-alias ip6='ip -6'
  abbrev-alias ipb='ip -brief'
}

# Options difficiles Ă  se souvenir
(( $+commands[mtr] )) && abbrev-alias mtrr='mtr -wzbe'

Voici une dĂ©monstration oĂč git ls-files remplace gls aprĂšs avoir appuyĂ© sur la barre d’espace:

Substitution automatique de gls par git ls-files

Je n’étends pas automatiquement tous les alias. Je continue Ă  utiliser des alias classiques pour modifier lĂ©gĂšrement le comportement d’une commande ou pour des abrĂ©viations bien connues:

alias df='df -h'
alias du='du -h'
alias rm='rm -i'
alias mv='mv -i'
alias ll='ls -ltrhA'

08 March, 2025 09:58AM by Vincent Bernat

December 18, 2024

hackergotchi for Grégory Colpart

Grégory Colpart

MiniDebConf Toulouse 2024 (fr)

AprĂšs la MiniDebConf Marseille 2019, le COVID-19 a rendu impossible/difficile l’organisation de nouvelles MiniDebConf pendant quelques annĂ©es. Avec la reprise progressive d’évĂ©nements d’ampleur en prĂ©sentiel (FOSDEM, DebConf, etc.), l’idĂ©e Ă©tait de proposer une nouvelle MiniDebConf en France mais avec une organisation plus lĂ©gĂšre. En 2023, nous avons eu l’idĂ©e de contacter les organisateurs de Capitole du Libre afin de rĂ©itĂ©rer l’expĂ©rience de 2017 : pouvoir organiser une MiniDebConf en parallĂšle de l’évĂ©nement annuel qui se tient Ă  Toulouse en novembre. Mais notre demande Ă©tait trop tardive pour 2023, donc aprĂšs discussions avec Capitole du Libre en novembre 2023 Ă  Toulouse puis en fĂ©vrier 2024 Ă  Bruxelles, nous avons pu confirmer la tenue d’une MiniDebConf Toulouse en novembre 2024 !

Nous avons alors constituĂ© une petite Ă©quipe d’organisation et nous nous sommes lancĂ©s : Call for Papers en mai 2024, ajout d’un MiniDebCamp de deux jours, coordination avec la DebConf vidĂ©o team, recherche de sponsors, crĂ©ation d’un logo, commande des T-shirts et stickers, planning, gestion des inscriptions
 mĂȘme avec une organisation plus lĂ©gĂšre (la gestion de la salle de confĂ©rence, des badges, de la nourriture pendant le week-end Ă©tant faite par Capitole du Libre), il restait un peu de travail de prĂ©paration.

Jeudi 14 et vendredi 15 novembre 2024, une quarantaine de dĂ©veloppeurs dĂ©barquent du monde entier (France, Espagne, Italie, Suisse, Allemagne, Angleterre, BrĂ©sil, Urugay, Inde, Brest, Marseille
) pour passer deux jours de MiniDebCamp dans les beaux espaces collaboratifs d’Artilect dans le centre-ville de Toulouse.

Puis le samedi 16 et dimanche 17 novembre 2024, la MiniDebconf s’est tenue dans les locaux de l’ENSEEIHT au sein de l’évĂšnement Capitole du Libre. On a dĂ©marrĂ© dĂšs le samedi matin avec une ouverture (JĂ©rĂ©my Lecour) marquĂ©e par un hommage Ă  Lunar (Nicolas Dandrimont), puis Reproducible Builds – rebuilding what is distributed from ftp.debian.org (Holger Levsen) et Discussion on my research work on sustainability of Debian OS (Eda). AprĂšs un dĂ©jeuner grĂące aux food trucks du Capitole du Libre, c’est reparti pour un aprĂšs-midi intense : What’s new in the Linux kernel (and what’s missing in Debian) (Ben Hutchings), Linux live patching in Debian (Santiago Ruano RincĂłn), Trixie on mobile: are we there yet? (Arnaud Ferraris), PostgreSQL container groups, aka cgroups down the road (CĂ©dric Villemain), Upgrading a thousand Debian hosts in less than an hour (JĂ©rĂ©my Lecour et moi-mĂȘme) et Using debusine to automate your QA (Stefano Rivera &co).

Dimanche, c’est le second jour, et l’on reprend avec une prĂ©sentation de la DebConf 25 (Benjamin Somers) qui se dĂ©roulera Ă  Brest en juillet 2025 puis l’on enchaĂźne la matinĂ©e avec How LTS goes beyond LTS (Santiago Ruano RincĂłn & Roberto C. SĂĄnchez), Cross building (Helmut Grohne) et State of the javascript (Bastien RoucariĂšs). L’aprĂšs-midi, place aux Lightning Talks, PyPI Security: Past, Present & Future (Salvo “LtWorf” Tomaselli) et le classique Bits from DPL (Andreas Tille) avant la confĂ©rence de clĂŽture (Pierre-Elliott BĂ©cue).

Toutes les confĂ©rences sont Ă  retrouver en vidĂ©o sur le programme (encore merci Ă  la formidable DebConf vidĂ©o team), merci aux sponsors (Viridien, Freexian, Evolix, Collabora et Data Bene) et grand merci Ă  toute l’équipe du Capitole du Libre de nous avoir « supportĂ© »  rendez-vous Ă  Brest en juillet 2025 !

Articles Ă  propos (ou mentionnant) la MiniDebConf Toulouse :

18 December, 2024 04:45PM by Gregory Colpart

November 30, 2024

hackergotchi for Aurélien Jarno

Aurélien Jarno

UEFI Unified Kernel Image for Debian Installer on riscv64

On the riscv64 port, the default boot method is UEFI, with U-Boot typically used as the firmware. This approach aligns more closely with other architectures, which avoid developping riscv64 specific code. For advanced users, booting using U-Boot and extlinux is possible, thanks to the kernel being built with CONFIG_EFI_STUB=y.

The same applies to the Debian Installer, which is provided as ISO images in various sizes and formats like on other architectures. These images can be put on a USB drive or an SD-card and booted directly from U-Boot in UEFI mode. Some users prefer to use the netboot "image", which in practice consists of a Linux kernel, an initrd, plus a set of Device Tree Blob (DTB) files.

However, booting this in UEFI mode is not straightforward, unless you use a TFTP server, which is also not trivial. Less known to users, there is also a corresponding mini.iso image, which contains all the above plus a bootloader. This offers a simpler alternative for installation, but depending on your (vendor) U-Boot version this still requires to go through a media.

Systemd version 257-rc2 comes with a great new feature, the ability to include multiple DTB files in a single UKI (Unified Kernel Image) file, with systemd-stub automatically loading the appropriate one for the current hardware. A UKI file combines a UEFI boot stub program, a Linux kernel image, an optional initrd, and further resources in a single UEFI PE file. This finally solves the DTB problem in the UEFI world for distributions, as a single image can work on multiple boards.

Building upon this, debian-installer on riscv64 now also creates a UEFI UKI mini.efi image, which contains systemd-stub, a Linux kernel, an initrd, plus a set of Device Tree Blob (DTB) files. Using this image also ensures that the system is booted in UEFI mode. Booting it with debian-installer is as simple as:

load mmc 0:1 $kernel_addr_r mini.efi # (can also be done using tftpboot, wget, etc.)
bootefi $kernel_addr_r

Additional parameters can be passed to the image using the U-Boot bootargs environment variable. For instance, to boot in rescue mode:

setenv bootargs "rescue/enable=true"

30 November, 2024 09:41AM by aurel32

November 25, 2024

Stéphane Blondon

Afficher une fenĂȘtre de notification depuis le shell

Plusieurs commandes permettent d’afficher une fenĂȘtre de notification qui disparaĂźt automatiquement. Voici quelques outils avec les fonctionnalitĂ©s minimales. Chacun d’entre eux a des paramĂštres supplĂ©mentaires spĂ©cifiques.

Notify-send

notify-send est disponible dans le paquet libnotify-bin (dans Debian et ses dérivées) et est probablement déjà installé. La capture montre le rendu avec Gnome. La commande :

$ notify-send "ici un titre" "ici le contenu"

Zenity

zenity est basĂ© sur GTK et permet l’affichage de diffĂ©rents types de fenĂȘtre. Pour obtenir la fermeture automatique de la fenĂȘtre, il faut ajouter un paramĂštre spĂ©cifique :

$ zenity --info --title="ici un titre" --text="ici un contenu" --timeout=5

Kdialog

Notification avec kdialog

kdialog fait partie de KDE. Le type passivepopup est une notification qui apparaßt dans un coin du bureau et disparaßt automatiquement :

$ kdialog --passivepopup --title "ici un titre" "ici un contenu"

Xmessage

xmessage fait partie d’outils fournis avec X11 (paquet x11-utils sous Debian et dĂ©rivĂ©es). Il doit ĂȘtre disponible Ă  peu prĂšs partout mais, contrairement aux commandes citĂ©es prĂ©cĂ©demment, ne bĂ©nĂ©ficie pas de l’intĂ©gration avec le thĂšme du bureau. En bref, ça fonctionne mais c’est moche.

$ xmessage -timeout 5 "ici un contenu"

Versions utilisées

Le rendu des captures d’écran peuvent diffĂ©rer selon la version des logiciels utilisĂ©s. Les captures ont Ă©tĂ© faites avec :

  • Gnome 47
  • KDE Plasma 5.27
  • Zenity 4.0.2
  • Xmessage 1.0.7

25 November, 2024 09:05AM by ascendances

November 19, 2024

hackergotchi for Aurélien Jarno

Aurélien Jarno

AI crawlers should be smarter

It would be fantastic if all those AI companies dedicated some time to make their web crawlers smarter (what about using AI?). Noawadays most of them still stupidly follow every link on a Git frontend.

Hint: Changing the display options does not provide more training data!

19 November, 2024 10:31PM by aurel32

November 11, 2024

Vincent Bernat

Personnaliser les modules de Caddy avec Nix

Caddy est un serveur web libre Ă©crit en Go. Il gĂšre automatiquement les certificats TLS et propose une syntaxe de configuration simple. Les utilisateurs peuvent Ă©tendre ses fonctionnalitĂ©s via des modules pour ajouter, par exemple, la limitation de dĂ©bit, la mise en cache et l’intĂ©gration Ă  Docker.

Bien que Caddy soit disponible dans Nixpkgs, l’ajout de modules supplĂ©mentaires n’est n’était pas simple1. Le processus de compilation nĂ©cessite un accĂšs Internet, ce que Nix refuse pendant la compilation pour garantir la reproductibilitĂ©. Lorsqu’on essaie de construire la dĂ©rivation suivante en utilisant xcaddy, un outil pour compiler Caddy avec des modules supplĂ©mentaires, cela Ă©choue avec cette erreur : dial tcp: lookup proxy.golang.org on [::1]:53: connection refused.

{ pkgs }:
pkgs.stdenv.mkDerivation {
  name = "caddy-with-xcaddy";
  nativeBuildInputs = with pkgs; [ go xcaddy cacert ];
  unpackPhase = "true";
  buildPhase =
    ''
      xcaddy build --with github.com/caddy-dns/powerdns@v1.0.1
    '';
  installPhase = ''
    mkdir -p $out/bin
    cp caddy $out/bin
  '';
}

Les dĂ©rivations Ă  sortie fixe (fixed-output derivations) constituent une exception Ă  cette rĂšgle et obtiennent un accĂšs rĂ©seau pendant la compilation. Elles doivent spĂ©cifier leur hash de sortie. Par exemple, la fonction fetchurl produit une dĂ©rivation Ă  sortie fixe :

{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
  pname = "hello";
  version = "2.12.1";
  src = fetchurl {
    url = "mirror://gnu/hello/hello-${version}.tar.gz";
    hash = "sha256-jZkUKv2SV28wsM18tCqNxoCZmLxdYH2Idh9RLibH2yA=";
  };
}

Pour crĂ©er une dĂ©rivation Ă  sortie fixe, vous devez dĂ©finir l’attribut outputHash. L’exemple ci-dessous montre comment obtenir le code source de Caddy, avec certains modules activĂ©s, comme une dĂ©rivation Ă  sortie fixe en utilisant xcaddy et go mod vendor.

pkgs.stdenvNoCC.mkDerivation rec {
  pname = "caddy-src-with-xcaddy";
  version = "2.8.4";
  nativeBuildInputs = with pkgs; [ go xcaddy cacert ];
  unpackPhase = "true";
  buildPhase =
    ''
      export GOCACHE=$TMPDIR/go-cache
      export GOPATH="$TMPDIR/go"
      XCADDY_SKIP_BUILD=1 TMPDIR="$PWD" \
        xcaddy build v${version} --with github.com/caddy-dns/powerdns@v1.0.1
      (cd buildenv* && go mod vendor)
    '';
  installPhase = ''
    mv buildenv* $out
  '';

  outputHash = "sha256-F/jqR4iEsklJFycTjSaW8B/V3iTGqqGOzwYBUXxRKrc=";
  outputHashAlgo = "sha256";
  outputHashMode = "recursive";
}

Avec une dĂ©rivation Ă  sortie fixe, c’est Ă  nous de nous assurer que la sortie est toujours la mĂȘme :

  • xcaddy ne pas compile le programme et conserve le code source2 ;
  • nous spĂ©cifions la version de Caddy que nous voulons construire ;
  • nous spĂ©cifions la version de chaque module demandĂ©.

Vous pouvez utiliser cette dĂ©rivation pour remplacer l’attribut src dans pkgs.caddy :

pkgs.caddy.overrideAttrs (prev: {
  src = pkgs.stdenvNoCC.mkDerivation { /* ... */ };
  vendorHash = null;
  subPackages = [ "." ];
});

Consultez l’exemple complet dans le dĂ©pĂŽt GitHub. Pour une intĂ©gration dans un Flake, vous pouvez utiliser github:vincentbernat/caddy-nix comme surcouche Ă  Nixpkgs :

{
  inputs = {
    nixpkgs.url = "nixpkgs";
    flake-utils.url = "github:numtide/flake-utils";
    caddy.url = "github:vincentbernat/caddy-nix";
  };
  outputs = { self, nixpkgs, flake-utils, caddy }:
    flake-utils.lib.eachDefaultSystem (system:
      let
        pkgs = import nixpkgs {
          inherit system;
          overlays = [ caddy.overlays.default ];
        };
      in
      {
        packages = {
          default = pkgs.caddy.withPlugins {
            plugins = [ "github.com/caddy-dns/powerdns@v1.0.1" ];
            hash = "sha256-F/jqR4iEsklJFycTjSaW8B/V3iTGqqGOzwYBUXxRKrc=";
          };
        };
      });
}

Mise Ă  jour (11.2024)

Cela ne fonctionne pas avec Nixpkgs 24.05 car cette modification est nĂ©cessaire pour pouvoir changer la valeur de l’attribut vendorHash.

Mise Ă  jour (05.2025)

Depuis Nixpkgs 25.05, il n’est plus nĂ©cessaire d’ajouter cette surcouche. Jetez un Ɠil Ă  l’exemple complet.


  1. C’est une demande depuis un certain temps. Une solution proposĂ©e a Ă©tĂ© rejetĂ©e. Celle dĂ©crite dans cet article est un peu diffĂ©rente et je l’ai proposĂ©e en remplacement. Elle a Ă©tĂ© acceptĂ©e. ↩

  2. Ce n’est pas parfait : si le code source produit par xcaddy change, le hash changerait et la compilation Ă©chouerait. ↩

11 November, 2024 07:35AM by Vincent Bernat

September 26, 2024

hackergotchi for Debian France

Debian France

Debian France renouvelle ses instances

AGO de Debian France

Rappel

L'assemblée générale annuelle de l'association Debian-France vient de se terminer. Pour rappel, Debian France est une association qui se propose de représenter Debian en France, voire en Europe puisqu'elle est la seule organisation de confiance (Trusted Organization) active du projet Debian sur ce continent. Ce statut lui permet ainsi de recueillir des dons pour le projet Debian et de gérer le budget du projet qui lui incombe, en parallÚle du sien.

Spécificité de l'AGO 2024

En 2023, il n'y a pas eu d'AGO. Cela est dû à plusieurs facteurs dont des soucis avec les outils de communication de l'association et un quotidien chargé pour les membres du bureau. Le CA a donc été renouvelé aux deux tiers cette année.

Bilan du vote

Les membres sortants du CA pour les années 2022 et 2023 étaient :

  • Alban Vidal ;
  • CĂ©dric Boutillier ;
  • Cyril Brulebois ;
  • GrĂ©gory Colpart ;
  • Pierre-Elliott BĂ©cue ;
  • William Bonnet.

À l'issue du scrutin, et en conformitĂ© avec les candidatures, ont Ă©tĂ© Ă©lus au CA :

  • Alban Vidal ;
  • Georges Khaznadar ;
  • GrĂ©gory Colpart ;
  • Pierre-Elliott BĂ©cue ;
  • William Bonnet.

Élection du bureau

Le CA nouvellement élu s'est réuni et a nommé au bureau :

  • PrĂ©sident : Pierre-Elliott BĂ©cue ;
  • Vice-PrĂ©sident : Alban Vidal ;
  • TrĂ©sorier : Jean-Pierre Giraud ;
  • SecrĂ©taire : Jean-Philippe Mengual ;
  • SecrĂ©taire adjoint : Quentin Lejard.

Mot du président

AprĂšs deux annĂ©es de gestion somme toute "banale" (nous avons quand mĂȘme intensifiĂ© notre activitĂ© autour de l'organisation des DebConfs en prenant part Ă  la gestion financiĂšre de l'Ă©vĂ©nement, ce qui induit une belle charge additionnelle), Debian France se voit confier des missions accrues pour 2024 et 2025. En effet, l'association aura la charge de l'organisation de la Mini DebConf Toulouse qui aura lieu les 16 et 17 novembre 2024 en parallĂšle du Capitole du Libre, et les prĂ©paratifs pour DebConf 25 qui se tiendra Ă  Brest.

L'annĂ©e risque donc d'ĂȘtre chargĂ©e, nous ne manquerons pas de communiquer sur nos activitĂ©s.

26 September, 2024 06:11AM

June 07, 2024

Meetup 2024/2 - 13 Juin - Bordeaux

Meetup du 13 Juin Ă  Bordeaux

Debian France organise un nouveau meetup Ă  Bordeaux avec le soutien de Yaal Coop et de Collabora.

Il se dĂ©roulera le 13 Juin 2024 Ă  partir de 18h00 au Yack (l'espace de co-working de Yaal) Ă  BĂšgles (mĂȘme lieu que le prĂ©cĂ©dent meetup).

Il n'y a pas de sujet précis cette fois-ci, il s'agira donc d'une Bug Squashing Party! Le but sera de fermer (ou au moins proposer un patch) le plus grand nombre de bugs.

Merci de vous inscrire sur Mobilizon à l'évÚnement pour que nous puissions prévoir votre accueil dans les meilleures conditions.

Venez nombreux et n'hésitez pas à répandre l'information!

Lieu

Liens

07 June, 2024 04:06PM

May 25, 2024

Retour du Meetup Debian Ă  Bordeaux du 16 mai

Retour du Meetup du 16 Mai Ă  Bordeaux

Le 16 mai dernier s'est tenu le meetup Debian au sein du Yack (le local de coworking de Yaal Coop).

Nous étions 8 participants dont : 2 développeurs Debian (sthibault et daissi), des contributeurs Debian (dont Stéphane à qui l'on doit entre autres le nouveau template de Debian Policy) et utilisateurs avancés de Debian (dev, devops, etc). Bien que plus que bienvenu, nous n'avons pas vu d'utilisateurs avec un profil moins technique. Une bonne partie des participants n'a appris l'existence de l'évÚnement avant que quelques jours avant celui-ci malgré les annonces tout au long du mois précédent. Une meilleure communication (via plus de rappels, en ciblant les communautés d'utilisateurs ou des distributions dérivées) en amont des prochains meetups pourrait éventuellement mobiliser plus de participants.

Comme prĂ©vu, le thĂšme du jour Ă©tait le packaging Debian avec les slides disponibles sur le wiki Debian. Trop occupĂ©s Ă  discuter packaging Debian (et surtout l'heure des pizzas avait sonnĂ©), nous n'avons pas eu le temps d'emballer signal-estimator (et sa dĂ©pendance intrusive-shared-ptr). Cependant, la majeure partie du travail avait Ă©tĂ© rĂ©alisĂ©e en prĂ©paration du meetup, les paquets devraient ĂȘtre soumis pour inclusion dans l'archive Debian d'ici quelques jours/semaines. Nous avons Ă©galement abordĂ© diffĂ©rents thĂšmes dans le dĂ©sordre : la courbe d'apprentissage de l'emballage Debian peu rude, Debian CI, la transition t64, l’absence de roadmap du projet Debian, etc.

Le prochain meetup Debian devrait avoir lieu à la mi-juin (à confirmer) également au Yack. Si ce premier meetup était plutÎt théorique, le second sera lui plus pratique du genre BSP, packaging ou contribution à Debian.

PS : merci Samuel d'ĂȘtre venu avec un adaptateur USB-C - HDMI! 🙂

25 May, 2024 09:26AM

April 30, 2024

Meetup 2024/1 - 16 Mai - Bordeaux

Meetup du 16 Mai Ă  Bordeaux

Debian France organise un nouveau meetup Ă  Bordeaux avec le soutien de Yaal Coop et de Collabora.

Il se déroulera le 16 Mai 2024 à partir de 18h30 dans les locaux de Yaal Coop.

Le thĂšme sera : « Packaging, l’art de crĂ©er des paquets selon la politique Debian »

Qu'est ce qu'un paquet Debian ? Quelles sont les bonnes pratiques du packaging ? Comment en construire un ? Nous allons créer ensemble votre premier paquet!

Si vous souhaitez empaqueter un logiciel lors du meetup, vous pouvez le soumettre à daissi@debian.org pour une évaluation de sa difficulté (dans la limite des places disponibles :-).

Merci de vous inscrire (soit sur le wiki Debian, soit sur Mobilizon) à l'évÚnement pour que nous puissions prévoir votre accueil dans les meilleures conditions.

Venez nombreux et n'hésitez pas à répandre l'information!

Lieu

Liens

30 April, 2024 07:43PM

September 03, 2023

hackergotchi for J. Fernando Lagrange

J. Fernando Lagrange

Ajout du paquet imapsync dans debian

Contexte

Avec la sortie de Debian 12, en juin dernier, je dois mettre à jour un serveur de dépÎts de paquets.

Comme ce serveur contient un seul paquet (imapsync, qui n'est pas dans debian), il a été décidé de supprimer ce serveur de dépÎt et de directement passer par le code source amont lorsqu'on a besoin d'utiliser cet outil au boulot.

Du travail a déjà été fait pour inclure imapsync dans debian, c'est d'ailleurs ce qui m'a permis de créer un paquet en août 2021.

Participer à mettre ce paquet directement dans Debian, c'est un peu ma façon de renvoyer l'ascenseur.

Reprise du travail

J'ai repris le travail lĂ  oĂč la personne prĂ©cĂ©dente l'a laissĂ©e.

Et j'ai indiquĂ© ce que j'ai fait sur le bogue de suivi « Intent To Package » #919587: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919587

J'ai ensuite construit le paquet et je l'ai envoyé sur debian mentors.

03 September, 2023 03:17PM by Low Memory

August 16, 2023

hackergotchi for Charles Plessy

Charles Plessy

J'ai oublié « make clean ».

Je ne me souviens plus de la derniĂšre fois oĂč j'ai utilisĂ© la commande make clean. Si j'empaquĂšte pour Debian, le travail se fait dans un dĂ©pĂŽt git, et j'utilise les commandes git clean -fdx ; git checkout . que je peux rappeler depuis mon historique des commandes via Ctrl-r la plupart du temps. Et dans les autres cas, si les sources ne sont pas dĂ©jĂ  dans git, alors les commandes git init . ; git add . ; git commit -m 'hopla' rĂšglent le problĂšme.

16 August, 2023 04:32AM

July 23, 2023

hackergotchi for Aurélien Jarno

Aurélien Jarno

Welcome Debian riscv64

After many years of effort, I am happy to announce that Debian riscv64 is now an official architecture!

This milestone is not the end of the journey but rather the beginning of a new one: the port will need to be rebootstrapped in the official archive, build daemons will have to be reinstalled and handed over to DSA, many bugs will need to be fixed. If everything goes well, the architecture will eventually be released with Trixie. Please note that this process will be long and will span several months.

I would like to take this opportunity to thanks everyone who contributed to this significant milestone, including individuals and Debian teams, as well as the organizations and companies that provided us with resources (by rough chronological order): MIT CSAIL, Sifive, Mullvad, tetaneutral.net, OSU Open Source Lab, Microchip, BeagleBoard.org Foundation, RISC-V international, PLCT Lab (ISCAS), StarFive, and Metropolitan Area Network Darmstadt.

23 July, 2023 07:28PM by aurel32

July 14, 2023

Goodbye Debian GNU/kFreeBSD

Over the years, the Debian GNU/kFreeBSD port has gone through various phases. After many years of development, it was released as technology preview with the release of Squeeze and eventually became an official architecture with the release of Wheezy. However it ceased being an official architecture a couple of years later with the release of Jessie, although a jessie-kfreebsd suite was available in the official archive. Some years later, it was moved to the debian-ports archive, where it slowly regressed over the years. The development totally has now been stopped for over a year, and the port has been removed from the debian-ports archive. It's time to say it goodbye!

I feel a touch of nostalgia as I was deeply involved in the Debian GNU/kFreeBSD port for nearly a decade, starting in 2006. There are many different reasons to like GNU/kFreeBSD ranging from political to technical considerations. Personally, I liked the technical aspect, as the FreeBSD kernel, at that time, was ahead of the Linux kernel in term of features: jails, ZFS, IPv6 stateful firewalling, and at a later point superpages. That said it was way behind for hardware support and to the best of my knowledge this remains unchanged. Meanwhile, the Linux kernel development accelerated in the latter stages of the 2.6.x series, and eventually closed the feature gap. At some point, I began to lose interest, and also to lack time, and slowly stepped away from its development.

14 July, 2023 04:14PM by aurel32

May 10, 2023

hackergotchi for Charles Plessy

Charles Plessy

Plussez pour patcher Firefox pour afficher du Markdown.

J'ai écrit auparavant que quand Firefox reçoit un fichier dont le type média est text/markdown, il le propose au téléchargement, alors que les autres navigateurs l'affichent comme un fichier texte.

Il est maintenant possible de plusser sur connect.mozilla.org pour demander que Firefox formatte le markdown par défaut.

10 May, 2023 11:43PM

April 12, 2023

hackergotchi for Aurélien Jarno

Aurélien Jarno

Backup server upgraded to Bookworm

A few months ago, I switched my backup server to an ODROID-M1 SBC. It uses a RK3568 SoC with a quad-core Cortex-A55 and AES extensions (useful for disk encryption), and I added a 2 TB NVME SSD to the M2 slot. It also has a SATA connector, but the default enclosure does not have space for 2.5" drives. It's not the fastest SBC, but it runs stable and quite well as a backup server, and it's fanless, and low-power (less than 2 W idle). The support for the SoC has been added recently to the Linux kernel (it's used by various SBC), however the device tree for the ODROID-M1 was missing, so I contributed it based on the vendor one, and also submitted a few small fixes.

All the changes ended in the Bookworm kernel, and with the Bookworm release approaching, I decided it was the good moment to upgrade it. It went quite well, and now I can enjoy running dist-upgrade like on other stable servers without having to care about the kernel. I am currently using Borg as a backup software, but the upgrade also gave access to a newer Restic version supporting compression (a must have for me), so I may give it a try.

12 April, 2023 09:07AM by aurel32

March 09, 2023

hackergotchi for Charles Plessy

Charles Plessy

If you work at Dreamhost, can you help us?

Update: thanks to the very kind involvment of the widow of our wemaster, we could provide enough private information to Dreamhost, who finally accepted to reset the password and the MFA. We have recovered evrything! Many thanks to everybody who helped us!

Due to tragic circumstances, one association that I am part of, Sciencescope got locked out of its account at Dreamhost. Locked out, we can not pay the annual bill. Dreamhost contacted us about the payment, but will not let us recover the access to our account in order to pay. So they will soon close the account. Our website, mailing lists and archives, will be erased. We provided plenty of evidence that we are not scammers and that we are the legitimate owners of the account, but reviewing it is above the pay grade of the custommer support (I don't blame them) and I could not convince them to let somebody higher have a look at our case.

If you work at Dreamhost and want to keep us as custommers instead of kicking us like that, please ask the support service in charge of ticket 225948648 to send the recovery URL to the secondary email adddresses (the ones you used to contact us about the bill!) in addition to the primary one (which nobody will read anymore). You can encrypt it for my Debian Developer key 73471499CC60ED9EEE805946C5BD6C8F2295D502 if you worry it gets in wrong hands. If you still have doubts I am available for calls any time.

If you know somebody working at Dreamhost can you pass them the message? This would be a big, big, relief for our non-profit association.

09 March, 2023 01:35PM

January 08, 2023

Quelqu'un pourrait-il patcher Firefox pour afficher du Markdown ?

Quand Firefox reçoit un fichier dont le type mĂ©dia est text/markdown, il le propose au tĂ©lĂ©chargement, alors que les autres navigateurs l'affichent comme un fichier texte. Dans le ticket 1319262, il est proposĂ© d'afficher les fichiers Markdown par dĂ©faut. Mais il faudrait un patch


08 January, 2023 12:18AM

December 16, 2022

Les grots mots dans Debian.

Une conversation sur la list debian-project a attiré mon attention sur un mot italien signifiant quelque chose comme « auriez-vous la gentillesse d'aller voir ailleurs ? », mais en version plus directe et vulgaire. J'ai ensuite utilisé http://codesearch.debian.net pour étudier plus en détail son emploi.

Je l'ai trouvé dans :

  • le code source de XEmacs ;
  • une liste de gros mots pour policer les conversations dans BZFlag ;
  • le gĂ©nĂ©rateur alĂ©atoire de phrases PolyGen ;
  • le code source du jeu de plateau Tagua ;
  • une base de donnĂ©es d'Ă©pigrammes vulguaires pour la plateforme Ă©ducative WIMS ;
  • le jeu de mots croisĂ©s parololottero ;
  • une base de donnĂ©es d'Ă©pigrammes vulguaires pour messages de bienvenue ou signatures de courriels ;
  • des listes de mots de passes trop frĂ©quents ;
  • un commentaire destinĂ© Ă  un dĂ©onmmĂ© Wolf dans le code source d'un autre programme ;
  • a collection of rude gestures in the xwrists package.

Ce fut une promenade rafraßchissante et récréactive dans l'univers des paquets Debian.

16 December, 2022 01:00PM

October 04, 2022

hackergotchi for Debian France

Debian France

ÉvĂšnements fin 2022 - dĂ©but 2023

Bonjour Ă  toutes et tous,

Dans les mois qui viennent, trois évÚnements auront lieu dans lesquels l'association Debian France tiendra un stand afin d'y faire de la promotion du projet Debian, mais aussi pour y proposer quelques goodie.

Comme chaque évÚnement, nous sommes à la recherche de volontaires pour tenir le stand Debian France. Pour chacun d'eux, un Framadate est ouvert pour recenser les volontaires et leurs disponibilités.


1) Open Source Experience - Paris

2) Capitole du libre - Toulouse

3) FOSDEM - Bruxelles (Belgique)

  • Dates : 4 et 5 FĂ©vrier 2023
  • Site de l'Ă©vĂšnement : https://fosdem.org/2023/
  • Il s'agit d'un salon ou le stand Debian est tenu par de membres Debian France mais aussi des contributeurs d'autres pays. La page d'inscription n'est pas encore ouverte, mais sera disponible sur le Wiki Debian Ă  l'adresse suivante : https://wiki.debian.org/DebianEvents/be

N'hésitez pas à contacter l'association pour toutes question à l'adresse asso@france.debian.net ou bien sur IRC, réseau OFTC, canal #debian-france.

Bien à vous et en espérant vous compter parmi nous,

Quentin et Alban - Secrétaires Debian France

04 October, 2022 10:42PM

February 08, 2022

Stéphane Blondon

Hello Debian en Brainfuck

screenshots.debian.net est un service qui permet d’afficher des captures d’écran de logiciels. C’est assez pratique pour se faire une idĂ©e d’une interface par exemple. Une capture d’écran montrait dĂ©jĂ  l’interprĂ©teur Brainfuck beef affichant un classique
Hello Word!. Mais on peut aussi personnaliser en affichant un
Hello Debian! :

Utilisation de beef

Brainfuck

Brainfuck est un langage dont l’intĂ©rĂȘt principal est d’ĂȘtre difficilement comprĂ©hensible par un humain. Pas la peine de s’étendre sur ses spĂ©cificitĂ©s, wikipedia le fait trĂšs bien. Il ressemble Ă  une machine de Turing: le programme dĂ©place un curseur dans un tableau et modifie les valeurs contenues dans les cellules du tableau.
Voici une version commentĂ©e du programme utilisĂ© (le dĂ©but est quasi-identique au hello world fourni sur la page wikipedia puisqu’on veut Ă©crire la mĂȘme chose) :

++++++++++          affecte 10 Ă  la case 0
[                   boucle initialisant des valeurs au tableau 
   >                avance Ă  la case 1 
   +++++++          affecte 7 Ă  la case 1
   >                avance Ă  la case 2
   ++++++++++       affecte 10 Ă  la case 2 
   >                avance Ă  la case 3
   +++              affecte 3 Ă  la case 3
   >                avance Ă  la case 4
   +                affecte 1 Ă  la case 4
   >                avance Ă  la case 5
   +++++++++++      affecte 11 Ă  la case 5
   <<<<<            retourne Ă  la case 0
   -                enlĂšve 1 Ă  la case 0
]                   jusqu'Ă  ce que la case 0 soit = Ă  0

La boucle initialise le tableau en 10 itérations et son état est alors :

Case 0 1 2 3 4 5
Valeur 0 70 100 30 10 110

Suite du programme :

>++                 ajoute 2 Ă  la case 1 (70 plus 2 = 72)
.                   imprime le caractĂšre 'H' (72)
>+                  ajoute 1 Ă  la case 2 (100 plus 1 = 101)
.                   imprime le caractĂšre 'e' (101)
+++++++             ajoute 7 Ă  la case 2 (101 plus 7 = 108)
.                   imprime le caractĂšre 'l'  (108)
.                   imprime le caractĂšre 'l'  (108)
+++                 ajoute 3 Ă  la case 2 (108 plus 3 = 111)
.                   imprime le caractĂšre 'o' (111)
>++                 ajoute 2 Ă  la case 3 (30 plus 2 = 32)
.                   imprime le caractĂšre ' '(espace) (32)

<<<                 revient Ă  la case 0
++                  ajoute 2 Ă  la case 0 (0 plus 2 = 2)
[                   une boucle
   >                avance Ă  la case 1 
   --               enlĂšve 4 Ă  la case 1 (72 moins 4 = 68)
   >                avance Ă  la case 2
   -----            enlĂšve 10 Ă  la case 2 (111 moins 10 = 101)
   <<               retourne Ă  la case 0
   -                enlĂšve 1 Ă  la case 0
]                   jusqu'Ă  ce que la case 0 soit = Ă  0

>                   va case 1
.                   affiche 'D'
>                   va case 2
.                   affiche 'e'
---                 enlĂšve 3 Ă  la case 2 (101 moins 3 = 98)
.                   affiche 'b'
>>>                 va case 5
-----               enlĂšve 5 Ă  la case 5
.                   affiche 'i'
<<<                 va case 2
-                   enlĂšve 1 Ă  la case 2
.                   affiche 'a'
>>>                 va case 5
+++++               ajoute 5 Ă  la case 5
.                   affiche 'n'
<<                  va Ă  la case 3
+                   ajoute 1 Ă  la case 3
.                   affiche un point d'exclamation

>                   va Ă  la case 4
.                   imprime le caractĂšre 'nouvelle ligne' (10)

screenshots.debian.net

Une capture de l’exĂ©cution du programme est disponible pour les interprĂ©teurs beef et hsbrainfuck sur screenshot.debian.net.
Les images disponibles sur screenshots.debian.net sont aussi réutilisées par le service packages.debian.org (par exemple packages.debian.org) et par certains gestionnaires de paquets.
Si vous avez envie d’ajouter des captures d’écran Ă  des paquets qui n’en auraient pas (les plus courants sont dĂ©jĂ  faits), sachez que l’affichage n’est pas direct car il y a une validation manuelle des images envoyĂ©es. Le dĂ©lai reste limitĂ© Ă  quelques jours (voire Ă  la journĂ©e).

08 February, 2022 07:50PM by ascendances

April 18, 2021

Florent Gallaire

Debian et RMS, la montagne a accouchĂ© d’une souris

Suite au retour de Richard Stallman (RMS) au board de la Free Software Foundation (FSF), pas moins de neuf anciens Debian Project Leader (DPL) – Neil McGovern, Stefano Zacchiroli, Ian Jackson, Lucas Nussbaum, Martin Michlmayr, Mehdi Dogguy, Sam Hartman, Sam Hocevar et Steve McIntyre – ainsi que l’actuel DPL Jonathan Carter, ont signĂ© une lettre ouverte initiĂ©e par Molly de Blanc et intitulĂ©e An open letter to remove Richard M. Stallman from all leadership positions.

Rappelons que Richard Stallman n’est rien de moins que l’inventeur des quatre libertĂ©s essentielles dĂ©finissant le logiciel libre et du concept juridique de copyleft, ainsi que le fondateur de la Free Software Foundation et du projet GNU (Linux sans le noyau).

Richard Stallman Ă  la FĂȘte de l'HumanitĂ© 2014 (par Thesupermat)

Steve Langasek a ensuite soumis une General Resolution (GR) proposant que la personne morale Debian soutienne officiellement la prise de position de ses leaders. Mais rien ne s’est passĂ© comme prĂ©vu, et ce qui devait ĂȘtre un rĂ©fĂ©rendum consensuel a tournĂ© au pugilat sur la mailing list debian-vote en mars et en avril, ces discussions publiques n’étant bien sĂ»r que la partie Ă©mergĂ©e de l’iceberg.

Huit options ont finalement été soumises au vote :

  1. « Call for the FSF board removal, as in rms-open-letter.github.io« 
  2. « Call for Stallman’s resignation from all FSF bodies »
  3. « Discourage collaboration with the FSF while Stallman is in a leading position »
  4. « Call on the FSF to further its governance processes »
  5. « Support Stallman’s reinstatement, as in rms-support-letter.github.io« 
  6. « Denounce the witch-hunt against RMS and the FSF »
  7. « Debian will not issue a public statement on this issue »
  8. « Further Discussion » (default option)

Pour faire court, c’est l’option 7 qui l’a emportĂ© : Debian will not issue a public statement on this issue. Voici une reprĂ©sentation du rĂ©sultat du scrutin qui utilise la mĂ©thode Condorcet :

Résultat du vote de la GR concernant Richard Stallman

En s’essayant Ă  un peu de taxinomie politique, on constate que les options peuvent ĂȘtre classĂ©es en trois groupes. Les options explicites, anti et pro parlent d’elles-mĂȘmes, mais comment connaĂźtre l’orientation d’une option implicite ? Sans la condamner, mais en refusant de participer Ă  une chasse aux sorciĂšres, l’option 7 constitue bien un soutien implicite Ă  RMS. Le nombre de voix par rapport Ă  l’option par dĂ©faut Further Discussion est le moyen le plus simple d’évaluer ce vote :

  • anti-RMS explicite (droite) : options 1, 2, 3 et 4 pour 203 + 222 + 219 + 221 = 216 voix de moyenne
  • pro-RMS implicite (centre) : option 7 pour 277 voix
  • pro-RMS explicite (gauche) : options 5 et 6 pour 52 + 84 = 68 voix de moyenne

Concernant les suffrages exprimĂ©s, il n’y a donc pas eu de vol de scrutin et la mĂ©thode Condorcet Ă©vite effectivement les problĂšmes de type Ballon d’or 2018, oĂč l’éparpillement des voix d’un camp permet Ă  une option minoritaire de l’emporter. En effet, une large majoritĂ© des votants voulait la peau de RMS, mais cette large majoritĂ© voulait aussi prĂ©server le projet Debian d’une explosion probable, et a permis Ă  l’option centriste de l’emporter de justesse.

Cependant, le systĂšme de vote de Debian a failli sur un point fondamental mais qui n’avait pourtant jamais semblĂ© poser problĂšme jusqu’ici. En effet, un vote concernant une General Resolution n’est pas secret, ce qui est une pratique totalitaire qui doit ĂȘtre changĂ©e. On peut ainsi consulter le dĂ©tail des votes de chaque votant. S’agissant d’un sujet aussi controversĂ©, la sincĂ©ritĂ© du scrutin a trĂšs probablement Ă©tĂ© altĂ©rĂ©e par un taux de participation infĂ©rieur Ă  ce qu’il aurait pu ĂȘtre, avec seulement 420 votants sur 1018 Debian Developers.

 

18 April, 2021 07:19AM by fgallaire

Highvoltage 2.0 : Jonathan Carter réélu DPL pour 2021

Jonathan Carter (Highvoltage) vient d’ĂȘtre réélu Debian Project Leader (DPL). Il va donc pouvoir continuer le travail commencĂ© l’annĂ©e derniĂšre.

La victoire de Jonathan est sans surprise, car sans rĂ©elle opposition, Sruthi Chandran incarnant pour la seconde annĂ©e consĂ©cutive une candidature de tĂ©moignage – non-homme, non-blanc -, mais n’étant malheureusement pas une prĂ©tendante crĂ©dible Ă  la victoire. Voici une reprĂ©sentation du rĂ©sultat du scrutin qui utilise la mĂ©thode Condorcet :

DPL 2021
Bravo à toi Jonathan, et bonne chance dans la mise en Ɠuvre de ton programme !

18 April, 2021 01:47AM by fgallaire

March 21, 2021

Quel DPL pour 2021 ?

Le temps passe vite, et cela fait déjà presque un an que Jonathan Carter a été élu Debian Project Leader (DPL). Chaque développeur Debian pouvait donc se porter candidat entre le 7 et le 13 mars à la suite du traditionnel appel à candidatures.

Le 11 mars Jonathan exprimait le souhait de se reprĂ©senter, tout comme Sruthi Chandran, elle aussi dĂ©jĂ  candidate l’annĂ©e derniĂšre, dans ce qui constituera un remake de l’élection 2020.

Il y aura donc deux candidats cette année :

Les presque mille dĂ©veloppeurs Debian seront libres de voter du 4 au 17 avril lors d’un vote utilisant la mĂ©thode Condorcet.

Vous pouvez retrouver tous les débats de la campagne sur la mailing list debian-vote.

21 March, 2021 01:02PM by fgallaire

November 17, 2020

September 27, 2020

Stéphane Blondon

Effet boomerang pour les contributions Ă  du logiciel libre

Lorsqu’on corrige une anomalie ou qu’on a ajoute une fonctionnalitĂ© Ă  un logiciel ou une bibliothĂšque, on peut la garder pour soi ou la partager. La deuxiĂšme solution demande un peu plus d’efforts Ă  court terme mais est prĂ©fĂ©rable Ă  long terme.

Le dĂ©lai de retour d’un correctif ou d’une amĂ©lioration dĂ©pend de l’endroit oĂč il est proposé : plus il est poussĂ© loin et plus il va mettre de temps Ă  revenir mais le nombre de personnes/machines bĂ©nĂ©ficiant du correctif sera plus grand.

Les différentes possibilités

Effet boomerang d'une contribution

Gardé pour soi

Cette mĂ©thode est absente du schĂ©ma puisqu’elle consiste Ă  ne pas envoyer la modification Ă  l’extĂ©rieur. C’est le plus rapide Ă  mettre en Ɠuvre, d’autant plus que la qualitĂ© du correctif n’est validĂ©e qu’en interne (juste soi-mĂȘme ou par l’équipe intĂ©grant la modification). Diverses façons d’arriver Ă  ses fins sont possibles comme surcharger la signature de la mĂ©thode qui pose problĂšme, attraper l’erreur non traitĂ©e correctement, intĂ©grer la bibliothĂšque dans le code et la modifier directement (vendoring), etc.

Par contre, personne d’autre ne bĂ©nĂ©ficie du correctif et personne d’extĂ©rieur ne fera une revue de code.

Publication solitaire

La vitesse de mise au point est Ă©quivalente Ă  la mĂ©thode prĂ©cĂ©dente. Le dĂ©ploiement prend un peu de temps. Elle permet de rendre la modification disponible pour les autres utilisateurs s’ils la trouvent. Ce phĂ©nomĂšne est visible avec l’incitation au fork proposĂ©e par les forges comme Github, Gitlab, Bitbucket, etc, sans pousser la modification vers le dĂ©veloppeur amont (via une pull request). Cette technique est utilisĂ©e lorsque des dĂ©veloppeurs :

  1. forkent un dépÎt,
  2. créent un commit modifiant le nouveau dépÎt,
  3. font dépendre leur application de ce commit (npm install git+https://alice@forge...).

Cependant, ce comportement n’est pas limitĂ© aux forges publiques : il existait dĂ©jĂ  avant en publiant le correctif dans un article de blog, une liste de diffusion (liste non exhaustive).

Envoyé vers la distribution

La correction est envoyĂ©e dans la distribution Linux utilisĂ©e ; c’est souvent fait en incluant la modification dans un fichier, attachĂ© Ă  un rapport de bogue sur la distribution.

Une fois que la modification sera intĂ©grĂ©e et qu’un nouveau paquet sera publiĂ©, l’ensemble des utilisateurs, y compris l’auteur, en bĂ©nĂ©ficieront. Cela Ă©vite de maintenir la modification de son cĂŽtĂ© lorsque de nouvelles versions du paquet seront publiĂ©es. La durĂ©e d’intĂ©gration est plus longue selon la rĂ©activitĂ© du mainteneur du paquet et le mode de publication (version espacĂ©e ou rolling release). Bien Ă©videmment, le bĂ©nĂ©fice de la modification sera perdu en cas de changement de distribution.

Cette solution est nĂ©cessaire pour corriger/amĂ©liorer un Ă©lĂ©ment spĂ©cifique d’un paquet de la distribution. Cela peut arriver dans deux cas :

  • soit parce que c’est un paquet spĂ©cifique Ă  la distribution (le paquet apt pour debian par exemple)
  • soit parce qu’une modification du logiciel spĂ©cifique Ă  la distribution a une influence sur la modification soumise

Envoyé vers le développeur amont

PlutĂŽt que d’envoyer le correctif vers la distribution utilisĂ©e, il est alors envoyĂ© directement vers le dĂ©veloppeur du logiciel. Si le dĂ©veloppement est hĂ©bergĂ© sur une forge publique, cela suppose le faire un fork (comme dans le cas d’une publication solitaire), puis de faire une pull request (terme Github), merge request (terme Gitlab). Sinon, il faut regarder quelle est la forme attendue : en postant sur une liste de diffusion, ou directement vers le mainteneur, etc. Il sera nĂ©cessaire de rĂ©pondre aux remarques et demandes de corrections pour que la modification soit intĂ©grĂ©e dans le logiciel amont.

Comme dans le cas d’une intĂ©gration dans la distribution, une fois intĂ©grĂ©e, la modification sera disponible pour tous :

  • soit en rĂ©utilisant le logiciel directement via le paquet issus du langage (par exemple gem pour ruby, wheel pour python, crate pour Rust, etc.)
  • soit parce que la version du logiciel sera elle aussi intĂ©grĂ©e dans la distribution et donc obtenue dans un paquet de la distribution

Ce type de contributions sont les plus longues à revenir au contributeur mais elles permettent le déploiement le plus large (et donc la plus grande disponibilité pour soi et pour les autres).

Autres considérations

S’il n’est pas possible d’attendre le retour de la modification, la solution optimale est de faire un correctif local et un envoi vers la distribution ou vers le dĂ©veloppeur amont (pour qu’une solution long terme soit aussi disponible automatiquement).

Pour bĂ©nĂ©ficier de l’envoi amont, il faut que le temps de retour soit infĂ©rieur au temps de changement de techno/bibliothĂšque. Dans un Ă©cosystĂšme oĂč les outils et bibliothĂšques sont abandonnĂ©s trĂšs rapidement, l’effort d’intĂ©gration peut ĂȘtre perçu comme vain puisque la personne ayant fait le dĂ©veloppement aura peu le temps d’en profiter. D’un point de vue gĂ©nĂ©ral, avec une majoritĂ© de personnes faisant ce calcul, cela ne fait qu’empirer le problĂšme, avec des multitudes de fork s’ignorant mutuellement, chacun avec une fonctionnalitĂ© ou une correction diffĂ©rente. Javascript me semble ĂȘtre dans cette situation.

À propos du schĂ©ma

Le schĂ©ma a Ă©tĂ© rĂ©alisĂ© avec Dia, installable par le paquet du mĂȘme nom pour Debian et dĂ©rivĂ©es.
Fichier source .dia

27 September, 2020 07:09PM by ascendances

April 19, 2020

Florent Gallaire

Jonathan Carter élu DPL pour 2020

C’est Jonathan Carter qui vient d’ĂȘtre Ă©lu Debian Project Leader (DPL) pour l’annĂ©e 2020, succĂ©dant ainsi Ă  Sam Hartman qui avait Ă©tĂ© Ă©lu en 2019.

ArrivĂ© l’an passĂ© derriĂšre Sam Hartman presque Ă  Ă©galitĂ© avec Martin Michlmayr et Joerg Jaspert, Jonathan l’emporte logiquement cette annĂ©e dans une Ă©lection sans rĂ©elle concurrence.

En effet, Brian Gupta avait immĂ©diatement indiquĂ© que le seul objet de sa candidature Ă©tait de constituer un rĂ©fĂ©rendum, qui s’est rĂ©vĂ©lĂ© peu concluant, sur la crĂ©ation des fondations Debian US et Debian Europe ; tandis que la jeune indienne Sruthi Chandran, dont on devrait rĂ©entendre parler dans les prochaines annĂ©es, manquait de lĂ©gitimitĂ© pour le poste n’étant dĂ©veloppeuse Debian que depuis un an.

Bravo à toi Jonathan, et bonne chance dans la mise en Ɠuvre de ton programme !

19 April, 2020 02:18AM by fgallaire

June 05, 2019

hackergotchi for Gr&#233;gory Colpart

Grégory Colpart

Mini-DebConf Marseille 2019 (fr)

L’idĂ©e d’organiser une mini-DebConf Ă  Marseille est nĂ©e Ă  Toulouse en 2017 : aprĂšs avoir participĂ© avec plaisir Ă  plusieurs (mini)DebConfs, se lancer dans l’organisation d’un tel Ă©vĂšnement est une maniĂšre de rendre la pareille et de contribuer Ă  Debian !

Fin 2018, aprĂšs avoir rĂ©uni les personnes motivĂ©es, nous avons choisi la date du 25/26 mai 2019 et dimensionner l’évĂšnement pour 50 Ă  70 personnes en sĂ©lectionnant un lieu appropriĂ© au centre-ville de Marseille. Je ne vais pas m’attarder ici sur dĂ©tails de l’organisation (appel Ă  confĂ©rences, enregistrement des participants, composition du programme etc.), car nous allons publier bientĂŽt un « Howto Organizing a mini-DebConf » pour partager notre expĂ©rience.

Tout a commencĂ© dĂšs le mercredi 22 mai, oĂč la formidable Ă©quipe vidĂ©o DebConf s’est rĂ©unie pour un sprint de 3 jours pour prĂ©parer la couverture de l’évĂ©nement avec le matĂ©riel dĂ©jĂ  arrivĂ© et former les membres qui gĂšreront le matĂ©riel pour la mini-DebConf Hambourg.

Vendredi 24 mai, l’équipe de traduction francophone de Debian est arrivĂ©e pour un sprint d’une journĂ©e. La plupart d’entre eux ne s’était jamais rencontrĂ© physiquement !

Une majeure partie des participants sont arrivĂ©s dans l’aprĂšs-midi du vendredi 24 mai. Le bureau d’accueil (Front-Desk) Ă©tait dĂ©jĂ  prĂȘt, et les arrivants ont pu rĂ©cupĂ©rer leur badge et un T-shirt de l’évĂ©nement. Pour des raisons Ă©cologiques, nous avions dĂ©cidĂ© de minimiser les goodies offerts au participants donc pas de sacs ou papiers superflus, mais un booklet distribuĂ© en amont. Si besoin, des goodies Debian (stickers, casquettes, polos, etc.) Ă©taient aussi en vente au Front-Desk.

La soirĂ©e de vendredi a dĂ©butĂ© avec un mini-CheeseWineBOF avec des denrĂ©es locales (fromages, vins, pastis, olives, fruits et lĂ©gumes) et apportĂ©es par des participant(e)s : merci Ă  Valhalla pour fromage italien, ainsi qu’à Urbec et Tzafrir !

La soirĂ©e de vendredi s’est poursuivie : pendant que l’équipe vidĂ©o finalisait son installation dans la salle de confĂ©rence, les participants ont Ă©tĂ© invitĂ©s Ă  une rĂ©union du Linux Users Group de Marseille : une prĂ©sentation de Florence Devouard, pionniĂšre de WikipĂ©dia, qui est revenue l’historique de WikipĂ©dia/WikimĂ©dia avec de nombreuses anecdotes. La soirĂ©e s’est achevĂ©e avec une tradition locale : la dĂ©gustation de pizzas marseillaises. Le week-end n’est pas encore commencĂ©, et dĂ©jĂ  de bons moments sont partagĂ©s entre les participants !

Samedi matin, c’était le coup d’envoi officiel de la mini-DebConf ! Ouverture des portes Ă  8h30 pour le petit dĂ©jeuner : cookies fait-maison, cafĂ© en grains, nous avons proposĂ© durant tout le week-end de la cuisine locale, fait-main et vĂ©gĂ©tarienne. Autre objectif : minimiser les dĂ©chets, et dans cette optique nous avons rĂ©flĂ©chi Ă  diffĂ©rents dispositifs : couverts en dur, tasses Ă  Ă©tiqueter, Ecocups, etc.

75 participants s’étaient inscrits, ce qui correspondait au maximum de la capacitĂ© du lieu. Et 73 sont effectivement venus, ce qui est un bel exploit, notamment pour une confĂ©rence totalement gratuite. Si l’on compte quelques participants non-inscrits, nous avons Ă©tĂ© au total plus de 75 participants, soit au-delĂ  de nos espĂ©rances !

À 9h45, c’est la confĂ©rence d’ouverture ! JĂ©rĂ©my dĂ©roule le programme du week-end, remercie les sponsors et rappelle le Code of Conduct, le systĂšme d’autorisations pour les photos, etc.

À 10h, c’est parti pour la premiĂšre confĂ©rence ! Les choses sĂ©rieuses dĂ©butent : Cyril Brulebois – release manager du Debian Installer – dĂ©taille le fonctionnement de la migration d’un package vers Testing, et propose une solution pour visualiser les dĂ©pendances entre les packages et comprendre ainsi pourquoi un package peut ĂȘtre bloquĂ©.

On enchaĂźne ensuite avec Peter Green – co-fondateur du projet Raspbian – qui prĂ©sente l’outil autoforwardportergit qu’il utilise pour automatiser la crĂ©ation de packages Debian modifiĂ©s pour Raspbian.

AprĂšs une pause-cafĂ©, c’est RaphaĂ«l Hertzog qui revient sur 5 ans du projet Debian LTS (Long Term Support). Il explique l’historique ainsi que le fonctionnement : la gestion des sponsors, le travail rĂ©parti entre plusieurs dĂ©veloppeurs, l’offre extended LTS, l’infrastructure. Le sujet du financement des contributeurs provoquera plusieurs questions et suscitera un Lightning Talk sur le sujet dimanche matin.

Durant le midi, pendant que l’infatiguable Ă©quipe vidĂ©o forme des dĂ©butants Ă  ses outils, un dĂ©jeuner est servi sous forme de buffet vĂ©gĂ©talien ou vĂ©gĂ©tarien. Nous sommes fiers d’avoir rĂ©ussi Ă  offrir une cuisine fait-maison avec des produits frais et locaux, et sans gĂąchis grĂące Ă  une bonne gestion des quantitĂ©s.

AprĂšs le dĂ©jeuner, c’est l’heure de la KSP (Key Signing Party) organisĂ©e par BenoĂźt. L’occasion pour chacun d’échanger des signatures de clĂ©s GPG et de renforcer le rĂ©seau de confiance.

Et l’on repart pour un cycle de confĂ©rences, avec Elena “of Valhalla” Grandi qui prĂ©sente le protocole ActivityPub pour des rĂ©seaux sociaux fĂ©dĂ©rĂ©s comme Mastodon, Pixelfed, etc.

C’est au tour de Laura Arjona Reina venue de Madrid pour prĂ©senter la Welcome Team au sein de Debian qui Ɠuvre pour accueillir les nouveaux arrivants.

Ensuite, Denis Briand – fraĂźchement Ă©lu prĂ©sident de Debian France – nous parle de l’association Debian France, de son but, de ses actions et de ses projets.

C’est au tour de FrĂ©dĂ©ric Lenquette d’aborder le sujet « Hardening and Secure Debian Buster » en explorant toutes les possibilitĂ©s de sĂ©curisation d’une Debian 10.

Enfin, derniĂšre confĂ©rence de la journĂ©e de samedi : une partie de l’équipe de traduction francophone (Thomas Vincent, Jean-Philippe Mengual and Alban Vidal) prĂ©sente son travail : comment fonctionne le travail en Ă©quipe, quelles tĂąches peuvent ĂȘtre faites par des dĂ©butants, etc.

Samedi soir, fin de la premiÚre journée : tous les participants sont invités à prolonger les échanges à la Cane BiÚre, un bar proche de la mini-DebConf.

Dimanche matin, on repart avec une prĂ©sentation de l’équipe vidĂ©o (reprĂ©sentĂ©e par Nicolas Dandrimont et Louis-Philippe VĂ©ronneau) qui rĂ©vĂšle ses secrets pour assurer la couverture vidĂ©o des (mini)DebConfs !

Puis on enchaĂźne avec une session de 6 Lightning Talks animĂ©s par Eda : « kt-update » (Jean-François Brucker), « the Debian Constitution » (Judit Foglszinger), « Elections, Democracy, European Union » (Thomas Koch), les mĂ©thodes de vote de Condorcet et du Jugement Majoritaire (RaphaĂ«l Hertzog), « encrypt the whole disk with LUKS2 » (Cyril Brulebois), « OMEMO – the big fish in the Debian bowl » (Martin) et « Paye ton Logiciel Libre » (Victor).

AprĂšs quelques mots pour clĂŽturer les confĂ©rences, c’est dĂ©jĂ  l’heure du rangement pour certains, tandis que d’autres en profitent pour faire un mini-DayTrip : descendre la CanebiĂšre Ă  pied et embarquer au Vieux Port pour l’archipel du Frioul pour marcher et nager !

Nous remercions les 75 participant(e)s venus du monde entier (Canada, USA, IsraĂ«l, Angleterre, Allemagne, Espagne, Suisse, Australie, Belgique etc.) ! Nous remercions Ă©galement la fantastique Ă©quipe vidĂ©o qui rĂ©alise un travail remarquable et impressionnant de qualitĂ©. Nous remercions Debian France qui a organisĂ© l’évĂ©nement, et les sponsors : Bearstech, Logilab et Evolix. Nous remercions la Maison du Chant de nous avoir mis Ă  disposition les locaux. Nous remercions Valentine et CĂ©lia qui ont assurĂ© tous les repas, il y a eu de nombreux compliments. Nous remercions Florence Devouard d’avoir assurĂ© une belle prĂ©sentation vendredi soir, ainsi que tous les orateurs(ices) de la mini-DebConf. Et je tiens Ă  remercier tous les bĂ©nĂ©voles qui ont assurĂ© la prĂ©paration et le bon dĂ©roulement de l’évĂ©nement : Tristan, AnaĂŻs, BenoĂźt, Juliette, Ludovic, Jessica, Éric, Quentin F. et JĂ©rĂ©my D. Mention spĂ©ciale Ă  Eda, Moussa, Alban et Quentin L. pour leur implication et leur motivation, et Ă  Sab et JĂ©rĂ©my qui se sont plongĂ©s avec moi dans cette folle aventure depuis plusieurs mois : you rock guys !

Twitter : https://twitter.com/MiniDebConf_MRS
Mastodon : https://mamot.fr/@minidebconf_mrs
Photos : https://minidebcloud.labs.evolix.org/apps/gallery/s/keMJaK5o3D384RA
Vidéos : https://ftp.acc.umu.se/pub/debian-meetings/2019/miniconf-marseille

05 June, 2019 01:57PM by Gregory Colpart

January 08, 2019

Stéphane Blondon

Processeur Intel -> Architecture AMD64 pour Debian

TL;DR

Nom courant Dénomination Debian Disponibilité
x86 i386 rarement en vente aprĂšs 2010
x86_64 amd64 Ă  moins d’acheter des ordinateurs spĂ©cifiques, il n’y a plus que ça pour le grand public

Si vous venez d’acheter un ordinateur, choisissez amd64.

L’histoire, avec un grand L

Intel avait conçu une architecture 8086, amĂ©liorĂ©e successivement jusqu’au 286 (un processeur 16 bits).
Au milieu des annĂ©es 80, Intel amĂ©liore cette architecture qui devient 32 bits (avec les dĂ©nominations commerciales 386 puis 486, Pentium, Pentium II, etc.), nommĂ©e i386 par Debian, communĂ©ment appelĂ©e x86. Cette architecture est aussi parfois nommĂ©e ia32 pour « Intel Architecture 32 bits ». D’autres constructeurs de processeurs comme AMD ou Cyrix concevaient des processeurs compatibles. C’est donc cette mĂȘme architecture (i386) qui devait ĂȘtre utilisĂ©e pour ces processeurs.

Autocollant Intel Pentium 4 (32 bits) comme on en trouvait collé sur des ordinateurs portables au début des années 2000

Puis Intel dĂ©cida de faire un nouveau processeur, 64 bits, incompatible avec les x86. AssociĂ© Ă  HP, une nouvelle gamme de processeur, Itanium, voit le jour en 2001. La dĂ©nomination Debian est donc ia64 (« Intel Architecture 64 bits »). C’est un Ă©chec commercial, dĂ» Ă  des performances dĂ©cevantes et l’absence de compatibilitĂ© ascendante. Cette gamme sera arrĂȘtĂ©e dans l’indiffĂ©rence gĂ©nĂ©rale en 2013.

ParallĂšlement Ă  Intel, AMD dĂ©cide d’étendre le processeur x86 pour qu’il fonctionne en 64 bits tout en ayant une compatibilitĂ© 32 bits. Cette architecture est souvent appelĂ©e x86_64, parfois x64. En 2003, AMD vend l’Athlon 64, premier processeur disponible au public de cette nouvelle architecture. Debian la dĂ©signe par le terme amd64. Des accords entre AMD et Intel permettant aussi Ă  Intel de produire cette architecture, Intel a emboĂźtĂ© le pas Ă  AMD et produit aussi des processeurs compatibles amd64. C’est pourquoi les processeurs modernes Intel nĂ©cessitent cette architecture lors de l’installation d’un systĂšme Debian.

Bien plus rĂ©cent que le Pentium4, c’est un processeur 64 bits. Les autocollants, c’est bien joli mais pas trĂšs informatif.

D’autres architectures moins connues voire complĂštement oubliĂ©es existent

Debian est installable sur de nombreuses autres architectures, mais qui ne sont pas orientĂ©es grand public. La seule exception Ă©tant peut-ĂȘtre ARM avec les cartes RaspberryPi (cf. wiki).

Des exemples d’autres architectures et processeurs associĂ©s : https://lists.debian.org/debian-www/2017/10/msg00125.html (Ă  la toute fin du message)

08 January, 2019 09:10PM by ascendances

October 16, 2018

Didier Raboud

Raksha – Une idĂ©e

J’étais donc ce week-end en cours CG (responsables de groupes) pour l’ASVd Ă  Froideville. Je tombe sur une conversation entre Chat et PĂ©lican au sujet du lancement d’une commission IT au niveau cantonal pour fournir des services aux groupes du canton.

On continue la discussion, qui embraie rapidement sur un Ă©change d’idĂ©es sur Framasoft, MiData (db.scout.ch) et les diffĂ©rentes initiatives pour fournir des services IT aux groupes scouts du canton.

Pour un petit historique, il y’a dĂ©jĂ  eu plusieurs initiatives dans ce sens, mais actuellement, je n’ai pas connaissance d’équipes actives ou fonctionnelles pour ça:

  • Pour l’ASVd:
    • un bĂ©nĂ©vole s’occupe des services cloud (NextCloud), email, listes et site Internet (WordPress).
    • des groupes DropBox continuent d’exister.
  • Pour les groupes:
    • rien de centralisĂ©, mais diffĂ©rentes initiatives isolĂ©es naĂźssent et meurent (Trello, Mattermost, etc)

Bref. La discussion a finalement tourné autour des idées suivantes:

  • Un service scout
  • S’inspirer de ce que fait Framasoft et les collectifs Chatons: dĂ©centraliser les services et reprendre le contrĂŽle!
  • Commencer petit; proposer quelque chose de spĂ©cifique aux scouts suisses, voir mĂȘme scouts vaudois pour commencer.
  • Tirer profit du bĂ©nĂ©volat, mais couvrir tous les frais
  • Offrir des services « collectifs » (une instance cloud par canton) et « spĂ©cifiques » (une instance Mattermost par groupe)
  • Avoir des ambitions techniques Ă©levĂ©es:
    • uniquement du logiciel libre
    • automatisation des processus
    • confiance dans les donnĂ©es (backup)
    • monitoring des services
    • intĂ©grations qui font sens
    • authentification unifiĂ©e
    • reproductibilitĂ© du projet

Tout ça est Ă©videmment Ă  discuter, clarifier, raffiner, prioriser avec les premiers intĂ©ressĂ©s. Mais
 Je cherchais un nom, en rapport autant avec le champ lexical des chats (Chatons) et du scoutisme. J’avais d’abord pensĂ© Ă  « gamelle », qui me plaisait bien, mais tous les `.ch` Ă©taient pris. « VeillĂ©e », vraiment bien, et veillĂ©e.ch est libre; mais il y’aurait confusion avec le mĂȘme nom sans accent. â˜č

En feuilletant mon Livre de la Jungle de poche (non, non, en vrai: https://fr.wikipedia.org/wiki/Le_Livre_de_la_jungle#Les_animaux ), j’ai commencĂ© Ă  parcourir les diffĂ©rents animaux de l’histoire en testant leur disponibilitĂ© en .ch . Et c’est lĂ  que MĂšre Louve; Raksha, est apparue libre!

Raksha : la louve grise, Ă©galement appelĂ©e MĂšre-Louve ou La dĂ©mone, mĂšre adoptive de Mowgli. Elle le dĂ©fend lorsque Shere-Khan le rĂ©clame Ă  l’entrĂ©e de sa taniĂšre.

C’est plutĂŽt un bon nom: les scouts avec une Ăąme de louveteaux reconnaĂźtront le nom immĂ©diatement, et c’est Ă©galement un animal qui a des petits par portĂ©es, avec un aspect de dĂ©fense des intĂ©rĂȘts des scouts, et un aspect de collectif. Des chatons au louveteaux, on n’est pas trĂšs loin!

Bref. On doit se voir pour en discuter!

16 October, 2018 08:15AM by OdyX

September 27, 2018

Stéphane Blondon

Accéder à une console lorsque gdm plante

S’il est impossible d’avoir un terminal en appuyant simultanĂ©ment sur ctrl+alt+F6 , il est possible de paramĂ©trer Grub pour dĂ©marrer Linux avec un environnement multi-utilisateur mais sans interface graphique (runlevel 3) :

Lorsque le menu de Grub s’affiche, appuyer sur e pour modifier temporairement la configuration.
Puis ajouter 3 à la fin de la ligne :
linux /boot/vmlinuz-
 root=UUID=12345678-
 ro quiet 3
Puis appuyer sur la/les touches indiquées par Grub pour exécuter cette entrée.

J’ai trouvĂ© plusieurs explications indiquant d’utiliser text Ă  la place de 3 mais ça ne fonctionne pas avec la version avec laquelle j’ai subi ce problĂšme (2.02+dfsg1-6).

La solution vient de https://superuser.com/a/974809, possibilité 5.


Et Grub Ă©tait innocent : c’était un problĂšme de paquets mis-Ă -jour mais non configurĂ©s.

27 September, 2018 06:39AM by ascendances

April 21, 2017

hackergotchi for Rapha&#235;l Hertzog

Raphaël Hertzog

Le logiciel libre a t’il une couleur politique ?

En pleine campagne prĂ©sidentielle, aprĂšs avoir Ă©chouĂ© Ă  obtenir les parrainages pour Charlotte Marchandise, j’ai dĂ©cidĂ© de soutenir Jean-Luc MĂ©lenchon.

Il se trouve que le volet numérique du programme de la France Insoumise est trÚs bien ficelé et fait la part belle aux logiciels libres.

Mais face aux enjeux, ce n’est Ă©videmment pas mon seul critĂšre de choix. L’élĂ©ment dĂ©cisif pour ma part est la mise en place d’une assemblĂ©e constituante avec des citoyens tirĂ©s au sort pour changer nos institutions et notre systĂšme Ă©lectoral Ă  bout de souffle. Il nous faut le jugement majoritaire (cliquez le lien pour tester la mĂ©thode sur cette Ă©lection prĂ©sidentielle) pour en finir avec le vote utile. Il faut dĂ©passer la monarchie prĂ©sidentielle et apprendre Ă  travailler ensemble pour le bien de tous.

Mais mĂȘme en allant au delĂ  de ces deux aspects, je me retrouve en accord avec le programme de la France Insoumise sur la quasi totalitĂ© des thĂ©matiques sauf l’Europe et sur le revenu universel (qui est absent!).

Pour autant, je n’aime pas le personnage de Jean-Luc MĂ©lenchon (ce n’est pas pour rien que je soutenais Charlotte Marchandise) et son historique politique (cumul dans le temps
) n’est pas en phase avec mes convictions, mais il n’y a pas de candidat parfait et il a promis de dĂ©missionner une fois la nouvelle constitution en place alors je m’en accommode.

Bref, pour en revenir avec le sujet de mon article, trĂšs peu de candidats[1] Ă  la prĂ©sidence ont pris des positions aussi claires en faveur des logiciels libres alors je m’interroge. Est-ce un hasard que le seul projet qui dĂ©fend le logiciel libre soit aussi celui qui me correspond le mieux par ailleurs ? Ou bien est-ce que le fait que je fasse partie de la communautĂ© du logiciel libre peut avoir une relation avec le cĂŽtĂ© humaniste/progressiste/Ă©cologiste qui m’attire en politique ?

J’ai l’habitude de prĂ©senter le logiciel libre comme apolitique, car les gens de gauche y voient un modĂšle de coopĂ©ration et de partage des communs, et les gens de droite y voient la libertĂ© totale et un marchĂ© ouvert avec une concurrence parfaite. Et parfois j’ai l’impression que cette distinction se retrouve aussi dans la diffĂ©rence de terminologie « logiciel libre » vs « open-source » 

L’existence mĂȘme de ces deux tendances discrĂ©diterait alors la corrĂ©lation que je semble observer. Mais tout de mĂȘme, lorsqu’on parle de « communautĂ© du logiciel libre » j’ai remarquĂ© que ceux qui se reconnaissent derriĂšre ce label sont plutĂŽt des contributeurs qui sont portĂ©s par des motivations (au moins partiellement) altruistes et lorsque je discute avec d’autres contributeurs bĂ©nĂ©voles aussi impliquĂ©s que moi, il est assez rare que je tombe sur des personnes avec des valeurs en forte opposition aux miennes.

Ceux pour qui le logiciel libre se rĂ©sume Ă  l’open-source ne semblent pas s’identifier Ă  la notion de communautĂ© du logiciel libre et sont moins impliquĂ©s/prĂ©sents/visibles dans les Ă©vĂ©nements qui fĂ©dĂšrent les communautĂ©s (confĂ©rences, sprints, etc.).

Qu’en dites-vous ? Faites-vous le mĂȘme constat que moi ? Ou bien avez-vous une expĂ©rience diamĂ©tralement opposĂ©e Ă  la mienne ?

Il est possible (voire probable) que la communautĂ© Debian (dont je fais partie) ne soit pas forcĂ©ment reprĂ©sentative de l’ensemble de la communautĂ© du libre. L’existence mĂȘme du contrat social comme texte fondateur explique peut-ĂȘtre un biais vers le cĂŽtĂ© humaniste/progressiste.

En tout cas, avec le nombre de chercheurs qui ont dĂ©jĂ  Ă©tudiĂ© les dĂ©veloppeurs de logiciels libres, je m’étonne que cette problĂ©matique n’ait pas encore Ă©tĂ© Ă©tudiĂ©e. Si vous connaissez une Ă©tude Ă  ce sujet, partagez la dans les commentaires, cela m’intĂ©resse et je rajouterai volontiers un lien dans l’article.

[1] François Asselineau soutient aussi le logiciel libre. Mais j’ai l’impression que c’est plus par anti-impĂ©rialisme amĂ©ricain — car les logiciels propriĂ©taires dominants viennent de lĂ  — que par conviction.

21 April, 2017 12:36PM by Raphaël Hertzog

February 13, 2017

Mes activités libres en janvier 2017

Mon rapport mensuel couvre une grande partie de mes contributions au logiciel libre. Je l’écris pour mes donateurs (merci Ă  eux !) mais aussi pour la communautĂ© Debian au sens large parce que cela peut donner des idĂ©es aux nouveaux venus et que c’est Ă©galement un des moyens les plus effectifs de trouver des volontaires pour travailler sur les projets qui me tiennent Ă  cƓur.

Debian LTS

Ce mois-ci ce sont 10 heures de travail sur les mises à jour de sécurité pour Debian 7 Wheezy qui ont été subventionnées. Elles ont été consacrées aux tùches suivantes :

  • J’ai passĂ© en revue de multiples CVE affectant ntp, et dĂ©cidĂ© de les marquer comme « no-dsa » (de maniĂšre identique Ă  ce qui a Ă©tĂ© rĂ©alisĂ© pour Jessie);
  • J’ai relancĂ© les auteurs amont de jbig2dec (ici) et XML::Twig (par message privĂ©) concernant les rapports de bogue n’ayant pas encore eu de retour de leur part;
  • J’ai demandĂ© plus de dĂ©tails sur la liste oss-security au sujet de la CVE-2016-9584, car le fait qu’elle ait dĂ©jĂ  Ă©tĂ© remontĂ©e Ă  l’amont n’était pas Ă©vident. Il s’est avĂ©rĂ© que c’était bien le cas, j’ai donc mis Ă  jour le suiveur de sĂ©curitĂ© en consĂ©quence;
  • AprĂšs avoir obtenu une rĂ©ponse sur jbig2dec, j’ai commencĂ© Ă  rĂ©troporter le patch dĂ©signĂ© par l’amont, ce qui ne fut pas chose facile. Lorsque cela a Ă©tĂ© fait, j’ai Ă©galement reçu le fichier permettant de reproduire le problĂšme qui est Ă  l’origine du rapport
 et qui ne provoquait malheureusement plus le mĂȘme problĂšme avec la vieille version de jbig2dec prĂ©sente dans Wheezy. Cela Ă©tant, Valgrind a tout de mĂȘme identifiĂ© des lectures en-dehors de l’espace mĂ©moire allouĂ©. C’est Ă  partir de cet instant que j’ai examinĂ© avec plus d’attention l’historique Git, et dĂ©couvert que les trois derniĂšres annĂ©es n’avaient vu principalement que des correctifs de sĂ©curitĂ© pour des cas similaires n’ayant jamais Ă©tĂ© remontĂ©s en tant que CVE. En consĂ©quence, j’ai ouvert une discussion sur comment rĂ©gler cette situation;
  • Matthias Geerdsen a remontĂ© dans le n°852610 une rĂ©gression concernant libtiff4. J’ai confirmĂ© le problĂšme et passĂ© de nombreuses heures Ă  Ă©laborer un correctif. Le patch ayant entraĂźnĂ© la rĂ©gression Ă©tait spĂ©cifique Ă  Debian, car l’amont n’avait pas encore corrigĂ© le problĂšme. J’ai publiĂ© un paquet mis Ă  jour dans la DLA-610-2.

Empaquetage Debian

La pĂ©riode de gel « fort » approchant, j’ai procĂ©dĂ© Ă  quelques mises Ă  jour de derniĂšre minute :

  • schroot 1.6.10-3 : correction de quelques problĂšmes anciens avec la maniĂšre dont les montages bind sont partagĂ©s, et autres corrections importantes;
  • live-boot 1:20170112 : correction d’un Ă©chec au dĂ©marrage sur systĂšme de fichier FAT, et autres corrections mineures;
  • live-config 5.20170112 : regroupement de plusieurs patchs utiles en provenance du BTS;
  • J’ai fini la mise Ă  jour de hashcat 3.30 avec sa nouvelle bibliothĂšque privĂ©e, et corrigĂ© en mĂȘme temps le bogue critique pour la publication n°851497. Le travail avait Ă©tĂ© initiĂ© par des collĂšgues de l’équipe pkg-security team.

Travaux divers

Parrainages J’ai parrainĂ© un nouvel envoi de asciidoc abaissant une dĂ©pendance en recommandation (cf. le n°850301). J’ai parrainĂ© une nouvelle version amont de dolibarr.

Discussions J’ai appuyĂ© plusieurs modifications prĂ©parĂ©es par Russ Allbery sur debian-policy. J’ai aidĂ© Scott Kitterman au sujet d’une incomprĂ©hension sur la maniĂšre dont les fichiers de service Postfix sont supposĂ©s fonctionner, en lien avec le rapport n°849584. J’ai discutĂ© dans le rapport n°849913 d’une rĂ©gression dans la compilation des compilateurs croisĂ©s, et fourni un patch afin d’éviter le problĂšme. Guillem est finalement parvenu Ă  une meilleure solution.

Bogues J’ai analysĂ© le n°850236 concernant l’échec d’un test Django durant la premiĂšre semaine suivant chaque annĂ©e bisextile. J’ai créé le n°853224 afin de remonter plusieurs petits problĂšmes en lien avec les scripts mainteneur de desktop-base.

Merci

Rendez-vous au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Free Software Activities in January 2016 contribuée par Weierstrass01.

13 February, 2017 10:37AM by Raphaël Hertzog

February 02, 2017

Élections prĂ©sidentielles, logiciel libre et Charlotte Marchandise

L’élection prĂ©sidentielle approche et commence Ă  prendre une grande place mĂ©diatique. À cette occasion, les associations comme l’April essaient d’interpeller les candidats pour les sensibiliser sur le sujet


En temps qu’association, il faut garder ses distances et ne pas prendre position. Mais en tant qu’individu, je peux aller plus loin et soutenir explicitement un candidat qui partage les valeurs du logiciel libre.

Charlotte MarchandiseC’est ce que je veux faire aujourd’hui. Je vous invite Ă  dĂ©couvrir Charlotte Marchandise. C’est la gagnante des primaires citoyennes organisĂ©es par laprimaire.org et son programme politique est en parfaite adĂ©quation avec mes valeurs (revenu de base inconditionnel, 6Ăšme rĂ©publique, transition Ă©cologique, etc.) y compris sur le logiciel libre (voir ici l’article dĂ©diĂ© de son programme).

C’est une candidature citoyenne non-partisane qui ne peut donc s’appuyer sur aucun financement prĂ©-existant. Elle a donc besoin de nos dons. J’ai dĂ©jĂ  fait un don consĂ©quent et je vous invite Ă  en faire de mĂȘme. Cliquez ici pour accĂ©der au formulaire permettant de soutenir la campagne de Charlotte Marchandise.

Si vous ne pouvez pas donner, je vous invite simplement Ă  parler de Charlotte et de son programme dans votre entourage et Ă  partager cet article. Si vous avez un peu de temps Ă  investir, vous pouvez participer Ă  la recherche de parrainages.

Je fais partie de ceux qui ne veulent plus de la classe politique en place et qui souhaite une réforme des institutions et du systÚme électoral en premier lieu. Avec cette candidature citoyenne, « hackons le systÚme » !

02 February, 2017 01:57PM by Raphaël Hertzog

January 14, 2017

Mes activités libres en décembre 2016

Mon rapport mensuel couvre une grande partie de mes contributions au logiciel libre. Je l’écris pour mes donateurs (merci Ă  eux !) mais aussi pour la communautĂ© Debian au sens large parce que cela peut donner des idĂ©es aux nouveaux venus et que c’est Ă©galement un des moyens les plus effectifs de trouver des volontaires pour travailler sur les projets qui me tiennent Ă  cƓur.

Debian LTS

Ce mois-ci ce sont 10 heures de travail sur les mises à jour de sécurité pour Debian 7 Wheezy qui ont été subventionnées. Elles ont été consacrées aux tùches suivantes :

  • J’ai publiĂ© la DLA-741-1 concernant unzip. Ce fut une mise Ă  jour facile;
  • J’ai passĂ© en revue le patch de Roberto Sanchez pour la CVE-2014-9911 concernant ICU;
  • J’ai publiĂ© la DLA-759-1 concernant nss, en collaboration avec Antoine BeauprĂ©. J’ai fusionnĂ© et mis Ă  jour le travail de Guido pour activer la suite de tests au cours de la compilation, et pour ajouter les tests DEP-8;
  • J’ai créé le dĂ©pĂŽt Git qui sera utilisĂ© pour la maintenance de php5 dans Debian LTS, et j’ai commencĂ© Ă  travailler sur une mise Ă  jour. J’ai ajoutĂ© les patchs pour 2 CVE (CVE-2016-3141 et CVE-2016-2554), ainsi que quelques fichiers binaires requis par certains tests (qui Ă©chouent, Ă  l’heure actuelle).

Empaquetages divers

Avec l’approche du gel dĂ©finitif de Stretch, certains clients m’ont demandĂ© de pousser des paquets dans Debian et/ou de corriger des paquets sur le point d’ĂȘtre retirĂ©s de cette distribution.

Alors que j’essayais de ramener uwsgi dans testing, j’ai créé les rapport de bogue n°847095 (libmongoclient-dev: Ne devrait pas rentrer en conflit avec le paquet de transition mongodb-dev) et n°847207 (uwsgi: FTBFS sur de multiples architectures avec des rĂ©fĂ©rences indĂ©finies Ă  des symboles uwsgi_*), de mĂȘme que j’ai travaillĂ© sur quelques-uns des bogues critiques pour la publication qui maintenaient le paquet hors de testing.

J’ai Ă©galement travaillĂ© sur quelques nouveaux paquets (lua-trink-cjson, lua-inotify, lua-sandbox-extensions) qui amĂ©liorent le paquet « hindsight » dans certains cas d’usage, et j’ai parrainĂ© une mise Ă  jour de rozofs dans experimental, afin de corriger un conflit de fichiers avec inn2 (cf. le n°846571).

Travaux Debian divers

Debian Live J’ai publiĂ© deux mises Ă  jour de live-build. Avec la seconde ont Ă©tĂ© ajoutĂ©es plusieurs options de personnalisation de la configuration GRUB (que nous utilisons dans Kali pour surcharger le thĂšme, et ajouter de nouvelles entrĂ©es au menu), Ă  la fois pour le boot EFI et pour le boot normal.

Rapports de bogue divers Rapport de bogue n°846569 concernant libsnmp-dev, afin de tenir compte de la transition libssl (j’avais remarquĂ© que le paquet n’était pas maintenu, j’ai en consĂ©quence fait appel aux nouveaux mainteneurs potentiels sur la liste debian-devel). Le n°847168 sur devscripts pour debuild qui a commencĂ© Ă  Ă©chouer lorsque lintian Ă©chouait (rĂ©gression inattendue). Le n°847318 concernant lintian, afin d’éviter les faux-positifs sur les paquets Kali (ce qui Ă©tait ennuyeux du fait de la rĂ©gression debuild prĂ©cĂ©demment mentionnĂ©e). Le n°847436 concernant un problĂšme de mise Ă  jour avec tryton-server. Le n°847223 concernant firefoxdriver, dans la mesure oĂč il dĂ©pendait toujours d’iceweasel au lieu de firefox.

Parrainage J’ai parrainĂ© une nouvelle version d’asciidoc (rapport de bogue n°831965), ainsi que de ssldump (version 0.9b3-6), pour la transition libssl. J’ai Ă©galement poussĂ© une nouvelle version de mutter, afin de corriger le n°846898 (elle Ă©tait dĂ©jĂ  prĂȘte dans SVN).

Distro Tracker

Pas grand chose de nouveau, j’ai corrigĂ© le n°814315 en basculant quelques URLs restantes vers https. J’ai fusionnĂ© les patchs d’efkin pour corriger la suite de tests fonctionnels (cf. le n°814315), ce qui constitue une contribution vraiment trĂšs utile ! Ce mĂȘme contributeur s’est attaquĂ© Ă  un autre ticket (le n°824912) concernant l’ajout d’une API pour rĂ©cupĂ©rer les objets d’action. Cela reprĂ©sente une tĂąche plus importante et demande quelques rĂ©flexions. Je dois encore lui faire mes retours sur ses derniers patchs (aprĂšs dĂ©jĂ  deux itĂ©rations).

Travaux divers

J’ai mis Ă  jour la formule salt letsencrypt-sh pour la version 0.3.0, et ajoutĂ© la possibilitĂ© de personnaliser le script hook pour recharger le serveur Web.

Le compte Twitter @planetdebian n’est plus actif depuis que twitterfeed.com a fermĂ© ses portes, et que son remplaçant (dlvr.it) n’apprĂ©cie pas le fil RSS de planet.debian.org. J’ai créé le n°848123 concernant planet-venus, ce dernier ne prĂ©servant pas l’attribut isPermalink dans le tag guid.

Merci

Rendez-vous au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Free Software Activities in December 2016 contribuée par Weierstrass01.

14 January, 2017 01:55PM by Raphaël Hertzog

December 11, 2016

Mes activités libres en novembre 2016

Mon rapport mensuel couvre une grande partie de mes contributions au logiciel libre. Je l’écris pour mes donateurs (merci Ă  eux !) mais aussi pour la communautĂ© Debian au sens large parce que cela peut donner des idĂ©es aux nouveaux venus et que c’est Ă©galement un des moyens les plus effectifs de trouver des volontaires pour travailler sur les projets qui me tiennent Ă  cƓur.

Debian LTS

Dans les 11 heures de travail (rĂ©munĂ©rĂ©es) qui m’incombaient, je suis parvenu Ă  publier la DLA-716-1, aussi connue sous le nom de tiff 4.0.2-6+deb7u8, corrigeant les CVE-2016-9273, CVE-2016-9297 et CVE-2016-9532. On dirait bien que ce paquet est concernĂ© par de nouvelles CVE tous les mois.

J’ai ensuite consacrĂ© pas mal de temps Ă  passer en revue toutes les entrĂ©es dans dla-needed.txt. Je souhaitais me dĂ©barrasser des commentaires erronĂ©s ou qui ne sont plus pertinents, et en mĂȘme temps aider Olaf, qui s’occupait du « frontdesk LTS » pour la premiĂšre fois. Cela a abouti au marquage de pas mal d’entrĂ©es comme « no-dsa » (c’est Ă  dire que rien ne sera fait pour elles, leur gravitĂ© ne le justifiant pas), telles que celles affectant dwarfutils, dokuwiki, irssi. J’ai supprimĂ© libass, car la CVE ouverte Ă©tait sujette Ă  dĂ©bat et marquĂ©e comme « pas importante ». Tandis que je faisais cela, j’ai corrigĂ© un bogue dans le script bin/review-update-needed que nous utilisons pour identifier les entrĂ©es n’ayant fait aucun progrĂšs derniĂšrement.

Je me suis ensuite attaquĂ© Ă  libgc, et publiĂ© la DLA-721-1, ou libgc 1:7.1-9.1+deb7u1. Elle corrige la CVE-2016-9427. Le patch Ă©tait important et a du ĂȘtre rĂ©troportĂ© manuellement, car il ne s’appliquait pas correctement.

Enfin, la derniĂšre tĂąche rĂ©alisĂ©e fut le test d’une nouvelle version d’imagemagick et la revue d’une mise Ă  jour prĂ©parĂ©e par Roberto.

Travaux concernant pkg-security

L’équipe pkg-security continue sur sa bonne lancĂ©e : j’ai parrainĂ© le travail de patator concernant le nettoyage d’une dĂ©pendance inutile de pycryptopp, qui allait ĂȘtre retirĂ© de Testing du fait du ticket n°841581. AprĂšs m’ĂȘtre penchĂ© sur ce bogue, il s’est avĂ©rĂ© que celui-ci Ă©tait rĂ©solu dans libcrypto++ 5.6.4-3. Je l’ai donc clĂŽturĂ©.

J’ai parrainĂ© plusieurs envois : polenum, acccheck, sucrack (mises Ă  jour mineures), bbqsql (nouveau paquet importĂ© de Kali). Quelques temps plus tard, j’ai corrigĂ© quelques soucis dans le paquet bbsql, qui avait Ă©tĂ© rejetĂ© de NEW.

Je me suis Ă©galement occupĂ© de quelques bogues critiques pour la publication, et liĂ©s Ă  la transition vers openssl 1.1 : j’ai adoptĂ© dans l’équipe sslsniff et corrigĂ© le n°828557, par une compilation dĂ©pendante de libssl1.0-dev. Ceci aprĂšs avoir ouvert le ticket amont correspondant. J’ai fait la mĂȘme chose pour ncrack et le n°844303 (le ticket amont est ici). Quelqu’un d’autre s’est occupĂ© de samdump2, mais j’ai tout de mĂȘme adoptĂ© le paquet dans l’équipe pkg-security, dans la mesure oĂč il s’agit d’un paquet concernant le thĂšme de la sĂ©curitĂ©. J’ai aussi effectuĂ© un envoi en tant que non-mainteneur d’axel et du n°829452 (cela ne concerne pas pkg-security, mais nous l’utilisons dans Kali).

Travaux Debian divers

Django J’ai participĂ© Ă  la discussion dĂ©battant de l’opportunitĂ© de laisser Django compter le nombre de dĂ©veloppeurs qui l’utilisent. L’impact quant Ă  la diffusion de donnĂ©es personnelles que ce changement entraĂźnerait a suscitĂ© l’intĂ©rĂȘt des listes de diffusion Debian, et jusqu’à celui de LWN.

Sur un plan plus technique, j’ai poussĂ© la version 1.8.16-1~bpo8+1 vers jessie-backports, et corrigĂ© le bogue critique pour la publication n°844139. Pour se faire, j’ai rĂ©troportĂ© deux commits amont, ce qui a menĂ© Ă  l’envoi 1.10.3-2. Je me suis ensuite assurĂ© que cela Ă©tait Ă©galement corrigĂ© dans la branche amont 1.10.x.

dpkg et /usr fusionnĂ©. En parcourant debian-devel, j’ai dĂ©couvert que le bogue n°843073 menaçait la fonctionnalitĂ© d’un /usr fusionnĂ©. Dans la mesure oĂč le bogue Ă©tait prĂ©sent dans du code que j’avais Ă©crit il y a plusieurs annĂ©es, et du fait que Guillem n’était pas intĂ©ressĂ© par sa correction, j’ai passĂ© une heure Ă  mettre au point un patch relativement propre que ce dernier pourrait appliquer. Guillem n’a malheureusement pas encore rĂ©ussi Ă  sortir une nouvelle version de dpkg embarquant ces patchs. EspĂ©rons que cela ne tardera plus trop.

Debian Live J’ai fermĂ© le n°844332 , qui demandait le retrait de live-build de Debian. Étant marquĂ© comme orphelin, j’avais toujours gardĂ© un Ɠil sur ce paquet, et avait poussĂ© quelques petites corrections vers Git. J’ai dĂ©cidĂ© cette fois d’adopter officiellement le paquet au sein de l’équipe debian-live, et de travailler un peu plus dessus. J’ai passĂ© en revue tous les patchs en attente dans le suiveur de bogues, et poussĂ© de nombreuses modifications vers Git. Quelques changements restent Ă  faire pour finaliser un meilleur rendu du menu GRUB, et j’ai prĂ©vu de pousser une nouvelle version trĂšs prochainement.

Diverses crĂ©ations de tickets J’ai créé deux tickets amont concernant uwsgi, afin d’aider Ă  la correction de bogues ouverts et critiques pour la publication affectant ce paquet. J’ai créé le n°844583 concernant sbuild, afin de supporter les suffixes arbitraires de version pour les recompilations binaires (binNMU). Et j’ai créé le n°845741 concernant xserver-xorg-video-qxl, afin qu’il soit corrigĂ© pour la transition vers xorg 1.19.

Zim. Alors que j’essayais de corriger le n°834405 et de mettre Ă  jour les dĂ©pendances requises, j’ai dĂ©couvert que je devais mettre Ă  jour pygtkspellcheck en premier lieu. Le mainteneur de ce paquet Ă©tant malheureusement aux abonnĂ©s absents (MIA – missing in action), je l’ai adoptĂ© en tant que membre de l’équipe python-modules.

Distro Tracker. J’ai corrigĂ© un petit bogue, qui entraĂźnait l’affichage d’une affreuse trace Ă  l’occasion de requĂȘtes avec un HTTP_REFERER non-ASCII.

Merci

Rendez-vous au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Free Software Activities in November 2016 contribuée par Weierstrass01.

11 December, 2016 07:37PM by Raphaël Hertzog

November 23, 2016

hackergotchi for Tanguy Ortolo

Tanguy Ortolo

Interdit ou autorisé ?

Vu prÚs de l'entrée d'un jardin public, celui de Brimborion, de mémoire :

Panneau rond avec une large bordure verte et un vélo noir au milieu

Alors, dans ce parc, le vélo est-il autorisé, interdit, recommandé, obligatoire ? (Rayez les mentions inutiles.)

C'est interdit, évidemment, mais modifier ainsi la couleur d'un panneau standard est une trÚs mauvaise idée. Et la raison pour laquelle cette erreur a été commise, à savoir mieux s'assortir avec la couleur de l'environnement, est parfaitement stupide. Service des parcs de SÚvres, changez-moi ça tout de suite !

23 November, 2016 05:56PM by Tanguy

October 29, 2016

hackergotchi for J. Fernando Lagrange

J. Fernando Lagrange

Certificats Let’s Encrypt ! avec certbot

Qu’est-ce que c’est donc ? (bis)

Le mois dernier, j'avais partagé comment je faisais pour renouveler des certificats Let's Encrypt ! Je me suis alors rendu compte qu'il y a des outils dédiés dans le projet Debian, et qu'ils ont étés rétroportés pour Jessie: le paquet Debian certbot. Voici comment j'utilise ce paquet.

Pour rappel:
« Let's Encrypt (abrĂ©gĂ© LE) est une autoritĂ© de certification lancĂ©e le 3 dĂ©cembre 2015 (BĂȘta Version Publique). Cette autoritĂ© fournit des certificats gratuits X.509 pour le protocole cryptographique TLS au moyen d’un processus automatisĂ© destinĂ© Ă  se passer du processus complexe actuel impliquant la crĂ©ation manuelle, la validation, la signature, l’installation et le renouvellement des certificats pour la sĂ©curisation des sites internet. »
Contenu soumis à la licence CC-BY-SA 3.0. Source : Article Let's Encrypt de Wikipédia en français (auteurs ).

Voici donc comment j'utilise ce paquet Debian certbot pour:

  • CrĂ©er de nouveaux certificats (pour nginx)
  • Mettre Ă  jour ces certificats

Préambule: installation

Pour installer le paquet certbot, il faut d'abord ajouter la source des paquets rétroportés. C'est indiqué dans les instructions (en anglais) et sur la page wiki (en français). Personnellement, voici comment j'ai fait:

J'ai créé un fichier /etc/apt/sources.list.d/backports.list contenant la ligne suivante:

deb http://ftp.debian.org/debian jessie-backports main

Puis lancé les commandes suivantes:

root@server ~# apt update
[
]
root@server ~# apt install certbot
[
]

Créer de nouveaux certificats (pour nginx)

J'utilise nginx comme serveur web. J'ai mis en place le certificat Let's Encrypt ! en 3 étapes:

  1. Créer le certificat
  2. Configurer nginx pour utiliser le nouveau certificat
  3. Relancer nginx

Créer le certificat

Voici comment j'ai créé les certificats pour le site web www.fosforito.fr:

root@server ~# systemctl stop nginx.service
root@server ~# certbot certonly -d www.fosforito.fr
[
]

Puis, j'ai suivi les instructions (en anglais) pour utiliser l'authentification avec un serveur web autonome (standalone). Cela autorise certbot à lancer son propre serveur web, le temps de créer le certificat. nginx ne doit donc pas fonctionner le temps de créer le certificat (quelques secondes dans mon cas), c'est le but de la premiÚre commande. Pour le relancer, j'ai utilisé la commande suivante:

root@server ~# systemctl start nginx.service

Configuration de nginx

Pour utiliser la configuration ci-dessous, j'ai d'abord créé une clé Diffie-Hellman comme indiqué par SSL Labs:

root@server ~# openssl dhparam -out /etc/nginx/dhparams.pem 2048
[
]

Voici le fichier /etc/nginx/sites-available/www.fosforito.fr.conf que j'utilise avec la commande root@server ~# ln -s /etc/nginx/sites-available/www.fosforito.fr.conf /etc/nginx/sites-enabled/www.fosforito.fr.conf:

server {
    listen 443;
    server_name www.fosforito.fr;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/www.fosforito.fr/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.fosforito.fr/privkey.pem;

    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

    ssl_prefer_server_ciphers on;

    ssl_dhparam /etc/nginx/dhparams.pem;

    root /srv/www.fosforito.fr/;
    index index.html;

    access_log      /var/log/nginx/www.ssl.access.log;
    error_log       /var/log/nginx/www.ssl.error.log;


}

Une fois tout cela mis en place, je teste avec SSL Labs et je vois que ce site obtient un A, ce qui me va bien. 🙂

Mise Ă  jour du certificat

Le paquet certbot met en place une tùche planifiée pour mettre à jour automatiquement le(s) certificat(s) Let's Encrypt ! présent(s) sur le serveur. Malheureusement, pour l'instant, cela ne fonctionne que pour le serveur web apache (paquet apache2 dans Debian).
Pour nginx, j'ai simplement modifiĂ© la tĂąche planifiĂ©e, dans le fichier /etc/cron.d/certbot, pour arrĂȘter le serveur web avant le renouvellement de certificat et le relancer aprĂšs. Voici le fichier au complet (notez les options pre-hook et post-hook):

# /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates
# haven't been revoked, etc.  Renewal will only occur if expiration
# is within 30 days.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 */12 * * * root test -x /usr/bin/certbot && perl -e 'sleep int(rand(3600))' && certbot -q renew --pre-hook "service nginx stop" --post-hook "service ngnix start"

Récapitulatifs

Mise en place du certificat pour nginx

  1. ArrĂȘter nginx
  2. Créer le certificat Let's Encrypt !
  3. Créer le groupe Diffie-Hellman
  4. Mettre en place la configuration du site web
  5. Relancer nginx

Renouvellement du(des) certificat(s)

Ajouter les options pre-hook et post-hook à la tùche plannifiée.

29 October, 2016 06:36PM by Low Memory

August 17, 2016

hackergotchi for Tanguy Ortolo

Tanguy Ortolo

Aux concepteurs de voies cyclables

À voir le tracĂ© de certaines voies cyclables, ceux qui les conçoivent ne sont pas toujours conscients qu'un cycliste se dĂ©place avec une vitesse de l'ordre de 20 km/h. Ce genre d'amĂ©nagement, qui serait impensable pour une route normale :

Route avec une chicane Ă  angle droit !

Au top, braquez et serrez le frein à main. Attention
 TOP ! ;-)


 ce genre d'amĂ©nagement donc, est tout aussi invraisemblable pour une voie cyclable :

Piste cyclable avec une chicane Ă  angle droit !

Au top, tournez votre guidon à 90°. Attention
 TOP ! ;-)

Un cycliste ne peut pas tourner sur place à angle droit. Au mieux, on peut essayer de s'en approcher, mais ces virages à rayon de courbure nul sont pénibles et toujours dangereux, parce que cela implique :

  • de freiner brutalement — et paf, le cycliste qui arrive derriĂšre et qui n'a pas remarquĂ© cette anomalie du tracé ;
  • de tourner avec un angle dĂ©raisonnable — et zip, le cycliste sur route mouillĂ©e ou jonchĂ©e de gravier ou de feuilles mortes.

Mesdames, Messieurs les responsables des amĂ©nagements de voirie, pour Ă©viter ce genre d'erreur de conception, ce n'est pas compliqué : lorsque vous tracez une voie cyclable, essayez d'imaginer qu'il s'agit d'une route normale, en plus petit. Vous n'iriez tout de mĂȘme pas mettre une chicane Ă  angle droit sur une route normale ? Eh bien, sur une piste cyclable, c'est pareil, si vous devez mettre une chicane, prĂ©voyez un rayon de courbure raisonnable. Sans cela, dans le meilleur cas, les cyclistes ne respecteront pas votre amĂ©nagement inappropriĂ©, et dans le pire des cas vous ramasserez des cyclistes et des piĂ©tons accidentĂ©s, direction l'hĂŽpital le plus proche.

17 August, 2016 12:16PM by Tanguy

August 10, 2016

hackergotchi for J. Fernando Lagrange

J. Fernando Lagrange

Renouvellement de certificats LetsEncrypt avec systemd

Qu'est-ce que c'est donc ?

« Let's Encrypt (abrĂ©gĂ© LE) est une autoritĂ© de certification lancĂ©e le 3 dĂ©cembre 2015 (BĂȘta Version Publique). Cette autoritĂ© fournit des certificats gratuits X.509 pour le protocole cryptographique TLS au moyen d'un processus automatisĂ© destinĂ© Ă  se passer du processus complexe actuel impliquant la crĂ©ation manuelle, la validation, la signature, l'installation et le renouvellement des certificats pour la sĂ©curisation des sites internet1. » (Contenu soumis Ă  la licence CC-BY-SA 3.0. Source : Article Let's Encrypt de WikipĂ©dia en français (auteurs) )

Bref, c'est bien pratique pour faire du HTTPS (entre autres) et on peut automatiser le renouvellement des certificats. Il y a plusieurs annĂ©es, j'aurais fait un cron, mais comme j'ai appris que systemd pouvait gĂ©rer des tĂąches rĂ©pĂ©titives, je me suis dit que c'Ă©tait l'occasion de m'y mettre ! 😉

Comment on fait ?

Voici les étapes suivies, détaillées ci-dessous puis quelques documents qui m'ont permis de le faire, sans compter le conseil d'un ami: « T'as qu'à faire un timer ! » :

  • Copier certbot sur le serveur, logiciel (libre, non-copyleft) de gestion des certificats de Let's Encrypt
  • CrĂ©er un script pour renouveler les certificats avec certbot
  • CrĂ©er un service systemd pour lancer le script
  • CrĂ©er une minuterie (timer) systemd pour lancer le service Ă  intervalles rĂ©guliers

Enfin, activer et lancer la minuterie puis vérifier que ça fonctionne.

1. Copier certbot sur le serveur

Je le copie dans le dossier /opt du serveur:

root@serveur:~# cd /opt/ && git clone https://github.com/certbot/certbot
[
]

2. Créer le script pour utiliser certbot

Le script se nomme certbot-renew, il est créé dans /opt/certbot/, au mĂȘme endroit que certbot. CrĂ©ez aussi le dossier pour les journaux avec la commande mkdir /var/log/letsencrypt/.

Si vous utilisez le serveur web apache, changez le service que systemd doit arrĂȘter et redĂ©marrer, en gras dans le code ci-dessous:

root@serveur:~# cat > /opt/certbot/certbot-renew << EOF
#!/bin/sh
# Inspired by <https://letsencrypt.org/getting-started/>
systemctl stop nginx.service
/opt/certbot/certbot-auto renew -nvv --standalone > /var/log/letsencrypt/renew.log 2>&1
LE_STATUS=$?
systemctl start nginx.service
if [ "$LE_STATUS" != 0 ]; then
echo Automated renewal failed:
tail -n 200 /var/log/letsencrypt/renew.log
exit 1
fi
EOF

3. Créer le service systemd

C'est ce service qui va lancer le script /opt/certbot/certbot-renew créé à l'étape précédente:

root@serveur:~# cat > /etc/systemd/system/certbot-renew.service << EOF
# Voir <https://mjanja.ch/2015/06/replacing-cron-jobs-with-systemd-timers/>
[Unit]
Description=Renouvellement des certificats letsencrypt

[Service]
Type=simple
nice=19
IOSchedulingClass=2
IOSchedulingPriority=7
ExecStart=/opt/certbot/certbot-renew
EOF

4. Créer la minuterie systemd

C'est cette minuterie qui va lancer le service créé à l'étape précédente. Notez que la valeur daily pour OnCalendar lance le service à minuit. Comme le serveur était programmé pour faire d'autres choses à minuit, j'ai utilisé un autre moment. ^^

root@serveur:~# cat > /etc/systemd/system/certbot-renew.timer << EOF
# Voir <https://mjanja.ch/2015/06/replacing-cron-jobs-with-systemd-timers/>
[Unit]
Description=Renouvellement des certificats letsencrypt

[Timer]
#OnCalendar=daily
OnCalendar=*-*-* 04:20:42

[Install]
WantedBy=timers.target
EOF

 

Il ne reste plus qu'à activer cette minuterie pour qu'elle soit lancée à chaque démarrage du serveur:  systemctl enable certbot-renew.timer

Pour Ă©viter un redĂ©marrage, la minuterie peut ĂȘtre lancĂ©e manuellement: systemctl start certbot-renew.timer

Pour vĂ©rifier que tout fonctionne bien le service peut aussi ĂȘtre lancĂ© manuellement: systemctl start certbot-renew.service. VĂ©rifiez alors les journaux pour voir si tout s'est bien dĂ©roulĂ©.

 

Voici donc comment j'ai procédé, il doit exister bien d'autres façons de faire, n'hésitez-pas à m'en faire part et/ou à améliorer ce que je présente ici.

Documentation, ressources:

Manuels de systemd: systemd.exec, systemd.service et systemd.timer.
Manuel de ioprio_set.
Remplacer les cron jobs par des minuteries systemd (en anglais).
Pour débuter avec Let's Encrypt (en anglais).

Un brin de persĂ©vĂ©rance, un tonneau de tests et quelques couplets de corrections. 😉

 

10 August, 2016 09:02PM by Low Memory

June 28, 2016

hackergotchi for Tanguy Ortolo

Tanguy Ortolo

J'ai testé pour vous UltraViolet (c'est de la merde)

AprÚs avoir acheté un beau coffret de la trilogie cinématographique Le Hobbit, j'ai eu la surprise d'un trouver des instructions pour « récupérer une copie numérique » pour regarder ces films « sur tous mes écrans » grùce à un machin appelé UltraViolet. Les instructions indiquées sont les suivantes :

  1. allez sur warnerbros.fr/uv ;
  2. entrez un code d'activation.

S'agissant d'un machin dĂ©veloppĂ© par la MAFIAA, je pouvais dĂ©jĂ  prĂ©dire le rĂ©sultat, mais par acquit de conscience, j'ai tout de mĂȘme essayĂ©, avec un navigateur Web Firefox sous Debian GNU/Linux, plugin Flash installĂ© et Ă  jour, JavaScript et cookies activĂ©s sans restriction. AprĂšs tout, il est bien indiquĂ© sur le papier que c'est censĂ© marcher « sur tous mes Ă©crans », avec de beaux petits schĂ©mas reprĂ©sentant un tĂ©lĂ©phone, une tablette, un ordinateur portable et un tĂ©lĂ©viseur.

Logo UltraViolet

Étape 1, Warner Bros

Deux Ă©tapes, on pourrait difficilement faire plus simple ! Sauf qu'Ă©videmment, ça se complique. Sur la page UltraViolet de Warner Bros, il n'y a pas d'endroit oĂč saisir un code ; au lieu de cela, il est proposĂ© deux sites partenaires oĂč on doit pouvoir l'entrer : Nolim films et Flixter.

Étape 1, deuxiùme partie, premier essai, Nolim films

Lorsque j'ai essayé, hier, la page de Nolim films affichait seulement « chargement en cours ». AprÚs quelques minutes, j'ai donc renoncé et été voir chez Flixter.

Étape 1, deuxiùme partie, deuxiùme essai, Flixter

CĂŽtĂ© Flixter, ça commence bien, on arrive sur un site en anglais. Une fois passĂ© en français, il y a un bouton pour « Utiliser un code ». On tape le code et
 ça dit qu'il n'y a aucun rĂ©sultat. En fait, il faut saisir le titre du film, et ensuite seulement, saisir le code d'activation.

Étape 2, (essayer de) regarder ou tĂ©lĂ©charger le film

Il faut alors créer un compte, qui demande de fournir des renseignements personnels, c'est à dire des informations qui ne devraient certainement pas les concerner : pour regarder un film qu'on a acheté, il est anormal de devoir donner son nom, prénom et date de naissance. Personnellement, j'ai renseigné mon nom, mais une date de naissance bidon.

Enfin, on peut regarder son film. Enfin, essayer, parce que ça ne marche pas : ça lance une page avec Flash, qui affiche
 du noir, puis un indicateur de chargement, et qui finit par planter le lecteur Flash.

On peut aussi télécharger son film avec un logiciel propriétaire proposé pour cela. Il est prévu pour Windows, et ne s'installe pas sous Wine.

Étape 3, ripper son DVD

Comme prĂ©dit, ça ne fonctionne pas. Il est donc temps de faire un peu chauffer mon processeur pour ripper mes DVD : ça au moins, ça fonctionne, et sans la moindre restriction. Autrement, ces flims doivent Ă©galement ĂȘtre disponibles sur les rĂ©seaux de contrefaçon : contrairement Ă  l'UltraTropLaid, ça aussi, ça fonctionne.

28 June, 2016 01:34PM by Tanguy

June 17, 2016

hackergotchi for J. Fernando Lagrange

J. Fernando Lagrange

La brique en voyage

La situation

Il se trouve que j'ai déménagé récemment. J'en ai profité pour demander un abonnement Internet à l'association de la Fédération FDN de mon coin: Rézine. J'ai donc mis ma brique Internet chez quelqu'un, le temps que l'accÚs Internet soit en place.

Le problĂšme

Quand j'ai connectĂ© la brique depuis un autre accĂšs Internet, plus rien n'a fonctionnĂ© : pas de nouvelles de la brique sur Internet, ni sur le rĂ©seau local ! 🙁

La solution

Note pour les avocats: cette solution a fonctionnĂ© chez moi, mais il y a un risque de perdre des donnĂ©es. Rien ne garanti qu'elle fonctionnera chez vous ! Je ne peux pas ĂȘtre tenu pour responsable des actions que vous faites. En cas de doute, demandez de l'aide au membre FFDN le plus proche de chez vous !

 

"Malheureusement", j'ai un modÚle de brique datant de juillet 2015 (avec la migration du blog sur la brique fin 2015). Et une fois fonctionnelle, je ne me suis pas occupé de son entretien: ne pas toucher à quelque chose qui fonctionne me semble un bon conseil à suivre en informatique.

Mais lĂ , je n'avais pas vu qu'il y avait des erreurs sur le disque. Ces erreurs n'ont Ă©tĂ© gĂȘnantes qu'une fois la brique Ă©teinte et rallumĂ©e. J'ai donc pris le disque dur de la brique (la carte microSD) et je l'ai mis dans mon PC.

Puis, avec la commande lsblk j'ai vu que la partition de ce disque était /dev/sdc1; j'ai alors pu lancer une vérification du disque avec la commande suivante:

# fsck /dev/sdc1
[
lĂ , ça dĂ©file et des fois ça pose des questions
]

Quand la question était posée de corriger les erreurs, j'ai répondu oui. Une fois toutes les erreurs corrigées, j'ai relancé la commande pour vérifier qu'il n'y avait plus d'erreur:

# fsck /dev/sdc1
fsck de util-linux 2.25.2
e2fsck 1.42.12 (29-Aug-2014)
/dev/sdc1 : propre, 93335/917568 fichiers, 848399/3859968 blocs

C'est alors, plein d'espoir que j'ai remis le disque dur dans la brique pour la brancher et l'allumer: ça marchait à nouveau ! 🙂

DeuxiĂšme problĂšme

Tout content que la brique refonctionne, j'ai payé un coup à boire à la personne qui l'héberge et je suis rentré chez moi. C'est avec un peu de déception que j'ai réalisé le lendemain que la brique ne fonctionnait plus ! :'-(

Ce deuxiĂšme problĂšme est aussi liĂ© au fait que j'ai mis en place ma brique en juillet 2015: Ă  partir du moment oĂč l'application vpnclient mettait en place le tunnel chiffrĂ©, la brique n'avait plus accĂšs aux DNS (dont on parle dans cette superbe confĂ©rence) !

AprĂšs demande d'information Ă  mon fournisseur de tunnels, c'est normal pour pleins de raisons diffĂšrentes, bref je dois utiliser leur DNS.

DeuxiĂšme solution

Une fois le problÚme identifié, la solution n'est pas loin ! Ici, j'ai mis à jour l'application vpnclient et le tour était joué: la derniÚre version de cette application prends en compte les DNS ! \o/

Je peux donc maintenant bloguer Ă  nouveau, par exemple pour indiquer comment j'ai dĂ©placĂ© ma brique ! 🙂

Prochaines étapes: mise en place de sauvegardes
 Stay tuned for more info

 

17 June, 2016 09:13AM by Low Memory

April 28, 2016

hackergotchi for Tanguy Ortolo

Tanguy Ortolo

Pour des cartes restaurant anonymes

Contexte

Dans les annĂ©es 2000, la RATP et la SNCF on progressivement imposĂ© le remplacement des tickets de papier anonymes par des cartes Ă  puce nommĂ©es Navigo, pour les utilisateurs d'abonnements. Le problĂšme, c'est que ces cartes Ă  puces Ă©taient nominatives, et que dans un pays libre, « aller et venir librement, anonymement, est l’une des libertĂ©s fondamentales. » La CNIL a donc imposĂ© la crĂ©ation d'une carte Navigo anonyme.

L'histoire bĂ©gaie un peu. Dans les annĂ©es qui viennent, sous la pression de l'État, les opĂ©rateurs de titres restaurant vont progressivement imposer le remplacement des titres de papier anonymes par des cartes Ă  puce, qui permettent un plus grand contrĂŽle des usages, afin d'en limiter les utilisations dĂ©tournĂ©es. Le problĂšme, c'est que ces cartes Ă  puce sont nominatives, et que dans un pays libre, se nourrir, et plus gĂ©nĂ©ralement consommer librement, anonymement, est l'une des libertĂ©s fondamentales. La CNIL devrait donc imposer la crĂ©ation de cartes restaurant anonymes.

C'est possible

Les opĂ©rateurs de titres restaurant objecteront peut-ĂȘtre que c'est techniquement impossible. Pour les aider ainsi que la CNIL, voici une description d'un systĂšme qui rendrait possible l'utilisation de cartes restaurant anonymes. Comme pour les cartes de transport, choisir l'anonymat peut impliquer de renoncer Ă  certains avantages.

L'entreprise distribuant des titres restaurant à ses salariés dispose d'un stock de quelques cartes anonymes, seulement identifiées par leur numéro. Comme toute carte restaurant, chacune est associée à un compte initialement vide.

Lorsqu'un salariĂ© demandĂ© Ă  disposer d'une carte anonyme, l'entreprise lui fournit une de ces cartes. Elle peut noter et transmettre Ă  l'opĂ©rateur le fait que cette carte est maintenant attribuĂ©e, mais a interdiction de relever le nom du salariĂ© qui l'utilise. Si le salariĂ© disposait dĂ©jĂ  d'une carte nominative, son numĂ©ro doit ĂȘtre relevĂ© afin de cesser d'alimenter le compte correspondant, ce qui peut ĂȘtre traitĂ© de la mĂȘme façon qu'un retrait de l'offre de titres restaurant. Évidemment, l'entreprise a interdiction de tenter de dissuader les salariĂ©s de choisir l'anonymat, et de pĂ©naliser ceux qui feraient ce choix.

Chaque mois, lors de la distribution des titres restaurant, le salarié utilisateur d'une carte anonyme se présente en personne, comme cela se fait pour des titres en papier. Le responsable approvisionne le compte correspondant au numéro indiqué sur la carte, et note sur un registre séparé que ce salarié a bien bénéficié de la distribution. L'entreprise a interdiction de noter sur ce registre le numéro de la carte créditée, et, d'une façon générale, de noter ou de transmettre tout ce qui pourrait permettre d'associer les noms des salariés avec les numéros des cartes anonymes. Encore une fois, l'entreprise a interdiction de pénaliser les salariés qui se présentent pour une distribution anonyme.

Le salariĂ© utilise sa carte restaurant de façon normale pour rĂ©gler ses consommations et achats Ă©ligibles dans les conditions prĂ©vues. Les restaurateurs de enseignes acceptant les paiements par carte restaurant ont interdiction de pĂ©naliser les utilisateurs de cartes anonymes. Seules les fonctionnalitĂ©s annexes de gestion peuvent ĂȘtre affectĂ©es par le caractĂšre anonyme de la carte : ainsi, en cas de perte, l'opposition sur cette carte ne pourra pas ĂȘtre effectuĂ©e avec le seul nom du bĂ©nĂ©ficiaire, mais nĂ©cessitera la connaissance de son numĂ©ro, faute de quoi elle ne pourra ĂȘtre rĂ©alisĂ©, et le crĂ©dit restant devra ĂȘtre considĂ©rĂ© comme non rĂ©cupĂ©rable. De telles restrictions doivent ĂȘtre justifiĂ©es par une raison technique : ainsi, il ne serait pas admissible de restreindre une opĂ©ration de promotion chez un restaurateur partenaire aux seuls titulaires de cartes nominatives.

28 April, 2016 07:47PM by Tanguy

April 25, 2016

Parking Méditerranée - Gare de Lyon : attention, hostile aux vélos

Parking Méditerranée

La Gare de Lyon est une grande gare parisienne, qui est desservie à la fois par le réseau régional et par plusieurs grandes lignes nationales. On y trouve donc :

  • des riverains, qui habitent ou travaillent prĂšs de la gare ;
  • des usagers quotidiens ;
  • des voyageurs occasionnels, qui partent ou reviennent par exemple de week-end ou de vacances en province.

Le parking MĂ©diterranĂ©e, opĂ©rĂ© par la SAEMES, est situĂ© sous la gare de Lyon, et accueille le mĂȘme type de clients :

  • des usagers quotidiens, qui y parquent leur vĂ©hicule tous les jours ou toutes les nuits ;
  • des voyageurs occasionnels, qui parquent ponctuellement leur vĂ©hicule pour quelques jours, voire quelques semaines.

Cet usage est indépendant du type de véhicule, qu'il s'agisse d'une voiture, d'une moto ou d'une bicyclette.

Théoriquement, un accÚs vélo

Sur sa page Web, le parking Méditerranée - Gare de Lyon affiche un joli logo vélo, qui suggÚre la possibilité d'y garer sa bicyclette (qu'est-ce que ça pourrait bien vouloir dire d'autre ?).

De surprise en surprise

La réalité est toute autre. Le voyageur qui arrive à vélo au parking Méditerranée va de surprise en surprise (et de pire en pire) :

  1. L'espace vélo n'est pas indiqué, les panneaux donnant seulement le choix entre l'espace voiture et l'espace moto. Faute de mieux, autant choisir l'espace moto, c'est ce qui se fait de plus approchant.
  2. On est censĂ© prendre un ticket, mais la machine n'en distribue pas aux vĂ©los : on a beau appuyer sur le bouton prĂ©vu pour cela, rien ne sort et la barriĂšre reste fermĂ©e. Qu'Ă  cela ne tienne, un vĂ©lo est suffisamment maniable pour contourner la barriĂšre, mais ça commence mal (et ça va mal finir, mais pour le moment, on a un train Ă  prendre)

  3. Une fois arrivĂ© dans l'espace moto, comme on peut s'y attendre, rien n'est prĂ©vu pour fixer des vĂ©los. Peu importe, un cycliste urbain est de toute façon habituĂ© Ă  stationner comme il le peut, une barriĂšre fera donc l'affaire, en vĂ©rifiant bien qu'on ne gĂȘne pas le passage ou le stationnement des autres usagers.
  4. Une fois rentrĂ© de voyage, et de retour Ă  la gare de Lyon, on constate que l'exploitant du parking a enchaĂźnĂ© la bicyclette, sans un mot d'explication, sans doute parce qu'elle Ă©tait mal garĂ©e, mais comment pourrait-elle ĂȘtre bien garĂ©e puisque l'espace vĂ©los n'est pas indiqué ?
  5. À l'accueil, l'exploitant exige un paiement pour libĂ©rer le vĂ©lo. Pourquoi pas, mais 15 €, c'est un peu cher pour trois jours de stationnement en occupant zĂ©ro emplacement.

Un parking hostile aux vélos

Le parking Méditerranée - Gare de Lyon, qui s'affiche sur le Web avec un espace vélo, est en réalité hostile à ce type de véhicule. Le fait d'afficher un espace vélo, qui s'avÚre en réalité indisponible, pourrait d'ailleurs relÚver de la publicité mensongÚre.

Suite Ă  cette dĂ©sagrĂ©able expĂ©rience, j'ai commencĂ© une enquĂȘte sur le stationnement vĂ©lo dans les parkings publics des grandes gares parisiennes, dont certains indiquent ainsi disposer d'un espace vĂ©lo, qui peut s'avĂ©rer inexistant. Affaire Ă  suivre.

25 April, 2016 07:01PM by Tanguy

April 11, 2016

Carl Chenet

Richard Stallman ce samedi Ă  Choisy-le-roi

Pour information j’ai dĂ©couvert ce week-end que Richard Stallman sera prĂ©sent Ă  la mĂ©diathĂšque de Choisy-le-roi ce samedi 16 avril 2016 Ă  17h. Pour information des Parisiens indĂ©crottables, c’est en trĂšs proche banlieue parisienne :p Comptez par exemple entre 20 et 30 mn depuis le centre de Paris en passant par le RER C pour y arriver.

saint-stallman

Bref si vous n’avez jamais vu le monsieur et ses cĂ©lĂšbres confĂ©rences ou que vous aimeriez une mise-Ă -jour sur ses positions, c’est l’occasion de le voir. Pour ma part j’y serai.

Peut-ĂȘtre Ă  samedi donc 😉

11 April, 2016 06:53AM by Carl Chenet

April 07, 2016

« La » communautĂ© du Logiciel Libre, ça n’existe pas

Suivez-moi aussi sur Diaspora*diaspora-banner ou Twitter 

J’avais depuis quelques temps envie d’écrire un billet de blog au sujet de la soi-disant communautĂ© du Logiciel Libre et le dernier article de FrĂ©dĂ©ric Bezies , oĂč il regrette le manque de coordination et d’unitĂ© de cette communautĂ©, m’a donnĂ© la motivation pour finalement expliquer pourquoi tant de gens se dĂ©sillusionnent quant Ă  « cette » communautĂ©.

« La » communautĂ© du Logiciel Libre, ça n’existe pas

Il est en effet vain dans la plupart des cas de parler de « la » communautĂ© du Logiciel Libre. On peut – et je le fais souvent moi-mĂȘme – parler de la communautĂ© du Logiciel Libre pour regrouper dans un mĂȘme sac tous les acteurs touchant de prĂšs ou de loin au Logiciel Libre, mais c’est une dĂ©nomination vague, peu prĂ©cise et que l’on ne doit pas employer Ă  tort et Ă  travers.

Et pour cause, car aussi bien d’un point de vue technique que d’un point de vue idĂ©ologique, nous, les acteurs de cette soi-disant communautĂ©, sommes profondĂ©ment et sĂ»rement irrĂ©mĂ©diablement divisĂ©s.

Les communautés techniques

Rappelons-le car beaucoup de personnes mĂȘme proches du Logiciel Libre ont tendance Ă  l’oublier. 99% du temps, un projet du Logiciel Libre, c’est au dĂ©part un individu isolĂ© non rĂ©munĂ©rĂ© qui se motive et prend son courage Ă  deux mains pour Ă©crire du code et porter seul – au moins au dĂ©but – un projet pour rĂ©pondre Ă  un besoin existant qui le dĂ©range lui.

Ce faisant, il s’insĂšre dans une communautĂ© technique, celle des outils qu’il utilise pour rĂ©gler son problĂšme, puis le jour oĂč son projet est prĂȘt, s’il fait le choix de le rendre public, dans une communautĂ© idĂ©ologique rĂ©pondant aux critĂšres que l’on verra au chapitre suivant.

python-logo-master-v3-TMLa communauté Python, avec sa propre licence : la PSF, sa propre vision, ses propres objectifs

Au premier niveau, le dĂ©veloppeur du Logiciel Libre, c’est donc un utilisateur des outils qui sont mis Ă  disposition par une communautĂ© technique. Il adhĂšre souvent aux idĂ©es derriĂšre les outils qu’ils utilisent au quotidien parce qu’il y voit un avantage direct et ressent la cohĂ©rence des choix techniques et idĂ©ologiques faits par la communautĂ© l’ayant prĂ©cĂ©dĂ©.

Maintenant si on parle de « la » communautĂ© du Logiciel Libre, ça sous-entend que le premier niveau dont je parlais Ă  l’instant se fond  dans un deuxiĂšme niveau, un niveau plus vaste, plus abstrait, plus global. Donc plus Ă©loignĂ© du dĂ©veloppeur au quotidien, touchant des problĂ©matiques qu’il ne ressent peut-ĂȘtre pas tous les jours.

Alors qu’au quotidien pour lui, « sa » communautĂ©, c’est par exemple le langage Python et ses membres, pas Perl. Ou la distribution Debian et les buts du projet Debian, pas les systĂšmes BSD. On se construit donc aussi en opposition Ă  d’autre communautĂ©s techniques et idĂ©ologiques.

freebsdFreeBSD, systĂšme d’exploitation et suite d’outils qui privilĂ©gient la licence BSD

Les dĂ©veloppeurs contribuent donc – le plus souvent dans le cadre de leur temps libre, le plus souvent de façon non-rĂ©munĂ©rĂ©e, et dans ce domaine seule la motivation permet d’avancer – aux sujets qui nous intĂ©ressent et nous motivent au sein d’une communautĂ© technique et idĂ©ologique et pas sur les sujets dont « la communautĂ© du Logiciel Libre » aurait besoin.

La diversitĂ© des acteurs et de leurs idĂ©es, de leurs approches techniques et des solutions qu’ils trouvent au quotidien  sont les Ă©lĂ©ments qui rendent aussi attractif pour beaucoup d’entre nous ce milieu technique et idĂ©ologique.

GPL contre BSD/MIT

J’ai Ă©voquĂ© et dĂ©veloppĂ© ce point dans l’un de mes prĂ©cĂ©dents articles le danger Github : d’un point de vue idĂ©ologique, principalement deux idĂ©es du Logiciel Libre coexistent.

La vision incarnĂ©e par la licence GPL peut ĂȘtre rĂ©sumĂ©e Ă  une notion fondamentale intĂ©grĂ©e par ses dĂ©fenseurs et ses dĂ©tracteurs : contaminante.  La GPL va nourrir d’elle-mĂȘme la communautĂ© en rĂ©injectant automatiquement dans le parc logiciel sous GPL tous les dĂ©rivĂ©s des logiciels eux-mĂȘmes sous GPL. La communautĂ© sert la communautĂ©. Les utilisateurs de la GPL trouvent cohĂ©rents de n’utiliser que du Logiciel Libre pour ne pas nourrir l’ennemi , c’est-Ă -dire le logiciel privateur.

Les licences BSD/MIT sont pour leur part plus permissives, permissives Ă  l’extrĂȘme. Rappelons qu’un logiciel dĂ©rivĂ© d’un logiciel sous licence  BSD/MIT peut ĂȘtre dĂ©posĂ© sous une licence propriĂ©taire. Les licences BSD/MIT sont donc non-contaminantes. On a donc la libertĂ© de rendre un logiciel – libre Ă  la base – privateur. Ce qui se fait beaucoup et l’on retrouve les systĂšmes d’exploitation BSD dans nombre de systĂšme d’exploitation propriĂ©taires. voir Ă  ce sujet la liste Ă  couper le souffle des produits commerciaux reposant sur FreeBSD.

Les dĂ©fenseurs des licences BSD/MIT parlent de libertĂ© rĂ©elle face Ă  la GPL, ses dĂ©tracteurs de la libertĂ© de se tirer une balle dans le pied. Étant donnĂ© que les dĂ©fenseurs de ces licences permissives type BSD/MIT trouvent normal la coexistence du Logiciel Libre et du logiciel privateur, ils utilisent eux-mĂȘmes les deux sans problĂšme, ce qui est cohĂ©rent idĂ©ologiquement.

bsdvsgpl

Donc au final deux visions trĂšs diffĂ©rentes du Logiciel Libre – la GPL plus conquĂ©rante, les BSD/MIT plus flexibles – coexistent.

Des communautés constituent le Logiciel Libre

On l’a vu, il serait donc plus prĂ©cis de parler des communautĂ©s qui constituent le Logiciel Libre. Elles sont Ă  la fois techniques et idĂ©ologiques et apportent des outils concrets Ă  leurs membres. Elles se dĂ©finissent par rapport Ă  ce qu’elles construisent, Ă  leurs contributions, mais aussi par opposition aux autres communautĂ©s techniques et idĂ©ologiques. Il est donc impossible de parler d’une communautĂ© du Logiciel Libre, Ă  moins de la rĂ©duire au peu d’idĂ©es transverses aux diffĂ©rentes communautĂ©s techniques et idĂ©ologique la constituant.

J’ai pu remarquer que de nombreux intervenants parlent souvent de la communautĂ© du Logiciel Libre pour parler en fait d’un sous-ensemble de celle-ci, en fait de leur communautĂ©.Par exemple un dĂ©fenseur de la GPL va parler de la communautĂ© du Logiciel Libre en omettant l’idĂ©e de libertĂ© complĂšte derriĂšre les licences BSD/MIT. Ou un idĂ©ologue auto-proclamĂ© du Logiciel Libre va dĂ©clarer de grandes directions que « le Logiciel Libre » devrait prendre dans une approche top-down alors que, comme nous l’avons vu, tous les contributeurs techniques du Logiciel libre intĂšgrent avant tout une communautĂ© technique et idĂ©ologique prĂ©cise, un sous-ensemble de « la » communautĂ© du Logiciel libre.

trollLes trolls, une activité prisée des Libristes

Au final il est peut-ĂȘtre rageant de voir au quotidien des projets s’affronter, se troller, de voir des projets rĂ©inventer ce qui existent dĂ©jĂ  au lieu de l’amĂ©liorer. Il semble mĂȘme incomprĂ©hensible de voir des projets entiĂšrement recoder pour des questions de licences ou parfois juste d’ego entre membres de ce qu’on croit ĂȘtre une mĂȘme communautĂ©. Mais cela tient Ă  une incomprĂ©hension de l’organisation et des interactions des projets du Logiciel Libre entre eux.

L’explication tient au fait que le Logiciel Libre est constituĂ© de nombreuses communautĂ©s, qui partagent quelques grandes idĂ©es communes certes, mais qui portent chacune des solutions techniques, une vision et une identitĂ© propres. Elles arrivent Ă  se rejoindre trĂšs ponctuellement autour d’un effort commun sur un point extrĂȘmement consensuel, mais il sera tout simplement impossible de les faire toutes et en permanence converger vers des grands objectifs qui bĂ©nĂ©ficieraient (ou pas) à  une vague communautĂ© globale dans laquelle se reconnaĂźtraient tous les acteurs du Logiciel Libre.

La diversitĂ© des communautĂ©s qui le compose fait la force du Logiciel Libre, nous partageons quelques grandes idĂ©es et nous inventons au quotidien nos propres solutions. Et c’est de cette façon que nous avons avancĂ© jusqu’à aujourd’hui.

07 April, 2016 10:00PM by Carl Chenet

April 03, 2016

Nouveau forum pour l’emploi dans la communautĂ© du Logiciel Libre et opensource

Suivez-moi aussi sur Diaspora*diaspora-banner ou Twitter 

Un rapide message pour annoncer le lancement d’un forum dĂ©diĂ© Ă  l’emploi dans la communautĂ© du Logiciel Libre et opensource :

Le forum de LinuxJobs.fr : https://forum.linuxjobs.fr

forum-small

Devant le succĂšs de LinuxJobs.fr , le site d’emploi de la communautĂ© du Logiciel Libre et opensource, et la communautĂ© d’utilisateurs qui s’est constituĂ© autour, il Ă©tait dommage de s’arrĂȘter Ă  l’échange d’offres d’emplois. C’est pourquoi LinuxJobs.fr créé un lieu d’échange et de discussions pour sa communautĂ©, avec des catĂ©gories comme les rĂ©munĂ©rations, le droit du travail, les questions des jeunes diplĂŽmĂ©s, des les Ă©tudiants ou l’entrepreunariat.

banieres linux vert

Ce nouveau forum est fiÚrement propulsé par le nouveau moteur de forums Flarum, un logiciel libre sous licence MIT.

Au plaisir de discuter bientĂŽt avec vous sur le forum de LinuxJobs.fr.

Quelques liens pour finir :

03 April, 2016 10:00PM by Carl Chenet

March 31, 2016

Le danger Github (revu et augmenté)

Suivez-moi aussi sur Diaspora*diaspora-banner ou Twitter 

Alors que le projet CPython (implĂ©mentation historique du projet Python) a annoncĂ© son passage chez Github (avec quelques restrictions, nous reviendrons lĂ -dessus), il est plus que jamais important de s’interroger sur les risques encourus d’utiliser un logiciel propriĂ©taire dans notre chaĂźne de crĂ©ation du Logiciel Libre.

Des voix critiques s’élĂšvent rĂ©guliĂšrement contre les risques encourus par l’utilisation de Github par les projets du Logiciel Libre. Et pourtant l’engouement autour de la forge collaborative de la startup Californienne Ă  l’octocat continue de grandir.

codercatL’octocat, mascotte de Github

Ressentis Ă  tort ou Ă  raison comme simples Ă  utiliser, efficaces Ă  l’utilisation quotidienne, proposant des fonctionnalitĂ©s pertinentes pour le travail collaboratif en entreprise ou dans le cadre d’un projet de Logiciel Libre, s’interconnectant aujourd’hui Ă  de trĂšs nombreux services d’intĂ©gration continue, les services offerts par Github ont pris une place considĂ©rable dans l’ingĂ©nierie logicielle ces derniĂšres annĂ©es.

Quelles sont ces critiques et sont-elles justifiées ? Nous proposons de les exposer dans un premier temps dans la suite de cet article avant de peser le pour ou contre de leur validité.

1. Points critiques

1.1 La centralisation

L’application Github appartient et est gĂ©rĂ©e par une entitĂ© unique, Ă  savoir Github, inc, sociĂ©tĂ© amĂ©ricaine. On comprend donc rapidement qu’une seule sociĂ©tĂ© commerciale de droit amĂ©ricain gĂšre l’accessibilitĂ© Ă  la majoritĂ© des codes sources des applications du Logiciel Libre, ce qui reprĂ©sente un problĂšme pour les groupes utilisant un code source qui devient indisponible, pour une raison politique ou technique.

github-logo

De plus cette centralisation pose un problĂšme supplĂ©mentaire : de par sa taille, ayant atteint une masse critique, elle s’auto-alimente. Les personnes n’utilisant pas Github, volontairement ou non, s’isolent de celles qui l’utilisent, repoussĂ©es peu Ă  peu dans une minoritĂ© silencieuse. Avec l’effet de mode, on est pas « dans le coup » quand on n’utilise pas Github, phĂ©nomĂšne que l’on rencontre Ă©galement et mĂȘme devenu typique des rĂ©seaux sociaux propriĂ©taires (Facebook, Twitter, Instagram).

1.2 Un logiciel privateur

Lorsque vous interagissez avec Github, vous utilisez un logiciel privateur, dont le code source n’est pas accessible et qui ne fonctionne peut-ĂȘtre pas comme vous le pensez. Cela peut apparaĂźtre gĂȘnant Ă  plusieurs points de vue. IdĂ©ologique tout d’abord, mais peut-ĂȘtre et avant tout pratique. Dans le cas de Github on y pousse du code que nous contrĂŽlons hors de leur interface. On y communique Ă©galement des informations personnelles (profil, interactions avec Github). Et surtout un outil crucial propriĂ©taire fourni par Github qui s’impose aux projets qui dĂ©cident de passer chez la sociĂ©tĂ© amĂ©ricaine : le gestionnaire de suivi de bugs.

windowsWindows, qui reste le logiciel privateur par excellence, mĂȘme si d’autres l’ont depuis rejoint

1.3 L’uniformisation

Travailler via l’interface Github est considĂ©rĂ© par beaucoup comme simple et intuitif. De trĂšs nombreuses sociĂ©tĂ©s utilisent maintenant Github comme dĂ©pĂŽt de sources et il est courant qu’un dĂ©veloppeur quittant une sociĂ©tĂ© retrouve le cadre de travail des outils Github en travaillant pour une autre sociĂ©tĂ©. Cette frĂ©quence de l’utilisation de Github dans l’activitĂ© de dĂ©veloppeur du Libre aujourd’hui participe Ă  l’uniformisation du cadre de travail dudit dĂ©veloppeur.

L'uniforme Ă©voque l'armĂ©e, ici l'armĂ©e des clonesL’uniforme Ă©voque l’armĂ©e, ici l’armĂ©e des clones

2. Validité des points critiques

2.1 Les critiques de la centralisation

2.1.1 Taux de disponibilité du service

Comme dit prĂ©cĂ©demment, Github est aujourd’hui la plus grande concentration de code source du Logiciel Libre. Cela fait de lui une cible privilĂ©giĂ©e.  Des attaques massives par dĂ©nis de service ont eu lieu en mars et aoĂ»t 2015. De mĂȘme, une panne le 15 dĂ©cembre 2015 a entraĂźnĂ© l’indisponibilitĂ© de 5% des dĂ©pĂŽts. Idem le 15 novembre. Et il s’agit des incidents rĂ©cents dĂ©clarĂ©s par les Ă©quipes de Github elles-mĂȘmes. On peut imaginer un taux d’indisponibilitĂ© moyen des services bien supĂ©rieur.

githubdown

2.1.2 Blocage de la construction du Logiciel Libre par réaction en chaßne

Aujourd’hui plusieurs outils de gestion des dĂ©pendances comme npm dans le monde javascript, Bundler dans le monde Ruby ou mĂȘme pip pour le monde Python sont capables d’aller chercher le code source d’une application directement depuis Github. Les projets du Logiciel Libre Ă©tant de plus en plus intriquĂ©s, dĂ©pendants les uns des autres, si l’un des composants de la chaĂźne de construction vient Ă  manquer, c’est toute la chaĂźne qui s’arrĂȘte.

Un excellent exemple de cet Ă©tat de fait est la rĂ©cente affaire du npmgate (voir l’article Du danger d’un acteur non-communautaire dans votre chaĂźne de production du Logiciel Libre). Github peut trĂšs bien demain ĂȘtre mis en demeure par une entreprise de retirer du code source de son dĂ©pĂŽt, ce qui pourrait entraĂźner une rĂ©action en chaĂźne menant Ă  l’impossibilitĂ© de construire de nombreux projets du Logiciel Libre, comme cela vient d’arriver Ă  la communautĂ© Node.js Ă  cause de la sociĂ©tĂ© Npm, inc. gĂ©rant l’infrastructure de l’installeur automatisĂ© npm.

2.2 Un peu de recul historique : SourceForge

MĂȘme si l’ampleur du phĂ©nomĂšne n’a pas Ă©tĂ© la mĂȘme, il est bon de rappeler que Github n’est pas apparu ex-nihilo et avait un prĂ©dĂ©cesseur ayant joui en son temps d’un engouement important : SourceForge.

Fortement centralisĂ©, reposant Ă©galement sur de fortes interactions avec la communautĂ©, SourceForge est un SAAS fortement vieillissant  ces derniĂšres annĂ©es et subit une vĂ©ritable hĂ©morragie de ses utilisateurs au profit de Github. Ce qui signifie beaucoup d’ennuis pour ceux qui y sont restĂ©s. Pour le projet Gimp, il s’agit tout d’abord d’abus publicitaires trompeurs indignes, qui entraĂźnent Ă©galement le dĂ©part du projet VLC , puis l’apparition d’installeurs comprenant des adwares se faisant passer pour l’installeur officiel Windows de Gimp. Et enfin purement et simplement le piratage du compte SourceForge du projet Gimp par
 les Ă©quipes de SourceForge elle-mĂȘme.

Nous voyons ici des exemples rĂ©cents et trĂšs concrets des pratiques dont sont capables les sociĂ©tĂ©s commerciales lorsqu’elles sont sous la pression de leurs actionnaires. D’oĂč la nĂ©cessitĂ© de bien comprendre l’enjeu reprĂ©sentĂ© par le fait de leur confier une centralisation des donnĂ©es et des Ă©changes ayant de fortes consĂ©quences sur le fonctionnement et les usages de la communautĂ© du Logiciel Libre et opensource.

 

2.3 Les critiques relatives Ă  utiliser un logiciel privateur

2.3.1 Une communauté, différents rapports au logiciel propriétaire

Cette critique, avant tout idĂ©ologique, se heurte Ă  la conception mĂȘme que chacun des membres de la communautĂ© se fait du Logiciel Libre et opensource, et en particulier d’un critĂšre : contaminant ou non, qu’on rĂ©sume en gĂ©nĂ©ral par GPL versus MIT/BSD.

 

bsdvsgpl

Les dĂ©fenseurs du Logiciel Libre contaminant vont ĂȘtre gĂȘnĂ©s d’utiliser un logiciel propriĂ©taire car ce dernier ne devrait pas exister. Il doit ĂȘtre assimilĂ©, pour citer Star Trek,  car il est une boĂźte noire communicante, qui met en danger la vie privĂ©e, dĂ©tourne nos usages Ă  des fins commerciales, gĂȘne ou contraint la libertĂ© de jouir entiĂšrement de ce qu’on a acquis, etc.

gplv3

Les pendants d’une totale libertĂ© sont moins complexĂ©s dans leur utilisation des logiciels privateurs puisqu’ils acceptent l’existence desdits logiciels privateurs au nom d’une libertĂ© sans restriction. Ils acceptent mĂȘme que le code qu’ils dĂ©veloppent aboutissent dans ces logiciels, ce qui arrive bien plus souvent qu’on ne le croit, voir Ă  ce sujet la liste Ă  couper le souffle des produits commerciaux reposant sur FreeBSD. On peut donc voir dans cette aile de la communautĂ© du Logiciel Libre une totale sĂ©rĂ©nitĂ© Ă  utiliser Github. Et ce qui est cohĂ©rent vis-Ă -vis de l’idĂ©ologie soutenue. Si vous ĂȘtes dĂ©jĂ  allĂ© au Fosdem, un coup d’Ɠil dans l’amphithéùtre Janson permet de se rendre compte de la prĂ©sence massive de portables Apple tournant sous MacOSX.

FreeBSD, principal projet des BSD sous licence MITFreeBSD, principal projet des BSD sous licence BSD

2.3.2 Les pertes de donnĂ©es et obstructions liĂ©es Ă  l’usage d’un logiciel privateur

Mais au-delĂ  de cet aspect idĂ©ologique pur et pour recentrer sur l’infrastructure de Github elle-mĂȘme, l’utilisation du gestionnaire de suivi de bugs de Github pose un problĂšme incontournable. Les rapports de bugs sont la mĂ©moire des projets du Logiciel Libre. Il constitue le point d’entrĂ©e des nouveaux contributeurs, des demandes de fonctionnalitĂ©s, des rapports de bugs et donc la mĂ©moire, l’histoire du projet qui ne peut se limiter au code seul. Il est courant de tomber sur des rapports de bugs lorsque vous copiez/collez votre message d’erreur dans un moteur de recherche. MĂ©moire prĂ©cieuse non seulement pour le projet lui-mĂȘme, mais aussi pour ses utilisateurs actuels et Ă  venir.

Github propose d’extraire les rapports de bugs via son API, certes, mais combien de projets anticiperont une Ă©ventuelle dĂ©faillance de Github  ou un retournement de situation arrĂȘtant brusquement le service ? TrĂšs peu Ă  mon avis. Et comment migrer vers un nouveau systĂšme de suivi de bugs les donnĂ©es fournies par Github ?

L’exemple de l’utilitaire de gestion de listes de choses Ă  faire (TODO list) Astrid, rachetĂ© par Yahoo! il y a quelques annĂ©es reste un trĂšs bon exemple de service ayant grandi rapidement, largement utilisĂ© et qui a fermĂ© du jour au lendemain, proposant pendant quelques semaines seulement d’extraire ses donnĂ©es. Et il s’agissait lĂ  d’un simple gestionnaire de tĂąches Ă  faire. Le mĂȘme problĂšme chez Github serait dramatiquement plus difficile Ă  gĂ©rer pour de trĂšs nombreux projets, si on leur laisse la possibilitĂ© de le gĂ©rer. Certes le code reste disponible et pourra continuer de vivre ailleurs, mais la mĂ©moire du projet sera perdue, alors qu’un projet comme Debian approche aujourd’hui les 800000 rapports de bugs. Une vraie mine d’or d’informations sur les problĂšmes rencontrĂ©s, les demandes de fonctionnalitĂ©s et le suivi de ces demandes. Les dĂ©veloppeurs du projet CPython passant chez Github ont anticipĂ© ce problĂšme et ne vont pas utiliser le systĂšme de suivi de bugs de Github.

mastering-issuesIssues, le suivi de bug propriétaire de Github

Autre perte si Github disparaĂźt ou devient inaccessible : le travail de revue des « push requests » (abrĂ©gĂ©es par PRs) en cours. Pour les lecteurs qui ne connaĂźtraient pas cette fonctionnalitĂ© de Github, il s’agit d’adresser de cloner le dĂ©pĂŽt Github d’un projet, de modifier ce clone pour l’adapter Ă  vos besoins, puis ensuite de proposer vos modifications au dĂ©pĂŽt d’origine. Le propriĂ©taire du dĂ©pĂŽt d’origine va alors Ă©tudier les modifications qui lui ont Ă©tĂ© proposĂ©es et si elles lui conviennent les fusionner Ă  son propre dĂ©pĂŽt. Il s’agit donc d’une fonctionnalitĂ© trĂšs importante offerte de Github, qui propose de rĂ©aliser les diffĂ©rentes opĂ©rations graphiquement via son interface.

Toutefois le travail de revue des modifications proposĂ©es peut ĂȘtre long et il est courant d’avoir, pour un projet qui marche bien, plusieurs PRs en cours. Et il est Ă©galement courant d’échanger des commentaires via ces PRs et/ou via le systĂšme de suivi de bugs propriĂ©taires de Github dont nous avons parlĂ© plus haut.

Le code en lui-mĂȘme n’est donc pas perdu si Github devient inaccessible (quoique, voire plus bas un cas spĂ©cifique), mais le travail de revue matĂ©rialisĂ©e par les Ă©ventuels demandes et commentaires prĂ©sents dans les PRs et les suivis de bugs associĂ©s l’est bien, lui. Rappelons Ă©galement que Github permet de cloner des projets via son interface web propriĂ©taire, puis d’y apporter toujours via la mĂȘme interface des modifications et ensuite de gĂ©nĂ©rer des PRs sans tĂ©lĂ©charger aucunement le code sur son poste. Dans ce cas de figure, si Github devient indisponible, la perte du code et du travail en cours est totale.

Enfin certains utilisateurs se servent de Github entre autre comme d’une application de favoris, afin de suivre l’activitĂ© de leurs projets prĂ©fĂ©rĂ©s en s’abonnant Ă  ces projets par la fonctionnalitĂ© « Watch ».  Ce travail de rĂ©union de donnĂ©es pour la veille technologique est perdu  en cas d’indisponibilitĂ© du service Github.

Proposed Debian LogoDebian, l’un des principaux projets du Logiciel Libre avec autour de 1000 contributeurs officiels

 

2.4 L’uniformisation

La communautĂ© du Logiciel Libre oscille sans cesse entre un besoin de normes afin de rĂ©duire le travail nĂ©cessaire pour l’interopĂ©rabilitĂ© et l’attrait de la nouveautĂ©, caractĂ©risĂ©e par l’intrinsĂšque besoin de diffĂ©rence vis-Ă -vis de l’existant.

Github a popularisĂ© l’utilisation de Git, magnifique outil qui aujourd’hui touche des mĂ©tiers bien diffĂ©rents des programmeurs auxquels il Ă©tait initialement liĂ©. Peu Ă  peu, tel un rouleau compresseur, Git a pris une place si centrale que considĂ©rer l’usage d’un autre gestionnaire de sources est quasiment impossible aujourd’hui, particuliĂšrement en entreprise, malgrĂ© l’existence de belles alternatives qui n’ont malheureusement pas le vent en poupe, comme Mercurial.

git-logo

Un projet de Logiciel Libre qui naĂźt aujourd’hui, c’est un dĂ©pĂŽt Git sur Github avec un README.md pour sommairement le dĂ©crire. Les autres voies sont totalement ostracisĂ©es. Et quelle est la punition pour celui qui dĂ©sobĂ©it ? Peu ou pas de contributeurs potentiels. Il semble trĂšs difficile de pousser aujourd’hui le contributeur potentiel Ă  se lancer dans l’apprentissage d’un nouveau gestionnaire de sources ET une nouvelle forge pour chaque projet auquel on veut contribuer. Un effort que fournissait pourtant tout un chacun il y a quelques annĂ©es.

Et c’est bien dommage car Github, en proposant une expĂ©rience unique et originale Ă  ses utilisateurs, taille  Ă  grands coups de machette dans les champs des possibles. Alors oui, sĂ»rement que Git est aujourd’hui le meilleur des systĂšme de gestion de versions. Mais ça n’est pas grĂące Ă  cette domination sans partage qu’un autre pourra Ă©merger. Et cela permet Ă  Github d’initier Ă  Git les nouveaux arrivants dans le dĂ©veloppement  Ă  un ensemble de fonctionnalitĂ©s trĂšs restreint, sans commune mesure avec la puissance de l’outil Git lui-mĂȘme.

3. Centralisation, uniformisation, logiciels privateurs et bientÎt
 fainéantise ?

Le combat contre la centralisation est une part importante de l’idĂ©ologie du Logiciel Libre car elle accroĂźt le pouvoir de ceux qui sont chargĂ©s de cette centralisation et qui la contrĂŽlent sur ceux qui la subissent. L’aversion Ă  l’uniformisation nĂ©e du combat contre les grandes firmes du logiciel souhaitant imposer leur vision fermĂ©e et commerciale du monde du logiciel a longtemps nourri la recherche rĂ©elle d’innovation et le dĂ©veloppement d’alternatives brillantes. Comme nous l’avons dĂ©crit, une partie de la communautĂ© du Libre s’est construit en opposition aux logiciels privateurs, les considĂ©rant comme dangereux. L’autre partie, sans vouloir leur disparition, a quand mĂȘme choisi un modĂšle de dĂ©veloppement Ă  l’opposĂ© de celui des logiciels privateurs, en tout cas Ă  l’époque car les deux mondes sont devenus de plus en plus poreux au cours des derniĂšres annĂ©es.

 

L’effet Github est donc dĂ©lĂ©tĂšre au point de vue des effets qu’il entraĂźne : la centralisation,  l’uniformisation, l’utilisation de logiciels privateurs comme leur systĂšme de gestion de version, au minimum. Mais la rĂ©cente affaire de la lettre « Cher Github  » met en avant un dernier effet, totalement inattendu de mon point de vue : la fainĂ©antise. Pour les personnes passĂ©es Ă  cĂŽtĂ© de cette affaire, il s’agit d’une lettre de rĂ©clamations d’un nombre trĂšs important de reprĂ©sentants de diffĂ©rents projets du Logiciel Libre qui rĂ©clament Ă  l’équipe de Github d’entendre leurs dolĂ©ances, apparemment ignorĂ©es depuis des annĂ©es, et d’implĂ©menter de nouvelles fonctionnalitĂ©s demandĂ©es.

Mais depuis quand des projets du Logiciel Libre qui se heurtent depuis des annĂ©es Ă  un mur tentent-ils de faire pleurer le mur et n’implĂ©mentent pas la solution qui leur manquent ? Lorsque Torvald a subi l’affaire Bitkeeper et que l’équipe de dĂ©veloppement du noyau Linux n’a plus eu l’autorisation d’utiliser leur gestionnaire de versions, Linus a mis au point Git. Doit-on rappeler que l’impossibilitĂ© d’utiliser un outil ou le manque de fonctionnalitĂ©s d’un programme est le moteur principal de la recherche d’alternative et donc du Logiciel Libre ? Tous les membres de la communautĂ© du Logiciel Libre capable de programmer devrait avoir ce rĂ©flexe. Vous n’aimez pas ce qu’offre Github ? Optez pour Gitlab. Vous n’aimez pas Gitlab ? AmĂ©liorez-le ou recodez-le.

gitlabLogo de Gitlab, une alternative possible Ă  Github

Que l’on soit bien d’accord, je ne dis pas que tout programmeur du Libre qui fait face Ă  un mur doit coder une alternative. En restant rĂ©aliste, nous avons tous nos prioritĂ©s et certains de nous aiment dormir la nuit (moi le premier). Mais lorsqu’on voit 1340 signataires de cette lettre Ă  Github et parmi lesquels des reprĂ©sentants de trĂšs grands projets du Logiciel Libre, il me paraĂźt Ă©vident que les volontĂ©s et l’énergie pour coder une alternative existe. Peut-ĂȘtre d’ailleurs apparaĂźtra-t-elle suite Ă  cette lettre, ce serait le meilleur dĂ©nouement possible Ă  cette affaire.

Finalement, l’utilisation de Github suit cette tendance de massification de l’utilisation d’Internet. Comme aujourd’hui les utilisateurs d’Internet sont aspirĂ©s dans des rĂ©seaux sociaux massivement centralisĂ©s comme Facebook et Twitter, le monde des dĂ©veloppeurs suit logiquement cette tendance avec Github. MĂȘme si une frange importante des dĂ©veloppeurs a Ă©tĂ© sensibilisĂ©e aux dangers de ce type d’organisation privĂ©e et centralisĂ©e, la communautĂ© entiĂšre a Ă©tĂ© absorbĂ©e dans un mouvement de centralisation et d’uniformisation. Le service offert est utile, gratuit ou Ă  un coĂ»t correct selon les fonctionnalitĂ©s dĂ©sirĂ©es, confortable Ă  utiliser et fonctionne la plupart du temps. Pourquoi chercherions-nous plus loin ? Peut-ĂȘtre parce que d’autres en profitent et profitent de nous pendant que nous sommes distraits et installĂ©s dans notre confort ? La communautĂ© du Logiciel Libre semble pour le moment bien assoupie.

cat-sleeping-fireplaceLe « lion » devant la cheminée

Texte sous licence Creative Commons CC BY-ND 3.0 FR

31 March, 2016 09:00PM by Carl Chenet

August 01, 2012

hackergotchi for Gr&#233;gory Colpart

Grégory Colpart

Astuces pour gérer un répertoire ext3 bien rempli

Disclaimer : Valable pour de l’ext3 sous Linux (utilisable sur d’autres filesystems ou Unix Ă  vos disques et pĂ©ril)

Vous avez un rĂ©pertoire rempli Ă  rabord de nombreux fichiers, et il est impossible de connaĂźtre sa taille, le lister ou l’effacer sans impact sur la production ?

Voici quelques astuces :

– Avec un “ls -ld” sur le rĂ©pertoire, vous pouvez estimer grossiĂšrement le nombre de fichiers prĂ©sents dans un rĂ©pertoire. En effet, un rĂ©pertoire vide fait 4 Ko (je simplifie). Et plus il contient de fichiers, plus sa taille va augmenter. Par exemple, un rĂ©pertoire contenant 2 millions de fichiers pourra faire une taille de 100 Mo (je parle bien de la taille du rĂ©pertoire et non pas de la taille du contenu). Attention, c’est variable selon la longueur des noms des fichiers. Et prendre garde aussi que ce n’est pas dynamique : si vous videz complĂštement un rĂ©pertoire bien rempli, il gardera sa taille volumineuse (d’oĂč l’intĂ©rĂȘt de recrĂ©er un rĂ©pertoire qui s’est rempli “par erreur”).

– Pour lister les fichiers du rĂ©pertoire, utiliser la commande “ls” n’est pas une bonne idĂ©e car elle accĂšde Ă  toute la liste avant de l’afficher. Voici comment lister 10 fichiers sans attendre :

perl -le 'opendir DIR, "." or die; $i=0; while ($i<10) { my $f = readdir DIR; print $f; $i++; }; closedir DIR'

Grùce à leurs noms, vous pouvez désormais examiner (ouvrir, connaßtre sa taille) un échantillon de fichiers contenus dans votre fameux répertoire.

Pour lister l’ensemble des fichiers sans attendre comme “ls” :

perl -le 'opendir DIR, "." or die; print while $_ = readdir DIR; closedir DIR'

– Pour effacer le contenu du rĂ©pertoire en limitant l’impact sur la production, oubliez “rm -rf” qui va saturer vos I/O disque mais prĂ©fĂ©rez le faire par blocs de N fichiers avec des pauses de quelques secondes ! Voici une commande “conviviale” qui va faire cela par blocs de 300 fichiers avec des pauses de 5 secondes :

perl -le 'use POSIX qw/strftime/; opendir DIR, "." or die; $i=0; printf "DELETING IN PROGRESS...";
 while (my $f = readdir DIR) {unlink $f;  $i++;
 if ($i % 300 == 0) {printf "...$i files deleted\n".strftime("%Y-%m-%d %H:%M:%S",localtime)." : PAUSE...";
 $| = 1; sleep 5 ; printf "...DONE. "; printf "DELETING IN PROGRESS..."}}; printf "...DONE"; closedir DIR'

EDIT : en complĂ©ment, on n’oubliera pas que l’on peut aussi gĂ©rer la prioritĂ© d’ordonnancement des I/O avec la commande ionice
(merci Ă  Sylvain B. de l’avoir soulignĂ©)

01 August, 2012 02:24AM by Gregory Colpart

August 18, 2010

Mon compte-rendu de DebConf 10 Ă  New York

DebConf est la confĂ©rence annuelle des dĂ©veloppeurs du projet Debian. Cela permet aux dĂ©veloppeurs et contributeurs de Debian d’assister Ă  des prĂ©sentations techniques, sociales et politiques, mais aussi de se rencontrer et travailler ensemble. Cette annĂ©e, la 11e DebConf s’est tenue Ă  New York du 1er au 7 aoĂ»t. Evolix a sponsorisĂ© cette confĂ©rence et j’étais donc sur place, voici mon rĂ©sumĂ© de cette semaine.

Premiers pas plutĂŽt festifs le vendredi soir avec le SysAdmin Day dans un bar Ă  Manhattan puis direction Brooklyn pour une Debian Party organisĂ©e par NYC Resistor, un collectif local de hackers en Ă©lectronique Ă  l’origine de MakerBot, une imprimante 3D Open Source. Samedi c’est l’arrivĂ©e Ă  Columbia University, l’universitĂ© amĂ©ricaine qui accueille la DebConf 10. Une bonne partie des participants est hĂ©bergĂ©e sur le campus universitaire, dans des chambres avec accĂšs haut-dĂ©bit et une cafĂ©tĂ©ria Ă  volontĂ©.

C’est donc le dimanche 1er aoĂ»t que commence la DebConf avec des prĂ©sentations orientĂ©es grand public pour cette premiĂšre journĂ©e appelĂ©e le “Debian Day”. Un grand message de bienvenue pour un public plus large en ce premier jour, puis enchaĂźnement des prĂ©sentations. J’ai tout d’abord assistĂ© Ă  une prĂ©sentation sur le sysadmin par François Marier qui a livrĂ© toutes ses astuces et une sĂ©rie de packages intĂ©ressants (unattended-upgrades, safe-rm, etckeeper, fcheck, fwknop, etc.). J’ai d’ailleurs pu Ă©changer par la suite avec lui d’autres informations, sachant qu’il travaille dans une boĂźte similaire Ă  Evolix : Catalyst situĂ©e en Nouvelle-ZĂ©lande ! J’ai ensuite assistĂ© Ă  la prĂ©sentation de Stefano Zacchiroli, l’actuel leader Debian, qui encourage fortement les dĂ©veloppeurs Ă  rĂ©aliser des NMU (Non Maintainer Upload), c’est-Ă -dire la publication d’un package par un autre dĂ©veloppeur que celui responsable officiellement. J’ai ensuite poursuivi avec la prĂ©sentation du Google Summer of Code 2010 de Debian : une prĂ©sentation gĂ©nĂ©rale puis plusieurs â€œĂ©tudiants” expliquent leur projet en cours : Debian-Installer pour OpenMoko, GUI pour aptitude en QT, etc. D’autres prĂ©sentations ont ensuite suivies, mais j’ai plutĂŽt Ă©tĂ© dĂ©couvrir le “hacklab” : une piĂšce pourvue de multiprises, switches et points d’accĂšs afin de permettre Ă  plusieurs dizaines de personnes de travailler/hacker. Le “Debian Day” a Ă©tĂ© un franc succĂšs avec plusieurs centaines de participants. En soirĂ©e, c’est l’heure du coup d’envoi “officiel” de la DebConf par Gabriella Coleman, l’une des organisatrices de la DebConf 10, qui prĂ©sente avec humour la semaine Ă  venir, avec un petit retour en images sur les Ă©ditions prĂ©cĂ©dentes.

DeuxiĂšme jour, on a le droit Ă  un Bits from DPL en direct de la part de Stefano Zacchiroli (au lieu du traditionnel mail). Ensuite, il y a de nombreuses prĂ©sentations. Durant DebConf, il y en aura plus de 100 au total, rĂ©parties dans 3 salles : Davis (avec vidĂ©o), 414 Schapiro et Interschool (avec vidĂ©o). Le choix est parfois difficile ! Pour ma part, j’ai assistĂ© en fin de matinĂ©e Ă  la prĂ©sentation de la structure amĂ©ricaine Ă  but non lucractif SPI : c’est elle qui gĂšre les droits de la marque Debian, mais pas seulement : OpenOffice.org, Drupal, PostgreSQL, Alfresco, etc. de nombreux projets de logiciels libres utilisent cette structure lĂ©gale ! Dans l’aprĂšs-midi, c’est Mark Shuttleworth, fondateur d’Ubuntu et CEO de Canonical, qui nous prĂ©sente le travail rĂ©alisĂ© pour amĂ©liorer l’interface graphique des netbooks, notamment par l’intermĂ©diaire du projet Ayatana. Puis, Jorge Castro, responsable chez Canonical des relations avec les dĂ©veloppeurs extĂ©rieurs, parle de la collaboration entre Ubuntu et Debian. On notera que toute une Ă©quipe de Canonical est venue Ă  DebConf et que les relations avec Debian semblent devenir plus sereines. Le soir venu, c’est l’heure de Wine&Cheese, un Ă©vĂšnement devenu incontournable pour une DebConf : imaginez des centaines de fromages et alcools venus du monde entier (Italie, Allemagne, France, Mexique, BrĂ©sil, USA, TaĂŻwan, Pologne, Kazhastan, Espagne, Nouvelle-ZĂ©lande, Corse, VĂ©nĂ©zuela, Hollande, Marseille, Irlande, Angleterre, Japon, etc. etc.) et plus d’une centaine de dĂ©veloppeurs Debian lĂąchĂ©s dessus pendant des heures
 le rĂ©sultat est
 indescriptible ! Pour ma part, j’avais apportĂ© un rosĂ© Bandol, des biĂšres La Cagole, du Banon et de la Tapenade
 qui n’ont pas fait long feu.

TroisiĂšme jour et l’on dĂ©bute par un talk d’Eben Moglen, avocat de la FSF, qui rappelle les dangers du Cloud Computing comme la gestion des donnĂ©es privĂ©es. Sa rĂ©ponse : “Chacun devrait avoir un serveur chez soi” et il Ă©voque la FreedomBox, une boi-boĂźte que tout le monde aurait chez soi pour faire office de petit serveur avec les fonctionnalitĂ©s classiques (web, messagerie, VoIP). Cette idĂ©e rencontre un certain enthousiasme et plusieurs rĂ©flĂ©chissent dĂ©jĂ  Ă  la rĂ©alisation de cette idĂ©e ! J’ai ensuite suivi une succession de prĂ©sentations sur le thĂšme de l’entreprise. On a parlĂ© du dĂ©ploiement de machines avec le logiciel Puppet, de l’installation automatisĂ©e de Debian avec FAI et Gosa, notamment prĂ©sentĂ©e par MickaĂ«l Bank, un dĂ©veloppeur allemand trĂšs actif dans Debian. On a Ă©galement des tĂ©moignages trĂšs intĂ©ressants : Russ Allbery, administrateur systĂšme et rĂ©seau Ă  l’universitĂ© de Standford en Californie, explique quels sont les arguments en faveur de Debian en entreprise et en profite pour prĂ©senter la gestion de Debian Ă  Standford ; Faidon Liambotis, sysadmin chez GRNET (un opĂ©rateur public grec), prĂ©sente leur utilisation de Debian mais aussi leurs choix en terme de dĂ©ploiement (Puppet/FAI) ou de virtualisation (KVM/Ganeti). Pour terminer la journĂ©e, Guido Trotter de chez Google, nous parle des fonctionnalitĂ©s rĂ©seau intĂ©ressantes sous Linux (VLAN, tunnels, routing, etc.). Une journĂ©e riche en idĂ©es et en informations ! En soirĂ©e, nous avons visualisĂ© le film Open Source Sita Sings the Blues et Nina Paley nous a expliquĂ© son choix d’une licence libre pour son film.

Le quatriĂšme jour, c’est le Day Trip. Il s’agit classiquement d’une journĂ©e consacrĂ©e Ă  des activitĂ©s touristiques extĂ©rieures. Nous avons Ă©tĂ© visiter l’église Trinity Church Ă  Manhattan oĂč le drame du 11 septembre 2001 a mis un superbe orgue hors d’usage, remplacĂ© temporairement par un orgue Ă©lectronique “Powered by Linux”
 qui a finalement Ă©tĂ© conservĂ© en raison de sa qualitĂ©. Keith Packard, l’un des gourous de X.org employĂ© chez Intel, a jouĂ© quelques minutes sur cet orgue. Ensuite, direction la plage de Coney Island. Puis un match de baseball oĂč Stefano Zacchiroli lancera la premiĂšre balle du match.

CinquiĂšme jour, on reprend avec un BoF (un BoF=Birds of a Feather est une discussion informelle de groupe) sur la virtualisation oĂč plusieurs personnes tĂ©moignent de leurs expĂ©riences et connaissances sur le sujet. Pas mal d’informations intĂ©ressantes, notamment sur le couple Ganeti/KVM pas mal mis en avant par Iustin Pop, l’un des dĂ©veloppeurs de Ganeti employĂ© chez Google. J’y apprends notamment que KVM gĂšre une notion de mĂ©moire partagĂ©e et ainsi dĂ©marrer une 2e machine virtuelle avec un mĂȘme OS ne consommerait pas de mĂ©moire supplĂ©mentaire sur le systĂšme hĂŽte ! Suite des prĂ©sentations, notamment une portant sur DebConf 12 qui pourrait peut-ĂȘtre se dĂ©rouler au BrĂ©sil. Et fin de la matinĂ©e avec François Marier qui prĂ©sente le projet Libravatar permettant d’offrir une alternative Ă  Gravatar, l’outil centralisĂ© de gestion des avatars. Ses idĂ©es sont de se baser sur les DNS pour rĂ©partir les avatars pour chaque noms de domaine. Il a dĂ©jĂ  commencĂ© Ă  dĂ©velopper une application en Django pour gĂ©rer cela. Suite de la journĂ©e avec un BoF sur Lintian (outil de vĂ©rification de la conformitĂ© des packages Debian) gĂ©rĂ© par Russ Allbery. Puis j’ai assistĂ© Ă  une prĂ©sentation de Guido GĂŒnther qui a expliquĂ© comment gĂ©rer son packaging avec Git et notamment git-buildpackage (trĂšs intĂ©ressant pour moi car je gĂšre dĂ©jĂ  mes packages Debian comme ça). Ensuite, petite pause sportive, car une dizaine de dĂ©veloppeurs Debian a Ă©tĂ© participĂ© Ă  un cross de 5 kms dans le Bronx, avec des rĂ©sultats honorables !

SixiĂšme jour, on dĂ©bute par Bits from Release Team qui dĂ©clare en direct que Squeeze, la prochaine version stable, est dĂ©sormais freezĂ©e ! Un scoop Ă  DebConf ! C’est ensuite Stefano Zacchiroli qui nous prĂ©sente son travail en cours sur une amĂ©lioration de la gestion des dĂ©pendances, non seulement pour Debian mais aussi pour les autres distributions : plus de dĂ©tails sur le site du projet Mancoosi. C’est ensuite la traditionnelle photo de groupe. En dĂ©but d’aprĂšs-midi, Margarita Manterola dresse un constat trĂšs lucide de l’état de Debian avec son talk Making Debian Rule, again. Puis en fin d’aprĂšs-midi, c’est un BoF trĂšs apprĂ©ciĂ© menĂ© par Joey Hess sur CUT (Constantly Usable Testing) qui explore les possibilitĂ©s d’avoir une distribution Testing utilisable en permanence ! Le soir venu, c’est un BoF sur l’utilisation d’OpenPGP et la classique Keysigning Party qui a regroupĂ© plusieurs dizaines de participants.

SeptiĂšme et dernier jour, encore de nombreuses prĂ©sentations. J’ai notamment assistĂ© Ă  celle de Philippe Kern, membre de la Release Team, qui a parlĂ© du management de la version stable et de volatile. On notera par exemple qu’on peut dĂ©sormais corriger des bugs en prioritĂ© “Important” dans les points de Release. La suite ce sont des fameux Lightnings Talks, une dizaine de prĂ©sentations trĂšs courtes : une qui suggĂšre d’arrĂȘter complĂštement d’utiliser les mots de passe, une autre sur le logiciel runit, une autre sur les Ă©clairs (lightnings !) ou encore l’historique en photos des Wine&Cheese Party ! Fun et instructif. Puis c’est l’heure de la confĂ©rence de clĂŽture, oĂč l’on remet des prix Ă  ceux qui ont corrigĂ© le plus de bugs mais surtout tous les volontaires sont vivement remerciĂ©s et j’en profite pour adresser une nouvelle fois mes remerciements Ă  :
– L’équipe qui a organisĂ© cette DebConf 10 : un travail impressionnant pour un rĂ©sultat professionnel et communautaire Ă  la fois : on frĂŽle la perfection !
– L’équipe vidĂ©o qui a fait un travail gĂ©nial et vous pouvez ainsi retrouver l’ensemble des talks en vidĂ©o,
– Les centaines de personnes sympas et passionnĂ©es qui contribuent Ă  faire de Debian une distribution de grande qualité  et qui sait Ă©voluer, la preuve avec les sujets abordĂ©s lors de cette DebConf !

Petite conclusion de cette semaine intensive, comme vous avez pu le lire : j’ai pu acquĂ©rir de nombreuses informations et faire le plein de nouvelles idĂ©es, mais aussi avoir des contacts rĂ©els avec d’autres dĂ©veloppeurs et comprendre encore mieux le fonctionnement “social” de Debian. C’est donc trĂšs positif et cela va me permettre d’amĂ©liorer mon travail quotidien au sein d’Evolix, mais aussi rĂ©flĂ©chir Ă  d’autres projets et me motiver pour contribuer davantage Ă  Debian. Debian rules !

18 August, 2010 11:52AM by Gregory Colpart

January 24, 2010

Autres exemples de migration Etch->Lenny [1]

La fin du support officiel de Debian Etch approchant, il est grand temps de migrer vers Lenny pour les machines pas encore à jour. AprÚs un premier exemple de migration Debian Etch->Lenny, je poursuis la série avec des informations tirées de plusieurs migrations récentes sur des serveurs en production.

Je ne rappellerais pas toutes les prĂ©cautions nĂ©cessaires (tests prĂ©alables, sauvegardes, dĂ©sactivations des services, etc.) ni la classique question  sur  “quand faut-il migrer ?”, vous trouverez tout cela dans mes exemples prĂ©cĂ©dents. Je rappelle simplement l’idĂ©e de base : prendre les prĂ©cieuses Release Notes, mettre Ă  jour le fichier sources.list, puis exĂ©cuter les commandes aptitude update && aptitude upgradex, puis mettre-Ă -jour les services les plus critiques via aptitude install <PACKAGE>, et enfin aptitude dist-upgrade && aptitude dist-upgrade (rĂ©pĂ©ter dist-upgrade est souvent nĂ©cessaire).

Passons désormais aux différentes remarques sur ces migrations :

– PostgreSQL : on passe de la version 8.1 Ă  8.3. Notez qu’il s’agit de paquets diffĂ©rents, il est donc possible de garder la version 8.1 en Etch, et d’installer en parallĂšle la version 8.3, afin de faciliter encore plus la migration. Pour migrer les donnĂ©es, on rĂ©alisera un dump avec pg_dumpall qui sera rĂ©injectĂ© dans la nouvelle base. On pourra ensuite adapter le port dans postgresql.conf pour passer la version 8.3 en production.

– phpPgAdmin : avec PostgreSQL 8.3, on ne peut plus se connecter Ă  la table template1 : c’est le comportement par dĂ©faut de phpPgAdmin, qu’on devra donc modifier en mettant postgres Ă  la place (pour la variable $conf[‘servers’][0][‘defaultdb’] dans le fichier config.inc.php)

– Apache : la configuration de l’alias /icons/ est dĂ©placĂ© dans le fichier mods-available/alias.conf, il peut donc faire doublon avec la dĂ©claration dans apache2.conf, ce qui sera signalĂ© via le warning suivant : [warn] The Alias directive in /etc/apache2/apache2.conf at line 240 will probably never match because it overlaps an earlier Alias. Commenter les directives dans le fichier apache2.conf rĂ©soudra ce petit soucis.

– OpenLDAP : on passe d’une version 2.3 Ă  2.4, mais le plus marquant pour la migration est que cela force le processus Ă  tourner avec un utilisateur/groupe dĂ©diĂ©. Pour diverses raisons (dist-upgrade interrompu par exemple), on pourra rencontrer des soucis plus ou moins alarmants. Ainsi, j’ai pu rencontrer cette erreur :
bdb(dc=example,dc=com): PANIC: fatal region error detected; run recovery
bdb_db_open: database “dc=example,dc=com” cannot be opened, err -30978. Restore from backup!
backend_startup_one: bi_db_open failed! (-30978)
slap_startup failed
On veillera donc sur l’utilisateur/groupe propriĂ©taire des fichiers dans le rĂ©pertoire /var/lib/ldap et, au besoin, on ajustera : chown -R openldap:openldap /var/lib/ldap/
Mon conseil : mettre-à-jour le paquet slapd de façon spécifique avant le dist-upgrade

– Postfix : on passe de 2.3 Ă  2.5. On notera simplement la valeur par dĂ©faut de $smtp_line_length_limit characters qui passe Ă  990, ce qui coupe les lignes trop longues pour se conformer au standard SMTP. Si cela posait problĂšme, on pourrait revenir Ă  l’ancien comportement en positionnant smtp_line_length_limit=0

– SpamAssassin : l’utilisant en stockant la configuration des utilisateurs dans un annuaire LDAP, le daemon spamd s’est mis à rñler : cannot use –ldap-config without -u
Le problĂšme sera rĂ©solu en ajoutant l’option -u nobody, ce qui fera tourner spamd en tant que nobody (ce qui n’est pas une mauvaise chose, au contraire).

– Amavis : apparemment, lors de la dĂ©tection d’un virus, le code retournĂ© n’est plus 2.7.1 mais 2.7.0 : 2.7.0 Ok, discarded, id=13735-07 – VIRUS: Eicar-Test-Signature
Rien de bien grave, mais cela a nĂ©cessitĂ© d’adapter un plugin Nagios pour qu’il attende le bon code de retour.

– Courier-imapd-ssl : aprùs une mise-à-jour gardant mon fichier /etc/courier/imapd-ssl actuel, j’obtenai des erreurs avec certains clients IMAP :
couriertls: accept: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
En regardant de plus prĂšs, certaines directives changent dans ce fichier de configuration, et il est donc conseillĂ© de repartir du fichier proposĂ© par Lenny, et d’y apporter ses modifications (souvent, cela se limite Ă  prĂ©ciser le certificat).

– Horde : si vous utilisez une base de donnĂ©es pour stocker les paramĂštres ou autres, la paquet php-db (dĂ©jĂ  en Recommends: en Etch) est d’autant plus nĂ©cessaire, sous peine d’obtenir l’erreur : PHP Fatal error:  _init() [<a href=’function.require’>function.require</a>]: Failed opening required ‘DB.php’ (include_path=’/usr/share/horde3/lib:.:/usr/share/php:/usr/share/pear’) in /usr/share/horde3/lib/Horde/DataTree/sql.php on line 1877

– Sympa : on attaque lĂ  le cauchemard de mes migrations. À chaque fois, tellement de soucis majeurs et mineurs, que j’ai l’impression d’ĂȘtre le seul Ă  utiliser ce paquet. Voici en vrac tous les soucis rencontrĂ©s : les accents dans les descriptions ont sautĂ©s (une sorte de double encodage) et cela a nĂ©cessitĂ© des corrections manuelles, la table logs_table doit ĂȘtre créée Ă  la main (j’utilise Sympa avec PostgreSQL), et enfin une typo surprenante un “GROUP BY” Ă  la place d’un “ORDER BY” (j’ai ouvert le bug #566252 Ă  ce sujet).

– Asterisk : on passe de la version 1.2 Ă  la version 1.4. Lors de la migration, j’ai constatĂ© un bug Ă©trange, le fichier modules.conf qui charge les modules additionnels a disparu. Du coup, sans lui, Asterisk ne charge pas les modules nĂ©cessaires (SIP, etc.). Il a donc fallu le restaurer.

– udev : le meilleur ami des sysadmins (ou pas). Si les migrations douloureuses Sarge->Etch sont loin derriĂšre nous, il reste nĂ©anmoins quelques blagues. La derniĂšre en date a Ă©tĂ© un renommage des interfaces rĂ©seau : eth0->eth1 et eth1->eth2. Classique mais Ă©tonnant, ce genre d’humour est sensĂ© ĂȘtre dĂ©passĂ© grĂące aux “persistent rules” qui nomment les interfaces en fonction de l’adresse MAC. À rester vigilant sur ce point avant le redĂ©marrage donc.

VoilĂ  pour les remarques. Vous noterez que je n’ai pas abordĂ© le noyau Linux. C’est parce que pour la majoritĂ© de nos serveurs, ils sont gĂ©rĂ©s de façons spĂ©cifiques (au lieu d’utiliser les noyaux officiels Debian). Ainsi, ils restent dans leur version actuelle (2.6.31 Ă  cette heure) pendant la migration. Bien sĂ»r, cela n’empĂȘche pas d’effectuer un redĂ©marrage de la machine suite Ă  la mise-Ă -jour : cela permet de s’assurer que tout est bien en place et le sera toujours aprĂšs un Ă©ventuel redĂ©marrage d’urgence.

Rendez-vous pour de prochaines migrations !

24 January, 2010 06:05PM by Gregory Colpart