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

6.4 KiB

Problemes de Compilation & Solutions

Languages: English | Francais | 中文

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:

# 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:

- 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:

# 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:

# 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