aassif / pvr.freebox

Kodi + Freebox TV
MIT License
64 stars 24 forks source link

Compilation Coreelec #58

Closed stephwildcode closed 3 years ago

stephwildcode commented 4 years ago

Bonjour,

Je suis débutant sur Coreelec et je souhaite compiler votre pvr.freebox sur un Beelink GT King Pro.

J'obtiens ceci :

CoreELEC:~/.opt/pvr.freebox # cmake -DADDONS_TO_BUILD=pvr.freebox -DADDON_SRC_PREFIX=$PREFIX -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX/kodi/addons -DPACKAGE_ZIP=1 $PREFIX/kodi/cmake/addons -- Addon source tarball caching is enabled -- ZIP packaging enabled (destination: /opt/pvr.freebox/build/zips) -- Building following addons: pvr.freebox -- Overriding addon source directory prefix: /opt -- -- ---- Preparing general dependencies ---- -- Processing /opt/kodi/cmake/addons/depends/common/kodi-platform/kodi-platform.txt -- kodi-platform url: https://github.com/xbmc/kodi-platform -- kodi-platform depends: tinyxml;p8-platform -- Processing /opt/kodi/cmake/addons/depends/common/p8-platform/p8-platform.txt -- p8-platform url: https://github.com/xbmc/platform.git -- Processing /opt/kodi/cmake/addons/depends/common/tinyxml/tinyxml.txt -- tinyxml url: http://mirrors.kodi.tv/build-deps/sources/tinyxml-2.6.2_2.tar.gz -- No platform specific file /opt/kodi/cmake/addons/depends/linux/CMakeLists.txt found -- CMake Error at CMakeLists.txt:441 (message): pvr.freebox did not match any of the supported addons. A list of supported addons can be viewed by building the 'supported_addons' target. Addon definitions are loaded from ADDONS_DEFINITION_DIR (/opt/kodi/cmake/addons/addons).

-- Configuring incomplete, errors occurred! See also "/opt/pvr.freebox/CMakeFiles/CMakeOutput.log". See also "/opt/pvr.freebox/CMakeFiles/CMakeError.log".

Le fichier /opt/kodi/cmake/addons/depends/linux/CMakeLists.txt n'existe pas sur mon installation. Comment puis-je l'ajouter ? (Le forum de coreelec est peut-être plus adapté.)

Merci

ninjaw commented 4 years ago

une simple box android avec une distibution linux+kodi ? etes vous sur d'avori besoin de compiler quoi que ce soit ? pvr.freebox est precompilé pour la grande majorité des android et linux

stephwildcode commented 4 years ago

Bonjour,

Je suis bien obligé de compiler les sources comme indiqué sur le wiki : https://github.com/aassif/pvr.freebox/wiki/%28FR%29-Compilation. Une fois le build effectué, je pourrai l'installer. Kodi est intégré de base à Coreelec mais je ne sais pas vraiment comment cela a été fait et comment faire en sorte de compléter l'installation par défaut. Le fichier /opt/kodi/cmake/addons/depends/linux/CMakeLists.txt n'existe pas sur mon installation. Une aide serait appréciée. Merci

stephwildcode commented 4 years ago

Je suis allé un peu plus loin mais je bloque toujours sur ceci :

