sy6sy2 / xbmc

Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS and Windows.
https://kodi.tv/
Other
6 stars 1 forks source link

Pull requests summary #55

Closed sy6sy2 closed 4 years ago

sy6sy2 commented 5 years ago

Disclaimer:

Kodi 19 for Apple TV is still in development and many things do not work yet. If you want a daily Kodi app please follow this tutorial. If you really want to try Kodi 19 from one of the above branches (maybe to find any bug or to help in the development), be sure to have the necessary skills to do it and do not expect any "basic" support here. And last but not least, please do not share any generated deb from this branches! Official Kodi 19 version for Apple TV will be available for end users sooner or later, please be patient and use Kodi 17.

Just a summary to follow our current workflow/plan (I will try to keep it updated with all references) with the needed order.

  1. [Apple TV] Tools and dependencies support - https://github.com/xbmc/xbmc/pull/15919

    • Status: merged
    • Description: Add tvOS support to build tools and decencies
    • Change:
      • Add tvOS to tools/depends/configure.ac (OS is set to ios and TARGET_PLATFORM is set to appletvos)
      • Fix OpenSSL tvOS build
      • Add doc for tvOS
      • Add Jenkins file conf to build dependencies for tvOS
  2. [iOS] backport audio sink from MrMC - https://github.com/xbmc/xbmc/pull/16015

    • Status: open
    • Description: Backport of iOS audio sink from MrMC project. Removes dependency on legacy AudioToolbox framework (namely, AudioSession* functions) in favour of AVFoundation framework.
    • Change:
      • File xbmc/cores/AudioEngine/Sinks/AESinkDARWINIOS.mm
  3. [iOS] remove some legacy code - https://github.com/xbmc/xbmc/pull/16017

    • Status: merged
    • Description: Removes runtime checks for class/method presence that now always evaluate to true and pre-iOS 6 orientation code.
    • Change:
      • Files in xbmc/platform/darwin/ios/
  4. [ios] Move keyboard and keyboardview to ios-common - https://github.com/xbmc/xbmc/pull/16018

    • Status: merged
    • Description: Common keyboard related code moved to ios-common
    • Change:
      • Moved common keyboard files sued by both iOS and tvOS in ios-common folder
  5. [ios] change to darwin_embedded from ios for CORE_SYSTEM_NAME + platform defines - https://github.com/xbmc/xbmc/pull/16039

    • Status: merged
    • Description: We will use TARGET_DARWIN_EMBEDED for both iOS and tvOS so we firstly need to adapt iOS code before add tvOS support. (We need to follow Rechi advice from here https://github.com/xbmc/xbmc/pull/15956#discussion_r279653063)
    • Change:
      • CORE_SYSTEM_NAME: ios --> darwin_embedded
      • CORE_PLATFORM_NAME --> ios (and later tvos with Apple TV)
      • define TARGET_DARWIN_EMBEDED for both iOS and later tvOS
      • define TARGET_DARWIN_IOS for iOS only
    • Comment: @fuzzard propose to adapt and use its branch here https://github.com/fuzzard/xbmc/commits/master_darwin-embedded for this PR --> Done
    • Addons PRs that need to be merged:
      • xbmc/platform#5 Merged
      • xbmc/kodi-platform#29 Merged
      • kodi-game/game.libretro.2048#9 Merged
      • kodi-game/game.libretro.mrboom#7 Merged
      • xbmc/visualization.waveform#20 Merged
      • xbmc/repo-binary-addons#123 Merged
      • fetzerch/kodi-game-scripting#64 Merged
      • xbmc/vfs.sftp#28 Merged
      • xbmc/vfs.libarchive#30 Merged
      • xbmc/visualization.spectrum#27 Merged
  6. [Apple TV] tvOS support for Kodi (WIP) - https://github.com/xbmc/xbmc/pull/15956

    • Status: open
    • Description: Add support for tvOS to Kodi
    • Change:
      • Usage of CORE_SYSTEM_NAME = darwin_embedded and CORE_PLATFORM_NAME = tvos
      • Usage of TARGET_DARWIN_EMBEDED and TARGET_DARWIN_TVOS
      • Toolchain
      • Specific tvOS files
  7. [iOS] migrate to Launch Screen storyboard - https://github.com/xbmc/xbmc/pull/16160

    • Status: merged
    • Description: Modern way of showing launch image on iOS is using storyboard as opposed to the old-school set of static launch images
    • Dependencies: https://github.com/xbmc/xbmc/pull/16259 before merge
  8. [ios] enable cmakebuildsys to generate xcodeproject - https://github.com/xbmc/xbmc/pull/16259

    • Status: merged
    • Description: Adds generator option (GEN) for cmakebuildsys. Updated ios build docs to use cmakebuildsys for xcode/xcodebuild build instructions. Also includes support building binary addons.
  9. [iOS] separate storage provider - https://github.com/xbmc/xbmc/pull/16374

    • Status: merged
    • Description: Splits DarwinStorageProvider into OSX and iOS implementation and also adds free/total space display to iOS.
  10. [darwin] convert Objective-C code to ARC - https://github.com/xbmc/xbmc/pull/16399

    • Status: merged
    • Description: This PR converts macOS and iOS objc code to ARC (Automated Reference Counting). Also, to be compatible with ARC, old hack to intercept hardware keyboard arrows using private API has been replaced with the SDK-provided solution.
  11. [kodi-platform] Update kodi-platform sha for PR29 - https://github.com/xbmc/xbmc/pull/16404

    • Status: Merged
    • Description: Update the SHA for kodi-platform after xbmc/kodi-platform#29 was merged.
  12. [addon] fix ios runtime failure after PR 14908 - https://github.com/xbmc/xbmc/pull/16397

    • Status: Merged
    • Description: ios fails to run due to system addons not loading following cpluff removal PR #14908 + darwin_embedded PR change #16039
  13. [p8-platform] Update p8-platform sha for PR5 - https://github.com/xbmc/xbmc/pull/16417

    • Status: Merged
    • Description: Update the SHA for p8-platform after xbmc/platform#5 was merged.
  14. [settings/cosmetic] Replace "computer" by "device" in setting help text - https://github.com/xbmc/xbmc/pull/16487

    • Status: Merged
    • Description: As proposed by @fuzzard in SylvainCecchetto#70, the word "device" seems to be better and more generic that "computer"

Feel free to ask me to modify this description!

fuzzard commented 5 years ago

For 4 i have a branch based off master with only ios changes

https://github.com/fuzzard/xbmc/commits/master_darwin-embedded

Just doing a full ios build to make sure no silly mistakes, then ill PR to master

sy6sy2 commented 5 years ago

Do you mean for point 5.?

phunkyfish commented 5 years ago

Ya, point 5 make sense. As you already have a PR for 4 and it’s merged 😉

Do you think they will accept 5 without the tvOS PR? Also does this change effect binary addons in any way?

phunkyfish commented 5 years ago

Also, are you proposing making changes like this:

#include "platform/darwin/ios-common/IOSKeyboard.h"

EDIT: answered myself, just takes longer to figure out from a tiny phone screen (missing my laptop!).

This is really nice work. Even just sifting through your branch @fuzzard the code layout/directory structure makes sense. I can’t say that about before this PR!

phunkyfish commented 5 years ago

It will mean binary addon changes however.

sy6sy2 commented 5 years ago

Why the PR number 5 would not be accepted as such? For me the PR 5 is just here as a "pre-PR" before adding tvOS change. So with PR 5 we need to be able to build and run Kodi for iOS without any addition of tvOS code. And PR 6 only add tvOS code with the least possible change on iOS code.

Concerning binary addon, I don't think PR 5 will break binary addon build because the iOS toolchain need to set both TARGET_DARWIN_IOS and TARGET_DARWIN_EMBEDED BUT we will still have to change binary addon code to use TARGET_DARWIN_EMBEDED else we will have problem with tvOS toolchain.

Hoping not to be too wrong in my answer.

Edit: Edit point 5 with @fuzzard branch suggestion

phunkyfish commented 5 years ago

Example: the PR in 5 changes CORE_SYSTEM_NAME.

https://github.com/xbmc/visualization.waveform/blob/b196e44ecb767dc65f9139fc84333947bcbea4b6/FindOpenGLES.cmake#L21

sy6sy2 commented 5 years ago

Yes you are right. I just notice that fuzzard changed CORE_SYSTEM_NAME from ios to darwin_embedded. For me:

phunkyfish commented 5 years ago

I completely agree with the change. It’s just that it means a complete run through the binary addons to finish it!

fuzzard commented 5 years ago

I think it's worth the hassle. Won't take long as it will just be 1 or 2 lines each add-on on there findXXX scripts most likely. Best to get it done and out of the way early in v19 Dev, haha

sy6sy2 commented 5 years ago

Sure. (I just start trying to build and run your master_darwin-embedded branch on my iPhone)

fuzzard commented 5 years ago

Step 5 PR'd https://github.com/xbmc/xbmc/pull/16039

sy6sy2 commented 5 years ago

Thank you. I just adapted the description according to your PR and changes!

Edit: I will wait before adjusting branch code of PR6...

phunkyfish commented 5 years ago

So Jenkins failed for OS X, iOS32/64 and tvOS. Didn’t get a chance to dig into why yet.

sy6sy2 commented 5 years ago

iOS failed with cat: ./migrate_to_kodi_ios.sh: No such file or directory

This isstrange because this file was renamed to migrate_to_kodi.sh...

phunkyfish commented 5 years ago

Must be something in the Jenkins files as it doesn’t happen in a local build

sy6sy2 commented 5 years ago

Maybe… I will try to build again the PR tonight and also the deb target but it would be ok...

phunkyfish commented 5 years ago

Hmmm, I don’t see a build error for OS X. Not an obvious one anyway.

May just be as I’m trying to read the log on my phone 😉

sy6sy2 commented 5 years ago

I did not find it either

sy6sy2 commented 5 years ago

The Jenkins iOS build failed because of this line: https://github.com/fuzzard/xbmc/blob/f2f4d9917992afc0e425507aed500efdb86e6c39/tools/darwin/packaging/darwin_embedded/mkdeb-darwin_embedded.sh.in#L106

@fuzzard, did you apply changes from my PR (https://github.com/fuzzard/xbmc/pull/2) before opened the PR. Because in my fork this line is ok: https://github.com/SylvainCecchetto/xbmc/blob/12214fdcb473847e85a2be2df545d584fe7b324f/tools/darwin/packaging/darwin_embedded/mkdeb-darwin_embedded.sh.in#L106

fuzzard commented 5 years ago

Missed that one. Odd it built fine on my machine, but I'll get it fixed today sometime

sy6sy2 commented 5 years ago

Yes the Kodi target is not affected by this change, only the deb target ;-)

kambala-decapitator commented 5 years ago

opened xbmc/xbmc#16160, although it doesn't affect tvOS in any way (but modifies Install.cmake)

kambala-decapitator commented 5 years ago

xbmc#16017 is finally merged

kambala-decapitator commented 5 years ago

xbmc#16160 has been approved, but to be merged it first needs Jenkins build steps that use Xcode instead of make

phunkyfish commented 5 years ago

@SylvainCecchetto can we also include xbmc#16259 in the list of PRs

phunkyfish commented 5 years ago

@kambala-decapitator, so xbmc#16160 is dependent on which PR exactly to use Xcode in stead of make for ios. xbmc#16259?

kambala-decapitator commented 5 years ago

@phunkyfish yes, correct

phunkyfish commented 5 years ago

Thanks, updated issue description.

kambala-decapitator commented 5 years ago

xbmc#16374, xbmc#16399

phunkyfish commented 5 years ago

@kambala-decapitator these appear to be mainly iOS related. Is tvOS dev dependant on them being included?

kambala-decapitator commented 5 years ago

like I wrote in Slack, storage code can be used for tvos without changes, and I’ll convert tvos to ARC as well as soon as that PR is merged (tvOS shares some code with iOS, so it's dependent)

phunkyfish commented 5 years ago

Cool, thanks

hudokkow commented 5 years ago

All add-on related PRs are merged. Keep up the great work!

fuzzard commented 5 years ago

Thanks @hudokkow . After everything was merged, i found one i missed. PR is open

https://github.com/xbmc/platform/pull/5

fuzzard commented 5 years ago

Also for those playing at home, ive added a commit to https://github.com/xbmc/xbmc/pull/16259 that will build binary addons as part of the xcode project. This means correctly adding binary addons to the final package for projects built using Xcode. This will make binary addons package correctly for tvos

kambala-decapitator commented 5 years ago

just merged my ARC PR, now we can do this for tvOS as well

kambala-decapitator commented 4 years ago

merged storage change, now disk space will be displayed in tvOS as well https://github.com/xbmc/xbmc/pull/16374

fuzzard commented 4 years ago

cmakebuildsys changes were actually merged just now - [ios] enable cmakebuildsys to generate xcodeproject - xbmc#16259

This opens the way for the storyboard merge Item 7

phunkyfish commented 4 years ago

Ok, so apart from the MrMc Audio sink port and tvOS core changes everything on this list is merged!!!!

Well done @fuzzard, @kambala-decapitator and @SylvainCecchetto