Création d’un package pour recalbox : ZELDA SOLARUS
-
Salut à tous, comme certains le savent déjà, je me suis lancer dans la création de package pour recalbox et j'ai décidé de commencer par le jeu Zelda Solarus DX ^^ J'ai commencé par m'inspirer du wiki qui conseille de prendre pour exemple le package emulationstation. Je me suis également inspiré de ce tuto: http://www.linuxembedded.fr/2011/03/ajouter-un-package-dans-buildroot-en-5-minutes/ Mais voilà dès le départ j'ai une erreur 404... j'en déduis que le lien que j'ai renseigné dans le fichier .mk a un problème, mais je ne vois pas lequel car celui-ci fonctionne bien avec un wget.. Voilà mon fichier : zeldasolarusdx.mk et voici le fichier Config.in dans le répertoire: Config.in je reconnais que j'ai pris des raccourcis drastiques au niveau des dépendances mais c'était déjà pour voir ce que ça donnait comme ça car sinon le make ne se lançait même pas si je laissais toutes les dépendances que je pensais nécessaire (je devais me tromper dans leur syntaxe..).. Je n'ai pas fait de patch (j'ai commenté cette partie du fichier mk d'origine d'émulationstation ).. et j'ai évidement mis à jour le Config.in à la racine du répertoire packages en plaçant zeldasolariusdx dans les sources des "games". Si quelqu'un a une piste, je suis preneur ^^ Bonne fin de soirée à tous
-
Bonjour je n'y connais rien mais pourquoi dans ton fichier mk tu utilises : https://github.com/christopho/solarus/archive à la place de https://github.com/christopho/solarus ?
-
Sans réelle raison mais tout simplement parce que le deuxième lien ne marchait pas non plus , et comme pour emulation station, c'est le répertoire archive qui est utilisé.. mais l'un comme l'autre me donnent une erreur 404, alors qu'un wget dans un terminal suivit du lien fonctionne.
-
Bonjour avec le wget tu utilises quel lien exactement ?
-
celui la: wget https://github.com/christopho/solarus/archive/v1.4.1.tar.gz (ps: j'ai mis à jour le pastebin de mon mk car je l'avais refait de mémoire hier soir et j'avais fait une erreur mais c'est bien le "bon" qui me donne une erreur 404.) pour info l'erreur 404 apparait quand le fait dans le répertoire recalbox-buildroot : make zeldasolarusdx je cois que je commence un peu à comprendre.. j'ai ce message d'erreur exactement:
~/recalbox-buildroot$ make zeldasolarusdx >>> zeldasolarusdx undefined Downloading /zeldasolarusdx-undefined.tar.gz: Schéma manquant. --2015-05-27 14:20:51-- http://sources.buildroot.net/zeldasolarusdx-undefined.tar.gz Résolution de sources.buildroot.net (sources.buildroot.net)... 176.9.16.109 Connexion vers sources.buildroot.net (sources.buildroot.net)|176.9.16.109|:80... connecté. requête HTTP transmise, en attente de la réponse... 404 Not Found 2015-05-27 14:20:51 ERREUR 404: Not Found.
pour moi il ne vas pas les chercher au bon en droit.. je ne dois pas avoir la bonne "règle" pour compiler zeldasolarusdx ..
-
Re, et si tu décommentes ses lignes dans ton mk, tu as le même message d erreur 404 :
#define ZELDA_SOLARUS_DX_RPI_FIXUP # $(SED) 's|/opt/vc/include|$(STAGING_DIR)/usr/include|g' $(@D)/CMakeLists.txt # $(SED) 's|/opt/vc/lib|$(STAGING_DIR)/usr/lib|g' $(@D)/CMakeLists.txt #endef #ZELDA_SOLARUS_DX_PRE_CONFIGURE_HOOKS += ZELDA_SOLARUS_RPI_FIXUP
-
oui exactement pareil. D'ailleurs j'avoue que j'ai du mal à bien comprendre ces ligne.. j'imagine que c'est ça qui fait que le code source est compilé spécifiquement pour le raspi et pas pour du x86 par exemple?
-
Yop je passe en coup de vent : ZELDA_SOLARUS_DX = GPL -> ZELDA_SOLARUS_DX_LICENCE = GPL renomme tout les ZELDA_SOLARUS_DX en ZELDASOLARUSDX car la variable doit avoir le même nom que le répertoire.
sed -i "s/ZELDA_SOLARUS_DX/ZELDASOLARUSDX/g" Config.in sed -i "s/ZELDA_SOLARUS_DX/ZELDASOLARUSDX/g" zeldasolarusdx.in
Et change dans config.in :
bool "Zelda Solarus DX"
en
bool "zeldasolarusdx"
Il faudra que tu ajoute les dépendances dans le config.in (celles que tu as mis dans DEPENDENCIES dans le mk)
-
Merci beaucoup retroboy d'être passé ^^ en effet, il y a pas mal de chose à coté desquels j'étais passé. en tout cas super pratique la commande sed !!! je teste ça dès que possible (demain au plus tard)
-
alors j'ai tenu compte de tes recommandations ^^ (et j'avais déjà mis le bon bool ^^) voila la liste de mes dépendances dans Config.in:
depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_SDL2 depends on BR2_PACKAGE_OPENAL (BIDON actuellement) depends on BR2_PACKAGE_LIBVORBIS depends on BR2_PACKAGE_LIBMODPLUG depends on BR2_PACKAGE_LUA_5_1 depends on BR2_PACKAGE_PHYSFS (BIDON actuellement)
en gros je les ai presque toutes trouvées dans le répertoire package et j'ai consulté les Config.in de chacune pour récupérerle bon nom BR2_PACKAGE_* Sauf pour OPENAL et pour PHYSFS que je n'ai pas trouvé dans les package.. j'ai récupéré la liste des dépendances dans ce fichier : https://github.com/christopho/solarus/blob/master/compilation.txt The following libraries are required to compile and to execute Solarus: SDL2 (2.0.1 or greater) SDL2main SDL2_image SDL2_imageSDL2_ttf openal vorbisfile modplug (0.8.8.4 or greater) lua5.1 (LuaJIT is recommended) physfs Est ce donc que ça signifie qu'il faut que je créer des packages pour physfs et pour openal pour les compiler avant zelda? (en espérant ne pas tomber à nouveau sur des nouvelles dépendances? ) j'ai une autre question : est ce que libvorbis et libmodplug sont bien la même chose que vorbisfile et modplug?
-
Hello Hellrider, pour les packages modplug etc.... si on se réfère à la page https://packages.debian.org/sid/modplug-tools on voit bien qu il y a libmodplug donc ça doit surement correspondre. Dans la logique si des packages n'apparaissent pas, il faut surement les ajouter. ps : j'ai réussi à installer correctement mon ubuntu sous VM, je vais pouvoir m essayer aussi aux packages dès que j aurai compris comment partir de A pour aller vers B en passant par C éventuellement lol.
-
salut, Alors j'ai commencé à créer le package openal et j'ai encore des soucis d'erreur 404. .. faut que je vérifie la syntaxe de mes fichiers.. par contre pour physfs, je ne sais pas quel projet je dois compiler.. une recherche sur github ne me renvoie que sur un wrapper, qui me renvoie ici: http://icculus.org/physfs/ Bonne journée et bon courage
-
Salut est ce que ceci pourrait taider http://icculus.org/pipermail/physfs/2012-October/001056.html
-
bien vu ^^ y a des chances , faut que je teste (peut être en fin d'après midi.. )
-
Hum hum, je suis vraiment pas loi.. la compilation de openal et de physfs se passe bien. A la compilation de Zelda par contre j'ai l'erreur suivante dans le fichier de log d'erreurs:
Linking C executable cmTryCompileExec2036229086 /home/franck/recalbox-buildroot/output/host/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec2036229086.dir/link.txt --verbose=1 /home/franck/recalbox-buildroot/output/host/usr/bin/arm-buildroot-linux-gnueabihf-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -mhard-float -mfloat-abi=hard -mfpu=neon-vfpv4 -mcpu=cortex-a7 -fsigned-char -O3 -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTryCompileExec2036229086.dir/CheckFunctionExists.c.o -o cmTryCompileExec2036229086 -rdynamic -lpthreads /home/franck/recalbox-buildroot/output/host/usr/lib/gcc/arm-buildroot-linux-gnueabihf/4.9.2/../../../../arm-buildroot-linux-gnueabihf/bin/ld: ne peut trouver -lpthreads collect2: erreur: ld a retourné 1 code d'état d'exécution make[2]: quittant le répertoire « /home/franck/recalbox-buildroot/output/build/zeldasolarusdx-1.4.1/CMakeFiles/CMakeTmp » make[1]: quittant le répertoire « /home/franck/recalbox-buildroot/output/build/zeldasolarusdx-1.4.1/CMakeFiles/CMakeTmp » make[2]: *** [cmTryCompileExec2036229086] Erreur 1 make[1]: *** [cmTryCompileExec2036229086/fast] Erreur 2
Des idées? J'ai ajouté libpthread-stubs dans le mk et dans dans les depends mais ça ne change rien mais désormais j'ai aussi ces messages là:
-- Found SDL2: /home/franck/recalbox-buildroot/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libSDL2main.a;/home/franck/recalbox-buildroot/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libSDL2.so;-lpthread CMake Error at /home/franck/recalbox-buildroot/output/host/usr/share/cmake-3.1/Modules/FindPackageHandleStandardArgs.cmake:138 (message): Could NOT find SDL2_image (missing: SDL2_IMAGE_INCLUDE_DIRS SDL2_IMAGE_LIBRARIES) Call Stack (most recent call first): /home/franck/recalbox-buildroot/output/host/usr/share/cmake-3.1/Modules/FindPackageHandleStandardArgs.cmake:374 (_FPHSA_FAILURE_MESSAGE) cmake/modules/FindSDL2_image.cmake:71 (find_package_handle_standard_args) cmake/AddDependencies.cmake:10 (find_package) CMakeLists.txt:6 (include)
Ca veut dire qu'il faut que je compile aussi
libsdl2-image-dev ?
(PS: n'hésitez pas à me le dire si vous préférez que j'utilise pastbin pour les messages d'erreur aussi.) -
Re @HellRider je suis allée voir le fichier compilation.txt sur le github de Zelda et il contient ceci
The following libraries are required to compile and to execute Solarus: 56 57 SDL2 (2.0.1 or greater) 58 SDL2main 59 SDL2_image 60 SDL2_ttf 61 openal 62 vorbisfile 63 modplug (0.8.8.4 or greater) 64 lua5.1 (LuaJIT is recommended) 65 physfs 66
il semblerait que tu es oublié effectivement des dépendances peut etre que ceci peut aider :
2.1 Linux users: 94 ----------------- 95 96 Just install the corresponding packages. For example, with Ubuntu or Debian: 97 98 build-essential cmake 99 libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libluajit-5.1-dev 100 libphysfs-dev libopenal-dev libvorbis-dev libmodplug-dev
-
oui je pensais que le SDL2 les incorporait d'office..
-
Je sens qu'on va y arriver à le voir sortir ce zelda solarus sur rasp ^^ :D. Bon courage HellRider! =D
-
Merci pour les encouragement ^^ Bon SDL2_IMAGE, c'est fait et SDL2_TTF aussi mais j'ai encore un message d'erreur lié à openal alors que je l'ai déjà compilé..
CMake Error at /home/franck/recalbox-buildroot/output/host/usr/share/cmake-3.1/Modules/FindPackageHandleStandardArgs.cmake:138 (message): Could NOT find OpenAL (missing: OPENAL_LIBRARY OPENAL_INCLUDE_DIR) Call Stack (most recent call first): /home/franck/recalbox-buildroot/output/host/usr/share/cmake-3.1/Modules/FindPackageHandleStandardArgs.cmake:374 (_FPHSA_FAILURE_MESSAGE) /home/franck/recalbox-buildroot/output/host/usr/share/cmake-3.1/Modules/FindOpenAL.cmake:101 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) cmake/AddDependencies.cmake:12 (find_package) CMakeLists.txt:6 (include) -- Configuring incomplete, errors occurred! See also "/home/franck/recalbox-buildroot/output/build/zeldasolarusdx-1.4.1/CMakeFiles/CMakeOutput.log". See also "/home/franck/recalbox-buildroot/output/build/zeldasolarusdx-1.4.1/CMakeFiles/CMakeError.log". make: *** [/home/franck/recalbox-buildroot/output/build/zeldasolarusdx-1.4.1/.stamp_configured] Erreur 1
voila openal.mk :
################################################################################ # # openal # ################################################################################ OPENAL_VERSION = 1.15.1 OPENAL_SOURCE = openal-soft-$(OPENAL_VERSION).tar.gz OPENAL_SITE = https://github.com/JogAmp/openal-soft/archive OPENAL_LICENCE = GPL OPENAL_DEPENDENCIES = define OPENAL_RPI_FIXUP.in $(SED) 's|/opt/vc/include|$(STAGING_DIR)/usr/include|g' $(@D)/CMakeLists.txt $(SED) 's|/opt/vc/lib|$(STAGING_DIR)/usr/lib|g' $(@D)/CMakeLists.txt endef OPENAL_PRE_CONFIGURE_HOOKS += OPENAL_RPI_FIXUP $(eval $(cmake-package))
la deuxième partie j'avoue que je n'en suis pas du tout certain.. (j'ai copié(immité) ce qu'il y avait dans emulation-station.. bon par contre la suite se fera à partir de lundi car je sens que je vais pas avoir le temps de m'y coller du we...
-
Salut il y a quoi dans ces logs ? See also « /home/franck/recalbox-buildroot/output/build/zeldasolarusdx-1.4.1/CMakeFiles/CMakeOutput.log ». See also « /home/franck/recalbox-buildroot/output/build/zeldasolarusdx-1.4.1/CMakeFiles/CMakeError.log ».