cleanup scripts: scripts/

This commit is contained in:
CvH 2024-07-06 11:17:12 +02:00
parent 7f543e3c98
commit 58ebc091cf
15 changed files with 231 additions and 184 deletions

View File

@ -9,7 +9,7 @@
RECONF_DIR="${3}"
if [ ! -f "${RECONF_DIR}/configure.in" \
-a ! -f "${RECONF_DIR}/configure.ac" ]; then
-a ! -f "${RECONF_DIR}/configure.ac" ]; then
die "configure.in or configure.ac not found"
fi

View File

@ -60,10 +60,18 @@ ${SCRIPTS}/unpack "${PKG_NAME}" "${PARENT_PKG}"
# build dependencies, only when PKG_DEPENDS_? is filled
unset _pkg_depends
case "${TARGET}" in
"target") _pkg_depends="${PKG_DEPENDS_TARGET}";;
"host") _pkg_depends="${PKG_DEPENDS_HOST}";;
"init") _pkg_depends="${PKG_DEPENDS_INIT}";;
"bootstrap") _pkg_depends="${PKG_DEPENDS_BOOTSTRAP}";;
"target")
_pkg_depends="${PKG_DEPENDS_TARGET}"
;;
"host")
_pkg_depends="${PKG_DEPENDS_HOST}"
;;
"init")
_pkg_depends="${PKG_DEPENDS_INIT}"
;;
"bootstrap")
_pkg_depends="${PKG_DEPENDS_BOOTSTRAP}"
;;
esac
if is_sequential_build; then
@ -76,7 +84,7 @@ fi
if [ "${PKG_SECTION}" = "virtual" ]; then
PKG_DEEPHASH=$(calculate_stamp)
for i in PKG_NAME PKG_DEEPHASH BUILD_WITH_DEBUG; do
echo "STAMP_${i}=\"${!i}\"" >> ${STAMP}
echo "STAMP_${i}=\"${!i}\"" >>${STAMP}
done
pkg_lock_status "UNLOCK" "${PKG_NAME}:${TARGET}" "build" "built"
@ -171,7 +179,6 @@ if [ "${BUILD_WITH_DEBUG}" != "yes" ] && flag_enabled "strip" "yes"; then
TARGET_MESON_OPTS+=" -Dstrip=true"
fi
# configure HOST build defaults
HOST_CONFIGURE_OPTS="--host=${HOST_NAME} \
--build=${HOST_NAME} \
@ -227,9 +234,15 @@ cd "${PKG_BUILD}"
if [ -f "${PKG_CONFIGURE_SCRIPT}" -o -f "${PKG_CMAKE_SCRIPT}" -o -f "${PKG_MESON_SCRIPT}" ]; then
case "${TARGET}" in
"target") PKG_REAL_BUILD="${PKG_BUILD}/.${TARGET_NAME}" ;;
"host") PKG_REAL_BUILD="${PKG_BUILD}/.${HOST_NAME}" ;;
"init") PKG_REAL_BUILD="${PKG_BUILD}/.${TARGET_NAME}-${TARGET}" ;;
"target")
PKG_REAL_BUILD="${PKG_BUILD}/.${TARGET_NAME}"
;;
"host")
PKG_REAL_BUILD="${PKG_BUILD}/.${HOST_NAME}"
;;
"init")
PKG_REAL_BUILD="${PKG_BUILD}/.${TARGET_NAME}-${TARGET}"
;;
"bootstrap") PKG_REAL_BUILD="${PKG_BUILD}/.${HOST_NAME}-${TARGET}" ;;
esac
mkdir -p "${PKG_REAL_BUILD}"
@ -241,13 +254,13 @@ fi
# create wrapper scripts in build dir and use them for CC/CXX when
# building for host and local-cc build flag is set
if [ "${TARGET}" = "host" ] && flag_enabled "local-cc" "no"; then
cat > libreelec-local-cc << EOF
cat >libreelec-local-cc <<EOF
#!/bin/sh
exec ${CC} "\$@"
EOF
chmod +x libreelec-local-cc
export CC=$(pwd)/libreelec-local-cc
cat > libreelec-local-cxx << EOF
cat >libreelec-local-cxx <<EOF
#!/bin/sh
exec ${CXX} "\$@"
EOF
@ -338,19 +351,19 @@ else
;;
# configure builds
"configure:target"|"autotools:target")
"configure:target" | "autotools:target")
echo "Executing (target): ${PKG_CONFIGURE_SCRIPT} ${TARGET_CONFIGURE_OPTS} ${PKG_CONFIGURE_OPTS_TARGET}" | tr -s " "
${PKG_CONFIGURE_SCRIPT} ${TARGET_CONFIGURE_OPTS} ${PKG_CONFIGURE_OPTS_TARGET}
;;
"configure:host"|"autotools:host")
"configure:host" | "autotools:host")
echo "Executing (host): ${PKG_CONFIGURE_SCRIPT} ${HOST_CONFIGURE_OPTS} ${PKG_CONFIGURE_OPTS_HOST}" | tr -s " "
${PKG_CONFIGURE_SCRIPT} ${HOST_CONFIGURE_OPTS} ${PKG_CONFIGURE_OPTS_HOST}
;;
"configure:init"|"autotools:init")
"configure:init" | "autotools:init")
echo "Executing (init): ${PKG_CONFIGURE_SCRIPT} ${INIT_CONFIGURE_OPTS} ${PKG_CONFIGURE_OPTS_INIT}" | tr -s " "
${PKG_CONFIGURE_SCRIPT} ${INIT_CONFIGURE_OPTS} ${PKG_CONFIGURE_OPTS_INIT}
;;
"configure:bootstrap"|"autotools:bootstrap")
"configure:bootstrap" | "autotools:bootstrap")
echo "Executing (bootstrap): ${PKG_CONFIGURE_SCRIPT} ${BOOTSTRAP_CONFIGURE_OPTS} ${PKG_CONFIGURE_OPTS_BOOTSTRAP}" | tr -s " "
${PKG_CONFIGURE_SCRIPT} ${BOOTSTRAP_CONFIGURE_OPTS} ${PKG_CONFIGURE_OPTS_BOOTSTRAP}
;;
@ -369,37 +382,37 @@ if pkg_call_exists make_${TARGET}; then
else
case "${PKG_TOOLCHAIN}:${TARGET}" in
# ninja based builds
"meson:target"|"cmake:target"|"ninja:target")
"meson:target" | "cmake:target" | "ninja:target")
echo "Executing (target): ninja ${PKG_MAKE_OPTS_TARGET}" | tr -s " "
ninja ${NINJA_OPTS} ${PKG_MAKE_OPTS_TARGET}
;;
"meson:host"|"cmake:host"|"ninja:host")
"meson:host" | "cmake:host" | "ninja:host")
echo "Executing (host): ninja ${PKG_MAKE_OPTS_HOST}" | tr -s " "
ninja ${NINJA_OPTS} ${PKG_MAKE_OPTS_HOST}
;;
"meson:init"|"cmake:init"|"ninja:init")
"meson:init" | "cmake:init" | "ninja:init")
echo "Executing (init): ninja ${PKG_MAKE_OPTS_INIT}" | tr -s " "
ninja ${NINJA_OPTS} ${PKG_MAKE_OPTS_INIT}
;;
"meson:bootstrap"|"cmake:bootstrap"|"ninja:bootstrap")
"meson:bootstrap" | "cmake:bootstrap" | "ninja:bootstrap")
echo "Executing (bootstrap): ninja ${PKG_MAKE_OPTS_BOOTSTRAP}" | tr -s " "
ninja ${NINJA_OPTS} ${PKG_MAKE_OPTS_BOOTSTRAP}
;;
# make based builds
"configure:target"|"cmake-make:target"|"autotools:target"|"make:target")
"configure:target" | "cmake-make:target" | "autotools:target" | "make:target")
echo "Executing (target): make ${PKG_MAKE_OPTS_TARGET}" | tr -s " "
make ${PKG_MAKE_OPTS_TARGET}
;;
"configure:host"|"cmake-make:host"|"autotools:host"|"make:host")
"configure:host" | "cmake-make:host" | "autotools:host" | "make:host")
echo "Executing (host): make ${PKG_MAKE_OPTS_HOST}" | tr -s " "
make ${PKG_MAKE_OPTS_HOST}
;;
"configure:init"|"cmake-make:init"|"autotools:init"|"make:init")
"configure:init" | "cmake-make:init" | "autotools:init" | "make:init")
echo "Executing (init): make ${PKG_MAKE_OPTS_INIT}" | tr -s " "
make ${PKG_MAKE_OPTS_INIT}
;;
"configure:bootstrap"|"cmake-make:bootstrap"|"autotools:bootstrap"|"make:bootstrap")
"configure:bootstrap" | "cmake-make:bootstrap" | "autotools:bootstrap" | "make:bootstrap")
echo "Executing (bootstrap): make ${PKG_MAKE_OPTS_BOOTSTRAP}" | tr -s " "
make ${PKG_MAKE_OPTS_BOOTSTRAP}
;;
@ -432,34 +445,34 @@ else
case "${PKG_TOOLCHAIN}:${TARGET}" in
# ninja based builds
"meson:target"|"cmake:target")
[ "${INSTALL_TO_SYSROOT}" = "yes" ] && \
"meson:target" | "cmake:target")
[ "${INSTALL_TO_SYSROOT}" = "yes" ] &&
DESTDIR=${SYSROOT_PREFIX} ninja install ${PKG_MAKEINSTALL_OPTS_TARGET}
DESTDIR=${INSTALL} ninja install ${PKG_MAKEINSTALL_OPTS_TARGET}
;;
"meson:host"|"cmake:host")
"meson:host" | "cmake:host")
ninja install ${PKG_MAKEINSTALL_OPTS_HOST}
;;
"meson:init"|"cmake:init")
"meson:init" | "cmake:init")
DESTDIR=${INSTALL} ninja install ${PKG_MAKEINSTALL_OPTS_INIT}
;;
"meson:bootstrap"|"cmake:bootstrap")
"meson:bootstrap" | "cmake:bootstrap")
ninja install ${PKG_MAKEINSTALL_OPTS_BOOTSTRAP}
;;
# make based builds
"configure:target"|"cmake-make:target"|"autotools:target"|"make:target")
[ "${INSTALL_TO_SYSROOT}" = "yes" ] && \
"configure:target" | "cmake-make:target" | "autotools:target" | "make:target")
[ "${INSTALL_TO_SYSROOT}" = "yes" ] &&
make install DESTDIR=${SYSROOT_PREFIX} -j1 ${PKG_MAKEINSTALL_OPTS_TARGET}
make install DESTDIR=${INSTALL} ${PKG_MAKEINSTALL_OPTS_TARGET}
;;
"configure:host"|"cmake-make:host"|"autotools:host"|"make:host")
"configure:host" | "cmake-make:host" | "autotools:host" | "make:host")
make install ${PKG_MAKEINSTALL_OPTS_HOST}
;;
"configure:init"|"cmake-make:init"|"autotools:init"|"make:init")
"configure:init" | "cmake-make:init" | "autotools:init" | "make:init")
make install DESTDIR=${INSTALL} ${PKG_MAKEINSTALL_OPTS_INIT}
;;
"configure:bootstrap"|"cmake-make:bootstrap"|"autotools:bootstrap"|"make:bootstrap")
"configure:bootstrap" | "cmake-make:bootstrap" | "autotools:bootstrap" | "make:bootstrap")
make install ${PKG_MAKEINSTALL_OPTS_BOOTSTRAP}
;;
esac
@ -516,10 +529,10 @@ if [ "${TARGET}" = "target" -o "${TARGET}" = "init" ]; then
rm -rf ${INSTALL}/{usr/local/,usr/,}share/zsh
rm -rf ${INSTALL}/{usr/local/,usr/,}var
find ${INSTALL} \( -name "*.orig" \
-o -name "*.rej" \
-o -name "*.in" \
-o -name ".git*" \) \
-exec rm -f {} \; 2>/dev/null || :
-o -name "*.rej" \
-o -name "*.in" \
-o -name ".git*" \) \
-exec rm -f {} \; 2>/dev/null || :
find ${INSTALL} -type d -exec rmdir -p {} \; 2>/dev/null || :
python_fix_abi "${INSTALL}"
@ -532,24 +545,24 @@ if [ "${TARGET}" = "target" -o "${TARGET}" = "init" ]; then
! -name "libpthread-*.so" \
! -name "libthread_db-*so" \
2>/dev/null) 2>/dev/null || :
if [ "${TARGET}" = "init" ]; then
${STRIP} $(find ${INSTALL} -type f -name "*.so*" 2>/dev/null) 2>/dev/null || :
fi
${STRIP} $(find ${INSTALL} ! -name "*.so*" ! -name "*.ko" \
-type f -executable 2>/dev/null) 2>/dev/null || :
if [ "${TARGET}" = "init" ]; then
${STRIP} $(find ${INSTALL} -type f -name "*.so*" 2>/dev/null) 2>/dev/null || :
fi
${STRIP} $(find ${INSTALL} ! -name "*.so*" ! -name "*.ko" \
-type f -executable 2>/dev/null) 2>/dev/null || :
fi
fi
fi
if [ -n "${INSTALL}" -a -d "${INSTALL}" ]; then
echo "INFO_PKG_NAME=\"${PKG_NAME}\"" > "${INSTALL}/.libreelec-package"
echo "INFO_PKG_NAME=\"${PKG_NAME}\"" >"${INSTALL}/.libreelec-package"
fi
cd ${ROOT}
PKG_DEEPHASH=$(calculate_stamp)
for i in PKG_NAME PKG_DEEPHASH BUILD_WITH_DEBUG; do
echo "STAMP_${i}=\"${!i}\"" >> ${STAMP}
echo "STAMP_${i}=\"${!i}\"" >>${STAMP}
done
pkg_lock_status "UNLOCK" "${PKG_NAME}:${TARGET}" "build" "built"
@ -559,7 +572,7 @@ record_timestamp BUILD_END
if [ -n "${TRACE_BUILD_TIMING}" ]; then
(
print_color "CLR_AUTOREMOVE" "\nBuild timing details:"
print_color "CLR_TARGET" "\n================================\n"
print_color "CLR_TARGET" "\n================================\n"
show_timestamp_diff "unpack" BUILD_BEGIN BUILD_START
show_timestamp_diff "pre-build setup" BUILD_START BUILD_CONFIGURE
show_timestamp_diff "configure" BUILD_CONFIGURE BUILD_MAKE
@ -567,7 +580,7 @@ if [ -n "${TRACE_BUILD_TIMING}" ]; then
show_timestamp_diff "make install" BUILD_MAKEINSTALL BUILD_COPY_SYSROOT
show_timestamp_diff "copy sysroot" BUILD_COPY_SYSROOT BUILD_CLEANUP_INSTALL
show_timestamp_diff "cleanup install" BUILD_CLEANUP_INSTALL BUILD_END
print_color "CLR_TARGET" "--------------------------------\n"
print_color "CLR_TARGET" "--------------------------------\n"
show_timestamp_diff "total time" BUILD_BEGIN BUILD_END
echo -e
) >&${VERBOSE_OUT}

