Cahier des charges — gtk4sermo
1. Contexte
Port de gtk3sermo 1.0.0 vers GTK4 >= 4.6.0.
Binaire gtk4sermo, coexistant avec gtk3sermo (GTK3).
2. Objectifs
- Créer des fenêtres GTK4 >= 4.6.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 (47)
<aspectframe>, <button>, <calendar>, <checkbox>, <colorbutton>, <combobox>, <comboboxtext>, <drawingarea>, <edit>, <entry>, <eventbox>, <expander>, <filechooser>, <flowbox>, <fontbutton>, <frame>, <hbox>, <hscale>, <hseparator>, <image>, <infobar>, <levelbar>, <linkbutton>, <list>, <menubar>, <menuitem>, <notebook>, <overlay>, <password>, <pixmap>, <progressbar>, <pulse>, <radiobutton>, <revealer>, <searchentry>, <spinbutton>, <spinner>, <stack>, <statusbar>, <switch>, <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 50 widgets | ⏳ En cours |
| Binaire compilé gtk4sermo | ✅ Livré |
| Paquet .deb gtk4sermo_1.1.4-1 | ✅ Livré |
| 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 | ❌ |
| J6 | Paquet .deb | ❌ |