CoreELEC:~/.opt/pvr.freebox # make package-addons [ 3%] Performing update step for 'p8-platform' [ 6%] Performing configure step for 'p8-platform' -- Configuring done -- Generating done -- Build files have been written to: /opt/pvr.freebox/build/p8-platform/src/p8-platform-build [ 9%] Performing build step for 'p8-platform' [100%] Built target p8-platform [ 12%] Performing install step for 'p8-platform' [100%] Built target p8-platform Install the project... -- Install configuration: "Release" -- Up-to-date: /opt/pvr.freebox/build/depends/lib/libp8-platform.a -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/os.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/posix/os-socket.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/posix/os-threads.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/posix/os-types.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/sockets/cdevsocket.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/sockets/socket.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/sockets/tcp.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/threads/atomics.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/threads/mutex.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/threads/threads.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/util/atomic.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/util/buffer.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/util/StringUtils.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/util/StdString.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/util/timeutils.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/p8-platform/util/util.h -- Up-to-date: /opt/pvr.freebox/build/depends/lib/pkgconfig/p8-platform.pc -- Up-to-date: /opt/pvr.freebox/build/depends/lib/p8-platform/p8-platform-config.cmake [ 15%] Completed 'p8-platform' [ 24%] Built target p8-platform [ 27%] Performing configure step for 'tinyxml' -- Configuring done -- Generating done -- Build files have been written to: /opt/pvr.freebox/build/tinyxml/src/tinyxml-build [ 30%] Performing build step for 'tinyxml' [100%] Built target tinyxml [ 33%] Performing install step for 'tinyxml' [100%] Built target tinyxml Install the project... -- Install configuration: "Release" -- Up-to-date: /opt/pvr.freebox/build/depends/include/tinystr.h -- Up-to-date: /opt/pvr.freebox/build/depends/include/tinyxml.h -- Up-to-date: /opt/pvr.freebox/build/depends/lib/libtinyxml.a [ 36%] Completed 'tinyxml' [ 48%] Built target tinyxml [ 51%] Performing update step for 'kodi-platform' [ 54%] Performing configure step for 'kodi-platform' -- Configuring done -- Generating done -- Build files have been written to: /opt/pvr.freebox/build/kodi-platform/src/kodi-platform-build [ 57%] Performing build step for 'kodi-platform' [100%] Built target kodiplatform [ 60%] Performing install step for 'kodi-platform' [100%] Built target kodiplatform Install the project... -- Install configuration: "Release" -- Up-to-date: /opt/pvr.freebox/build/depends/lib/libkodiplatform.a -- Up-to-date: /opt/pvr.freebox/build/depends/include/kodi/util/XMLUtils.h -- Up-to-date: /opt/pvr.freebox/build/depends/lib/pkgconfig/kodiplatform.pc -- Up-to-date: /opt/pvr.freebox/build/depends/lib/kodiplatform/kodiplatform-config.cmake [ 63%] Completed 'kodi-platform' [ 72%] Built target kodi-platform [ 75%] Performing forcebuild step for 'pvr.freebox' Force build of pvr.freebox [ 78%] Performing build step for 'pvr.freebox' make[4]: No targets specified and no makefile found. Stop. make[3]: [CMakeFiles/pvr.freebox.dir/build.make:114: pvr.freebox-prefix/src/pvr.freebox-stamp/pvr.freebox-build] Error 2 make[2]: [CMakeFiles/Makefile2:124: CMakeFiles/pvr.freebox.dir/all] Error 2 make[1]: [CMakeFiles/Makefile2:158: CMakeFiles/package-addons.dir/rule] Error 2 make: *** [Makefile:131: package-addons] Error 2

Avez-vous des idées ?

Merci

ninjaw commented 4 years ago

Je suis bien obligé de compiler les sources comme indiqué sur le wiki : https://github.com/aassif/pvr.freebox/wiki/%28FR%29-Compilation. Une fois le build effectué, je pourrai l'installer. Kodi est intégré de base à Coreelec mais je ne sais pas vraiment comment cela a été fait et comment faire en sorte de compléter l'installation par défaut. Le fichier /opt/kodi/cmake/addons/depends/linux/CMakeLists.txt n'existe pas sur mon installation. Une aide serait appréciée.

Ben non, toujours pas ??

aassif commented 4 years ago

Désolé, je suis en vacances 😋

Au risque de contredire @ninjaw, une compilation est peut-être nécessaire puisqu'il n'est plus question ici d'Android mais de Linux. Les paquets les plus proches seraient ceux compilés pour LibreELEC mais je ne les propose pas en architecture ARM.

Par contre, si le procédé est similaire à LibreELEC, bon courage ! Le cas échéant, il faut créer de toutes pièces un nouveau package qui pointe vers les sources GitHub. À en croire le log joint au message, je ne pense pas que le CMakeLists.txt manquant pose problème ; il faudrait plutôt respecter la toolchain de CoreELEC et employer leur système de compilation. Là encore, j'extrapole par rapport à mon expérience de LibreELEC.

