Cahier des charges — qt6sermo
1. Contexte
Port de gtk3sermo vers Qt6 >= 6.2.0.
Binaire qt6sermo, coexistant avec gtk3sermo (GTK3).
2. Objectifs
- Créer des fenêtres Qt6 >= 6.2.0 depuis des scripts shell via XML
- Compatibilité syntaxe XML gtk3sermo 0.8.3 (100%)
- Sécurité : safe_popen, FORTIFY_SOURCE, PIE, RELRO
- Langage : C++
3. Widgets cibles (33)
<button>, <checkbox>, <colorbutton>, <combobox>, <comboboxtext>, <edit>, <entry>, <expander>, <fontbutton>, <frame>, <hbox>, <hscale>, <hseparator>, <list>, <menubar>, <menuitem>, <notebook>, <pixmap>, <progressbar>, <radiobutton>, <spinbutton>, <statusbar>, <table>, <terminal>, <text>, <timer>, <togglebutton>, <tree>, <vbox>, <vscale>, <vseparator>, <window>
4. Exigences de sécurité
| ID | Exigence | Niveau |
| SEC-1 | Aucun appel direct à system() ou popen() | Obligatoire |
| SEC-2 | Aucun strcpy/strcat/sprintf sans borne | Obligatoire |
| SEC-3 | -D_FORTIFY_SOURCE=3 | Obligatoire |
| SEC-4 | -fstack-protector-strong | Obligatoire |
| SEC-5 | -fPIE -pie (ASLR) | Obligatoire |
| SEC-6 | -Wl,-z,relro -Wl,-z,now | Obligatoire |
5. Livrables
| Livrable | Statut |
| Code source — infrastructure | ✅ Livré |
| widget_*.c pour 33 widgets | ⏳ En cours |
| Binaire compilé qt6sermo | ✅ Livré |
| Paquet .deb qt6sermo_1.0.2-haplo1 | ❌ Planifié |
| Documentation (ce site) | ✅ Livré |
6. Jalons
| Jalon | Description | État |
| J1 | Infrastructure et build system | ✅ |
| J2 | Widgets P1 (boutons, entrées, conteneurs) | ✅ |
| J3 | Widgets P2 (listes, menus, avancés) | ⏳ |
| J4 | Compilation sans erreur | ✅ |
| J5 | Tests fonctionnels (52/52 tests XML) | ✅ |
| J6 | Paquet .deb | ❌ |