Page MenuHomeSolus

Kodi 17.1: switch to cmake and add extra support libraries
Closed, InvalidPublic

Description

From kodi 18 onwards, autotools will no longer be supported, so it made sense to switch the current build to cmake sooner rather than later.

I've also added support for a few useful things, including:

  • AirPlay
  • ZeroConf/mDNS local network service discovery
  • VDPAU GPU acceleration
  • NFS support (depends on the new libnfs package)

Event Timeline

ermo renamed this task from Kodi 17.1: add support for AirPlay, mDNS (zeroconf) and vdpau to Kodi 17.1: add support for AirPlay/AirTunes, mDNS (zeroconf) and vdpau.Apr 2 2017, 5:13 PM
ermo updated the task description. (Show Details)

Doesn't look like libplist and shairplay are actually needed as builddeps, at least it isn't indicated by the abi_used_libs. Are you sure they aren't meant to be rundeps and given they aren't actually required to run, there isn't a particular reason to add them. I don't see a sense in requiring existing installs to install more "dependencies" for functionality that may not be used.

From my testing, my understanding is that libplist and shairplay work together in the sense that kodi starts the shairplay binary (and presumably feeds it whatever it needs to be fed) and libplist parses whatever comes over the wire from an Apple device.

When only libplist (but not shairplay) is available, the AirPlay support is shown in the UI, but kodi errors out with "shairplay not found" (or something to that effect) when I try to enable AirPlay from the UI.

Both libplist and shairplay are searched for and found during the kodi configure phase, so there's bound to be some degree of support compiled in, even if it isn't indicated by the abi_used_libs?

FWIW, I figured including it would make sense for people who are used to streaming from their Apple devices, but I respect that you are of the opinion that it shouldn't be included by default.

Both libplist and shairplay are searched for and found during the kodi configure phase, so there's bound to be some degree of support compiled in, even if it isn't indicated by the abi_used_libs?

It should be indicated in abi_used_libs, whether it is for the binary or a library, but I am indeed seeing reference to it in the CMakeLists file, so I do suppose it is possible that it isn't linking against it, but rather just building some core functionality that enables the dynamic loading:

if(ENABLE_AIRTUNES)
  find_package(Shairplay)
  if(SHAIRPLAY_FOUND)
    core_require_dyload_dep(Shairplay)
  endif()
endif()

With that being the case, still not entirely sure about marking them as rundeps. I think I'll defer to @ikey's judgement on this one. I think keeping them as builddeps seems reasonable though, given the cmake check.

ermo renamed this task from Kodi 17.1: add support for AirPlay/AirTunes, mDNS (zeroconf) and vdpau to Kodi 17.1: switch to cmake and add extra support libraries.Apr 8 2017, 11:35 PM
ermo updated the task description. (Show Details)
ermo created subtask T3215: Add libnfs.

Spent most of the day saturday on this. A review would be much appreciated -- once you spend so much time on a package, it's easy to become blind to the little things...

Updated with added rundeps: shairplay.

Can drop all the pwd calls and drop binutils-gold line from the builddeps list.

JoshStrobl triaged this task as Normal priority.Apr 10 2017, 1:04 AM
JoshStrobl moved this task from Backlog to Awaiting Fixes on the Patch Submission board.

Updated patch per review.

Captured the issues encountered with binutils-gold (which kodi wants!) as a comment.

Actually I take it back.

  1. Your patch has FROM information implying it's from me. From: Joshua Strobl <joshua@stroblindustries.com>. How did you generate this patch exactly?
  2. You're not using the latest clone of kodi, which uses rel 19 not rel 18, thus the patch fails to apply.

Is it any better now?

I think I must have inadvertently done a git commit --amend on top of *your* last commit at some point without noticing?

Yep, LGTM and patch properly applies. Chucking on the server now.

Herald changed the task status from Resolved to Invalid. · View Herald TranscriptJan 26 2018, 6:41 PM
Herald changed the status of subtask T3128: Add shairplay from Resolved to Invalid.