stephwildcode commented 4 years ago

Désolé, je suis en vacances

Au risque de contredire @ninjaw, une compilation est peut-être nécessaire puisqu'il n'est plus question ici d'Android mais de Linux. Les paquets les plus proches seraient ceux compilés pour LibreELEC mais je ne les propose pas en architecture ARM.

Par contre, si le procédé est similaire à LibreELEC, bon courage ! Le cas échéant, il faut créer de toutes pièces un nouveau package qui pointe vers les sources GitHub. À en croire le log joint au message, je ne pense pas que le CMakeLists.txt manquant pose problème ; il faudrait plutôt respecter la toolchain de CoreELEC et employer leur système de compilation. Là encore, j'extrapole par rapport à mon expérience de LibreELEC.

Pour éclaire @ninjaw , j'utilise un Beelink GT King Pro mais j'ai installé Coreelec en lieu et place de l'android livré en standard. Le SOC est un Amlogic S922X-H donc c'est bien un processeur ARM avec un jeu d'instruction RISC. Il faut bien le compiler si je souhaite l'utiliser sur mon matériel. Je suis donc en phase avec @aassif :-) CoreELEC est un fork de LibreELEC, il est donc fort probable de devoir procéder de la même manière. Pour le fichier /opt/kodi/cmake/addons/depends/linux/CMakeLists.txt, il ne me pose plus de problème. Je suis désormais bloqué lors de l'exécution de cette commande :

make package-addons

make[4]: *** No targets specified and no makefile found. Stop.
make[3]: *** [CMakeFiles/pvr.freebox.dir/build.make:114: pvr.freebox-prefix/src/pvr.freebox-stamp/pvr.freebox-build] Error 2
make[2]: *** [CMakeFiles/Makefile2:124: CMakeFiles/pvr.freebox.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:158: CMakeFiles/package-addons.dir/rule] Error 2
make: *** [Makefile:131: package-addons] Error 2

Je vais me tourner vers la documentation de CoreELEC ou bien leur forum afin de glaner des informations sur leur toolchain et leur système de compilation. En effet, cela me semble réalisable même si @aassif me souhaite bon courage ;-) En tout cas merci pour votre retour, il fût rapide. Et, je suis preneur de vos lumières sur LibreELEC ou mieux CoreELEC afin d'arriver à builder.

tomamplius commented 4 years ago

Je suis allé un peu plus loin mais je bloque toujours sur ceci :

tu as fais quoi pour passé le premier problème? J'ai le meme en compilant sur ubuntu 20.04

tomamplius commented 4 years ago

J'ai réussi a arriver à la même étape que @stephwildcode avec les commandes suivantes avant le cmake de la doc :

mkdir $PREFIX/kodi/cmake/addons/addons/pvr.freebox/
echo pvr.freebox https://github.com/aassif/pvr.freebox Leia > $PREFIX/kodi/cmake/addons/addons/pvr.freebox/pvr.freebox.txt
echo all > $PREFIX/kodi/cmake/addons/addons/pvr.freebox/platforms.txt

J'ai maintenant la même erreur

[ 78%] Performing build step for 'pvr.freebox'
make[4]: *** Pas de cible spécifiée et aucun makefile n'a été trouvé. Arrêt.
make[3]: *** [CMakeFiles/pvr.freebox.dir/build.make:114 : pvr.freebox-prefix/src/pvr.freebox-stamp/pvr.freebox-build] Erreur 2
make[2]: *** [CMakeFiles/Makefile2:185 : CMakeFiles/pvr.freebox.dir/all] Erreur 2
make[1]: *** [CMakeFiles/Makefile2:219 : CMakeFiles/package-addons.dir/rule] Erreur 2
make: *** [Makefile:170 : package-addons] Erreur 2

le repertoire pvr.freebox-prefix/src/pvr.freebox-build/ est vide

tomamplius commented 4 years ago

J'ai réussi la compilation jusqu'au bout avec les commande suivantes @stephwildcode : tu me dis si ça marche?

