From e2983b40ac1f5a5d37896b8f7a81112a938c6963 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 28 Feb 2019 17:37:12 +0100 Subject: [PATCH 01/19] update_binary-addons: update kodi addons to latest tag Signed-off-by: Matthias Reichl --- tools/mkpkg/update_binary-addons | 44 ++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/tools/mkpkg/update_binary-addons b/tools/mkpkg/update_binary-addons index aa0900fe7e..6e37222cbb 100755 --- a/tools/mkpkg/update_binary-addons +++ b/tools/mkpkg/update_binary-addons @@ -51,6 +51,13 @@ resolve_hash() { fi } +resolve_tag() { + if [ -d "$1" ] ; then + cd "$1" + git describe --abbrev=0 --tags $2 2>/dev/null + fi +} + # Get url in git:// notation for a package.mk, assuming it is a github.com url # Return 1 if not a github domain geturl() { @@ -94,7 +101,7 @@ get_pkg_var() { update_pkg() { local pkg_path="$1" pkg_name="$2" pkg_version="$3" - local old_version pkg_url new_sha256 + local old_version pkg_url new_sha256 pkg_rev old_version=$(get_pkg_var "${pkg_name}" PKG_VERSION) @@ -105,7 +112,28 @@ update_pkg() { new_sha256="$(wget -q ${pkg_url} -O- | sha256sum | awk '{print $1}')" || exit 1 sed -e "s|PKG_SHA256=.*|PKG_SHA256=\"${new_sha256}\"|g" -i ${pkg_path} +} + +update_to_latest_tag() { + local package_mk="$1" pkg_name="$2" repo="$3" branch="$4" ref="$5" + local gitdir=${pkg_name}.git + local resolved_version + + git_clone ${repo} ${branch} ${gitdir} ${ref} + + resolved_version=$(resolve_tag ${gitdir} ${ref}) + if [ -z "${resolved_version}" ]; then + echo "========================================================================" + echo "ERROR: no tag found for package ${pkg_name}, falling back to HEAD" + echo "========================================================================" + resolved_version=$(resolve_hash ${gitdir} ${ref}) fi + + echo "Resolved version for ${pkg_name}: ${ref} => ${resolved_version}" + + update_pkg ${package_mk} ${pkg_name} ${resolved_version} + + rm -rf ${gitdir} } if [ ! -d ${KODI_DIR} ] ; then @@ -152,27 +180,21 @@ for addontxt in $KODI_DIR/cmake/addons/bootstrap/repositories/*-addons.txt ; do REPO=$(cat $addon/$ADDON.txt | awk '{print $2}') GIT_HASH=$(cat $addon/$ADDON.txt | awk '{print $3}') - PKG_NAME="$ADDON" # Verify the Kodi repo matches our package repo # If different, ignore the addon and process it later as an "unofficial" addon validate_pkg_url "$ADDON" "$REPO" || continue - PROCESSED="${PROCESSED}${PKG_NAME}\n" + PROCESSED="${PROCESSED}${ADDON}\n" if ! grep -q all $addon/platforms.txt && ! grep -q linux $addon/platforms.txt && ! grep -q ! $addon/platforms.txt; then continue fi if [ -f ${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON/package.mk ] ; then - git_clone $REPO ${KODI_BRANCH} $PKG_NAME.git $GIT_HASH - - # update package.mk - RESOLVED_HASH=$(resolve_hash $PKG_NAME.git $GIT_HASH) - echo "Resolving hash for ${PKG_NAME}: ${GIT_HASH} => ${RESOLVED_HASH}" - update_pkg ${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON/package.mk ${PKG_NAME} ${RESOLVED_HASH} - - rm -rf $PKG_NAME.git + update_to_latest_tag \ + ${ROOT}/packages/mediacenter/kodi-binary-addons/${ADDON}/package.mk \ + ${ADDON} ${REPO} ${KODI_BRANCH} ${GIT_HASH} else echo "[mkpkg] Skipped $ADDON" SKIPPED_ADDONS="$SKIPPED_ADDONS $ADDON" From cf4d076fb8fd417917593938472b6c4e74d3ec2d Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 28 Feb 2019 17:38:40 +0100 Subject: [PATCH 02/19] update_binary-addons: add options to keep git dirs and bump PKG_REVs Signed-off-by: Matthias Reichl --- tools/mkpkg/update_binary-addons | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/tools/mkpkg/update_binary-addons b/tools/mkpkg/update_binary-addons index 6e37222cbb..c44f9fdee7 100755 --- a/tools/mkpkg/update_binary-addons +++ b/tools/mkpkg/update_binary-addons @@ -9,6 +9,10 @@ if [ -z "$1" ]; then exit 0 fi +# the following environment variables can be set to "yes" to enable optional features: +# KEEP_GIT_DIRS: don't delete cloned git directories after update check +# BUMP_PKG_REV: bump PKG_REV if PKG_VERSION has changed + ROOT=$(cd $(dirname $0)/../.. && pwd) KODI_BRANCH="$1" @@ -112,6 +116,13 @@ update_pkg() { new_sha256="$(wget -q ${pkg_url} -O- | sha256sum | awk '{print $1}')" || exit 1 sed -e "s|PKG_SHA256=.*|PKG_SHA256=\"${new_sha256}\"|g" -i ${pkg_path} + + if [ "${BUMP_PKG_REV}" = "yes" ]; then + pkg_rev=$(get_pkg_var "${pkg_name}" PKG_REV) + pkg_rev=$((${pkg_rev}+1)) + sed -e "s|PKG_REV=.*|PKG_REV=\"${pkg_rev}\"|" -i "${pkg_path}" + fi + fi } update_to_latest_tag() { @@ -133,7 +144,9 @@ update_to_latest_tag() { update_pkg ${package_mk} ${pkg_name} ${resolved_version} - rm -rf ${gitdir} + if [ "${KEEP_GIT_DIRS}" != "yes" ]; then + rm -rf ${gitdir} + fi } if [ ! -d ${KODI_DIR} ] ; then @@ -152,7 +165,9 @@ if [ -f ${ROOT}/packages/mediacenter/p8-platform/package.mk ] ; then echo "Resolving hash for ${PKG_NAME}: ${GIT_HASH} => ${RESOLVED_HASH}" sed -i "s|PKG_VERSION=.*|PKG_VERSION=\"$RESOLVED_HASH\"|g" ${ROOT}/packages/mediacenter/p8-platform/package.mk fi -rm -rf $PKG_NAME.git +if [ "${KEEP_GIT_DIRS}" != "yes" ]; then + rm -rf $PKG_NAME.git +fi # kodi-platform REPO=$(cat $KODI_DIR/cmake/addons/depends/common/kodi-platform/kodi-platform.txt | awk '{print $2}') @@ -165,7 +180,9 @@ if [ -f ${ROOT}/packages/mediacenter/kodi-platform/package.mk ] ; then RESOLVED_HASH=$(resolve_hash $PKG_NAME.git $GIT_HASH) update_pkg ${ROOT}/packages/mediacenter/kodi-platform/package.mk ${PKG_NAME} ${RESOLVED_HASH} fi -rm -rf $PKG_NAME.git +if [ "${KEEP_GIT_DIRS}" != "yes" ]; then + rm -rf $PKG_NAME.git +fi # addons for addontxt in $KODI_DIR/cmake/addons/bootstrap/repositories/*-addons.txt ; do @@ -224,5 +241,7 @@ for ADDON in $(ls -1 ${ROOT}/packages/mediacenter/kodi-binary-addons); do echo "Resolving hash for ${ADDON}: HEAD => ${RESOLVED_HASH}" update_pkg ${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON/package.mk ${ADDON} ${RESOLVED_HASH} - rm -rf $ADDON.git + if [ "${KEEP_GIT_DIRS}" != "yes" ]; then + rm -rf $ADDON.git + fi done From 35e36a1f2764b1ded724d53e883fd6e67b989636 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 28 Feb 2019 20:37:25 +0100 Subject: [PATCH 03/19] update_binary-addons: fix unquoted path variables also change missing tag ERROR to WARNING Signed-off-by: Matthias Reichl --- tools/mkpkg/update_binary-addons | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tools/mkpkg/update_binary-addons b/tools/mkpkg/update_binary-addons index c44f9fdee7..bd47f38d33 100755 --- a/tools/mkpkg/update_binary-addons +++ b/tools/mkpkg/update_binary-addons @@ -98,7 +98,7 @@ validate_pkg_url() { get_pkg_var() { local pkg_name="$1" pkg_var="$2" - cd ${ROOT} + cd "${ROOT}" PROJECT=Generic ARCH=x86_64 source config/options ${pkg_name} &>/dev/null echo "${!pkg_var}" } @@ -110,12 +110,12 @@ update_pkg() { old_version=$(get_pkg_var "${pkg_name}" PKG_VERSION) if [ "${old_version}" != "${pkg_version}" ]; then - [ -n "$pkg_version}" ] && sed -e "s|PKG_VERSION=.*|PKG_VERSION=\"${pkg_version}\"|g" -i ${pkg_path} + [ -n "$pkg_version}" ] && sed -e "s|PKG_VERSION=.*|PKG_VERSION=\"${pkg_version}\"|g" -i "${pkg_path}" pkg_url=$(get_pkg_var "${pkg_name}" PKG_URL) new_sha256="$(wget -q ${pkg_url} -O- | sha256sum | awk '{print $1}')" || exit 1 - sed -e "s|PKG_SHA256=.*|PKG_SHA256=\"${new_sha256}\"|g" -i ${pkg_path} + sed -e "s|PKG_SHA256=.*|PKG_SHA256=\"${new_sha256}\"|g" -i "${pkg_path}" if [ "${BUMP_PKG_REV}" = "yes" ]; then pkg_rev=$(get_pkg_var "${pkg_name}" PKG_REV) @@ -135,14 +135,14 @@ update_to_latest_tag() { resolved_version=$(resolve_tag ${gitdir} ${ref}) if [ -z "${resolved_version}" ]; then echo "========================================================================" - echo "ERROR: no tag found for package ${pkg_name}, falling back to HEAD" + echo "WARNING: no tag found for package ${pkg_name}, falling back to HEAD" echo "========================================================================" resolved_version=$(resolve_hash ${gitdir} ${ref}) fi echo "Resolved version for ${pkg_name}: ${ref} => ${resolved_version}" - update_pkg ${package_mk} ${pkg_name} ${resolved_version} + update_pkg "${package_mk}" ${pkg_name} ${resolved_version} if [ "${KEEP_GIT_DIRS}" != "yes" ]; then rm -rf ${gitdir} @@ -159,11 +159,11 @@ GIT_HASH=$(cat $KODI_DIR/cmake/addons/depends/common/p8-platform/p8-platform.txt PKG_NAME="p8-platform" git_clone $REPO master $PKG_NAME.git $GIT_HASH -if [ -f ${ROOT}/packages/mediacenter/p8-platform/package.mk ] ; then +if [ -f "${ROOT}/packages/mediacenter/p8-platform/package.mk" ] ; then # update package.mk RESOLVED_HASH=$(resolve_hash $PKG_NAME.git $GIT_HASH) echo "Resolving hash for ${PKG_NAME}: ${GIT_HASH} => ${RESOLVED_HASH}" - sed -i "s|PKG_VERSION=.*|PKG_VERSION=\"$RESOLVED_HASH\"|g" ${ROOT}/packages/mediacenter/p8-platform/package.mk + sed -i "s|PKG_VERSION=.*|PKG_VERSION=\"$RESOLVED_HASH\"|g" "${ROOT}/packages/mediacenter/p8-platform/package.mk" fi if [ "${KEEP_GIT_DIRS}" != "yes" ]; then rm -rf $PKG_NAME.git @@ -175,10 +175,10 @@ GIT_HASH=$(cat $KODI_DIR/cmake/addons/depends/common/kodi-platform/kodi-platform PKG_NAME="kodi-platform" git_clone $REPO master $PKG_NAME.git $GIT_HASH -if [ -f ${ROOT}/packages/mediacenter/kodi-platform/package.mk ] ; then +if [ -f "${ROOT}/packages/mediacenter/kodi-platform/package.mk" ] ; then # update package.mk RESOLVED_HASH=$(resolve_hash $PKG_NAME.git $GIT_HASH) - update_pkg ${ROOT}/packages/mediacenter/kodi-platform/package.mk ${PKG_NAME} ${RESOLVED_HASH} + update_pkg "${ROOT}/packages/mediacenter/kodi-platform/package.mk" ${PKG_NAME} ${RESOLVED_HASH} fi if [ "${KEEP_GIT_DIRS}" != "yes" ]; then rm -rf $PKG_NAME.git @@ -208,9 +208,9 @@ for addontxt in $KODI_DIR/cmake/addons/bootstrap/repositories/*-addons.txt ; do continue fi - if [ -f ${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON/package.mk ] ; then + if [ -f "${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON/package.mk" ] ; then update_to_latest_tag \ - ${ROOT}/packages/mediacenter/kodi-binary-addons/${ADDON}/package.mk \ + "${ROOT}/packages/mediacenter/kodi-binary-addons/${ADDON}/package.mk" \ ${ADDON} ${REPO} ${KODI_BRANCH} ${GIT_HASH} else echo "[mkpkg] Skipped $ADDON" @@ -225,7 +225,7 @@ for addontxt in $KODI_DIR/cmake/addons/bootstrap/repositories/*-addons.txt ; do done # finally, any other unofficial addons -for ADDON in $(ls -1 ${ROOT}/packages/mediacenter/kodi-binary-addons); do +for ADDON in $(ls -1 "${ROOT}/packages/mediacenter/kodi-binary-addons"); do [[ ${ADDON} =~ ^game.* ]] && continue # ignore game.* addons - handled by update_retroplayer-addons # ignore already processed addons @@ -239,7 +239,7 @@ for ADDON in $(ls -1 ${ROOT}/packages/mediacenter/kodi-binary-addons); do # update package.mk for stale github.com packages RESOLVED_HASH=$(resolve_hash ${ADDON}.git HEAD) || continue echo "Resolving hash for ${ADDON}: HEAD => ${RESOLVED_HASH}" - update_pkg ${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON/package.mk ${ADDON} ${RESOLVED_HASH} + update_pkg "${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON/package.mk" ${ADDON} ${RESOLVED_HASH} if [ "${KEEP_GIT_DIRS}" != "yes" ]; then rm -rf $ADDON.git From 7d8ea445e99cfe013fdd47dec604a3864df33ff1 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 28 Feb 2019 20:38:12 +0100 Subject: [PATCH 04/19] update_retroplayer-addons: fix git directory clash Signed-off-by: Matthias Reichl --- tools/mkpkg/update_retroplayer-addons | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/mkpkg/update_retroplayer-addons b/tools/mkpkg/update_retroplayer-addons index 7c5add4449..16c7596116 100755 --- a/tools/mkpkg/update_retroplayer-addons +++ b/tools/mkpkg/update_retroplayer-addons @@ -104,7 +104,7 @@ bump_pkg_rev() { } # addons -for addontxt in "binary-addons https://github.com/kodi-game/repo-binary-addons.git retroplayer" ; do +for addontxt in "game-binary-addons https://github.com/kodi-game/repo-binary-addons.git retroplayer" ; do ADDONS=$(echo $addontxt | awk '{print $1}') ADDONREPO=$(echo $addontxt | awk '{print $2}') GIT_HASH=$(echo $addontxt | awk '{print $3}') From cfc6da6256b6a28ba443f79e24ff4e0fc5218c56 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 28 Feb 2019 21:17:35 +0100 Subject: [PATCH 05/19] factor out common binary/retroplayer addon update functions Signed-off-by: Matthias Reichl --- tools/mkpkg/update_binary-addons | 153 +++------------------ tools/mkpkg/update_common_functions | 188 ++++++++++++++++++++++++++ tools/mkpkg/update_retroplayer-addons | 88 +----------- 3 files changed, 207 insertions(+), 222 deletions(-) create mode 100644 tools/mkpkg/update_common_functions diff --git a/tools/mkpkg/update_binary-addons b/tools/mkpkg/update_binary-addons index bd47f38d33..de4926c0d8 100755 --- a/tools/mkpkg/update_binary-addons +++ b/tools/mkpkg/update_binary-addons @@ -13,141 +13,19 @@ fi # KEEP_GIT_DIRS: don't delete cloned git directories after update check # BUMP_PKG_REV: bump PKG_REV if PKG_VERSION has changed -ROOT=$(cd $(dirname $0)/../.. && pwd) +MY_DIR="$(dirname "$0")" +ROOT="$(cd "${MY_DIR}"/../.. && pwd)" +TMPDIR="$(pwd)/.update-binary-addons-tmp" +TMP_PKG_FILE="${TMPDIR}/package.tar.gz" +TMP_PKG_DIR="${TMPDIR}/package" + +rm -rf "${TMPDIR}" +mkdir -p "${TMPDIR}" KODI_BRANCH="$1" KODI_DIR="kodi-${KODI_BRANCH}.git" -git_clone() { - # git_clone https://repo.url branch ./target_dir [githash] - echo "[mkpkg] Checking out $1 ..." - if [ ! -d "$3" ]; then - git clone "$1" "$3" - # Try to switch to specified branch if it exist, if not then use default branch - if [ -n "$2" ]; then - cd "$3" - git checkout $2 >/dev/null 2>/dev/null - cd .. - fi - else - if [ -d "$3" ] ; then - cd "$3" - git checkout $2 >/dev/null 2>/dev/null - git pull - cd .. - fi - fi - - if [ ! -z "$4" ] ; then - cd "$3" - git fetch >/dev/null 2>/dev/null - git branch -D $4 >/dev/null 2>/dev/null - git checkout $4 >/dev/null 2>/dev/null - git checkout -b ref-$4 >/dev/null 2>/dev/null - cd .. - fi -} - -resolve_hash() { - if [ -d "$1" ] ; then - cd "$1" - git rev-parse $2 2>/dev/null - fi -} - -resolve_tag() { - if [ -d "$1" ] ; then - cd "$1" - git describe --abbrev=0 --tags $2 2>/dev/null - fi -} - -# Get url in git:// notation for a package.mk, assuming it is a github.com url -# Return 1 if not a github domain -geturl() { - local addon="$1" - local domain owner repo PKG_URL - - PKG_URL="$(get_pkg_var ${addon} PKG_URL)" - - domain="$(echo "${PKG_URL}" | cut -d/ -f3)" - [ "${domain}" = "github.com" ] || return 1 - - owner="$(echo "${PKG_URL}" | cut -d/ -f4)" - repo="$(echo "${PKG_URL}" | cut -d/ -f5)" - - echo "git://${domain}/${owner}/${repo}.git" - return 0 -} - -# For the specified addon, verify that the package url -# matches the url retrieved from Kodi -validate_pkg_url() { - local addon="$1" url1="$2" - local domain owner repo url2 - - domain="$(echo "${url1}" | cut -d/ -f3)" - owner="$(echo "${url1}" | cut -d/ -f4)" - repo="$(echo "${url1}" | cut -d/ -f5)" - - url1="git://${domain}/${owner}/${repo}.git" - url2="$(geturl "${addon}")" - - [ "${url1}" = "${url2}" ] && return 0 || return 1 -} - -get_pkg_var() { - local pkg_name="$1" pkg_var="$2" - cd "${ROOT}" - PROJECT=Generic ARCH=x86_64 source config/options ${pkg_name} &>/dev/null - echo "${!pkg_var}" -} - -update_pkg() { - local pkg_path="$1" pkg_name="$2" pkg_version="$3" - local old_version pkg_url new_sha256 pkg_rev - - old_version=$(get_pkg_var "${pkg_name}" PKG_VERSION) - - if [ "${old_version}" != "${pkg_version}" ]; then - [ -n "$pkg_version}" ] && sed -e "s|PKG_VERSION=.*|PKG_VERSION=\"${pkg_version}\"|g" -i "${pkg_path}" - - pkg_url=$(get_pkg_var "${pkg_name}" PKG_URL) - - new_sha256="$(wget -q ${pkg_url} -O- | sha256sum | awk '{print $1}')" || exit 1 - sed -e "s|PKG_SHA256=.*|PKG_SHA256=\"${new_sha256}\"|g" -i "${pkg_path}" - - if [ "${BUMP_PKG_REV}" = "yes" ]; then - pkg_rev=$(get_pkg_var "${pkg_name}" PKG_REV) - pkg_rev=$((${pkg_rev}+1)) - sed -e "s|PKG_REV=.*|PKG_REV=\"${pkg_rev}\"|" -i "${pkg_path}" - fi - fi -} - -update_to_latest_tag() { - local package_mk="$1" pkg_name="$2" repo="$3" branch="$4" ref="$5" - local gitdir=${pkg_name}.git - local resolved_version - - git_clone ${repo} ${branch} ${gitdir} ${ref} - - resolved_version=$(resolve_tag ${gitdir} ${ref}) - if [ -z "${resolved_version}" ]; then - echo "========================================================================" - echo "WARNING: no tag found for package ${pkg_name}, falling back to HEAD" - echo "========================================================================" - resolved_version=$(resolve_hash ${gitdir} ${ref}) - fi - - echo "Resolved version for ${pkg_name}: ${ref} => ${resolved_version}" - - update_pkg "${package_mk}" ${pkg_name} ${resolved_version} - - if [ "${KEEP_GIT_DIRS}" != "yes" ]; then - rm -rf ${gitdir} - fi -} +. "${MY_DIR}/update_common_functions" if [ ! -d ${KODI_DIR} ] ; then git_clone https://github.com/xbmc/xbmc ${KODI_BRANCH} ${KODI_DIR} @@ -178,7 +56,7 @@ git_clone $REPO master $PKG_NAME.git $GIT_HASH if [ -f "${ROOT}/packages/mediacenter/kodi-platform/package.mk" ] ; then # update package.mk RESOLVED_HASH=$(resolve_hash $PKG_NAME.git $GIT_HASH) - update_pkg "${ROOT}/packages/mediacenter/kodi-platform/package.mk" ${PKG_NAME} ${RESOLVED_HASH} + update_pkg "${ROOT}/packages/mediacenter/kodi-platform" ${PKG_NAME} ${RESOLVED_HASH} fi if [ "${KEEP_GIT_DIRS}" != "yes" ]; then rm -rf $PKG_NAME.git @@ -208,10 +86,9 @@ for addontxt in $KODI_DIR/cmake/addons/bootstrap/repositories/*-addons.txt ; do continue fi - if [ -f "${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON/package.mk" ] ; then - update_to_latest_tag \ - "${ROOT}/packages/mediacenter/kodi-binary-addons/${ADDON}/package.mk" \ - ${ADDON} ${REPO} ${KODI_BRANCH} ${GIT_HASH} + ADDON_PATH="${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON/" + if [ -f "${ADDON_PATH}/package.mk" ] ; then + update_to_latest_tag "${ADDON_PATH}" ${ADDON} ${REPO} ${KODI_BRANCH} ${GIT_HASH} else echo "[mkpkg] Skipped $ADDON" SKIPPED_ADDONS="$SKIPPED_ADDONS $ADDON" @@ -239,9 +116,11 @@ for ADDON in $(ls -1 "${ROOT}/packages/mediacenter/kodi-binary-addons"); do # update package.mk for stale github.com packages RESOLVED_HASH=$(resolve_hash ${ADDON}.git HEAD) || continue echo "Resolving hash for ${ADDON}: HEAD => ${RESOLVED_HASH}" - update_pkg "${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON/package.mk" ${ADDON} ${RESOLVED_HASH} + update_pkg "${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON" ${ADDON} ${RESOLVED_HASH} if [ "${KEEP_GIT_DIRS}" != "yes" ]; then rm -rf $ADDON.git fi done + +rm -rf "${TMPDIR}" diff --git a/tools/mkpkg/update_common_functions b/tools/mkpkg/update_common_functions new file mode 100644 index 0000000000..be6e650171 --- /dev/null +++ b/tools/mkpkg/update_common_functions @@ -0,0 +1,188 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) + +msg_color() { + echo $( + cd "${ROOT}" + PROJECT=Generic ARCH=x86_64 . config/options "" + echo $(print_color "$1" "$2") + ) +} + +msg_warn() { + msg_color CLR_WARNING "$1" +} + +msg_error() { + msg_color CLR_ERROR "$1" +} + +msg_info() { + echo "$1" +} + +git_clone() { + # git_clone https://repo.url branch ./target_dir [githash] + echo "[mkpkg] Checking out $1 ..." + if [ ! -d "$3" ]; then + git clone "$1" "$3" + # Try to switch to specified branch if it exist, if not then use default branch + if [ -n "$2" ]; then + cd "$3" + git checkout $2 >/dev/null 2>/dev/null + cd .. + fi + else + if [ -d "$3" ] ; then + cd "$3" + git checkout $2 >/dev/null 2>/dev/null + git pull + cd .. + fi + fi + + if [ ! -z "$4" ] ; then + cd "$3" + git fetch >/dev/null 2>/dev/null + git branch -D $4 >/dev/null 2>/dev/null + git checkout $4 >/dev/null 2>/dev/null + git checkout -b ref-$4 >/dev/null 2>/dev/null + cd .. + fi +} + +get_pkg_var() { + local pkg_name="$1" pkg_var="$2" + cd "${ROOT}" + PROJECT=Generic ARCH=x86_64 source config/options ${pkg_name} &>/dev/null + echo "${!pkg_var}" +} + +resolve_hash() { + if [ -d "$1" ] ; then + cd "$1" + git rev-parse $2 2>/dev/null + fi +} + +resolve_tag() { + if [ -d "$1" ] ; then + cd "$1" + git describe --abbrev=0 --tags $2 2>/dev/null + fi +} + +set_pkg_version() { + local package_mk="$1/package.mk" pkg_version="$2" + sed -e "s|PKG_VERSION=.*|PKG_VERSION=\"${pkg_version}\"|g" -i "${package_mk}" +} + +download_pkg_file() { + local pkg_name="$1" + local pkg_url=$(get_pkg_var "${pkg_name}" PKG_URL) + wget -q -O "${TMP_PKG_FILE}" "${pkg_url}" +} + +extract_pkg_file() { + mkdir -p "${TMP_PKG_DIR}" + tar xf "${TMP_PKG_FILE}" --strip-components=1 -C "${TMP_PKG_DIR}" +} + +cleanup_pkg_tmp() { + rm -rf "${TMP_PKG_FILE}" "${TMP_PKG_DIR}" +} + +set_pkg_sha256() { + local package_mk="$1/package.mk" + local new_sha256=$(sha256sum < "${TMP_PKG_FILE}" | awk '{print $1}') + sed -e "s|PKG_SHA256=.*|PKG_SHA256=\"${new_sha256}\"|g" -i "${package_mk}" +} + +bump_pkg_rev() { + local package_mk="$1/package.mk" pkg_name="$2" + local pkg_rev=$(get_pkg_var "${pkg_name}" PKG_REV) + local new_pkg_rev=$((${pkg_rev}+1)) + + sed -e "s|PKG_REV=.*|PKG_REV=\"${new_pkg_rev}\"|" -i "${package_mk}" + msg_info "BUMPED ${pkg_name} PKG_REV from ${pkg_rev} to ${new_pkg_rev}" +} + +update_pkg() { + local pkg_path="$1" pkg_name="$2" pkg_version="$3" + + local old_version pkg_url new_sha256 pkg_rev + + old_version=$(get_pkg_var "${pkg_name}" PKG_VERSION) + + if [ "${old_version}" != "${pkg_version}" ]; then + [ -n "${pkg_version}" ] && set_pkg_version "${pkg_path}" "${pkg_version}" + + download_pkg_file "${pkg_name}" + set_pkg_sha256 "${pkg_path}" + + if [ "${BUMP_PKG_REV}" = "yes" ]; then + bump_pkg_rev "${pkg_path}" "${pkg_name}" + fi + fi +} + +update_to_latest_tag() { + local pkg_path="$1" pkg_name="$2" repo="$3" branch="$4" ref="$5" + local gitdir=${pkg_name}.git + local resolved_version + + git_clone "${repo}" "${branch}" "${gitdir}" "${ref}" + + resolved_version=$(resolve_tag "${gitdir}" "${ref}") + if [ -z "${resolved_version}" ]; then + echo "========================================================================" + msg_warn "WARNING: no tag found for package ${pkg_name}, falling back to HEAD" + echo "========================================================================" + resolved_version=$(resolve_hash "${gitdir}" "${ref}") + fi + + echo "Resolved version for ${pkg_name}: ${ref} => ${resolved_version}" + + update_pkg "${pkg_path}" "${pkg_name}" "${resolved_version}" + + if [ "${KEEP_GIT_DIRS}" != "yes" ]; then + rm -rf "${gitdir}" + fi +} + +# Get url in git:// notation for a package.mk, assuming it is a github.com url +# Return 1 if not a github domain +geturl() { + local addon="$1" + local domain owner repo PKG_URL + + PKG_URL="$(get_pkg_var ${addon} PKG_URL)" + + domain="$(echo "${PKG_URL}" | cut -d/ -f3)" + [ "${domain}" = "github.com" ] || return 1 + + owner="$(echo "${PKG_URL}" | cut -d/ -f4)" + repo="$(echo "${PKG_URL}" | cut -d/ -f5)" + + echo "git://${domain}/${owner}/${repo}.git" + return 0 +} + +# For the specified addon, verify that the package url +# matches the url retrieved from Kodi +validate_pkg_url() { + local addon="$1" url1="$2" + local domain owner repo url2 + + domain="$(echo "${url1}" | cut -d/ -f3)" + owner="$(echo "${url1}" | cut -d/ -f4)" + repo="$(echo "${url1}" | cut -d/ -f5)" + + url1="git://${domain}/${owner}/${repo}.git" + url2="$(geturl "${addon}")" + + [ "${url1}" = "${url2}" ] && return 0 || return 1 +} + + diff --git a/tools/mkpkg/update_retroplayer-addons b/tools/mkpkg/update_retroplayer-addons index 16c7596116..96bda46bf7 100755 --- a/tools/mkpkg/update_retroplayer-addons +++ b/tools/mkpkg/update_retroplayer-addons @@ -10,7 +10,8 @@ if [ "$1" == "-f" ]; then shift fi -ROOT=$(cd $(dirname $0)/../.. && pwd) +MY_DIR="$(dirname "$0")" +ROOT="$(cd "${MY_DIR}"/../.. && pwd)" TMPDIR="$(pwd)/.update-retroplayer-tmp" TMP_PKG_FILE="${TMPDIR}/package.tar.gz" TMP_PKG_DIR="${TMPDIR}/package" @@ -18,90 +19,7 @@ TMP_PKG_DIR="${TMPDIR}/package" rm -rf "${TMPDIR}" mkdir -p "${TMPDIR}" -git_clone() { - # git_clone https://repo.url branch ./target_dir [githash] - echo "[mkpkg] Checking out $1 ..." - if [ ! -d "$3" ]; then - git clone --single-branch --depth=1 --recursive "$1" -b $2 "$3" - else - if [ -d "$3" ] ; then - cd "$3" - git checkout $2 >/dev/null 2>/dev/null - git pull - cd .. - fi - fi - if [ ! -z "$4" ] ; then - cd "$3" - git fetch >/dev/null 2>/dev/null - git branch -D $4 >/dev/null 2>/dev/null - git checkout $4 >/dev/null 2>/dev/null - git checkout -b ref-$4 >/dev/null 2>/dev/null - cd .. - fi -} - -get_pkg_var() { - local pkg_name="$1" pkg_var="$2" - cd ${ROOT} - PROJECT=Generic ARCH=x86_64 source config/options ${pkg_name} &>/dev/null - echo "${!pkg_var}" -} - -set_pkg_version() { - local package_mk="$1/package.mk" pkg_version="$2" - sed -e "s|PKG_VERSION=.*|PKG_VERSION=\"${pkg_version}\"|g" -i "${package_mk}" -} - -download_pkg_file() { - local pkg_name="$1" - local pkg_url=$(get_pkg_var "${pkg_name}" PKG_URL) - wget -q -O "${TMP_PKG_FILE}" "${pkg_url}" -} - -extract_pkg_file() { - mkdir -p "${TMP_PKG_DIR}" - tar xf "${TMP_PKG_FILE}" --strip-components=1 -C "${TMP_PKG_DIR}" -} - -cleanup_pkg_tmp() { - rm -rf "${TMP_PKG_FILE}" "${TMP_PKG_DIR}" -} - -msg_color() { - echo $( - cd "${ROOT}" - PROJECT=Generic ARCH=x86_64 . config/options "" - echo $(print_color "$1" "$2") - ) -} - -msg_warn() { - msg_color CLR_WARNING "$1" -} - -msg_error() { - msg_color CLR_ERROR "$1" -} - -msg_info() { - echo "$1" -} - -set_pkg_sha256() { - local package_mk="$1/package.mk" - local new_sha256=$(sha256sum < "${TMP_PKG_FILE}" | awk '{print $1}') - sed -e "s|PKG_SHA256=.*|PKG_SHA256=\"${new_sha256}\"|g" -i "${package_mk}" -} - -bump_pkg_rev() { - local package_mk="$1/package.mk" pkg_name="$2" - local pkg_rev=$(get_pkg_var "${pkg_name}" PKG_REV) - local new_pkg_rev=$((${pkg_rev}+1)) - - sed -e "s|PKG_REV=.*|PKG_REV=\"${new_pkg_rev}\"|" -i "${package_mk}" - msg_info "BUMPED ${pkg_name} PKG_REV from ${pkg_rev} to ${new_pkg_rev}" -} +. "${MY_DIR}/update_common_functions" # addons for addontxt in "game-binary-addons https://github.com/kodi-game/repo-binary-addons.git retroplayer" ; do From bd9d6774d4600a5d14b302a9275dbee1f21304de Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 28 Feb 2019 22:08:45 +0100 Subject: [PATCH 06/19] update_retroplayer-addons: switch to using tags Signed-off-by: Matthias Reichl --- tools/mkpkg/update_retroplayer-addons | 28 +++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/tools/mkpkg/update_retroplayer-addons b/tools/mkpkg/update_retroplayer-addons index 96bda46bf7..2988ba2d7d 100755 --- a/tools/mkpkg/update_retroplayer-addons +++ b/tools/mkpkg/update_retroplayer-addons @@ -10,6 +10,9 @@ if [ "$1" == "-f" ]; then shift fi +# the following environment variables can be set to "yes" to enable optional features: +# KEEP_GIT_DIRS: don't delete cloned git directories after update check + MY_DIR="$(dirname "$0")" ROOT="$(cd "${MY_DIR}"/../.. && pwd)" TMPDIR="$(pwd)/.update-retroplayer-tmp" @@ -37,6 +40,8 @@ for addontxt in "game-binary-addons https://github.com/kodi-game/repo-binary-add continue fi + GAME_GIT_DIR="${GAME_ADDON}.git" + GAME_GIT_REPO=$(cat $addon/${GAME_ADDON}.txt | awk '{print $2}') GAME_GIT_BRANCH=$(cat $addon/${GAME_ADDON}.txt | awk '{print $3}') GAME_PATH="${ROOT}/packages/mediacenter/kodi-binary-addons/${GAME_ADDON}" @@ -58,17 +63,28 @@ for addontxt in "game-binary-addons https://github.com/kodi-game/repo-binary-add BUMPED="" CHECK_RETRO="" - GAME_VERSION=$(get_pkg_var "${GAME_ADDON}" PKG_VERSION) - GAME_PKG_SITE=$(get_pkg_var "${GAME_ADDON}" PKG_SITE) - GAME_NEW_HASH=$(git ls-remote $GAME_PKG_SITE $GAME_GIT_BRANCH | awk '{print $1}') + git_clone "${GAME_GIT_REPO}" "${GAME_GIT_BRANCH}" "${GAME_GIT_DIR}" "${GAME_GIT_BRANCH}" + GAME_NEW_VERSION=$(resolve_tag "${GAME_GIT_DIR}" "${GAME_GIT_BRANCH}") + if [ -z "${GAME_NEW_VERSION}" ]; then + echo "========================================================================" + msg_warn "WARNING: no tag found for addon ${GAME_ADDON}, falling back to HEAD" + echo "========================================================================" + GAME_NEW_VERSION=$(resolve_hash "${GAME_GIT_DIR}" "${GAME_GIT_BRANCH}") + fi - if [ "${GAME_VERSION}" != "${GAME_NEW_HASH}" ]; then + if [ "${KEEP_GIT_DIRS}" != "yes" ]; then + rm -rf "${GAME_GIT_DIR}" + fi + + GAME_VERSION=$(get_pkg_var "${GAME_ADDON}" PKG_VERSION) + + if [ "${GAME_VERSION}" != "${GAME_NEW_VERSION}" ]; then BUMPED="yes" [ -n "${RETRO_NAME}" ] && CHECK_RETRO="yes" - set_pkg_version "${GAME_PATH}" "${GAME_NEW_HASH}" + set_pkg_version "${GAME_PATH}" "${GAME_NEW_VERSION}" download_pkg_file "${GAME_ADDON}" set_pkg_sha256 "${GAME_PATH}" - msg_info "UPDATED ${GAME_ADDON} from ${GAME_VERSION} to ${GAME_NEW_HASH}" + msg_info "UPDATED ${GAME_ADDON} from ${GAME_VERSION} to ${GAME_NEW_VERSION}" fi if [ -n "${FORCE_LIBRETRO_BUMP}" -a -n "${RETRO_NAME}" -a -z "${CHECK_RETRO}" ]; then From 5344ab720a1d90b257bc1ccdf014571036ba879a Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 28 Feb 2019 22:37:20 +0100 Subject: [PATCH 07/19] update_retroplayer-addons: don't bump PKG_REV on game addon bumps As we are using tags, and the addon version should match the tag version bumping PKG_REV on kodi game addon updates isn't needed. As with update_binary-addons bumping PKG_REV may be wanted as we are switching from HEAD to tags and can be enabled by setting the PKG_BUMP_REV environment variable. PKG_REV will also be bumped the script is run with "-f" as before. Signed-off-by: Matthias Reichl --- tools/mkpkg/update_retroplayer-addons | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/mkpkg/update_retroplayer-addons b/tools/mkpkg/update_retroplayer-addons index 2988ba2d7d..c9ae3d1872 100755 --- a/tools/mkpkg/update_retroplayer-addons +++ b/tools/mkpkg/update_retroplayer-addons @@ -12,6 +12,7 @@ fi # the following environment variables can be set to "yes" to enable optional features: # KEEP_GIT_DIRS: don't delete cloned git directories after update check +# BUMP_PKG_REV: bump PKG_REV if PKG_VERSION has changed MY_DIR="$(dirname "$0")" ROOT="$(cd "${MY_DIR}"/../.. && pwd)" @@ -79,7 +80,9 @@ for addontxt in "game-binary-addons https://github.com/kodi-game/repo-binary-add GAME_VERSION=$(get_pkg_var "${GAME_ADDON}" PKG_VERSION) if [ "${GAME_VERSION}" != "${GAME_NEW_VERSION}" ]; then - BUMPED="yes" + if [ "${BUMP_PKG_REV}" = "yes" ]; then + BUMPED="yes" + fi [ -n "${RETRO_NAME}" ] && CHECK_RETRO="yes" set_pkg_version "${GAME_PATH}" "${GAME_NEW_VERSION}" download_pkg_file "${GAME_ADDON}" From 0c05c65df53270115f2306e46f4c9e1466ab4e48 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Fri, 1 Mar 2019 13:07:58 +0100 Subject: [PATCH 08/19] update addons: add possibility to exclude packages in updates Signed-off-by: Matthias Reichl --- tools/mkpkg/update_binary-addons | 7 +++++++ tools/mkpkg/update_common_functions | 10 ++++++++++ tools/mkpkg/update_retroplayer-addons | 5 +++++ 3 files changed, 22 insertions(+) diff --git a/tools/mkpkg/update_binary-addons b/tools/mkpkg/update_binary-addons index de4926c0d8..cbb47eb2e5 100755 --- a/tools/mkpkg/update_binary-addons +++ b/tools/mkpkg/update_binary-addons @@ -9,6 +9,9 @@ if [ -z "$1" ]; then exit 0 fi +# list of packages to exclude from update +EXCLUDED_PACKAGES="" + # the following environment variables can be set to "yes" to enable optional features: # KEEP_GIT_DIRS: don't delete cloned git directories after update check # BUMP_PKG_REV: bump PKG_REV if PKG_VERSION has changed @@ -73,6 +76,8 @@ for addontxt in $KODI_DIR/cmake/addons/bootstrap/repositories/*-addons.txt ; do [[ ${ADDON} =~ ^game.* ]] && continue # ignore game.* addons - handled by update_retroplayer-addons + check_package_excluded "${ADDON}" "${EXCLUDED_PACKAGES}" && continue + REPO=$(cat $addon/$ADDON.txt | awk '{print $2}') GIT_HASH=$(cat $addon/$ADDON.txt | awk '{print $3}') @@ -108,6 +113,8 @@ for ADDON in $(ls -1 "${ROOT}/packages/mediacenter/kodi-binary-addons"); do # ignore already processed addons echo -e "${PROCESSED}" | grep -qE "^${ADDON}$" && continue + check_package_excluded "${ADDON}" "${EXCLUDED_PACKAGES}" && continue + # Obtain git url - ignore if not a suitable repo REPO="$(geturl "${ADDON}")" || continue diff --git a/tools/mkpkg/update_common_functions b/tools/mkpkg/update_common_functions index be6e650171..1f37736a99 100644 --- a/tools/mkpkg/update_common_functions +++ b/tools/mkpkg/update_common_functions @@ -73,6 +73,16 @@ resolve_tag() { fi } +check_package_excluded() { + local package="$1" local packages_to_exclude="$2" pkg + [ -z "${package}" -o -z "${packages_to_exclude}" ] && return 1 + if [[ ${packages_to_exclude} =~ (^|[[:space:]])${package}($|[[:space:]]) ]]; then + msg_info "SKIPPING excluded package ${package}" + return 0 + fi + return 1 +} + set_pkg_version() { local package_mk="$1/package.mk" pkg_version="$2" sed -e "s|PKG_VERSION=.*|PKG_VERSION=\"${pkg_version}\"|g" -i "${package_mk}" diff --git a/tools/mkpkg/update_retroplayer-addons b/tools/mkpkg/update_retroplayer-addons index c9ae3d1872..8a87aba073 100755 --- a/tools/mkpkg/update_retroplayer-addons +++ b/tools/mkpkg/update_retroplayer-addons @@ -14,6 +14,9 @@ fi # KEEP_GIT_DIRS: don't delete cloned git directories after update check # BUMP_PKG_REV: bump PKG_REV if PKG_VERSION has changed +# list of packages to exclude from update +EXCLUDED_PACKAGES="" + MY_DIR="$(dirname "$0")" ROOT="$(cd "${MY_DIR}"/../.. && pwd)" TMPDIR="$(pwd)/.update-retroplayer-tmp" @@ -37,6 +40,8 @@ for addontxt in "game-binary-addons https://github.com/kodi-game/repo-binary-add [[ "${GAME_ADDON}" =~ ^game. ]] || continue + check_package_excluded "${GAME_ADDON}" "${EXCLUDED_PACKAGES}" && continue + if ! grep -q all $addon/platforms.txt && ! grep -q linux $addon/platforms.txt && ! grep -q ! $addon/platforms.txt; then continue fi From 1ce33059a9b4ad1ba406ff78e69ef6f40b36f94d Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Fri, 1 Mar 2019 13:10:35 +0100 Subject: [PATCH 09/19] update_retroplayer-addons: exclude game.netplay from updates Signed-off-by: Matthias Reichl --- tools/mkpkg/update_retroplayer-addons | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/mkpkg/update_retroplayer-addons b/tools/mkpkg/update_retroplayer-addons index 8a87aba073..66f1ca922e 100755 --- a/tools/mkpkg/update_retroplayer-addons +++ b/tools/mkpkg/update_retroplayer-addons @@ -15,7 +15,7 @@ fi # BUMP_PKG_REV: bump PKG_REV if PKG_VERSION has changed # list of packages to exclude from update -EXCLUDED_PACKAGES="" +EXCLUDED_PACKAGES="game.netplay" MY_DIR="$(dirname "$0")" ROOT="$(cd "${MY_DIR}"/../.. && pwd)" From 3a587abaced9623e453c2c28f1b0be54346b0a4b Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Fri, 1 Mar 2019 13:11:40 +0100 Subject: [PATCH 10/19] game.netplay: remove package game.netplay is non-working and not maintained Signed-off-by: Matthias Reichl --- .../kodi-binary-addons/game.netplay/package.mk | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 packages/mediacenter/kodi-binary-addons/game.netplay/package.mk diff --git a/packages/mediacenter/kodi-binary-addons/game.netplay/package.mk b/packages/mediacenter/kodi-binary-addons/game.netplay/package.mk deleted file mode 100644 index baf8953c4e..0000000000 --- a/packages/mediacenter/kodi-binary-addons/game.netplay/package.mk +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) - -PKG_NAME="game.netplay" -PKG_VERSION="e11f6a81f57420eee10d99a9773611591a2a0fae" -PKG_SHA256="bb6011de992f02d72fc8db7b6d6b032c6ebff71085d97a5b13a87daa5ca2d775" -PKG_REV="100" -PKG_ARCH="any" -PKG_LICENSE="GPL" -PKG_SITE="https://github.com/kodi-game/game.netplay" -PKG_URL="https://github.com/kodi-game/game.netplay/archive/$PKG_VERSION.tar.gz" -PKG_DEPENDS_TARGET="toolchain kodi-platform p8-platform" -PKG_SECTION="" -PKG_LONGDESC="game.netplay adds Netplay support for Kodi" - -PKG_IS_ADDON="yes" -PKG_ADDON_TYPE="kodi.gameclient" From a18e777f569cb9b5a8fd13fd0d382ea24189ba2b Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Fri, 1 Mar 2019 13:13:37 +0100 Subject: [PATCH 11/19] update_binary-addons: exclude vfs.sacd from updates Signed-off-by: Matthias Reichl --- tools/mkpkg/update_binary-addons | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/mkpkg/update_binary-addons b/tools/mkpkg/update_binary-addons index cbb47eb2e5..a889960810 100755 --- a/tools/mkpkg/update_binary-addons +++ b/tools/mkpkg/update_binary-addons @@ -10,7 +10,7 @@ if [ -z "$1" ]; then fi # list of packages to exclude from update -EXCLUDED_PACKAGES="" +EXCLUDED_PACKAGES="vfs.sacd" # the following environment variables can be set to "yes" to enable optional features: # KEEP_GIT_DIRS: don't delete cloned git directories after update check From 074ff9e03350526ec9ab700e489ceeb2fe58a9f3 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Fri, 1 Mar 2019 13:14:35 +0100 Subject: [PATCH 12/19] vfs.sacd: remove package vfs.sacd is currently unreleased at upstream and not tagged properly Signed-off-by: Matthias Reichl --- .../kodi-binary-addons/vfs.sacd/package.mk | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 packages/mediacenter/kodi-binary-addons/vfs.sacd/package.mk diff --git a/packages/mediacenter/kodi-binary-addons/vfs.sacd/package.mk b/packages/mediacenter/kodi-binary-addons/vfs.sacd/package.mk deleted file mode 100644 index 770a1dd5c7..0000000000 --- a/packages/mediacenter/kodi-binary-addons/vfs.sacd/package.mk +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) - -PKG_NAME="vfs.sacd" -PKG_VERSION="4ade5fe422a2d08bb61f827e5382bc141456f6fd" -PKG_SHA256="f2bdc8f74cf31d836dde7f0bbedd3e553002144d28c6649163da1c82010a2297" -PKG_REV="1" -PKG_ARCH="any" -PKG_LICENSE="GPL" -PKG_SITE="http://www.kodi.tv" -PKG_URL="https://github.com/xbmc/vfs.sacd/archive/$PKG_VERSION.tar.gz" -PKG_DEPENDS_TARGET="toolchain kodi-platform" -PKG_SECTION="" -PKG_SHORTDESC="vfs.sacd" -PKG_LONGDESC="vfs.sacd" - -PKG_IS_ADDON="yes" -PKG_ADDON_TYPE="kodi.vfs" From 304d68be001230838ab3f1fae3e9f85434b64200 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Fri, 1 Mar 2019 13:50:09 +0100 Subject: [PATCH 13/19] inputstream.adaptive: add missing PKG_REV Signed-off-by: Matthias Reichl --- .../kodi-binary-addons/inputstream.adaptive/package.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mediacenter/kodi-binary-addons/inputstream.adaptive/package.mk b/packages/mediacenter/kodi-binary-addons/inputstream.adaptive/package.mk index 374b34d6ef..ac05c7f990 100644 --- a/packages/mediacenter/kodi-binary-addons/inputstream.adaptive/package.mk +++ b/packages/mediacenter/kodi-binary-addons/inputstream.adaptive/package.mk @@ -4,6 +4,7 @@ PKG_NAME="inputstream.adaptive" PKG_VERSION="b76c81fc4c2d7fd02e73c1d0091ae190351fc2fa" PKG_SHA256="8f802b0095c52376ee213bb3b2f08370821755a317543a2eb1d0ad953991b172" +PKG_REV="0" PKG_LICENSE="GPL" PKG_SITE="http://www.kodi.tv" PKG_URL="https://github.com/peak3d/inputstream.adaptive/archive/$PKG_VERSION.tar.gz" From 3e36002d8dc3794bd1efc0ea5495252f7142a130 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Fri, 1 Mar 2019 13:50:32 +0100 Subject: [PATCH 14/19] inputstream.rtmp: add missing PKG_REV Signed-off-by: Matthias Reichl --- .../mediacenter/kodi-binary-addons/inputstream.rtmp/package.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mediacenter/kodi-binary-addons/inputstream.rtmp/package.mk b/packages/mediacenter/kodi-binary-addons/inputstream.rtmp/package.mk index 5fcce38de2..6abb912412 100644 --- a/packages/mediacenter/kodi-binary-addons/inputstream.rtmp/package.mk +++ b/packages/mediacenter/kodi-binary-addons/inputstream.rtmp/package.mk @@ -4,6 +4,7 @@ PKG_NAME="inputstream.rtmp" PKG_VERSION="6065923d5131b7db606b5ace250da3e6b0d61a9d" PKG_SHA256="2c1939aa768c529e61a00302cacc56e5820dadf58ea655bbfc051f99997284fb" +PKG_REV="0" PKG_LICENSE="GPL" PKG_SITE="http://www.kodi.tv" PKG_URL="https://github.com/xbmc/inputstream.rtmp/archive/$PKG_VERSION.tar.gz" From 0b2bdf9269626a16d931cb72a874717c307b61d2 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Fri, 1 Mar 2019 16:26:25 +0100 Subject: [PATCH 15/19] update_binary-addons: remove p8-platform bump LibreELEC uses a locally managed, newer version of p8-platform Signed-off-by: Matthias Reichl --- tools/mkpkg/update_binary-addons | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/tools/mkpkg/update_binary-addons b/tools/mkpkg/update_binary-addons index a889960810..2f5b83f750 100755 --- a/tools/mkpkg/update_binary-addons +++ b/tools/mkpkg/update_binary-addons @@ -34,22 +34,6 @@ if [ ! -d ${KODI_DIR} ] ; then git_clone https://github.com/xbmc/xbmc ${KODI_BRANCH} ${KODI_DIR} fi -# p8-platform -REPO=$(cat $KODI_DIR/cmake/addons/depends/common/p8-platform/p8-platform.txt | awk '{print $2}') -GIT_HASH=$(cat $KODI_DIR/cmake/addons/depends/common/p8-platform/p8-platform.txt | awk '{print $3}') -PKG_NAME="p8-platform" - -git_clone $REPO master $PKG_NAME.git $GIT_HASH -if [ -f "${ROOT}/packages/mediacenter/p8-platform/package.mk" ] ; then - # update package.mk - RESOLVED_HASH=$(resolve_hash $PKG_NAME.git $GIT_HASH) - echo "Resolving hash for ${PKG_NAME}: ${GIT_HASH} => ${RESOLVED_HASH}" - sed -i "s|PKG_VERSION=.*|PKG_VERSION=\"$RESOLVED_HASH\"|g" "${ROOT}/packages/mediacenter/p8-platform/package.mk" -fi -if [ "${KEEP_GIT_DIRS}" != "yes" ]; then - rm -rf $PKG_NAME.git -fi - # kodi-platform REPO=$(cat $KODI_DIR/cmake/addons/depends/common/kodi-platform/kodi-platform.txt | awk '{print $2}') GIT_HASH=$(cat $KODI_DIR/cmake/addons/depends/common/kodi-platform/kodi-platform.txt | awk '{print $3}') From 9e1a475b62b6c770b99009961ae52f695294a8fe Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Fri, 1 Mar 2019 16:30:07 +0100 Subject: [PATCH 16/19] update_binary-addons: make missing addon check work again Signed-off-by: Matthias Reichl --- tools/mkpkg/update_binary-addons | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/tools/mkpkg/update_binary-addons b/tools/mkpkg/update_binary-addons index 2f5b83f750..e81f6649e1 100755 --- a/tools/mkpkg/update_binary-addons +++ b/tools/mkpkg/update_binary-addons @@ -65,23 +65,22 @@ for addontxt in $KODI_DIR/cmake/addons/bootstrap/repositories/*-addons.txt ; do REPO=$(cat $addon/$ADDON.txt | awk '{print $2}') GIT_HASH=$(cat $addon/$ADDON.txt | awk '{print $3}') - # Verify the Kodi repo matches our package repo - # If different, ignore the addon and process it later as an "unofficial" addon - validate_pkg_url "$ADDON" "$REPO" || continue - - PROCESSED="${PROCESSED}${ADDON}\n" - if ! grep -q all $addon/platforms.txt && ! grep -q linux $addon/platforms.txt && ! grep -q ! $addon/platforms.txt; then continue fi ADDON_PATH="${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON/" if [ -f "${ADDON_PATH}/package.mk" ] ; then + # Verify the Kodi repo matches our package repo + # If different, ignore the addon and process it later as an "unofficial" addon + validate_pkg_url "$ADDON" "$REPO" || continue + update_to_latest_tag "${ADDON_PATH}" ${ADDON} ${REPO} ${KODI_BRANCH} ${GIT_HASH} else echo "[mkpkg] Skipped $ADDON" SKIPPED_ADDONS="$SKIPPED_ADDONS $ADDON" fi + PROCESSED="${PROCESSED}${ADDON}\n" done echo From a66a074373912644f8b66be473f00adbdc0413f4 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Fri, 1 Mar 2019 17:54:41 +0100 Subject: [PATCH 17/19] update_binary-addons: exclude vfs.nfs from updates vfs.nfs isn't released yet Signed-off-by: Matthias Reichl --- tools/mkpkg/update_binary-addons | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/mkpkg/update_binary-addons b/tools/mkpkg/update_binary-addons index e81f6649e1..27b1244ebe 100755 --- a/tools/mkpkg/update_binary-addons +++ b/tools/mkpkg/update_binary-addons @@ -10,7 +10,7 @@ if [ -z "$1" ]; then fi # list of packages to exclude from update -EXCLUDED_PACKAGES="vfs.sacd" +EXCLUDED_PACKAGES="vfs.nfs vfs.sacd" # the following environment variables can be set to "yes" to enable optional features: # KEEP_GIT_DIRS: don't delete cloned git directories after update check From 956f7e39953683407b6f68e52ecc298470a79685 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 2 Mar 2019 11:25:23 +0100 Subject: [PATCH 18/19] imagedecoder.mpo: add package imagedecoder.mpo is available as a binary addon from the Kodi repo but was missing in LibreELEC Signed-off-by: Matthias Reichl --- .../imagedecoder.mpo/package.mk | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 packages/mediacenter/kodi-binary-addons/imagedecoder.mpo/package.mk diff --git a/packages/mediacenter/kodi-binary-addons/imagedecoder.mpo/package.mk b/packages/mediacenter/kodi-binary-addons/imagedecoder.mpo/package.mk new file mode 100644 index 0000000000..7b19a509a9 --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/imagedecoder.mpo/package.mk @@ -0,0 +1,18 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="imagedecoder.mpo" +PKG_VERSION="1.0.1-Leia" +PKG_SHA256="33e580c7878dbf4e29e40aaf844ad2b138cc42a3156c3ec9621b33f6a764a4f3" +PKG_REV="0" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/xbmc/imagedecoder.mpo" +PKG_URL="https://github.com/xbmc/imagedecoder.mpo/archive/$PKG_VERSION.tar.gz" +PKG_DEPENDS_TARGET="toolchain kodi-platform libjpeg-turbo" +PKG_SECTION="" +PKG_SHORTDESC="imagedecoder.mpo" +PKG_LONGDESC="imagedecoder.mpo" + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="kodi.imagedecoder" From 27b2b47c6061a88c760a47d06fef8958e37005e2 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 2 Mar 2019 15:57:15 +0100 Subject: [PATCH 19/19] update_retroplayer-addons: exclude non-working game addons Signed-off-by: Matthias Reichl --- tools/mkpkg/update_retroplayer-addons | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/mkpkg/update_retroplayer-addons b/tools/mkpkg/update_retroplayer-addons index 66f1ca922e..dd163832f3 100755 --- a/tools/mkpkg/update_retroplayer-addons +++ b/tools/mkpkg/update_retroplayer-addons @@ -15,7 +15,14 @@ fi # BUMP_PKG_REV: bump PKG_REV if PKG_VERSION has changed # list of packages to exclude from update -EXCLUDED_PACKAGES="game.netplay" +EXCLUDED_PACKAGES="game.libretro.chailove + game.libretro.fbalpha2012 + game.libretro.lutro + game.libretro.parallel_n64 + game.libretro.pcem + game.libretro.theodore + game.netplay + game.shader.presets" MY_DIR="$(dirname "$0")" ROOT="$(cd "${MY_DIR}"/../.. && pwd)"