Help building shairport-sync

  • Hey guys

    Love the project but waned to try to make a addon

    Kodi includes airplay by default but shairport-sync allows for synced multi-room audio.

    I have built it for OSMC which was really easy, but I dont want anything else than Libreelec running on my boxes at home

    I just started messing around with the plugin buildsystem, but hit my first hurdle.

    According to the readme there are some dependancies that need to be included:

    The error I'm getting is:

    Quote


    >>Including libpopt
    checking for POPT... no
    configure: error: Package requirements (popt) were not met:

    No package 'popt' found

    Consider adjusting the PKG_CONFIG_PATH environment variable if you
    installed software in a non-standard prefix.

    If I understand it correctly I would need to statically build popt/libpopt if I want the plugin to work on a vanilla libreelec install?

    Can anyone confirm that and maybe even point me in the right direction to do so?

    Thanks

  • Popt is not currently built/used by anything else in the build-system so you will need to create a popt package and add this as a dependency to the shairport-sync package. We also use LibreSSL instead of OpenSSL, but that's probably a minor difference.


  • Popt is not currently built/used by anything else in the build-system so you will need to create a popt package and add this as a dependency to the shairport-sync package. We also use LibreSSL instead of OpenSSL, but that's probably a minor difference.

    Thanks for the reply - I ended up building it on ubuntu and copying the binary + libs over

    I needed to add the path to the systemd service file to make it work:

    Code
    Environment=LD_LIBRARY_PATH=/lib:/storage/.kodi/addons/plugin.audio.shairport-sync/lib

    Really hacky but works until I figure out the build process.

  • Thanks for the reply - I ended up building it on ubuntu and copying the binary + libs over

    I needed to add the path to the systemd service file to make it work:

    Code
    Environment=LD_LIBRARY_PATH=/lib:/storage/.kodi/addons/plugin.audio.shairport-sync/lib

    Really hacky but works until I figure out the build process.

    LE will automatically add $ADDON_DIR/bin to PATH and $ADDON_DIR/lib to LD_LIBRARY_PATH when the addon is installed ;)

  • I saw that and I can run it from bash, but when systemd launches the library the path is not there

    Code
    Aug 09 16:11:11 Eldhus systemd[1]: Reached target Network is Online.
    Aug 09 16:11:11 Eldhus systemd[1]: Starting Kodi Media Center...
    Aug 09 16:11:11 Eldhus kodi-config[649]: chmod: /storage/.kodi/addons/*/bin/*: No such file or directory
    Aug 09 16:11:12 Eldhus systemd[1]: Started Kodi Media Center.
    Aug 09 16:11:12 Eldhus systemd[1]: Reached target Kodi Mediacenter Interface.
    Aug 09 16:11:12 Eldhus systemd[1]: Started ShairportSync AirTunes receiver.
    Aug 09 16:11:12 Eldhus systemd[1]: Startup finished in 2.978s (kernel) + 11.793s (userspace) = 14.772s.
    Aug 09 16:11:12 Eldhus shairport-sync[662]: /storage/.kodi/addons/plugin.audio.shairport-sync/shairport-sync: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory
    Aug 09 16:11:12 Eldhus systemd[1]: [[0;1;39mshairport-sync.service: Main process exited, code=exited, status=127/n/a[[0m

    Instead of playing with it I just added the variable to the service file (maybe it´s not correct)

    As I said it´s just a hacked together solution for now so I did not even make a .zip to install from, just copied the files over (to /storage/.config/systemd and /storage/kodi/addons) and enabled the service.

    Maybe LE is doing something in the background when a addon is correctly packaged and installed via ZIP.. but I will cross that bridge when I can cross compile it with the LE build utilities

    Is the best way to compile the libraries needed and package them with the addon (like my hack does now)?

    I however would need to script the build so it would work on all platforms. I saw that the Chromium is doing something like that I maybe I could use that as a template?

    The only problem I see is meeting the dependencies during build time
    [/code]

    Edited once, last by stones1984 (August 9, 2016 at 5:41 PM).

  • Hello,
    Any update on this ADDON or maybe some workaround until we have a working addon?
    I am using a raspberry PI separated with USB soundcard. I don't like to keep the TV on just for airplay.
    Thank you!