Files
Arch-R/scripts/install_addon

93 lines
3.2 KiB
Plaintext
Raw Permalink Normal View History

2017-07-19 00:47:49 +01:00
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
2018-07-16 20:45:36 +02:00
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
2017-07-19 00:47:49 +01:00
2019-06-16 02:45:52 +01:00
. config/options "${1}"
2017-07-19 00:47:49 +01:00
pkg_lock "${PKG_NAME}" "packadd"
pkg_lock_status "ACTIVE" "${PKG_NAME}" "packadd"
# cleanup old install path
rm -rf "${ADDON_BUILD}"
# install addon parts
if pkg_call_exists addon; then
2020-02-13 11:44:31 +00:00
pkg_call
else
install_binary_addon "${PKG_ADDON_ID}"
2020-02-13 11:44:31 +00:00
pkg_call_finish
fi
# Make sure we have a value for STRIP
setup_toolchain target
2019-06-16 02:45:52 +01:00
ADDON_DIRECTORY="${ADDON_BUILD}/${PKG_ADDON_ID}"
2017-07-19 00:47:49 +01:00
2019-06-16 02:45:52 +01:00
install_addon_files "${ADDON_DIRECTORY}"
2017-07-19 00:47:49 +01:00
2019-06-16 02:45:52 +01:00
debug_strip "${ADDON_DIRECTORY}"
# pack_addon()
ADDON_INSTALL_DIR="${TARGET_IMG}/${ADDONS}/${ADDON_VERSION}/${DEVICE:-${PROJECT}}/${TARGET_ARCH}/${PKG_ADDON_ID}"
2019-06-16 02:45:52 +01:00
ADDONVER="$(xmlstarlet sel -t -v "/addon/@version" ${ADDON_BUILD}/${PKG_ADDON_ID}/addon.xml)"
2019-06-16 02:45:52 +01:00
if [ -f ${ADDON_INSTALL_DIR}/${PKG_ADDON_ID}-${ADDONVER}.zip ]; then
if [ "${ADDON_OVERWRITE}" = "yes" ]; then
rm ${ADDON_INSTALL_DIR}/${PKG_ADDON_ID}-${ADDONVER}.zip
else
build_msg "CLR_WARNING" "*** WARNING: ${PKG_ADDON_ID}-${ADDONVER}.zip already exists. Not overwriting it. ***"
pkg_lock_status "UNLOCK" "${PKG_NAME}" "packadd" "already packed"
exit 0
fi
fi
2019-06-16 02:45:52 +01:00
cd ${ADDON_BUILD}
build_msg "CLR_INFO" "*** compressing addon ${PKG_ADDON_ID} ... ***"
toolchain: migrate from p7zip to 7-zip The -l option to 7za is not included the 7-Zip 22.01 version, it was an option added to the p7zip version: don't store symlinks; store the files/directories they point to (CAUTION : the scanning stage can never end because of recursive symlinks like 'ln -s .. ldir') The default for p7zip 16.02 7za was to store symlinks. The default for 7-zip 22.01 7za is not to store symlinks. test output is below and the -l option has been dropped from scripts/install_addon $ ls -l test total 4 -rw-r--r-- 1 docker docker 4 Jan 29 10:35 abc lrwxrwxrwx 1 docker docker 3 Jan 29 10:35 def -> abc 7-Zip (a) 22.01 (x64) : Copyright (c) 1999-2022 Igor Pavlov : 2022-07-15 64-bit locale=en_US.UTF-8 Threads:16 $ 7za a -mx9 -bsp0 -bso0 -tzip test.zip test $ unzip -v test.zip Archive: test.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 2023-01-29 10:36 00000000 test/ 4 Stored 4 0% 2023-01-29 10:35 4788814e test/abc 4 Stored 4 0% 2023-01-29 10:35 4788814e test/def -------- ------- --- ------- 8 8 0% 3 files 7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,16 CPUs x64) $ 7za a -mx9 -bsp0 -bso0 -tzip test.zip test $ unzip -v test.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 2023-01-29 10:35 00000000 test/ 4 Stored 4 0% 2023-01-29 10:35 4788814e test/abc 3 Stored 3 0% 2023-01-29 10:35 352441c2 test/def -------- ------- --- ------- 7 7 0% 3 files 7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,16 CPUs x64) $ 7za a -l -mx9 -bsp0 -bso0 -tzip test.zip test $ unzip -v test.zip Archive: test.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 2023-01-29 10:35 00000000 test/ 4 Stored 4 0% 2023-01-29 10:35 4788814e test/abc 4 Stored 4 0% 2023-01-29 10:35 4788814e test/def -------- ------- --- ------- 8 8 0% 3 files
2023-01-29 10:12:20 +00:00
${TOOLCHAIN}/bin/7za a -mx9 -bsp0 -bso0 -tzip ${PKG_ADDON_ID}-${ADDONVER}.zip ${PKG_ADDON_ID}
cd - &>/dev/null
2019-06-16 02:45:52 +01:00
mkdir -p ${ADDON_INSTALL_DIR}
cp ${ADDON_BUILD}/${PKG_ADDON_ID}-${ADDONVER}.zip ${ADDON_INSTALL_DIR}
if [ -f ${ADDON_BUILD}/${PKG_ADDON_ID}/changelog.txt ]; then
cp ${ADDON_BUILD}/${PKG_ADDON_ID}/changelog.txt ${ADDON_INSTALL_DIR}/changelog-${ADDONVER}.txt
fi
2019-06-16 02:45:52 +01:00
if [ -f ${ADDON_BUILD}/${PKG_ADDON_ID}/resources/icon.png ]; then
mkdir -p ${ADDON_INSTALL_DIR}/resources
cp ${ADDON_BUILD}/${PKG_ADDON_ID}/resources/icon.png ${ADDON_INSTALL_DIR}/resources/icon.png
fi
# workaround for kodi pvr addons
2019-06-16 02:45:52 +01:00
if [ -f ${ADDON_BUILD}/${PKG_ADDON_ID}/icon.png ]; then
cp ${ADDON_BUILD}/${PKG_ADDON_ID}/icon.png ${ADDON_INSTALL_DIR}/icon.png
fi
2019-06-16 02:45:52 +01:00
if [ -f ${ADDON_BUILD}/${PKG_ADDON_ID}/resources/fanart.png ]; then
mkdir -p ${ADDON_INSTALL_DIR}/resources
cp ${ADDON_BUILD}/${PKG_ADDON_ID}/resources/fanart.png ${ADDON_INSTALL_DIR}/resources/fanart.png
fi
2019-06-16 02:45:52 +01:00
for f in ${ADDON_BUILD}/${PKG_ADDON_ID}/resources/screenshot-*.{jpg,png}; do
if [ -f "${f}" ]; then
mkdir -p ${ADDON_INSTALL_DIR}/resources
cp ${f} ${ADDON_INSTALL_DIR}/resources
fi
done
# Jenkins add-on build
2019-06-16 02:45:52 +01:00
if [ "${ADDON_JENKINS}" = "yes" ]; then
ADDON_JENKINS_DIR="${TARGET_IMG}/jenkins"
ADDON_JENKINS_ADDON_NAME="${ADDON_VERSION}-${DEVICE:-${PROJECT}}-${TARGET_ARCH}-${PKG_ADDON_ID}-${ADDONVER}"
mkdir -p "${ADDON_JENKINS_DIR}"
cd ${ADDON_INSTALL_DIR}
toolchain: migrate from p7zip to 7-zip The -l option to 7za is not included the 7-Zip 22.01 version, it was an option added to the p7zip version: don't store symlinks; store the files/directories they point to (CAUTION : the scanning stage can never end because of recursive symlinks like 'ln -s .. ldir') The default for p7zip 16.02 7za was to store symlinks. The default for 7-zip 22.01 7za is not to store symlinks. test output is below and the -l option has been dropped from scripts/install_addon $ ls -l test total 4 -rw-r--r-- 1 docker docker 4 Jan 29 10:35 abc lrwxrwxrwx 1 docker docker 3 Jan 29 10:35 def -> abc 7-Zip (a) 22.01 (x64) : Copyright (c) 1999-2022 Igor Pavlov : 2022-07-15 64-bit locale=en_US.UTF-8 Threads:16 $ 7za a -mx9 -bsp0 -bso0 -tzip test.zip test $ unzip -v test.zip Archive: test.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 2023-01-29 10:36 00000000 test/ 4 Stored 4 0% 2023-01-29 10:35 4788814e test/abc 4 Stored 4 0% 2023-01-29 10:35 4788814e test/def -------- ------- --- ------- 8 8 0% 3 files 7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,16 CPUs x64) $ 7za a -mx9 -bsp0 -bso0 -tzip test.zip test $ unzip -v test.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 2023-01-29 10:35 00000000 test/ 4 Stored 4 0% 2023-01-29 10:35 4788814e test/abc 3 Stored 3 0% 2023-01-29 10:35 352441c2 test/def -------- ------- --- ------- 7 7 0% 3 files 7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,16 CPUs x64) $ 7za a -l -mx9 -bsp0 -bso0 -tzip test.zip test $ unzip -v test.zip Archive: test.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 2023-01-29 10:35 00000000 test/ 4 Stored 4 0% 2023-01-29 10:35 4788814e test/abc 4 Stored 4 0% 2023-01-29 10:35 4788814e test/def -------- ------- --- ------- 8 8 0% 3 files
2023-01-29 10:12:20 +00:00
${TOOLCHAIN}/bin/7za a -mx0 -bsp0 -bso0 -tzip ${ADDON_JENKINS_DIR}/${ADDON_JENKINS_ADDON_NAME}.zip ${PKG_ADDON_ID}-${ADDONVER}.zip resources/
2024-07-06 11:17:12 +02:00
(
cd ${ADDON_JENKINS_DIR}
sha256sum ${ADDON_JENKINS_ADDON_NAME}.zip >${ADDON_JENKINS_ADDON_NAME}.zip.sha256
)
build_msg "CLR_INFO" "*** creating ${ADDON_JENKINS_ADDON_NAME}.zip for Jenkins complete ***"
else
build_msg "CLR_INFO" "*** creating ${PKG_ADDON_ID} complete ***"
fi
pkg_lock_status "UNLOCK" "${PKG_NAME}" "packadd" "packed"