2015-12-30, 13:49
THIS WILL NEVER RUN ON ANY OLDER APPLE TV. APPLE TV 4 ONLY.
Now that that’s out of the way...
This thread’s purpose is to discuss the overall state of the port. Any discussion related to
support/testing in the comments here will be deleted. Please respect this.
To install this build: http://forum.kodi.tv/showthread.php?tid=254199
To help test: http://forum.kodi.tv/showthread.php?tid=254201
For addon help: http://forum.kodi.tv/showthread.php?tid=254200
TL;DR:
We are far away from Apple TV 4 being another supported platform, as functional as the current pre-alpha build is.
There is many things preventing things from progressing quicker, some listed below.
I’ve had a discussion with Memphiz and will be attempting to help him as much as possible with communication in hopes to free up his very small amount of free time to dedicate to coding and not having to respond to messages as much. Please, respect his time and others and read as much as possible before posting questions. We’re all here to learn.
TVOS is the name of the new operating system that the Apple TV 4 uses. Currently the Kodi for TVOS source code resides in a branch in Memphiz’s github, and is not in a state that can be 'merged into mainline’ meaning become another platform officially supported by Kodi. This thread, and others related, is the very early starting points of that eventual merging and explaining what the steps are needed to reach said goal.
MERGING VIABILITY:
For getting the atv4 platform into mainline Memphiz will try to split it up into 3 major Pull Requests:
a. All changes to the depends system which adds support for compiling arm64 for ios (which is a side product from tvos support) and support for compiling for arm64 tvos
b. All changes to core which maks Kodi arm64 compatible in general. From this point on we are also able to compile ARM64 ios builds of Kodi. This again is a side product from tvos support
c. All changes related to the TVOS platform.
Point c will be a tough one. The TVOS platform is different from any other ios platform we are dealing with. All the addon stuff and thumbnails, databases and everything beside XML files is currently saved to the Cache directory of the Apps Sandbox. There is only one small section of non-volatile memory where apps can save data. Its a normal directory accessible via filesystem but the TV operating system is allowed to delete its contents whenever it likes. And this section is limited to 500 KB (yes KB!). ATM MrMC uses this place for saving all the xml configurations only. It is no space in a filesystem as usual but uses some sort of TVOS API which is based on dictionaries. The change which is needed for supporting saving our XML files via this API is a bit clunky and i expect a lot of discussion and maybe a lot of refactoring until it is accepted for kodi mainline. (there is a chance i might be wrong here though...).
So basically ATM we can't guarantee that anything we save there will be there on the next time we are starting. (or maybe its deleted even while we are running - not sure how tvos handles this.)
The TVOS platform is different from any other ios platform we are dealing with.
BUILD SYSTEM ISSUES:
Memphiz has figured out dedicated xcode versions per job w/ jenkins now and updated the build tools on the slaves, so we can get tvos builds from his branch in jenkins. Automation!
There is no jenkins support for building for TVOS atm. Thats something Memphiz is trying to work out with a higher prio but it needs updated build tools and Memphiz also needs to ensure that current Jarvis branches are able to be built with the old build tools.
Because TVOS requires the latest xcode environment, and Jarvis is built using older, we can’t risk ’tainting’ the current environment by upgrading things to the latest. Once Jarvis is End of Life we can safely upgrade, but we don’t know how long that will take...
HOW THE PORT CAME ABOUT:
MrMC is a pretty extensive fork of Kodi and they did all the initial work getting Apple TV 4 up and running. Because it’s a fork, they can cut out anything they want, so while the codebase is similar, it’s not the same and thus much harder to cherry pick changes out. Consider MrMC the platform maintainer for the TVOS platform and Memphiz is doing his best to hold it together with Kodi mainline. The plan is to leave all this really platform dependent stuff like rendering, remote control, tvos main application stuff to MrMC currently. There is tons of stuff Memphiz would love to get the time to backport into Kodi, but he just started a new job, in a new city and is currently the only dev working on this.
HOW CAN I HELP?
Find devs! Kodi needs mac devs, now more than ever. Memphiz is the sole guy for Mac/iOS/TVOS/everything apple related, and he doesn’t even use an actual mac.
Documentation! If you find something I’m missing in this thread that’s needed, post a response.
Join #kodi-ios on freenode and help out.
Now that that’s out of the way...
This thread’s purpose is to discuss the overall state of the port. Any discussion related to
support/testing in the comments here will be deleted. Please respect this.
To install this build: http://forum.kodi.tv/showthread.php?tid=254199
To help test: http://forum.kodi.tv/showthread.php?tid=254201
For addon help: http://forum.kodi.tv/showthread.php?tid=254200
TL;DR:
We are far away from Apple TV 4 being another supported platform, as functional as the current pre-alpha build is.
There is many things preventing things from progressing quicker, some listed below.
I’ve had a discussion with Memphiz and will be attempting to help him as much as possible with communication in hopes to free up his very small amount of free time to dedicate to coding and not having to respond to messages as much. Please, respect his time and others and read as much as possible before posting questions. We’re all here to learn.
TVOS is the name of the new operating system that the Apple TV 4 uses. Currently the Kodi for TVOS source code resides in a branch in Memphiz’s github, and is not in a state that can be 'merged into mainline’ meaning become another platform officially supported by Kodi. This thread, and others related, is the very early starting points of that eventual merging and explaining what the steps are needed to reach said goal.
MERGING VIABILITY:
For getting the atv4 platform into mainline Memphiz will try to split it up into 3 major Pull Requests:
a. All changes to the depends system which adds support for compiling arm64 for ios (which is a side product from tvos support) and support for compiling for arm64 tvos
b. All changes to core which maks Kodi arm64 compatible in general. From this point on we are also able to compile ARM64 ios builds of Kodi. This again is a side product from tvos support
c. All changes related to the TVOS platform.
Point c will be a tough one. The TVOS platform is different from any other ios platform we are dealing with. All the addon stuff and thumbnails, databases and everything beside XML files is currently saved to the Cache directory of the Apps Sandbox. There is only one small section of non-volatile memory where apps can save data. Its a normal directory accessible via filesystem but the TV operating system is allowed to delete its contents whenever it likes. And this section is limited to 500 KB (yes KB!). ATM MrMC uses this place for saving all the xml configurations only. It is no space in a filesystem as usual but uses some sort of TVOS API which is based on dictionaries. The change which is needed for supporting saving our XML files via this API is a bit clunky and i expect a lot of discussion and maybe a lot of refactoring until it is accepted for kodi mainline. (there is a chance i might be wrong here though...).
So basically ATM we can't guarantee that anything we save there will be there on the next time we are starting. (or maybe its deleted even while we are running - not sure how tvos handles this.)
The TVOS platform is different from any other ios platform we are dealing with.
BUILD SYSTEM ISSUES:
Memphiz has figured out dedicated xcode versions per job w/ jenkins now and updated the build tools on the slaves, so we can get tvos builds from his branch in jenkins. Automation!
There is no jenkins support for building for TVOS atm. Thats something Memphiz is trying to work out with a higher prio but it needs updated build tools and Memphiz also needs to ensure that current Jarvis branches are able to be built with the old build tools.
Because TVOS requires the latest xcode environment, and Jarvis is built using older, we can’t risk ’tainting’ the current environment by upgrading things to the latest. Once Jarvis is End of Life we can safely upgrade, but we don’t know how long that will take...
HOW THE PORT CAME ABOUT:
MrMC is a pretty extensive fork of Kodi and they did all the initial work getting Apple TV 4 up and running. Because it’s a fork, they can cut out anything they want, so while the codebase is similar, it’s not the same and thus much harder to cherry pick changes out. Consider MrMC the platform maintainer for the TVOS platform and Memphiz is doing his best to hold it together with Kodi mainline. The plan is to leave all this really platform dependent stuff like rendering, remote control, tvos main application stuff to MrMC currently. There is tons of stuff Memphiz would love to get the time to backport into Kodi, but he just started a new job, in a new city and is currently the only dev working on this.
HOW CAN I HELP?
Find devs! Kodi needs mac devs, now more than ever. Memphiz is the sole guy for Mac/iOS/TVOS/everything apple related, and he doesn’t even use an actual mac.
Documentation! If you find something I’m missing in this thread that’s needed, post a response.
Join #kodi-ios on freenode and help out.