mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
addon update scripts: change PKG_REV update logic
When updating versioned / tagged addons reset PKG_REV to 1. When updating unversioned / untagged addons always bump PKG_REV as we don't know if the version has been changed or not. If the "-b/--bump-pkg-rev" option is used PKG_REV will be bumped on all addons that weren't updated. Use this to ensure all addons will have a newer version than before. Signed-off-by: Matthias Reichl <hias@horus.com>
This commit is contained in:
parent
212c181de6
commit
43e58805d7
@ -75,7 +75,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" ${PKG_NAME} ${RESOLVED_HASH}
|
||||
update_pkg "${ROOT}/packages/mediacenter/kodi-platform" ${PKG_NAME} ${RESOLVED_HASH} || true
|
||||
fi
|
||||
if [ "${KEEP_GIT_DIRS}" != "yes" ]; then
|
||||
rm -rf $PKG_NAME.git
|
||||
@ -138,7 +138,10 @@ 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" ${ADDON} ${RESOLVED_HASH}
|
||||
if update_pkg "${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON" ${ADDON} ${RESOLVED_HASH}; then
|
||||
# always bump PKG_REV when updating untagged addons
|
||||
bump_pkg_rev "${ROOT}/packages/mediacenter/kodi-binary-addons/$ADDON" ${ADDON}
|
||||
fi
|
||||
|
||||
if [ "${KEEP_GIT_DIRS}" != "yes" ]; then
|
||||
rm -rf $ADDON.git
|
||||
|
@ -118,6 +118,15 @@ bump_pkg_rev() {
|
||||
msg_info "BUMPED ${pkg_name} PKG_REV from ${pkg_rev} to ${new_pkg_rev}"
|
||||
}
|
||||
|
||||
reset_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="1"
|
||||
|
||||
sed -e "s|PKG_REV=.*|PKG_REV=\"${new_pkg_rev}\"|" -i "${package_mk}"
|
||||
msg_info "RESET ${pkg_name} PKG_REV from ${pkg_rev} to ${new_pkg_rev}"
|
||||
}
|
||||
|
||||
update_pkg() {
|
||||
local pkg_path="$1" pkg_name="$2" pkg_version="$3"
|
||||
|
||||
@ -131,9 +140,9 @@ update_pkg() {
|
||||
download_pkg_file "${pkg_name}"
|
||||
set_pkg_sha256 "${pkg_path}"
|
||||
|
||||
if [ "${BUMP_PKG_REV}" = "yes" ]; then
|
||||
bump_pkg_rev "${pkg_path}" "${pkg_name}"
|
||||
fi
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
@ -141,11 +150,13 @@ 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
|
||||
local no_tag=""
|
||||
|
||||
git_clone "${repo}" "${branch}" "${gitdir}" "${ref}"
|
||||
|
||||
resolved_version=$(resolve_tag "${gitdir}" "${ref}")
|
||||
if [ -z "${resolved_version}" ]; then
|
||||
no_tag="yes"
|
||||
echo "========================================================================"
|
||||
msg_warn "WARNING: no tag found for package ${pkg_name}, falling back to HEAD"
|
||||
echo "========================================================================"
|
||||
@ -154,7 +165,16 @@ update_to_latest_tag() {
|
||||
|
||||
echo "Resolved version for ${pkg_name}: ${ref} => ${resolved_version}"
|
||||
|
||||
update_pkg "${pkg_path}" "${pkg_name}" "${resolved_version}"
|
||||
if update_pkg "${pkg_path}" "${pkg_name}" "${resolved_version}"; then
|
||||
if [ -n "${no_tag}" ]; then
|
||||
# always bump PKG_REV on updates as we have no info if version changed
|
||||
bump_pkg_rev "${pkg_path}" "${pkg_name}"
|
||||
else
|
||||
reset_pkg_rev "${pkg_path}" "${pkg_name}"
|
||||
fi
|
||||
else
|
||||
[ "${BUMP_PKG_REV}" = "yes" ] && bump_pkg_rev "${pkg_path}" "${pkg_name}"
|
||||
fi
|
||||
|
||||
if [ "${KEEP_GIT_DIRS}" != "yes" ]; then
|
||||
rm -rf "${gitdir}"
|
||||
|
@ -116,12 +116,15 @@ for addontxt in "game-binary-addons https://github.com/kodi-game/repo-binary-add
|
||||
RETRO_PATH=""
|
||||
fi
|
||||
|
||||
BUMPED=""
|
||||
BUMPED_ADDON=""
|
||||
BUMPED_RETRO=""
|
||||
NO_TAG=""
|
||||
CHECK_RETRO=""
|
||||
|
||||
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
|
||||
NO_TAG="yes"
|
||||
echo "========================================================================"
|
||||
msg_warn "WARNING: no tag found for addon ${GAME_ADDON}, falling back to HEAD"
|
||||
echo "========================================================================"
|
||||
@ -135,9 +138,7 @@ 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
|
||||
if [ "${BUMP_PKG_REV}" = "yes" ]; then
|
||||
BUMPED="yes"
|
||||
fi
|
||||
BUMPED_ADDON="yes"
|
||||
[ -n "${RETRO_NAME}" ] && CHECK_RETRO="yes"
|
||||
set_pkg_version "${GAME_PATH}" "${GAME_NEW_VERSION}"
|
||||
download_pkg_file "${GAME_ADDON}"
|
||||
@ -181,7 +182,7 @@ for addontxt in "game-binary-addons https://github.com/kodi-game/repo-binary-add
|
||||
fi
|
||||
|
||||
if [ "${RETRO_VERSION}" != "${RETRO_NEW_HASH}" ]; then
|
||||
BUMPED="yes"
|
||||
BUMPED_RETRO="yes"
|
||||
set_pkg_version "${RETRO_PATH}" "${RETRO_NEW_HASH}"
|
||||
download_pkg_file "${RETRO_ADDON}"
|
||||
set_pkg_sha256 "${RETRO_PATH}"
|
||||
@ -189,10 +190,24 @@ for addontxt in "game-binary-addons https://github.com/kodi-game/repo-binary-add
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "${BUMPED}" ]; then
|
||||
bump_pkg_rev "${GAME_PATH}" "${GAME_ADDON}"
|
||||
cleanup_pkg_tmp
|
||||
if [ -n "${NO_TAG}" ]; then
|
||||
# always bump PKG_REV on updates as we have no info if version changed
|
||||
if [ -n "${BUMPED_ADDON}" -o -n "${BUMPED_RETRO}" -o -n "${BUMP_PKG_REV}" ]; then
|
||||
bump_pkg_rev "${GAME_PATH}" "${GAME_ADDON}"
|
||||
fi
|
||||
else
|
||||
if [ -n "${BUMPED_ADDON}" ]; then
|
||||
# reset PKG_REV if version changed
|
||||
reset_pkg_rev "${GAME_PATH}" "${GAME_ADDON}"
|
||||
else
|
||||
# if addon version is unchanged but libretro changed bump PKG_REV
|
||||
if [ -n "${BUMPED_RETRO}" -o -n "${BUMP_PKG_REV}" ]; then
|
||||
bump_pkg_rev "${GAME_PATH}" "${GAME_ADDON}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
cleanup_pkg_tmp
|
||||
done
|
||||
done
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user