diff --git a/config/functions b/config/functions index 79313ff4c3..4ed23515b8 100644 --- a/config/functions +++ b/config/functions @@ -141,6 +141,19 @@ get_pkg_variable() { fi } +install_binary_addon() { + local addon_name="$1" addon_id="$2" addon_so + + mkdir -p $ADDON_BUILD/$addon_id/ + cp -R $PKG_BUILD/.install_pkg/usr/share/$MEDIACENTER/addons/$addon_name/* $ADDON_BUILD/$addon_id/ + + addon_so=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$addon_id/addon.xml) + if [ -n "$addon_so" ]; then + cp -L $PKG_BUILD/.install_pkg/usr/lib/$MEDIACENTER/addons/$addon_name/$addon_so $ADDON_BUILD/$addon_id/ + chmod +x $ADDON_BUILD/$addon_id/$addon_so + fi +} + tolower() { echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz } diff --git a/scripts/create_addon b/scripts/create_addon index 79deba912a..ae9c959ebd 100755 --- a/scripts/create_addon +++ b/scripts/create_addon @@ -172,8 +172,7 @@ if [ "$PKG_IS_ADDON" = "yes" ] ; then if [ "$(type -t addon)" = "function" ]; then addon else - echo "*** unsupported package format. please convert your package ***" - exit 1 + install_binary_addon $PKG_NAME $PKG_ADDON_ID fi # HACK for packages that provide multiple addons like screensavers.rsxs