View File

@ -10,7 +10,7 @@ ${SCRIPTS}/checkdeps
# Setup both toolchain cmake configs to avoid potentially racy behaviour later.
# Use a fork for host to isolate any variable modifications.
( setup_toolchain host )
(setup_toolchain host)
setup_toolchain target
MTADDONBUILD=no start_multithread_build ${@}

View File

@ -16,8 +16,8 @@ clean_package() {
# Use a wildcard here to remove all versions of the package
for i in "${BUILD}/build/${1}-"* \
"${BUILD}/install_pkg/${1}-"* \
"${BUILD}/install_init/${1}-"*; do
"${BUILD}/install_pkg/${1}-"* \
"${BUILD}/install_init/${1}-"*; do
if [ -d "${i}" -a -f "${i}/.libreelec-unpack" ]; then
. "${i}/.libreelec-unpack"
if [ "${STAMP_PKG_NAME}" = "${1}" ]; then
@ -49,4 +49,3 @@ if [ "${1}" = "--all" -a -n "${2}" ]; then
elif [ -n "${1}" ]; then
clean_package "${1}"
fi

View File

@ -51,10 +51,19 @@ get_addons() {
local count=0 validpkg
case ${1} in
binary) paths="^${ROOT}/packages/mediacenter/kodi-binary-addons/";;
official) paths="^${ROOT}/packages/addons/";;
all) paths="^${ROOT}/packages/|^${ROOT}/projects/.*/packages/";;
*) paths="^${ROOT}/packages/|^${ROOT}/projects/.*/packages/"; filter="${1}";;
binary)
paths="^${ROOT}/packages/mediacenter/kodi-binary-addons/"
;;
official)
paths="^${ROOT}/packages/addons/"
;;
all)
paths="^${ROOT}/packages/|^${ROOT}/projects/.*/packages/"
;;
*)
paths="^${ROOT}/packages/|^${ROOT}/projects/.*/packages/"
filter="${1}"
;;
esac
exit() { exited=1; }
@ -90,8 +99,8 @@ get_addons() {
unset -f exit
if [ ${count} -eq 0 -a -n "${filter}" ]; then
echo "$(print_color CLR_ERROR "ERROR: no addons matched for filter ${filter}")" >&2
echo "For more information type: ./scripts/create_addon --help" >&2
echo "$(print_color CLR_ERROR "ERROR: no addons matched for filter ${filter}")" >&2
echo "For more information type: ./scripts/create_addon --help" >&2
die
fi
}
@ -110,13 +119,13 @@ verify_addon() {
VERIFY_FAIL="Incompatible project or device: \"${_DEVICE:-${PROJECT}}\" not in [ ${PKG_ADDON_PROJECTS} ]"
if listcontains "${PKG_ADDON_PROJECTS}" "!${_DEVICE:-${PROJECT}}" ||
listcontains "${PKG_ADDON_PROJECTS}" "!${PROJECT}"; then
listcontains "${PKG_ADDON_PROJECTS}" "!${PROJECT}"; then
return 1
fi
if ! listcontains "${PKG_ADDON_PROJECTS}" "${_DEVICE:-${PROJECT}}" &&
! listcontains "${PKG_ADDON_PROJECTS}" "${PROJECT}" &&
! listcontains "${PKG_ADDON_PROJECTS}" "any"; then
! listcontains "${PKG_ADDON_PROJECTS}" "${PROJECT}" &&
! listcontains "${PKG_ADDON_PROJECTS}" "any"; then
return 1
fi
fi
@ -132,7 +141,7 @@ fi
# check environment and configure toolchains
${SCRIPTS}/checkdeps
( setup_toolchain host )
(setup_toolchain host)
setup_toolchain target
# collect list of addons for building
@ -143,11 +152,21 @@ show_only="no"
# read addons from parameter list
while [ $# -gt 0 ]; do
case ${1} in
--help) usage 0;;
--show-only) show_only="yes";;
--*) usage 1;;
-*) addons_drop+=" $(get_addons ${1:1})";;
*) addons+=" $(get_addons ${1})";;
--help)
usage 0
;;
--show-only)
show_only="yes"
;;
--*)
usage 1
;;
-*)
addons_drop+=" $(get_addons ${1:1})"
;;
*)
addons+=" $(get_addons ${1})"
;;
esac
shift
done
@ -181,7 +200,7 @@ elif [ -f "${THREAD_CONTROL}/addons.failed" ]; then
echo " $(print_color CLR_ERROR "${addon}")" >&2
fi
fi
done < "${THREAD_CONTROL}/addons.failed"
done <"${THREAD_CONTROL}/addons.failed"
die
else
die "$(print_color CLR_ERROR "UNKNOWN BUILD FAILURE OR INABILITY TO GENERATE PLAN")"

