diff --git a/config/functions b/config/functions
index cc81c1f090..8bc00b9d8e 100644
--- a/config/functions
+++ b/config/functions
@@ -935,7 +935,7 @@ pkg_call_exists() {
pkg_call() {
[ -n "${PKG_NAME}" ] || die "$(print_color CLR_ERROR "FAILURE: Cannot call ${1} package function when package is not known!")"
- ${1}
+ "${@}"
}
unset_functions() {
@@ -955,7 +955,7 @@ unset_functions() {
unset -f pre_install post_install
- unset -f addon
+ unset -f addon post_install_addon
}
# p1: name of package to be sourced
@@ -1283,6 +1283,10 @@ install_addon_files() {
install_addon_images "$1"
create_addon_xml "$1"
python_fix_abi "$1"
+
+ if pkg_call_exists post_install_addon; then
+ INSTALL="$1" pkg_call post_install_addon
+ fi
}
install_driver_addon_files() {
diff --git a/distributions/LibreELEC/options b/distributions/LibreELEC/options
index 32c42d5689..672ef8d640 100644
--- a/distributions/LibreELEC/options
+++ b/distributions/LibreELEC/options
@@ -215,6 +215,7 @@
# Settings package name - blank if not required
DISTRO_PKG_SETTINGS="LibreELEC-settings"
+ DISTRO_PKG_SETTINGS_ID="service.libreelec.settings"
# IR remote keymaps supported in default config
IR_REMOTE_KEYMAPS="rc6_mce xbox_360 xbox_one"
diff --git a/packages/addons/browser/chrome/package.mk b/packages/addons/browser/chrome/package.mk
index f078bfe4be..5e3d68a17b 100644
--- a/packages/addons/browser/chrome/package.mk
+++ b/packages/addons/browser/chrome/package.mk
@@ -98,5 +98,8 @@ addon() {
# unclutter
cp -P $(get_build_dir unclutter)/.install_pkg/usr/bin/unclutter $ADDON_BUILD/$PKG_ADDON_ID/bin
-
+}
+
+post_install_addon() {
+ sed -e "s/@DISTRO_PKG_SETTINGS_ID@/${DISTRO_PKG_SETTINGS_ID}/g" -i "${INSTALL}/default.py"
}
diff --git a/packages/addons/browser/chrome/source/default.py b/packages/addons/browser/chrome/source/default.py
index c533fb7db5..6662f5d3a4 100644
--- a/packages/addons/browser/chrome/source/default.py
+++ b/packages/addons/browser/chrome/source/default.py
@@ -9,7 +9,7 @@ import xbmcaddon
import subprocess
from xml.dom.minidom import parse
-sys.path.append('/usr/share/kodi/addons/service.libreelec.settings')
+sys.path.append('/usr/share/kodi/addons/@DISTRO_PKG_SETTINGS_ID@')
import oe
diff --git a/packages/addons/service/docker/package.mk b/packages/addons/service/docker/package.mk
index 5c9049a844..d3c542da62 100644
--- a/packages/addons/service/docker/package.mk
+++ b/packages/addons/service/docker/package.mk
@@ -146,3 +146,7 @@ addon() {
# tini
cp -P $(get_build_dir tini)/.${TARGET_NAME}/tini-static ${ADDON_BUILD}/${PKG_ADDON_ID}/bin/docker-init
}
+
+post_install_addon() {
+ sed -e "s/@DISTRO_PKG_SETTINGS_ID@/${DISTRO_PKG_SETTINGS_ID}/g" -i "${INSTALL}/default.py"
+}
diff --git a/packages/addons/service/docker/source/default.py b/packages/addons/service/docker/source/default.py
index 2ea2af479f..9530c38459 100644
--- a/packages/addons/service/docker/source/default.py
+++ b/packages/addons/service/docker/source/default.py
@@ -11,7 +11,7 @@ import xbmc
import xbmcaddon
import xbmcgui
-sys.path.append('/usr/share/kodi/addons/service.libreelec.settings')
+sys.path.append('/usr/share/kodi/addons/@DISTRO_PKG_SETTINGS_ID@')
import oe
__author__ = 'lrusak'
diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk
index 799d186f77..ad4b55d6ae 100644
--- a/packages/mediacenter/kodi/package.mk
+++ b/packages/mediacenter/kodi/package.mk
@@ -332,7 +332,9 @@ post_makeinstall_target() {
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "os.libreelec.tv" $ADDON_MANIFEST
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "os.openelec.tv" $ADDON_MANIFEST
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "repository.libreelec.tv" $ADDON_MANIFEST
- xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "service.libreelec.settings" $ADDON_MANIFEST
+ if [ -n "$DISTRO_PKG_SETTINGS" ]; then
+ xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "$DISTRO_PKG_SETTINGS_ID" $ADDON_MANIFEST
+ fi
if [ "$DRIVER_ADDONS_SUPPORT" = "yes" ]; then
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "script.program.driverselect" $ADDON_MANIFEST
diff --git a/packages/readme.md b/packages/readme.md
index e3c5083cbe..133b76c3c8 100644
--- a/packages/readme.md
+++ b/packages/readme.md
@@ -154,6 +154,7 @@ Full list of overwrittable functions.
| make_\[stage]
pre_make_\[stage]
post_make_\[stage] | yes | Build of the package |
| makeinstall_\[stage]
pre_makeinstall_\[stage]
post_makeinstall_\[stage] | yes | Installation of the files in the correct pathes
host: TOOLCHAIN
target: SYSROOT and IMAGE
bootstrap and init: temporary destination
| addon | - | Copy all files together for addon creation. This is requiered for addons |
+| post_install_addon | - | Post processing of installed addon files in `${INSTALL}` directory |
## Late Binding variable assignment
diff --git a/tools/pkgcheck b/tools/pkgcheck
index 55282dc9b7..491017e061 100755
--- a/tools/pkgcheck
+++ b/tools/pkgcheck
@@ -101,7 +101,7 @@ check_func_name() {
pre_configure \
${TARGET_FUNCS} \
pre_install post_install \
- addon \
+ addon post_install_addon \
; do
[[ ${line} =~ ^${f} ]] && return 0
done