Open sy6sy2 opened 5 years ago
I have built all the pvr addons without issue.
@Fuzzard I don’t understand why you have PVR build issues.
Question: How to build binary addons from scratch without removing dependencies? The make -C tools/depends/target/binary-addons clean
do not seems to clear everything for me.
https://paste.ubuntu.com/p/yjR68bDVhx/
Its because they arent being built for arm64 phunky. check the PR i put in for binary addons. in the 2 cmkae includes, they werent udpated to accomodate tvos. Kambala had it half done in his branch, but none of it was done in Sylvains.
Try that PR (https://github.com/SylvainCecchetto/xbmc/pull/28) and then build. If you could then do a full kodi build and deploy to an ATV, im hoping you will then have pvr.demo available.
Need to confirm if im on the right track before i worry about the build failures. In theory the sucessful ones should be brought into the build and show as available on the real hardware, but i may have missed a cmake file somewhere else.
The build failures may just be due to an incorrect cflag or something, so i wouldnt worry too much yet. Can compare against other types that use arm64 architecture if we can confirm addons are being included with current changes. But priority is getting something as simple as pvr.demo to be built and available.
Thanks!
@SylvainCecchetto you can run this command to clear the binary addons for a fresh run:
rm tools/depends/target/binary-addons/.installed-appletvos*
Then just run the binary addons build again.
have added a clean/distclean PR #31 to the binary-addons make file. works ok in my testing, give it a try
Merged. Thank you!
I tried from scratch and updated the description checkboxes according to what I get in $KODI/addons
after make -C tools/depends/target/binary-addons
.
Failed here:
Scanning dependencies of target visualization.spectrum
[ 60%] Creating directories for 'visualization.spectrum'
[ 60%] No download step for 'visualization.spectrum'
[ 60%] No patch step for 'visualization.spectrum'
[ 60%] No update step for 'visualization.spectrum'
[ 60%] Performing configure step for 'visualization.spectrum'
-- The C compiler identification is AppleClang 10.0.1.10010046
-- The CXX compiler identification is AppleClang 10.0.1.10010046
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Checking to see if CXX compiler accepts flag -flto
-- Checking to see if CXX compiler accepts flag -flto - yes
-- Found PkgConfig: /Users/Shared/xbmc-depends/x86_64-darwin18.5.0-native/bin/pkg-config (found version "0.28")
-- Checking for module 'glesv2'
-- No package 'glesv2' found
-- Could NOT find OpenGLES2 (missing: OPENGLES2_egl_LIBRARY)
CMake Error at CMakeLists.txt:70 (message):
No rendering API found. Bailing
-- Configuring incomplete, errors occurred!
See also "/Users/sylvain/Kodi_dev/kodi/tools/depends/target/binary-addons/appletvos12.2_arm64-target-debug/visualization.spectrum-prefix/src/visualization.spectrum-build/CMakeFiles/CMakeOutput.log".
make[4]: *** [visualization.spectrum-prefix/src/visualization.spectrum-stamp/visualization.spectrum-configure] Error 1
make[3]: *** [CMakeFiles/visualization.spectrum.dir/all] Error 2
make[2]: *** [CMakeFiles/visualization.spectrum.dir/rule] Error 2
make[1]: *** [visualization.spectrum] Error 2
touch .installed-appletvos12.2_arm64-target-debug
(Maybe it's better to wait until the modifications of https://github.com/SylvainCecchetto/xbmc/issues/19#issuecomment-483669519 will be done before trying again?)
Yes, I created to PR on an addon to solve this. Depending on the outcome of the Rechi/Memphiz review on os platform changes here may not be required.
Some addons use os platform = ios
If we revert back to the single ios platform, there is a simple solution to that.
https://github.com/fuzzard/xbmc/commit/7c036b5027732ddc152f514f7e93364a69abce28
Check out the changes in /tools/depends/target/Toolchain.cmake.in for how it could be handled.
With ATV-PR-depends
branch I was able to build all binary addons with make -C tools/depends/target/binary-addons
command without any error.
But don't know if it is normal but some binary add-on are missing from the $KODI/addons
directory like IPTVSimple.
I don’t see iptvsimple either. I think once the cmake changes are made all the binary addons won’t build again 😉
kodi-platform - https://github.com/xbmc/kodi-platform/pull/29
the above fixes vfs.rar vfs.nfs pvr.zattoo pvr.wmc pvr.vuplus pvr.vdr.vnsi pvr.teleboy pvr.sledovanitv.cz pvr.pctv pvr.octonet pvr.nextpvr pvr.mediaportal.tvserver pvr.iptvsimple pvr.hts pvr.hdhomerun pvr.dvbviewer pvr.dvblink pvr.argustv
visualisation.spectrum - https://github.com/xbmc/visualization.spectrum/pull/26 game.libretro.mrboom - https://github.com/kodi-game/game.libretro.mrboom/pull/7 game.libretro.2048 - https://github.com/kodi-game/game.libretro.2048/pull/9
Still outstanding
these 3 are all find openssl failures from cmake. At a guess right now, the most likely fix would be to create a findOpenSSL.cmake file to hint towards sdk build root.
And this one:
visualisation.waveform - https://github.com/xbmc/visualization.waveform/pull/20
With Open ssl it's built as part of kodi, why would the hint not be needed on other platforms?
no idea, havent had time to look into it yet. All i know is it fails to find openssl
I added a feature to a pvr addon and ran into the same issue, I could get it to build locally adding some symlinks but never got it to build on jenkins. Would be interested in the solution.
https://github.com/xbmc/vfs.libarchive/pull/29 https://github.com/xbmc/vfs.sftp/pull/27
The final issue with the vfs plugins is kodi has a mirror of supposedly openssl 1.1.1, however this mirror does not have a commit https://github.com/openssl/openssl/commit/ca811248d838058c13236a6c3b688e0ac98c02c8 that is in the openssl 1.1.1 stable branch
This commit fixes the no fork error in apps/ocsp.c file
apps/ocsp.c:947:23: error: 'fork' is unavailable: not available on tvOS switch(fpid = fork()) { ^ ideally we want team kodi to update that mirror to a version that incorporates the current openssl 1.1.1-stable branch
Nice find.
One final thing for vfs.sftp
Need to patch fork() and execv() out. Will need to PR the below to https://github.com/xbmc/vfs.sftp/tree/Leia/depends/common/libssh as a patch
--- socket.c 2019-05-25 20:27:38.000000000 +1000
+++ socket_tvos.c 2019-05-25 20:23:05.000000000 +1000
@@ -887,7 +887,7 @@
dup2(out,2);
close(in);
close(out);
- execv(args[0],(char * const *)args);
+// execv(args[0],(char * const *)args);
exit(1);
}
@@ -920,7 +920,7 @@
}
SSH_LOG(SSH_LOG_PROTOCOL,"Executing proxycommand '%s'",command);
- pid = fork();
+ pid = 1;
if(pid == 0){
ssh_execute_command(command,out_pipe[0],in_pipe[1]);
}
Have a fully built binary addon tree after all of the above.
Should that not be in the Matrix branch instead of Leia, or maybe it’s master for Matrix.
It's not a pr so doesn't matter right now
vfs.libarchive also needs some more changes. again around the fork issue. Wondering if it may be best to add a platform define for -DHAVE_FORK=0, as both openssl, libarchive look for that define natively to skip codepaths with fork usage.
An issue to list each binary addon that fail to build
Built successfully: