Bonjour,
Je signale ici plusieurs points rencontrés lors de la compilation de SALOME 9.15.0 native DB13 sous Debian 13, afin de contribuer à l’amélioration de l’installation sur cette plate-forme. C’est l’IA qui m’a aidé à installer et qui a rédigé le mesage ci-dessous. Je lui ai demandé de retirer tout ce qui avait déjà été publié sur ce site.
—————
Configuration utilisée :
-
Distribution : Debian 13
-
Archive : SALOME-9.15.0-native-DB13-SRC
-
Python système : 3.13
-
Compilation par SAT avec l’application
SALOME-9.15.0-native
La compilation complète a finalement réussi et l’interface graphique se lance avec ./binsalome, mais plusieurs corrections ont été nécessaires.
python3-nosesignalé manquant par--check_system
./sat/sat config SALOME-9.15.0-native --check_system signalait :
python3-nose : KO
Sur Debian 13, le paquet python3-nose n’est pas disponible dans les dépôts standard. La compilation a néanmoins pu continuer, car SALOME fournit aussi nose_py3.
Suggestion : adapter la liste des dépendances Debian 13 pour éviter de signaler python3-nose comme dépendance système obligatoire, ou le remplacer par le mécanisme déjà fourni par nose_py3.
mcut: échec surutest, branchemasterinexistante
La compilation de mcut échouait pendant la récupération de utest :
fatal : référence invalide : master
Failed to checkout tag: 'master'
Fichier concerné :
SOURCES/mcut/tests/CMakeLists.txt
Bloc initial :
FetchContent_Populate(
utest
GIT_REPOSITORY https://github.com/sheredom/utest.h.git
GIT_TAG master
GIT_PROGRESS FALSE
)
Correctif appliqué :
FetchContent_Populate(
utest
GIT_REPOSITORY https://github.com/sheredom/utest.h.git
GIT_TAG origin/main
GIT_PROGRESS FALSE
)
Suggestion : remplacer GIT_TAG master par une référence valide, idéalement un identifiant de révision fixe plutôt que origin/main, afin de rendre la compilation reproductible.
mcut: échec dansmiosurgetlineetssize_t
Après correction du point précédent, mcut échouait ensuite dans le code C de mio :
unknown type name ‘ssize_t’
implicit declaration of function ‘getline’
Le correctif appliqué a été d’ajouter _GNU_SOURCE aux options C dans :
PROJECT/products/compil_scripts/mcut.sh
Après :
CMAKE_OPTIONS=
ajout de :
CMAKE_OPTIONS+=" -DCMAKE_C_FLAGS:STRING=-D_GNU_SOURCE"
Suggestion : ajouter cette option dans le script de compilation de mcut, ou corriger les sources mio pour inclure les en-têtes et macros appropriés.
PERSALYS: échec Sphinx avec erreur d’encodage ASCII
La compilation de PERSALYS échouait pendant la génération de la documentation Sphinx :
Encoding error:
'ascii' codec can't decode byte 0xc3 in position 1172: ordinal not in range(128)
La locale utilisateur était pourtant bien en UTF-8 :
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
Fichier modifié :
PROJECT/products/compil_scripts/PERSALYS-v18.0.sh
Bloc autour de USE_SPHINX modifié ainsi :
elif [ "$DIST_NAME$DIST_VERSION" == "DB13" ]; then
CMAKE_OPTIONS+=" -DUSE_SPHINX=OFF" # Sphinx fails with an ASCII decoding error on Debian 13
else
CMAKE_OPTIONS+=" -DUSE_SPHINX=ON"
fi
Après cette modification, PERSALYS a compilé.
Suggestion : désactiver Sphinx par défaut pour Debian 13, comme c’est déjà fait pour certaines autres plates-formes, ou corriger l’environnement d’exécution de Sphinx pour garantir un encodage UTF-8.
PyQt5.sipmanquant pendant la compilation deGUI
Pendant la compilation de GUI, l’erreur suivante apparaissait :
ModuleNotFoundError: No module named 'PyQt5.sip'
Le fichier sip.cpython-313-x86_64-linux-gnu.so existait dans :
INSTALL/PyQt/sip/lib/python3.13/site-packages/dist-packages/PyQt5/
INSTALL/sip/lib/python3.13/site-packages/dist-packages/PyQt5/
mais il manquait dans le paquet PyQt5 principal :
INSTALL/PyQt/lib/python3.13/site-packages/PyQt5/
Correctif appliqué :
cp -av \
INSTALL/PyQt/sip/lib/python3.13/site-packages/dist-packages/PyQt5/sip.cpython-313-x86_64-linux-gnu.so \
INSTALL/PyQt/lib/python3.13/site-packages/PyQt5/
Après cela, GUI a compilé.
PyQt5.sipmanquant au lancement avecbinsalome
Après compilation complète, ./binsalome lançait l’interface graphique, mais affichait encore :
Traceback (most recent call last):
File ".../BINARIES-DB13/GUI/lib/python3.13/site-packages/salome/salome_pluginsmanager.py", line 94, in <module>
import SalomePyQt
ModuleNotFoundError: No module named 'PyQt5.sip'
Vérification :
BINARIES-DB13/PyQt/sip/lib/python3.13/site-packages/dist-packages/PyQt5/sip.cpython-313-x86_64-linux-gnu.so
BINARIES-DB13/sip/lib/python3.13/site-packages/dist-packages/PyQt5/sip.cpython-313-x86_64-linux-gnu.so
Mais le module manquait dans :
BINARIES-DB13/PyQt/lib/python3.13/site-packages/PyQt5/
Correctif final appliqué :
cd SALOME-9.15.0-native-DB13-SRC
PYQT5_MAIN="BINARIES-DB13/PyQt/lib/python3.13/site-packages/PyQt5"
SIP_SRC="BINARIES-DB13/PyQt/sip/lib/python3.13/site-packages/dist-packages/PyQt5/sip.cpython-313-x86_64-linux-gnu.so"
SIP_DST="$PYQT5_MAIN/sip.cpython-313-x86_64-linux-gnu.so"
ln -srf "$SIP_SRC" "$SIP_DST"
Après ce lien symbolique, ./binsalome fonctionne sans cette erreur.
Suggestion : lors de la création de BINARIES-DB13, faire en sorte que PyQt5.sip soit accessible depuis le paquet PyQt5 principal utilisé au lancement, ou ajouter automatiquement le répertoire PyQt/sip/lib/python3.13/site-packages/dist-packages au PYTHONPATH.
- Autres points rencontrés mais déjà proches de discussions existantes
J’ai aussi rencontré des points déjà relativement documentés dans le forum :
-
OpenTURNS /
otfftw: nécessité d’installerlibfftw3-dev. -
ParaView : reprise possible par compilation ciblée du produit, sans nettoyage complet dans mon cas.
-
PERSALYS : désactivation de Sphinx déjà utilisée sur d’autres plates-formes.
Conclusion :
SALOME 9.15.0 native DB13 fonctionne finalement sous Debian 13 après ces corrections. Les deux points les plus spécifiques à corriger dans l’empaquetage DB13 semblent être :
-
la gestion de
PyQt5.sipdansINSTALLpuis dansBINARIES-DB13/PyQt/lib; -
la compilation de
mcut, avecutestetmio.
Ces modifications pourraient être intégrées dans les scripts SAT afin de rendre l’installation Debian 13 reproductible.