From ea6c0834864a5b8aeecc872c23deb11ef668f573 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Sun, 17 Nov 2019 04:12:30 +0000 Subject: [PATCH 1/5] distro/options: add settings id --- distributions/LibreELEC/options | 1 + 1 file changed, 1 insertion(+) 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" From 6105f679981ae1f822ba53133ab1f834413cf507 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Sun, 17 Nov 2019 04:36:06 +0000 Subject: [PATCH 2/5] post_install_addon: new package function --- config/functions | 8 ++++++-- packages/readme.md | 1 + tools/pkgcheck | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) 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/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 From 48c3c90f056e84fce26661fefdb383121a6cb448 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Sun, 17 Nov 2019 00:57:12 +0000 Subject: [PATCH 3/5] kodi: avoid hard coding optional settings addon id --- packages/mediacenter/kodi/package.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 From 855c547f77edb62bf149cb54f18dae4afaf5b4fd Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Sun, 17 Nov 2019 04:37:10 +0000 Subject: [PATCH 4/5] chrome: avoid hard coding settings addon id --- packages/addons/browser/chrome/package.mk | 5 ++++- packages/addons/browser/chrome/source/default.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) 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 bb4c62f3ad..b4fb880236 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 From 69b91b75b10030f20aadff9a3ab34f961970c1ed Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Sun, 17 Nov 2019 04:37:26 +0000 Subject: [PATCH 5/5] docker: avoid hard coding settings addon id --- packages/addons/service/docker/package.mk | 4 ++++ packages/addons/service/docker/source/default.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) 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 912056d088..75925825f6 100644 --- a/packages/addons/service/docker/source/default.py +++ b/packages/addons/service/docker/source/default.py @@ -10,7 +10,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'