View File

@ -63,7 +63,7 @@ case "${PKG_SOURCE_NAME}" in
unzip -o -q "${FULL_SOURCE_PATH}" -d "${2}"
;;
*.diff | *.patch)
patch -d "${2}" -p1 < "${FULL_SOURCE_PATH}"
patch -d "${2}" -p1 <"${FULL_SOURCE_PATH}"
;;
*.diff.bz2 | *.patch.bz2 | patch-*.bz2)
bzcat "${FULL_SOURCE_PATH}" | patch -d "${2}" -p1

View File

@ -31,12 +31,15 @@ if [ -n "${PKG_URL}" -a -n "${PKG_SOURCE_NAME}" ]; then
# determine get handler based on protocol and/or filename
case "${PKG_URL}" in
git://*|*.git)
get_handler="git";;
git://* | *.git)
get_handler="git"
;;
file://*)
get_handler="file";;
get_handler="file"
;;
*)
get_handler="archive";;
get_handler="archive"
;;
esac
if ! listcontains "${GET_HANDLER_SUPPORT}" "${get_handler}"; then

View File

@ -23,7 +23,7 @@ ${SCRIPTS}/checkdeps
# Setup both toolchain cmake configs to avoid potentially racy behaviour later.
# Use a fork for host to isolate any variable modifications.
( setup_toolchain host )
(setup_toolchain host)
setup_toolchain target
show_config
@ -68,11 +68,21 @@ if [ "${LIBREELEC_VERSION}" = "devel" ]; then
GIT_ABBREV=${GIT_HASH:0:7}
DEVEL_VERSION=${LIBREELEC_VERSION}
case "${BUILD_PERIODIC}" in
nightly) LIBREELEC_VERSION=nightly-$(date +%Y%m%d)-${GIT_ABBREV};;
daily) LIBREELEC_VERSION=daily-$(date +%Y%j)-${GIT_ABBREV};;
weekly) LIBREELEC_VERSION=weekly-$(date +%G%V)-${GIT_ABBREV};;
monthly) LIBREELEC_VERSION=monthly-$(date +%Y%m)-${GIT_ABBREV};;
*) LIBREELEC_VERSION=devel-$(date +%Y%m%d%H%M%S)-${GIT_ABBREV};;
nightly)
LIBREELEC_VERSION=nightly-$(date +%Y%m%d)-${GIT_ABBREV}
;;
daily)
LIBREELEC_VERSION=daily-$(date +%Y%j)-${GIT_ABBREV}
;;
weekly)
LIBREELEC_VERSION=weekly-$(date +%G%V)-${GIT_ABBREV}
;;
monthly)
LIBREELEC_VERSION=monthly-$(date +%Y%m)-${GIT_ABBREV}
;;
*)
LIBREELEC_VERSION=devel-$(date +%Y%m%d%H%M%S)-${GIT_ABBREV}
;;
esac
fi
@ -115,13 +125,13 @@ if [ -n "${IMAGE_SUFFIX}" ]; then
IMAGE_NAME="${IMAGE_NAME}-${IMAGE_SUFFIX}"
fi
echo "${IMAGE_NAME}" > ${BUILD}/BUILD_FILENAME
echo "${IMAGE_NAME}" >${BUILD}/BUILD_FILENAME
# Setup fakeroot
rm -rf ${FAKEROOT_SCRIPT} # remove ${FAKEROOT_SCRIPT} if it exist
touch ${FAKEROOT_SCRIPT} # create an empty ${FAKEROOT_SCRIPT}
chmod +x ${FAKEROOT_SCRIPT} # make ${FAKEROOT_SCRIPT} executable
echo "chown -R 0:0 ${INSTALL}" >> ${FAKEROOT_SCRIPT}
echo "chown -R 0:0 ${INSTALL}" >>${FAKEROOT_SCRIPT}
# Clean old install dirs
rm -rf ${BUILD}/qa_checks/general
@ -151,7 +161,7 @@ if [ "${TARGET_ARCH}" = "x86_64" ]; then
ln -sfn /usr/lib ${INSTALL}/usr/lib64
fi
echo "${TARGET_VERSION}" > ${INSTALL}/etc/release
echo "${TARGET_VERSION}" >${INSTALL}/etc/release
# Create /etc/os-release
cat <<EOF >${INSTALL}/etc/os-release
@ -167,9 +177,9 @@ LIBREELEC_ARCH="${LIBREELEC_ARCH}"
LIBREELEC_BUILD="${LIBREELEC_BUILD}"
LIBREELEC_PROJECT="${PROJECT}"
EOF
[ -n "${DEVICE}" ] && echo "LIBREELEC_DEVICE=\"${DEVICE}\"" >> ${INSTALL}/etc/os-release
[ -n "${BUILDER_NAME}" ] && echo "BUILDER_NAME=\"${BUILDER_NAME}\"" >> ${INSTALL}/etc/os-release
[ -n "${BUILDER_VERSION}" ] && echo "BUILDER_VERSION=\"${BUILDER_VERSION}\"" >> ${INSTALL}/etc/os-release
[ -n "${DEVICE}" ] && echo "LIBREELEC_DEVICE=\"${DEVICE}\"" >>${INSTALL}/etc/os-release
[ -n "${BUILDER_NAME}" ] && echo "BUILDER_NAME=\"${BUILDER_NAME}\"" >>${INSTALL}/etc/os-release
[ -n "${BUILDER_VERSION}" ] && echo "BUILDER_VERSION=\"${BUILDER_VERSION}\"" >>${INSTALL}/etc/os-release
# Create /etc/issue
cat <<EOF >${INSTALL}/etc/issue
@ -208,16 +218,16 @@ fi
# Replace placeholders with values in install script to eMMC
if [ -f ${INSTALL}/usr/bin/install2emmc ]; then
sed -e "s%@SYSTEM_SIZE@%${SYSTEM_SIZE}%g" \
-i ${INSTALL}/usr/bin/install2emmc
-i ${INSTALL}/usr/bin/install2emmc
sed -e "s%@DISTRONAME@%${DISTRONAME}%g" \
-i ${INSTALL}/usr/bin/install2emmc
-i ${INSTALL}/usr/bin/install2emmc
fi
# Run depmod for base overlay modules
MODVER=$(basename $(ls -d ${INSTALL}/usr/lib/kernel-overlays/base/lib/modules/*))
find ${INSTALL}/usr/lib/kernel-overlays/base/lib/modules/${MODVER}/ -name *.ko | \
find ${INSTALL}/usr/lib/kernel-overlays/base/lib/modules/${MODVER}/ -name *.ko |
sed -e "s,${INSTALL}/usr/lib/kernel-overlays/base/lib/modules/${MODVER}/,," \
> ${INSTALL}/usr/lib/kernel-overlays/base/lib/modules/${MODVER}/modules.order
>${INSTALL}/usr/lib/kernel-overlays/base/lib/modules/${MODVER}/modules.order
${TOOLCHAIN}/bin/depmod -b ${INSTALL}/usr/lib/kernel-overlays/base -a -e -F "$(get_install_dir linux)/.image/System.map" ${MODVER} 2>&1
# Strip kernel modules
@ -251,8 +261,8 @@ if [ -z "${SQUASHFS_COMPRESSION_OPTION}" ]; then
fi
# Create squashfs file, default to gzip if no compression configured
echo "rm -rf \"${TARGET_IMG}/${IMAGE_NAME}.system\"" >> ${FAKEROOT_SCRIPT}
echo "${TOOLCHAIN}/bin/mksquashfs \"${BUILD}/image/system\" \"${TARGET_IMG}/${IMAGE_NAME}.system\" -noappend -comp ${SQUASHFS_COMPRESSION:-gzip} ${SQUASHFS_COMPRESSION_OPTION}" >> ${FAKEROOT_SCRIPT}
echo "rm -rf \"${TARGET_IMG}/${IMAGE_NAME}.system\"" >>${FAKEROOT_SCRIPT}
echo "${TOOLCHAIN}/bin/mksquashfs \"${BUILD}/image/system\" \"${TARGET_IMG}/${IMAGE_NAME}.system\" -noappend -comp ${SQUASHFS_COMPRESSION:-gzip} ${SQUASHFS_COMPRESSION_OPTION}" >>${FAKEROOT_SCRIPT}
# Run fakeroot
${TOOLCHAIN}/bin/fakeroot -- ${FAKEROOT_SCRIPT}
@ -290,10 +300,10 @@ if [ "${1}" = "release" -o "${1}" = "mkimage" -o "${1}" = "noobs" ]; then
cp ${ROOT}/README* ${RELEASE_DIR}
cp ${ROOT}/CHANGELOG* ${RELEASE_DIR}
echo "${TARGET_VERSION}" > ${RELEASE_DIR}/RELEASE
echo "${TARGET_VERSION}" >${RELEASE_DIR}/RELEASE
if [ ! "${MEDIACENTER}" = "no" ]; then
echo "Kodi commit: $(get_pkg_version ${MEDIACENTER})" >> ${RELEASE_DIR}/RELEASE
echo "Kodi commit: $(get_pkg_version ${MEDIACENTER})" >>${RELEASE_DIR}/RELEASE
fi
mkdir -p ${RELEASE_DIR}/licenses
@ -304,9 +314,10 @@ if [ "${1}" = "release" -o "${1}" = "mkimage" -o "${1}" = "noobs" ]; then
cp ${TARGET_IMG}/${IMAGE_NAME}.kernel ${RELEASE_DIR}/target/KERNEL
# Create md5sum's
( cd ${RELEASE_DIR};
md5sum -t target/SYSTEM > target/SYSTEM.md5;
md5sum -t target/KERNEL > target/KERNEL.md5;
(
cd ${RELEASE_DIR}
md5sum -t target/SYSTEM >target/SYSTEM.md5
md5sum -t target/KERNEL >target/KERNEL.md5
)
# Create target directory
@ -319,12 +330,13 @@ if [ "${1}" = "release" -o "${1}" = "mkimage" -o "${1}" = "noobs" ]; then
tar cf ${TARGET_IMG}/${IMAGE_NAME}.tar -C target ${IMAGE_NAME}
# Create sha256 checksum of tarball
( cd ${TARGET_IMG}
sha256sum ${IMAGE_NAME}.tar > ${IMAGE_NAME}.tar.sha256
(
cd ${TARGET_IMG}
sha256sum ${IMAGE_NAME}.tar >${IMAGE_NAME}.tar.sha256
)
# Create image files if requested
if [[ ( "${1}" = "noobs" || "${1}" = "mkimage" ) && -n "${BOOTLOADER}" ]]; then
if [[ ("${1}" = "noobs" || "${1}" = "mkimage") && -n "${BOOTLOADER}" ]]; then
UUID_SYSTEM="$(date '+%d%m')-$(date '+%M%S')"
UUID_STORAGE="$(uuidgen)"
@ -386,42 +398,42 @@ if [ "${1}" = "release" -o "${1}" = "mkimage" -o "${1}" = "noobs" ]; then
if [ -n "${NOOBS_HEX}" ]; then
sed -e "s%@NOOBS_HEX@%${NOOBS_HEX}%g" \
-i ${RELEASE_DIR}/${NOOBS_DISTRO}/os.json
-i ${RELEASE_DIR}/${NOOBS_DISTRO}/os.json
else
sed -e "/@NOOBS_HEX@/d" \
-i ${RELEASE_DIR}/${NOOBS_DISTRO}/os.json
-i ${RELEASE_DIR}/${NOOBS_DISTRO}/os.json
fi
sed -e "s%@DISTRONAME@%${DISTRONAME}%g" \
-e "s%@PROJECT@%${DEVICE:-${PROJECT}}%g" \
-e "s%@LIBREELEC_VERSION@%${LIBREELEC_VERSION}%g" \
-e "s%@RELEASE_DATE@%$(date +%F)%g" \
-e "s%@KERNEL_VERSION@%$(kernel_version)%g" \
-e "s%@DESCRIPTION@%${DESCRIPTION}%g" \
-e "s%@ROOT_PASSWORD@%${ROOT_PASSWORD}%g" \
-e "s%@NOOBS_SUPPORTED_MODELS@%${NOOBS_SUPPORTED_MODELS}%g" \
-i ${RELEASE_DIR}/${NOOBS_DISTRO}/os.json
-e "s%@PROJECT@%${DEVICE:-${PROJECT}}%g" \
-e "s%@LIBREELEC_VERSION@%${LIBREELEC_VERSION}%g" \
-e "s%@RELEASE_DATE@%$(date +%F)%g" \
-e "s%@KERNEL_VERSION@%$(kernel_version)%g" \
-e "s%@DESCRIPTION@%${DESCRIPTION}%g" \
-e "s%@ROOT_PASSWORD@%${ROOT_PASSWORD}%g" \
-e "s%@NOOBS_SUPPORTED_MODELS@%${NOOBS_SUPPORTED_MODELS}%g" \
-i ${RELEASE_DIR}/${NOOBS_DISTRO}/os.json
sed -e "s%@DISTRONAME@%${DISTRONAME}%g" \
-e "s%@PROJECT@%${DEVICE:-${PROJECT}}%g" \
-e "s%@SYSTEM_SIZE@%${SYSTEM_SIZE}%g" \
-i ${RELEASE_DIR}/${NOOBS_DISTRO}/partitions.json
-e "s%@PROJECT@%${DEVICE:-${PROJECT}}%g" \
-e "s%@SYSTEM_SIZE@%${SYSTEM_SIZE}%g" \
-i ${RELEASE_DIR}/${NOOBS_DISTRO}/partitions.json
sed -e "s%@EXTRA_CMDLINE@%${EXTRA_CMDLINE}%g" \
-i ${RELEASE_DIR}/${NOOBS_DISTRO}/partition_setup.sh
-i ${RELEASE_DIR}/${NOOBS_DISTRO}/partition_setup.sh
# Create System dir
mkdir -p ${RELEASE_DIR}/${NOOBS_DISTRO}/System
# Copy Bootloader
cp -PR ${INSTALL}/usr/share/bootloader/config.txt ${RELEASE_DIR}/${NOOBS_DISTRO}/System/
for distro in "${INSTALL}/usr/share/bootloader/distroconfig"*.txt ; do
for distro in "${INSTALL}/usr/share/bootloader/distroconfig"*.txt; do
if [ -f "${distro}" ]; then
cp -PR "${distro}" ${RELEASE_DIR}/${NOOBS_DISTRO}/System/
fi
done
cp -PR ${INSTALL}/usr/share/bootloader/LICENCE* ${RELEASE_DIR}/${NOOBS_DISTRO}/System/
for f in bootcode.bin fixup.dat start.elf ; do
for f in bootcode.bin fixup.dat start.elf; do
if [ -f "${INSTALL}/usr/share/bootloader/$f" ]; then
cp -PR "${INSTALL}/usr/share/bootloader/$f" "${RELEASE_DIR}/${NOOBS_DISTRO}/System/"
fi
@ -445,9 +457,10 @@ if [ "${1}" = "release" -o "${1}" = "mkimage" -o "${1}" = "noobs" ]; then
done
# Create md5sum's
( cd ${RELEASE_DIR}/${NOOBS_DISTRO}/System;
md5sum -t SYSTEM > SYSTEM.md5;
md5sum -t kernel.img > kernel.img.md5;
(
cd ${RELEASE_DIR}/${NOOBS_DISTRO}/System
md5sum -t SYSTEM >SYSTEM.md5
md5sum -t kernel.img >kernel.img.md5
)
# Copy additional files
@ -476,8 +489,9 @@ if [ "${1}" = "release" -o "${1}" = "mkimage" -o "${1}" = "noobs" ]; then
tar cf ${TARGET_IMG}/${IMAGE_NAME}-${1}.tar -C ${TARGET_IMG} ${IMAGE_NAME}-${1}
# Create sha256 checksum of tarball
( cd ${TARGET_IMG}
sha256sum ${IMAGE_NAME}-${1}.tar > ${IMAGE_NAME}-${1}.tar.sha256
(
cd ${TARGET_IMG}
sha256sum ${IMAGE_NAME}-${1}.tar >${IMAGE_NAME}-${1}.tar.sha256
)
fi
@ -490,4 +504,3 @@ fi
if [ -n "$(ls -1 ${BUILD}/qa_checks/ 2>/dev/null)" ]; then
log_qa_check "qa_issues" "QA issues present, please fix!\n$(find ${BUILD}/qa_checks/* -type f ! -name qa_issues)\n"
fi

View File

@ -15,7 +15,7 @@ if [ -z "${PKG_NAME}" ]; then
die "$(print_color CLR_ERROR "${1}: no package.mk file found")"
fi
if [ -z "${INSTALL}" ] ; then
if [ -z "${INSTALL}" ]; then
die "error: '\${INSTALL}' not set! this script is not intended to be run manually"
fi
@ -46,17 +46,17 @@ mkdir -p ${STAMPS_INSTALL}/${PKG_NAME}
${SCRIPTS}/build "${1}" "${PARENT_PKG}"
if is_sequential_build || [ "${PARENT_PKG}" = "initramfs:target" ]; then
if [ "${TARGET}" = "target" ] ; then
if [ "${TARGET}" = "target" ]; then
for p in ${PKG_DEPENDS_TARGET}; do
${SCRIPTS}/install "${p}" "${PARENT_PKG}"
done
elif [ "${TARGET}" = "init" ] ; then
elif [ "${TARGET}" = "init" ]; then
for p in ${PKG_DEPENDS_INIT}; do
${SCRIPTS}/install "${p}" "${PARENT_PKG}"
done
fi
fi
if [ "${TARGET}" = "init" ] ; then
if [ "${TARGET}" = "init" ]; then
INSTALL=${BUILD}/initramfs
fi
@ -70,11 +70,10 @@ acquire_update_lock image
mkdir -p ${INSTALL}
if [ "${TARGET}" = "target" ] ; then
if [ "${TARGET}" = "target" ]; then
for PKG_TMP_DIR in ${PKG_DIR} \
${PROJECT_DIR}/${PROJECT}/packages/${PKG_NAME} \
${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/packages/${PKG_NAME} \
; do
${PROJECT_DIR}/${PROJECT}/packages/${PKG_NAME} \
${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/packages/${PKG_NAME}; do
[ -d ${PKG_TMP_DIR} ] || continue
@ -141,7 +140,7 @@ if [ "${TARGET}" = "target" ] ; then
fi
# install
if [ "${TARGET}" = "target" ] ; then
if [ "${TARGET}" = "target" ]; then
pkg_call_exists_opt pre_install && pkg_call
fi
@ -169,7 +168,7 @@ if [ -n "${PKG_INSTALL}" -a -d "${PKG_INSTALL}" ]; then
-cf - . | tar -C "${INSTALL}" -xf -
fi
if [ "${TARGET}" = "target" ] ; then
if [ "${TARGET}" = "target" ]; then
pkg_call_exists_opt post_install && pkg_call
fi

View File

@ -80,8 +80,9 @@ if [ "${ADDON_JENKINS}" = "yes" ]; then
mkdir -p "${ADDON_JENKINS_DIR}"
cd ${ADDON_INSTALL_DIR}
${TOOLCHAIN}/bin/7za a -mx0 -bsp0 -bso0 -tzip ${ADDON_JENKINS_DIR}/${ADDON_JENKINS_ADDON_NAME}.zip ${PKG_ADDON_ID}-${ADDONVER}.zip resources/
( cd ${ADDON_JENKINS_DIR}
sha256sum ${ADDON_JENKINS_ADDON_NAME}.zip > ${ADDON_JENKINS_ADDON_NAME}.zip.sha256
(
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

View File

@ -20,12 +20,12 @@ fi
case $1 in
--clean)
rm -rf "${BUILD_ROOT}/${BUILD_BASE}."*/* "${BUILD_ROOT}/${BUILD_BASE}."*/.stamps
;;
;;
--distclean)
rm -rf "${BUILD_ROOT}/.ccache" "${BUILD_ROOT}/${BUILD_BASE}."*
;;
;;
*)
echo "error: ${0}: unsupported option on CLI; aborting"
exit 1
;;
;;
esac

