Merge pull request #3531 from MilhouseVH/le10_minor_cleanup

buildsystem: cleanup (addons) and fix (linux)
This commit is contained in:
Matthias Reichl 2019-06-05 09:41:44 +02:00 committed by GitHub
commit c7f2098c74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 72 additions and 47 deletions

View File

@ -1155,6 +1155,8 @@ done
}
install_addon_files() {
mkdir -p "$1"
install_addon_source "$1"
install_addon_images "$1"
create_addon_xml "$1"
@ -1262,7 +1264,7 @@ pkg_lock() {
# As we now have the lock, if .failed still exists then a previous process must have failed
if [ -f "${THREAD_CONTROL}/locks/${pkg}.${task}.failed" ]; then
fail_seq="$(cat "${THREAD_CONTROL}/locks/${pkg}.${task}.failed")"
fail_seq="$(< "${THREAD_CONTROL}/locks/${pkg}.${task}.failed")"
print_color CLR_ERROR "FAILURE: ${pkg}.${task}.failed exists, a previous dependency process has failed (seq: ${fail_seq})\n"
if [ -d "${THREAD_CONTROL}/logs" ]; then
cat <<EOF
@ -1320,15 +1322,18 @@ update_dashboard() {
sedline=$((MTJOBID + 2))
num=$(cat "${THREAD_CONTROL}/status" | wc -l)
while [ ${num} -lt ${sedline} ]; do echo "" >>"${THREAD_CONTROL}/status"; num=$((num + 1)); done
num=$(< "${THREAD_CONTROL}/status.max")
if [ ${num} -lt ${sedline} ]; then
echo ${sedline} >"${THREAD_CONTROL}/status.max"
for i in $(seq $((num + 1)) ${sedline}); do echo "" >>"${THREAD_CONTROL}/status"; done
fi
num=$(($(cat "${THREAD_CONTROL}/progress.prev") + 1))
num=$(< "${THREAD_CONTROL}/progress.prev")
projdevarch="${PROJECT}/"
[ -n "${DEVICE}" ] && projdevarch+="${DEVICE}/"
projdevarch+="${TARGET_ARCH}"
TZ=UTC0 printf -v elapsed "%(%H:%M:%S)T" $(($(date +%s) - MTBUILDSTART))
printf -v preamble "%s Dashboard (%s) - %d of %d jobs completed, %s elapsed" "${DISTRONAME}" "${projdevarch}" ${num} ${MTMAXJOBS} "${elapsed}"
printf -v preamble "%s Dashboard (%s) - %d of %d jobs completed, %s elapsed" "${DISTRONAME}" "${projdevarch}" $((num + 1)) ${MTMAXJOBS} "${elapsed}"
printf -v preamble "%b%-105s %s" "\e[2J\e[0;0H" "${preamble//\//\\/}" "$(date "+%Y-%m-%d %H:%M:%S")"
if [ "${DISABLE_COLORS}" != "yes" ]; then

View File

@ -107,8 +107,9 @@ package_worker() {
(
flock --exclusive 95
[ ${result} -eq 0 ] && status="DONE" || status="FAIL"
num=$(($(cat "${THREAD_CONTROL}/progress") + 1))
num=$(< "${THREAD_CONTROL}/progress")
mv "${THREAD_CONTROL}/progress" "${THREAD_CONTROL}/progress.prev"
num=$((num + 1))
echo ${num} >"${THREAD_CONTROL}/progress"
printf "[%0*d/%0*d] [%-4s] %-7s %s\n" ${#jobs} ${num} ${#jobs} ${jobs} "${status}" "${task}" "${pkgname}" >&2
) 95>"${THREAD_CONTROL}/locks/.progress"
@ -143,6 +144,7 @@ start_multithread_build() {
mkdir -p "${THREAD_CONTROL}/locks"
echo -1 >"${THREAD_CONTROL}/progress.prev"
echo 0 >"${THREAD_CONTROL}/progress"
echo 0 >"${THREAD_CONTROL}/status.max"
touch "${THREAD_CONTROL}/status"
[ "${THREADCOUNT}" = "0" ] && THREADCOUNT=1

View File

@ -10,6 +10,10 @@ PKG_URL="http://www.udpxy.com/download/1_23/${PKG_NAME}.${PKG_VERSION}-prod.tar.
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="A UDP-to-HTTP multicast traffic relay daemon."
configure_target() {
export CFLAGS+=" -Wno-stringop-truncation"
}
makeinstall_target() {
:
}

View File

@ -20,9 +20,7 @@ PKG_ADDON_PROJECTS="Slice Slice3"
PKG_ADDON_TYPE="xbmc.service"
makeinstall_target() {
PKG_ADDON_INSTALL_DIR="${INSTALL}/usr/share/kodi/addons/${PKG_SECTION}.${PKG_NAME}"
mkdir -p "${PKG_ADDON_INSTALL_DIR}"
install_addon_files "${PKG_ADDON_INSTALL_DIR}"
install_addon_files "${INSTALL}/usr/share/kodi/addons/${PKG_SECTION}.${PKG_NAME}"
}
addon() {

View File

@ -36,11 +36,6 @@ PKG_ADDON_NAME=".Net Core Runtime"
PKG_ADDON_TYPE="xbmc.python.script"
PKG_MAINTAINER="Anton Voyl (awiouy)"
unpack() {
mkdir -p $PKG_BUILD
$SCRIPTS/extract $PKG_NAME $PKG_BUILD
}
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
cp -r $PKG_BUILD/$PKG_NAME-$PKG_VERSION/* \

View File

@ -15,7 +15,9 @@ PKG_TOOLCHAIN="manual"
unpack() {
mkdir -p $PKG_BUILD/
tar -xf $SOURCES/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.bz2 -C $PKG_BUILD/
}
post_unpack() {
# hack/workaround for borked upstream kernel/media_build
# without removing atomisp there a lot additional includes that
# slowdown build process after modpost from 3min to 6min

View File

@ -15,7 +15,9 @@ PKG_TOOLCHAIN="manual"
unpack() {
mkdir -p $PKG_BUILD/
tar -xf $SOURCES/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.bz2 -C $PKG_BUILD/
}
post_unpack() {
# hack/workaround for borked upstream kernel/media_build
# without removing atomisp there a lot additional includes that
# slowdown build process after modpost from 3min to 6min

View File

@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="firmware-imx"
PKG_VERSION="5.4"
@ -13,9 +14,8 @@ PKG_LONGDESC="firmware-imx: Freescale IMX firmware such as for the VPU"
PKG_TOOLCHAIN="manual"
unpack() {
mkdir -p $BUILD
cd $BUILD
sh $SOURCES/$PKG_NAME/$PKG_NAME-$PKG_VERSION.bin --auto-accept
cd $(dirname $PKG_BUILD)
sh $SOURCES/$PKG_NAME/$PKG_NAME-$PKG_VERSION.bin --auto-accept
}
makeinstall_target() {

View File

@ -6,7 +6,7 @@ PKG_NAME="linux"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kernel.org"
PKG_DEPENDS_HOST="ccache:host openssl:host"
PKG_DEPENDS_TARGET="toolchain cpio:host kmod:host xz:host wireless-regdb keyutils $KERNEL_EXTRA_DEPENDS_TARGET"
PKG_DEPENDS_TARGET="toolchain linux:host cpio:host kmod:host xz:host wireless-regdb keyutils $KERNEL_EXTRA_DEPENDS_TARGET"
PKG_DEPENDS_INIT="toolchain"
PKG_NEED_UNPACK="$LINUX_DEPENDS"
PKG_LONGDESC="This package contains a precompiled kernel image and the modules."

View File

@ -17,3 +17,4 @@ PKG_LONGDESC="audiodecoder.usf"
PKG_IS_ADDON="yes"
PKG_ADDON_TYPE="kodi.audiodecoder"
PKG_ADDON_PROJECTS="any !RPi1"

View File

@ -10,7 +10,7 @@ PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/xbmc/screensaver.greynetic"
PKG_URL="https://github.com/xbmc/screensaver.greynetic/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain kodi-platform"
PKG_DEPENDS_TARGET="toolchain kodi-platform glm"
PKG_SECTION=""
PKG_SHORTDESC="screensaver.greynetic"
PKG_LONGDESC="screensaver.greynetic"

View File

@ -148,7 +148,7 @@ Full list of overwrittable functions.
| unpack<br>pre_unpack<br>post_unpack | - | Extract the source from the downloaded file |
| pre_patch<br>post_patch | - | Apply the patches to the source, after extraction. The patch function it self is not allowed to overwritten |
| pre_build_\[stage] | yes | Runs before of the start of the build |
| configure_\[stage]<br>pre_configure_\[stage]<br>post_configure_\[stage] | yes | Configure the package for the compile. This is only relevant for toolchain, that supports it (e.g. meson, cmake, configure, manual) |
| pre_configure<br>pre_configure_\[stage]<br>configure_\[stage]<br>post_configure_\[stage] | yes | Configure the package for the compile. This is only relevant for toolchain, that supports it (e.g. meson, cmake, configure, manual) |
| make_\[stage]<br>pre_make_\[stage]<br>post_make_\[stage] | yes | Build of the package |
| makeinstall_\[stage]<br>pre_makeinstall_\[stage]<br>post_makeinstall_\[stage] | yes | Installation of the files in the correct pathes<br>host: TOOLCHAIN<br>target: SYSROOT and IMAGE<br>bootstrap and init: temporary destination
| addon | - | Copy all files together for addon creation. This is requiered for addons |

View File

@ -8,7 +8,7 @@ PKG_SHA256="9f0d852b39d75fc655f9f53850eb32555394f36104a044bb2b2fc9e66dbbfa7f"
PKG_LICENSE="OSS"
PKG_SITE="http://www.fontconfig.org"
PKG_URL="http://www.freedesktop.org/software/fontconfig/release/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain util-macros freetype libxml2 zlib expat"
PKG_DEPENDS_TARGET="toolchain util-linux util-macros freetype libxml2 zlib expat"
PKG_LONGDESC="Fontconfig is a library for font customization and configuration."
PKG_CONFIGURE_OPTS_TARGET="--with-arch=$TARGET_ARCH \

View File

@ -238,6 +238,7 @@ if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" -o -f "$PKG_MESON_SCRI
fi
# configure
pkg_call_exists pre_configure && pkg_call pre_configure
pkg_call_exists pre_configure_$TARGET && pkg_call pre_configure_$TARGET
if pkg_call_exists configure_$TARGET; then

View File

@ -22,10 +22,13 @@ clean_package() {
build_msg "CLR_WARNING" "*" "$(print_color "CLR_WARNING_DIM" "Removing ${i} ...")"
rm -rf "${i}"
fi
else
elif [ -d "${i}" -a -f "${i}/.libreelec-package" ]; then
# force clean if no stamp found (previous unpack failed)
build_msg "" "" "* Removing ${i} ..."
rm -rf "${i}"
. "${i}/.libreelec-package"
if [ "${INFO_PKG_NAME}" = "${1}" ]; then
build_msg "" "" "* Removing ${i} ..."
rm -rf "${i}"
fi
fi
done
rm -f "${STAMPS}/${1}/build_"*

View File

@ -12,8 +12,6 @@ setup_toolchain target
ADDON_DIRECTORY="$ADDON_BUILD/$PKG_ADDON_ID"
mkdir -p "$ADDON_DIRECTORY"
install_addon_files "$ADDON_DIRECTORY"
debug_strip "$ADDON_DIRECTORY"

View File

@ -60,40 +60,46 @@ if [ -d "$SOURCES/${PKG_NAME}" -o -d "$PKG_DIR/sources" ]; then
pkg_call_exists pre_unpack && pkg_call pre_unpack
if pkg_call_exists unpack; then
pkg_call unpack
(
PKG_BUILD="${PKG_UNPACK_DIR}/${PKG_NAME}-${PKG_VERSION}"
pkg_call unpack
)
else
if [ -n "$PKG_URL" ]; then
${SCRIPTS}/extract "${PKG_NAME}" "${PKG_UNPACK_DIR}"
fi
fi
_pkg_build="$(basename "${PKG_BUILD}")"
[ -z "${PKG_SOURCE_DIR}" -a -d "${PKG_UNPACK_DIR}/${_pkg_build}"* ] && mv "${PKG_UNPACK_DIR}/${_pkg_build}"* "${PKG_BUILD}"
if [ -z "${PKG_SOURCE_DIR}" -a -d "${PKG_UNPACK_DIR}/${PKG_NAME}-${PKG_VERSION}"* ]; then
mv "${PKG_UNPACK_DIR}/${PKG_NAME}-${PKG_VERSION}"* "${PKG_UNPACK_DIR}/.intermediate"
fi
if [ ! -d "${PKG_BUILD}" ]; then
if [ ! -d "${PKG_UNPACK_DIR}/.intermediate" ]; then
if [ -n "${PKG_SOURCE_DIR}" ]; then
if [ -d "${PKG_UNPACK_DIR}"/${PKG_SOURCE_DIR} ]; then
mv "${PKG_UNPACK_DIR}"/${PKG_SOURCE_DIR} "${PKG_BUILD}"
mv "${PKG_UNPACK_DIR}"/${PKG_SOURCE_DIR} "${PKG_UNPACK_DIR}/.intermediate"
else
# fallback
mv "${BUILD}"/${PKG_SOURCE_DIR} "${PKG_BUILD}"
mv "${BUILD}"/${PKG_SOURCE_DIR} "${PKG_UNPACK_DIR}/.intermediate"
fi
elif [ -d "${PKG_BUILD}"* ]; then
mv "${PKG_BUILD}"* "${PKG_BUILD}"
mv "${PKG_BUILD}"* "${PKG_UNPACK_DIR}/.intermediate"
fi
fi
# cleanup
rm -rf "${PKG_UNPACK_DIR}"
[ ! -d "${PKG_UNPACK_DIR}/.intermediate" ] && mkdir -p "${PKG_UNPACK_DIR}/.intermediate"
if [ -d "$PKG_DIR/sources" ]; then
[ ! -d "$PKG_BUILD" ] && mkdir -p "$PKG_BUILD"
cp -PRf "$PKG_DIR/sources/"* "$PKG_BUILD"
cp -PRf "$PKG_DIR/sources/"* "${PKG_UNPACK_DIR}/.intermediate"
fi
if [ -z "$PKG_URL" ]; then
mkdir -p "${PKG_BUILD}"
fi
echo "INFO_PKG_NAME=\"${PKG_NAME}\"" > "${PKG_UNPACK_DIR}/.intermediate/.libreelec-package"
rm -fr "${PKG_BUILD}"
mv "${PKG_UNPACK_DIR}/.intermediate" "${PKG_BUILD}"
# cleanup
rm -rf "${PKG_UNPACK_DIR}"
pkg_call_exists post_unpack && pkg_call post_unpack
@ -184,6 +190,7 @@ fi
if [ "$PKG_SECTION" != "virtual" ]; then
mkdir -p "$PKG_BUILD"
echo "INFO_PKG_NAME=\"${PKG_NAME}\"" > "${PKG_BUILD}/.libreelec-package"
rm -f $STAMPS/${PKG_NAME}/build_*

View File

@ -104,7 +104,13 @@ class MyUtility(object):
return (0, subprocess.check_output(command.split(" "), stderr=_logfile))
except subprocess.CalledProcessError as cpe:
if MyUtility.isPython3:
return (cpe.returncode, cpe.output.decode("utf-8"))
# Clean up undecodable garbage in response (eg. libftdi1 error page)
output = bytearray()
for c in cpe.output:
if c <= 127:
output.append(c)
return (cpe.returncode, output.decode("utf-8"))
else:
return (cpe.returncode, cpe.output)
finally:

View File

@ -76,8 +76,8 @@ process_line() {
[ -n "${matches}" ] && log "${filename}" ${lc} "FAIL" "late binding violation" "${matches:2}"
}
init_multi_func() {
local f t multi
init_target_funcs() {
local f t funcs
for t in target host init bootstrap; do
for f in pre_build \
@ -85,10 +85,10 @@ init_multi_func() {
pre_make make post_make \
pre_makeinstall makeinstall post_makeinstall \
; do
multi+=" ${f}_${t}"
funcs+=" ${f}_${t}"
done
done
echo "${multi:1}"
echo "${funcs:1}"
}
check_func_name() {
@ -98,7 +98,8 @@ check_func_name() {
for f in configure_package \
pre_unpack unpack post_unpack \
pre_patch post_patch \
${MULTI_FUNC} \
pre_configure \
${TARGET_FUNCS} \
pre_install post_install \
addon \
; do
@ -146,7 +147,7 @@ process_pkg() {
done <<< "$(grep -E ".*() {" "${filename}" | sed 's/[[:space:]]*{.*//' | sort | uniq -c | grep -v ^[[:space:]]*1[[:space:]])"
}
MULTI_FUNC="$(init_multi_func)"
TARGET_FUNCS="$(init_target_funcs)"
if [ $# -ne 0 ]; then
for arg in ${@}; do