git clone -b Leia https://github.com/xbmc/xbmc.git kodi
git clone -b Leia https://github.com/aassif/pvr.freebox.git
mkdir pvr.freebox/build/ && cd pvr.freebox/build/
cmake -DADDONS_TO_BUILD=pvr.freebox -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../kodi/addons -DPACKAGE_ZIP=1 ../../kodi/cmake/addons

Erreur qui semble liée à l'absence de fichier


mkdir ../../kodi/cmake/addons/addons/pvr.freebox
echo all > ../..//kodi/cmake/addons/addons/pvr.freebox/platforms.txt
echo pvr.freebox https://github.com/aassif/pvr.freebox Leia > ../../kodi/cmake/addons/addons/pvr.freebox/pvr.freebox.txt

on reprend la suite

cmake -DADDONS_TO_BUILD=pvr.freebox -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../kodi/addons -DPACKAGE_ZIP=1 ../../kodi/cmake/addons
make package-addons

Pour la compilation j'ai du installé 2 librairie :

apt install rapidjson-dev libssl-dev zlib1g-dev
stephwildcode commented 4 years ago

Salut tomamplius ! Merci pour ton retour. ça me donne une piste pour le faire tourner sur Coreelec.

Pour le moment, je n'ai pas trouvé les package rapidjson-dev libssl-dev zlib1g-dev sur Coreelec. J'ai donc toujours l'erreur :

[ 78%] Performing build step for 'pvr.freebox' make[4]: *** Pas de cible spécifiée et aucun makefile n'a été trouvé. Arrêt. make[3]: *** [CMakeFiles/pvr.freebox.dir/build.make:114 : pvr.freebox-prefix/src/pvr.freebox-stamp/pvr.freebox-build] Erreur 2 make[2]: *** [CMakeFiles/Makefile2:185 : CMakeFiles/pvr.freebox.dir/all] Erreur 2 make[1]: *** [CMakeFiles/Makefile2:219 : CMakeFiles/package-addons.dir/rule] Erreur 2 make: *** [Makefile:170 : package-addons] Erreur 2

Je vais devoir regarder s'il existe des tar.gz de rapidjson-dev libssl-dev zlib1g-dev et tenter de les compiler à la main sur Coreelec. En effet, la repo de package est beaucoup moins fournie que sur Ubuntu.

aassif commented 4 years ago

J'ai enfin le temps de répondre :)

Pour LibreELEC, je clone d'abord le projet : git clone --branch 9.2.4 https://github.com/LibreELEC/LibreELEC.tv.git

Ensuite, je crée un fichier packages/mediacenter/kodi-binary-addons/pvr.freebox/package.mk.

Enfin, je lance la compilation : PROJECT=RPi DEVICE=RPi2 ARCH=arm scripts/create_addon pvr.freebox

(et j'attends longtemps)

stephwildcode commented 4 years ago

J'ai enfin le temps de répondre :)

Pour LibreELEC, je clone d'abord le projet : git clone --branch 9.2.4 https://github.com/LibreELEC/LibreELEC.tv.git

Ensuite, je crée un fichier packages/mediacenter/kodi-binary-addons/pvr.freebox/package.mk.

Enfin, je lance la compilation : PROJECT=RPi DEVICE=RPi2 ARCH=arm scripts/create_addon pvr.freebox

(et j'attends longtemps)

Merci pour cette réponse. J'ai tenté sur mon beelink gt king en Coreelec. Cela ne fonctionne pas car le shell par défaut est /bin/sh et les scripts de build ont une syntaxe en /bin/bash. J'ai bien tenté de changer mon shell par défaut mais je n'ai pas abouti. Bref, je ne pense pas continuer car je vais quitter Free pour un autre FAI avec l'arrivée de la fibre dans mon quartier.

Beau boulot tout de même ce pvr.freebox, il m'avait l'air fort intéressant.

aassif commented 4 years ago

Effectivement l'arrivée de la fibre est un game changer :) Si d'aventure vous souhaitiez continuer, Il faut compiler sur une machine Linux et non sur la machine destination.