View File

@ -18,9 +18,9 @@ if [ -z "${SYSTEM_SIZE}" -o -z "${SYSTEM_PART_START}" ]; then
exit 1
fi
DISK_START_PADDING=$(( (${SYSTEM_PART_START} + 2048 - 1) / 2048 ))
DISK_START_PADDING=$(((${SYSTEM_PART_START} + 2048 - 1) / 2048))
DISK_GPT_PADDING=1
DISK_SIZE=$(( ${DISK_START_PADDING} + ${SYSTEM_SIZE} + ${STORAGE_SIZE} + ${DISK_GPT_PADDING} ))
DISK_SIZE=$((${DISK_START_PADDING} + ${SYSTEM_SIZE} + ${STORAGE_SIZE} + ${DISK_GPT_PADDING}))
DISK_BASENAME="${TARGET_IMG}/${IMAGE_NAME}"
DISK="${DISK_BASENAME}.img"
@ -63,17 +63,17 @@ sync
# create partitions
echo "image: creating partitions..."
SYSTEM_PART_END=$(( ${SYSTEM_PART_START} + (${SYSTEM_SIZE} * 1024 * 1024 / 512) - 1 ))
STORAGE_PART_START=$(( ${SYSTEM_PART_END} + 1 ))
STORAGE_PART_END=$(( ${STORAGE_PART_START} + (${STORAGE_SIZE} * 1024 * 1024 / 512) - 1 ))
SYSTEM_PART_END=$((${SYSTEM_PART_START} + (${SYSTEM_SIZE} * 1024 * 1024 / 512) - 1))
STORAGE_PART_START=$((${SYSTEM_PART_END} + 1))
STORAGE_PART_END=$((${STORAGE_PART_START} + (${STORAGE_SIZE} * 1024 * 1024 / 512) - 1))
if [ "${DISK_LABEL}" = "gpt" ]; then
parted -s "${DISK}" -a min unit s mkpart system fat32 ${SYSTEM_PART_START} ${SYSTEM_PART_END}
parted -s "${DISK}" -a min unit s mkpart storage ext4 ${STORAGE_PART_START} ${STORAGE_PART_END}
parted -s "${DISK}" -a min unit s mkpart system fat32 ${SYSTEM_PART_START} ${SYSTEM_PART_END}
parted -s "${DISK}" -a min unit s mkpart storage ext4 ${STORAGE_PART_START} ${STORAGE_PART_END}
parted -s "${DISK}" set 1 legacy_boot on
else
parted -s "${DISK}" -a min unit s mkpart primary fat32 ${SYSTEM_PART_START} ${SYSTEM_PART_END}
parted -s "${DISK}" -a min unit s mkpart primary ext4 ${STORAGE_PART_START} ${STORAGE_PART_END}
parted -s "${DISK}" -a min unit s mkpart primary fat32 ${SYSTEM_PART_START} ${SYSTEM_PART_END}
parted -s "${DISK}" -a min unit s mkpart primary ext4 ${STORAGE_PART_START} ${STORAGE_PART_END}
parted -s "${DISK}" set 1 boot on
fi
sync
@ -86,7 +86,7 @@ fi
# create part2 to format and copy files
echo "image: creating sparse file for part2..."
STORAGE_PART_COUNT=$(( ${STORAGE_PART_END} - ${STORAGE_PART_START} + 1 ))
STORAGE_PART_COUNT=$((${STORAGE_PART_END} - ${STORAGE_PART_START} + 1))
sync
dd if="${DISK}" of="${LE_TMP}/part2.ext4" bs=512 count=0 seek="${STORAGE_PART_COUNT}" conv=fsync >"${SAVE_ERROR}" 2>&1 || show_error
@ -118,11 +118,11 @@ fi
# create part1 to format and copy files
echo "image: creating sparse file for part1..."
SYSTEM_PART_COUNT=$(( ${SYSTEM_PART_END} - ${SYSTEM_PART_START} + 1 ))
SYSTEM_PART_COUNT=$((${SYSTEM_PART_END} - ${SYSTEM_PART_START} + 1))
sync
dd if=/dev/zero of="${LE_TMP}/part1.fat" bs=512 count=0 seek="${SYSTEM_PART_COUNT}" conv=fsync >"${SAVE_ERROR}" 2>&1 || show_error
shopt -s expand_aliases # enables alias expansion in script
shopt -s expand_aliases # enables alias expansion in script
alias mcopy='mcopy -i "${LE_TMP}/part1.fat" -o'
alias mmd='mmd -i "${LE_TMP}/part1.fat"'
@ -137,7 +137,7 @@ sync
if [ "${BOOTLOADER}" = "syslinux" ]; then
# create bootloader configuration
echo "image: creating bootloader configuration..."
cat << EOF > "${LE_TMP}/syslinux.cfg"
cat <<EOF >"${LE_TMP}/syslinux.cfg"
SAY Wait for installer mode to start automatically in 5 seconds...
SAY
SAY Options
@ -163,7 +163,7 @@ LABEL run
APPEND boot=UUID=${UUID_SYSTEM} disk=UUID=${UUID_STORAGE} portable quiet
EOF
cat << EOF > "${LE_TMP}/grub.cfg"
cat <<EOF >"${LE_TMP}/grub.cfg"
set timeout="25"
set default="Installer"
menuentry "Installer" {
@ -202,7 +202,7 @@ EOF
elif [ "${BOOTLOADER}" = "bcm2835-bootloader" ]; then
# create bootloader configuration
echo "image: creating bootloader configuration..."
cat << EOF > "${LE_TMP}/cmdline.txt"
cat <<EOF >"${LE_TMP}/cmdline.txt"
boot=UUID=${UUID_SYSTEM} disk=UUID=${UUID_STORAGE} quiet ${EXTRA_CMDLINE}
EOF
@ -215,20 +215,20 @@ EOF
mcopy "${RELEASE_DIR}/target/KERNEL.md5" "::/${KERNEL_NAME}.md5" >"${SAVE_ERROR}" 2>&1 || show_error
mcopy "${RELEASE_DIR}/target/SYSTEM.md5" ::/SYSTEM.md5 >"${SAVE_ERROR}" 2>&1 || show_error
for f in bootcode.bin fixup.dat start.elf ; do
for f in bootcode.bin fixup.dat start.elf; do
if [ -f "${RELEASE_DIR}/3rdparty/bootloader/$f" ]; then
mcopy "${RELEASE_DIR}/3rdparty/bootloader/$f" :: >"${SAVE_ERROR}" 2>&1 || show_error
fi
done
mcopy "${RELEASE_DIR}/3rdparty/bootloader/config.txt" :: >"${SAVE_ERROR}" 2>&1 || show_error
for distro in "${RELEASE_DIR}/3rdparty/bootloader/distroconfig"*.txt ; do
for distro in "${RELEASE_DIR}/3rdparty/bootloader/distroconfig"*.txt; do
if [ -f "${distro}" ]; then
mcopy "${distro}" ::/"${distro##*/}" >"${SAVE_ERROR}" 2>&1 || show_error
fi
done
for dtb in "${RELEASE_DIR}/3rdparty/bootloader/"*.dtb ; do
for dtb in "${RELEASE_DIR}/3rdparty/bootloader/"*.dtb; do
if [ -f "${dtb}" ]; then
mcopy "${dtb}" ::/"${dtb##*/}" >"${SAVE_ERROR}" 2>&1 || show_error
fi
@ -255,7 +255,7 @@ elif [ "${BOOTLOADER}" = "u-boot" -a -n "${UBOOT_SYSTEM}" ]; then
mkdir -p "${LE_TMP}/extlinux"
cat << EOF > "${LE_TMP}/extlinux/extlinux.conf"
cat <<EOF >"${LE_TMP}/extlinux/extlinux.conf"
LABEL ${DISTRO}
LINUX /${KERNEL_NAME}
FDT /${DTB}
@ -314,14 +314,14 @@ if [ "${PROJECT}" = "Generic" ]; then
qemu-img convert -O vmdk -o subformat=streamOptimized "${DISK_BASENAME}.tmp" "${DISK_BASENAME}.vmdk"
# generate ovf from template
sed -e "s,@DISTRO@,${DISTRO},g" -e "s,@DISK@,${IMAGE_NAME},g" \
-e "s,@OVA_SIZE@,$((${OVA_SIZE}*1024*1024)),g" \
"${PROJECT_DIR}/${PROJECT}/config/ovf.template" > "${DISK_BASENAME}.ovf"
-e "s,@OVA_SIZE@,$((${OVA_SIZE} * 1024 * 1024)),g" \
"${PROJECT_DIR}/${PROJECT}/config/ovf.template" >"${DISK_BASENAME}.ovf"
# combine ovf and vmdk into official ova
tar -C "${TARGET_IMG}" -cf "${DISK_BASENAME}.ova" "${IMAGE_NAME}.ovf" "${IMAGE_NAME}.vmdk"
# create sha256 checksum of ova image
(
cd "${TARGET_IMG}"
sha256sum "${IMAGE_NAME}.ova" > "${IMAGE_NAME}.ova.sha256"
sha256sum "${IMAGE_NAME}.ova" >"${IMAGE_NAME}.ova.sha256"
)
echo "image: cleaning up open virtual appliance..."
# remove tmp ${DISK}, vmdk and ovf
@ -335,7 +335,7 @@ pigz --best --force "${DISK}"
# create sha256 checksum of image
(
cd "${TARGET_IMG}"
sha256sum "${DISK##*/}.gz" > "${DISK##*/}.gz.sha256"
sha256sum "${DISK##*/}.gz" >"${DISK##*/}.gz.sha256"
)
# cleanup

View File

@ -23,7 +23,7 @@ package_worker() {
num=0
for failed_items in ${oseqinfo//;/ }; do
num=$((num + 1))
read -r ftask fpkgname fseq <<< "${failed_items//,/ }"
read -r ftask fpkgname fseq <<<"${failed_items//,/ }"
if [ -n "${fseq}" ]; then
[ ${num} -eq 1 ] && echo "The following log(s) for already failed dependencies are available:"
@ -39,7 +39,7 @@ package_worker() {
[[ ${pkgname} =~ :target$ || "${pkgname//:/}" = "${pkgname}" ]] && istarget="yes" || istarget="no"
[[ "${MTADDONBUILD}" = "yes" && ( "${PKG_IS_ADDON}" = "yes" || "${PKG_IS_ADDON}" = "embedded" ) ]] && isaddon="yes" || isaddon="no"
[[ "${MTADDONBUILD}" = "yes" && ("${PKG_IS_ADDON}" = "yes" || "${PKG_IS_ADDON}" = "embedded") ]] && isaddon="yes" || isaddon="no"
if [ "${isaddon}" = "yes" -a "${istarget}" = "yes" ]; then
if [ ${result} -eq 0 ]; then
@ -58,7 +58,7 @@ package_worker() {
(
flock --exclusive 95
[ ${result} -eq 0 ] && status="DONE" || status="FAIL"
num=$(< "${THREAD_CONTROL}/progress")
num=$(<"${THREAD_CONTROL}/progress")
mv "${THREAD_CONTROL}/progress" "${THREAD_CONTROL}/progress.prev"
num=$((num + 1))
echo ${num} >"${THREAD_CONTROL}/progress"

View File

@ -51,6 +51,6 @@ fi
# pipefail: return value of a pipeline is the value of the last (rightmost) command to exit with a non-zero status
set -o pipefail
cat ${_CACHE_PACKAGE_GLOBAL} ${_CACHE_PACKAGE_LOCAL} | \
cat ${_CACHE_PACKAGE_GLOBAL} ${_CACHE_PACKAGE_LOCAL} |
xargs --max-args=64 --max-procs="$(nproc)" "$0" --worker
exit $?

View File

@ -20,7 +20,7 @@ pkg_lock "${PKG_NAME}" "unpack" "${PARENT_PKG}"
${SCRIPTS}/get "${PKG_NAME}"
if [ -n "${PKG_DEPENDS_UNPACK}" ]; then
export _unpack_recursive_cnt=$((_unpack_recursive_cnt+1))
export _unpack_recursive_cnt=$((_unpack_recursive_cnt + 1))
if [ ${_unpack_recursive_cnt} -gt 2 ]; then
die "unpack recursive limit hit: ${PKG_DEPENDS_UNPACK}, ${PARENT_PKG}"
fi
@ -28,7 +28,7 @@ if [ -n "${PKG_DEPENDS_UNPACK}" ]; then
for p in ${PKG_DEPENDS_UNPACK}; do
${SCRIPTS}/unpack "${p}" "${PARENT_PKG}"
done
unset _unpack_recursive_cnt
fi
@ -39,11 +39,11 @@ mkdir -p ${BUILD}/build
# Perform a wildcard match on the package to ensure old versions are cleaned too
PKG_DEEPHASH=
for i in ${BUILD}/build/${PKG_NAME}-*; do
if [ -d ${i} -a -f "${i}/.libreelec-unpack" ] ; then
if [ -d ${i} -a -f "${i}/.libreelec-unpack" ]; then
. "${i}/.libreelec-unpack"
if [ "${STAMP_PKG_NAME}" = "${PKG_NAME}" ]; then
[ -z "${PKG_DEEPHASH}" ] && PKG_DEEPHASH=$(calculate_stamp)
if [ ! "${PKG_DEEPHASH}" = "${STAMP_PKG_DEEPHASH}" ] ; then
if [ ! "${PKG_DEEPHASH}" = "${STAMP_PKG_DEEPHASH}" ]; then
${SCRIPTS}/clean "${PKG_NAME}"
fi
fi
@ -109,7 +109,7 @@ if [ -d "${SOURCES}/${PKG_NAME}" -o -d "${PKG_DIR}/sources" ] || pkg_call_exists
fi
# Add a tag to the unpacked folder before transferring into the shared build folder
echo "INFO_PKG_NAME=\"${PKG_NAME}\"" > "${PKG_UNPACK_DIR}/.intermediate/.libreelec-package"
echo "INFO_PKG_NAME=\"${PKG_NAME}\"" >"${PKG_UNPACK_DIR}/.intermediate/.libreelec-package"
# Restore original PKG_BUILD, and transfer the unpacked folder
PKG_BUILD="${PKG_BUILD_ORIG}"
@ -126,7 +126,7 @@ if [ -d "${SOURCES}/${PKG_NAME}" -o -d "${PKG_DIR}/sources" ] || pkg_call_exists
if [ "${TARGET_ARCH}" = "x86_64" ]; then
PATCH_ARCH="x86"
elif [ "${PKG_IS_KERNEL_PKG}" = "yes" ]; then
elif [ "${PKG_IS_KERNEL_PKG}" = "yes" ]; then
PATCH_ARCH="${TARGET_KERNEL_PATCH_ARCH:-${TARGET_ARCH}}"
else
PATCH_ARCH="${TARGET_PATCH_ARCH:-${TARGET_ARCH}}"
@ -148,15 +148,15 @@ if [ -d "${SOURCES}/${PKG_NAME}" -o -d "${PKG_DIR}/sources" ] || pkg_call_exists
fi
for i in ${PKG_DIR}/patches/*.patch \
${PKG_DIR}/patches/${PATCH_ARCH}/*.patch \
${PATCH_DIRS_PKG} \
${PKG_DIR}/patches/${PKG_VERSION}/*.patch \
${PKG_DIR}/patches/${PKG_VERSION}/${PATCH_ARCH}/*.patch \
${PROJECT_DIR}/${PROJECT}/patches/${PKG_NAME}/*.patch \
${PROJECT_DIR}/${PROJECT}/patches/${PKG_NAME}/${PATCH_ARCH}/*.patch \
${PATCH_DIRS_PRJ} \
${PROJECT_DIR}/${PROJECT}/patches/${PKG_NAME}/${PKG_VERSION}/*.patch \
${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/patches/${PKG_NAME}/*.patch; do
${PKG_DIR}/patches/${PATCH_ARCH}/*.patch \
${PATCH_DIRS_PKG} \
${PKG_DIR}/patches/${PKG_VERSION}/*.patch \
${PKG_DIR}/patches/${PKG_VERSION}/${PATCH_ARCH}/*.patch \
${PROJECT_DIR}/${PROJECT}/patches/${PKG_NAME}/*.patch \
${PROJECT_DIR}/${PROJECT}/patches/${PKG_NAME}/${PATCH_ARCH}/*.patch \
${PATCH_DIRS_PRJ} \
${PROJECT_DIR}/${PROJECT}/patches/${PKG_NAME}/${PKG_VERSION}/*.patch \
${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/patches/${PKG_NAME}/*.patch; do
thisdir="${i%/*}"
@ -191,9 +191,9 @@ if [ -d "${SOURCES}/${PKG_NAME}" -o -d "${PKG_DIR}/sources" ] || pkg_call_exists
if [ -f "${i}" ]; then
build_msg "CLR_APPLY_PATCH" "APPLY PATCH $(print_color "CLR_PATCH_DESC" "${PATCH_DESC}")" "${i#${ROOT}/}"
if grep -qE '^GIT binary patch$|^rename from|^rename to' ${i}; then
git apply --directory="${PKG_BUILD}" -p1 --verbose --whitespace=nowarn --unsafe-paths < ${i} >&${VERBOSE_OUT}
git apply --directory="${PKG_BUILD}" -p1 --verbose --whitespace=nowarn --unsafe-paths <${i} >&${VERBOSE_OUT}
else
patch -d "${PKG_BUILD}" -p1 < ${i} >&${VERBOSE_OUT}
patch -d "${PKG_BUILD}" -p1 <${i} >&${VERBOSE_OUT}
fi
fi
done
@ -201,13 +201,13 @@ if [ -d "${SOURCES}/${PKG_NAME}" -o -d "${PKG_DIR}/sources" ] || pkg_call_exists
pkg_call_exists_opt post_patch && pkg_call
fi
if [ "${PKG_NAME}" != "configtools" ] ; then
if [ "${PKG_NAME}" != "configtools" ]; then
for config in $(find "${PKG_BUILD}" -name config.guess | sed 's/config.guess//'); do
build_msg "CLR_FIXCONFIG" "FIXCONFIG" "${config}"
[ -f "${config}/config.guess" -a -f ${TOOLCHAIN}/configtools/config.guess ] && \
[ -f "${config}/config.guess" -a -f ${TOOLCHAIN}/configtools/config.guess ] &&
cp -f ${TOOLCHAIN}/configtools/config.guess ${config}
[ -f "${config}/config.sub" -a -f ${TOOLCHAIN}/configtools/config.sub ] && \
[ -f "${config}/config.sub" -a -f ${TOOLCHAIN}/configtools/config.sub ] &&
cp -f ${TOOLCHAIN}/configtools/config.sub ${config}
done
fi
@ -216,11 +216,11 @@ pkg_call_finish
if [ "${PKG_SECTION}" != "virtual" ]; then
mkdir -p "${PKG_BUILD}"
echo "INFO_PKG_NAME=\"${PKG_NAME}\"" > "${PKG_BUILD}/.libreelec-package"
echo "INFO_PKG_NAME=\"${PKG_NAME}\"" >"${PKG_BUILD}/.libreelec-package"
PKG_DEEPHASH=$(calculate_stamp)
for i in PKG_NAME PKG_DEEPHASH; do
echo "STAMP_${i}=\"${!i}\"" >> ${STAMP}
echo "STAMP_${i}=\"${!i}\"" >>${STAMP}
done
fi