secubox-openwrt/DOCS-fr/archive/BUILD_ISSUES.md
CyberMind-FR ccfb58124c docs: Add trilingual documentation (French and Chinese translations)
Add complete French (fr) and Chinese (zh) translations for all documentation:

- Root files: README, CHANGELOG, SECURITY, BETA-RELEASE
- docs/: All 16 core documentation files
- DOCS/: All 19 deep-dive documents including embedded/ and archive/
- package/secubox/: All 123+ package READMEs
- Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/

Total: 346 translation files created

Each file includes language switcher links for easy navigation between
English, French, and Chinese versions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-20 10:00:18 +01:00

196 lines
6.4 KiB
Markdown

# Problemes de Compilation & Solutions
> **Languages:** [English](../../DOCS/archive/BUILD_ISSUES.md) | Francais | [中文](../../DOCS-zh/archive/BUILD_ISSUES.md)
**Version:** 1.0.0
**Derniere mise a jour:** 2025-12-28
**Statut:** Actif
## Probleme Actuel: Aucun IPK Genere sur GitHub Actions
### Cause Racine
Le **SDK** OpenWrt ne peut pas compiler les dependances principales de LuCI (`lucihttp`, `cgi-io`) car il lui manque les en-tetes de developpement `ubus` necessaires. Lors de la compilation des packages SecuBox, le SDK essaie de compiler toutes les dependances depuis les sources, ce qui echoue avec:
```
ERROR: package/feeds/luci/lucihttp failed to build.
ubus_include_dir-NOTFOUND
```
### Pourquoi Cela Fonctionne Localement
Localement, vous avez probablement l'une de ces configurations:
1. **Arbre de compilation OpenWrt complet** - Possede tous les en-tetes et peut tout compiler
2. **ImageBuilder** - Utilise des packages pre-compiles, ne compile pas depuis les sources
3. **Dependances pre-installees** - lucihttp/cgi-io existent deja
### Pourquoi Cela Echoue sur GitHub Actions
GitHub Actions utilise le **SDK OpenWrt** qui:
- Peut compiler des packages avec du code compile
- Ne peut pas compiler certains packages principaux de LuCI (en-tetes manquants)
- Essaie de reconstruire toutes les dependances depuis les sources
## Solutions
### Option 1: Utiliser OpenWrt ImageBuilder (Recommande)
**Ideal pour:** Creer des images firmware avec SecuBox pre-installe
ImageBuilder utilise des packages pre-compiles et ne necessite pas de compilation:
```yaml
# Nouveau workflow utilisant ImageBuilder
- name: Download ImageBuilder
run: |
wget https://downloads.openwrt.org/releases/${VERSION}/targets/${TARGET}/${SUBTARGET}/openwrt-imagebuilder-*.tar.xz
tar xf openwrt-imagebuilder-*.tar.xz
- name: Add custom packages
run: |
mkdir -p imagebuilder/packages/custom
cp *.ipk imagebuilder/packages/custom/
- name: Build image
run: |
cd imagebuilder
make image PACKAGES="luci luci-app-secubox luci-app-*-dashboard"
```
**Avantages:**
- Aucun probleme de compilation
- Cree des images firmware completes
- Compilations rapides (utilise des binaires)
**Inconvenients:**
- Necessite de specifier l'appareil cible
- Pas adapte pour les compilations de packages multi-architecture
### Option 2: Utiliser le Systeme de Compilation OpenWrt Complet
**Ideal pour:** Controle complet, kernels personnalises, ou quand vous devez modifier des packages principaux
Cloner et compiler OpenWrt complet:
```yaml
- name: Clone OpenWrt
run: |
git clone https://github.com/openwrt/openwrt.git
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
- name: Add SecuBox packages
run: |
cp -r ../luci-app-* openwrt/package/
- name: Build
run: |
cd openwrt
make defconfig
make -j$(nproc)
```
**Avantages:**
- Peut tout compiler
- Controle complet sur la compilation
- Peut modifier les packages principaux
**Inconvenients:**
- Tres lent (1-2 heures par architecture)
- Necessite un espace disque important (30-50Go)
- Configuration complexe
### Option 3: Depot de Packages Uniquement (Alternative)
**Ideal pour:** Distribuer des packages que les utilisateurs installent sur des systemes OpenWrt existants
Creer un flux de packages personnalise:
```bash
# Sur votre serveur/GitHub Pages
mkdir -p packages/${ARCH}/secubox
cp *.ipk packages/${ARCH}/secubox/
scripts/ipkg-make-index packages/${ARCH}/secubox > Packages
gzip -c Packages > Packages.gz
```
Les utilisateurs ajoutent dans `/etc/opkg/customfeeds.conf`:
```
src/gz secubox https://yourdomain.com/packages/${ARCH}/secubox
```
**Avantages:**
- Pas de compilation necessaire (distribue les sources)
- Les utilisateurs compilent localement ou utilisent des binaires
- Mises a jour faciles
**Inconvenients:**
- Les utilisateurs doivent installer manuellement
- Ne fournit pas d'images firmware
### Option 4: Corriger la Compilation SDK (Tentative Actuelle)
Le workflow actuel tente des contournements:
1. Telecharger les index de packages
2. Configurer le SDK pour preferer les binaires (CONFIG_BUILDBOT=y)
3. Solution de repli vers le packaging direct si la compilation echoue
**Statut:** Experimental, peut ne pas fonctionner de maniere fiable
**Avantages:**
- Conserve la structure de workflow existante
- Compilations multi-architecture
**Inconvenients:**
- Fragile, depend des particularites du SDK
- Peut casser avec les mises a jour OpenWrt
- Non officiellement supporte
## Approche Recommandee
### Pour la Distribution de Packages
Utiliser l'**Option 3** (Depot de Packages) combinee avec l'**Option 1** (ImageBuilder pour les firmwares exemples):
1. **Distribuer les packages source** via les releases GitHub
2. **Fournir des .ipk pre-compiles** pour les architectures courantes (x86-64, ARM)
3. **Creer des firmwares exemples** avec ImageBuilder pour les appareils populaires
4. **Documenter l'installation** pour les utilisateurs qui veulent installer sur OpenWrt existant
### Etapes d'Implementation
1. **Creer un workflow de flux de packages** (remplace la compilation SDK actuelle)
2. **Ajouter un workflow ImageBuilder** pour les firmwares exemples (ESPRESSObin, x86-64, etc.)
3. **Mettre a jour le README** avec les instructions d'installation
4. **Tagger les releases** avec les sources et les binaires
## Prochaines Etapes
Pour implementer la solution recommandee:
```bash
# 1. Creer un nouveau workflow pour ImageBuilder
cp .github/workflows/build-secubox-images.yml .github/workflows/build-imagebuilder.yml
# Editer pour utiliser ImageBuilder au lieu de la compilation complete
# 2. Mettre a jour le workflow de compilation de packages pour creer un flux au lieu de compiler
# (Conserver la distribution des sources, sauter la compilation)
# 3. Mettre a jour la documentation
# Ajouter INSTALL.md avec des instructions pour differents scenarios
```
## Contournement Temporaire
Jusqu'a l'implementation de la solution appropriee, les utilisateurs peuvent:
1. **Telecharger les sources** depuis GitHub
2. **Compiler localement** en utilisant local-build.sh (necessite la configuration du SDK)
3. **Ou utiliser les compilations firmware existantes** (quand disponibles)
## References
- SDK OpenWrt: https://openwrt.org/docs/guide-developer/toolchain/using_the_sdk
- ImageBuilder OpenWrt: https://openwrt.org/docs/guide-user/additional-software/imagebuilder
- Flux de Packages: https://openwrt.org/docs/guide-developer/feeds