Commit graph

4 commits

Author SHA1 Message Date
Votre Nom
7413745dbe 🎉 Phase 13.2.a — wl_output v3 complet (gating v1/v2/v3 validé en natif)
Dette protocolaire transversale comblée : wl_output n'était pas déclaré
comme global, plusieurs toolkits client (sctk, GTK, Qt) le considèrent
implicitement requis. Maintenant exposé à v3 avec gating conforme :

- geometry, mode : envoyés à toutes les versions (>= 1)
- scale : seulement si bind >= 3 (gating conservateur)
- done : seulement si bind >= 2

Mode flags = CURRENT | PREFERRED, refresh 60 000 mHz, scale_factor=1,
transform Normal, subpixel Unknown, make=Redox, model=redox-wl-output:0.
Position (0,0), single output, taille pixel issue de screen_w/screen_h
(setté par set_screen_size au boot compositor).

Nouveau crate de validation : redox-wl-test-wl-output. Deux niveaux :
1. Client autonome pour test runtime dans QEMU (bind aux 3 versions,
   dump events, PASS/FAIL via exit code)
2. Test natif (cargo test, tourne sur l'hôte sans QEMU) qui simule
   serveur+client en-process via UnixStream::pair() et valide les 11
   assertions du gating. Vérifié PASS le 2026-05-16 sur CachyOS.

Le test natif sert de garde-fou anti-régression pour CI ultérieur. Plus
besoin de relancer QEMU pour valider ce path.

run-qemu.sh : copie maintenant aussi le test client si compilé (skip
silencieux sinon).

Leyoda 2026 – GPLv3
2026-05-16 12:51:11 +02:00
Votre Nom
095d7e5550 Phase 13.1.c — rapport upstream bug B.2 ion + warn image étroite (B.4)
B.2 (ion page fault) : pas fixable dans ce repo. Source d'ion clonée
depuis upstream et inspectée : pas de commit récent visant ce pattern
de crash, binaire stripped sur l'image (impossible de mapper RIP=0x2335ae
à une fonction sans non-stripped build). Rapport upstream-ready rédigé
dans docs/phase13-1-c-ion-bug-b2-upstream.md, à coller sur
gitlab.redox-os.org/redox-os/ion quand on aura un compte.

Bonus diagnostic noté : warning relibc « Cancellation for unknown id »
apparaît juste avant le crash ion, peut être lié à un side-effect dans
procmgr (à investiguer côté relibc aussi).

Workaround documenté pour utilisateurs : quitter les clients background
AVANT le serveur Wayland (ESC sur le client, puis Ctrl+Q sur le compo).

B.4 (image étroite) : run-qemu.sh warn maintenant si harddrive.img <
4 GiB, avec les commandes de resize prêtes à copier-coller. Continue
sans bloquer (image actuelle de l'utilisateur fait 10 GiB, no-op pour
notre setup, mais utile pour quelqu'un qui clone le repo et utilise
l'image desktop par défaut de Redox.)

Leyoda 2026 – GPLv3
2026-05-16 11:48:14 +02:00
Votre Nom
18391c85f7 🎉 Phase 13.1.b — simple_window upstream validé runtime sur Redox
4 bugs identifiés et corrigés grâce au client tiers :
- ESC mangée par le compositor au lieu d'être forwardée (raccourci compo
  déplacé sur Ctrl+Q + tracking ctrl_held)
- Cursor accumulait les deltas PS/2 hors-écran (ajout screen_w/h +
  clamp_cursor + set_screen_size au boot)
- Keycode envoyé scancode+8 au lieu d'evdev brut (bug racine — le +8
  est entre evdev et X11, pas entre PS/2 et evdev)
- Event loop client ne tolérait pas Interrupted/BrokenPipe transitoires
  → FAIL au lieu de PASS sur sortie normale (5e adaptation Redox côté
  client, upstream-compatible)

Plus : tick log compo passé en debug! pour silencer la console série,
run-qemu.sh durci (check /dev/fuse, IMAGE/REDOXFS overridables).

6/6 checkpoints 13.1 verts. Bugs secondaires (curseur stuck en bas-droite,
ion page fault sur broken pipe d'un job background) listés dans le doc
pour follow-up en 13.1.c.

Leyoda 2026 – GPLv3
2026-05-16 10:59:35 +02:00
Votre Nom
0d8032b5ff Phase 13.1 — script run-qemu.sh pour le test runtime
Bootstrap automatique des étapes 1 et 2 de la procédure 13.1 :
mount harddrive.img via redoxfs (FUSE) → copy compositor + client
dans /usr/bin → umount → exec make qemu.

Sécurité :
- set -euo pipefail
- trap EXIT/INT/TERM garantit l'umount même sur Ctrl+C
- pré-vérifs sur les 4 fichiers requis (image, redoxfs, 2 binaires)
- mountpoint -q + boucle 5 s pour confirmer le mount FUSE
- sync avant umount

Options :
- ./run-qemu.sh             cycle complet
- ./run-qemu.sh --no-qemu   juste mount + copy + umount (CI / itération)
- ./run-qemu.sh --help      affiche le bloc de doc en tête de fichier
- REDOX_SRC=... override le chemin du checkout redox-src

Une fois Redox bootée : Ctrl+Alt+F2 → root/password →
RUST_LOG=info redox-wl-compositor & sleep 1 ; redox-wl-real-client-simple-window

Leyoda 2026 – GPLv3
2026-05-15 08:37:57 +02:00