From aa9fea779702834a2a477ee2ad361e30a81bc7a6 Mon Sep 17 00:00:00 2001 From: Igor Date: Fri, 26 Apr 2024 14:45:55 +0200 Subject: [PATCH] Revert "cli: Add command "dts-check"" This reverts commit 54618c1bd3971c163decbbe1c030dc536ebaea49. --- lib/functions/cli/commands.sh | 6 ----- lib/functions/compilation/kernel-dts-check.sh | 22 ------------------- lib/functions/compilation/kernel-make.sh | 13 +++++------ lib/functions/compilation/kernel.sh | 9 +------- lib/functions/general/python-tools.sh | 17 +++----------- lib/library-functions.sh | 13 ++--------- 6 files changed, 12 insertions(+), 68 deletions(-) delete mode 100644 lib/functions/compilation/kernel-dts-check.sh diff --git a/lib/functions/cli/commands.sh b/lib/functions/cli/commands.sh index 7c52514aab..6cc89a4b70 100644 --- a/lib/functions/cli/commands.sh +++ b/lib/functions/cli/commands.sh @@ -9,8 +9,6 @@ function armbian_register_commands() { # More than one command can map to the same handler. In that case, use ARMBIAN_COMMANDS_TO_VARS_DICT for specific vars. - # The handlers' functions "cli_${ARMBIAN_COMMAND_HANDLER}_pre_run" and "cli_${ARMBIAN_COMMAND_HANDLER}_run" get automatically called in "utils-cli.sh" - # Example: For command "docker-purge", the handler is "docker", which means the functions "cli_docker_pre_run" and "cli_docker_run" inside "cli-docker.sh are automatically called by "utils-cli.sh" declare -g -A ARMBIAN_COMMANDS_TO_HANDLERS_DICT=( ["docker"]="docker" # thus requires cli_docker_pre_run and cli_docker_run ["docker-purge"]="docker" @@ -72,9 +70,6 @@ function armbian_register_commands() { ["kernel-config"]="artifact" ["rewrite-kernel-config"]="artifact" - # Patch kernel and then check & validate the dtb file - ["dts-check"]="artifact" # Not really an artifact, but cli output only. Builds nothing. - ["uboot"]="artifact" ["uboot-patch"]="artifact" ["atf-patch"]="artifact" @@ -134,7 +129,6 @@ function armbian_register_commands() { ["rewrite-kernel-config"]="WHAT='kernel' KERNEL_CONFIGURE='yes' ARTIFACT_WILL_NOT_BUILD='yes' ARTIFACT_IGNORE_CACHE='yes' ${common_cli_artifact_vars}" ["kernel-patch"]="WHAT='kernel' CREATE_PATCHES='yes' ${common_cli_artifact_interactive_vars} ${common_cli_artifact_vars}" ["kernel-dtb"]="WHAT='kernel' KERNEL_DTB_ONLY='yes' ${common_cli_artifact_interactive_vars} ${common_cli_artifact_vars}" - ["dts-check"]="WHAT='kernel' DTS_VALIDATE='yes' ARTIFACT_WILL_NOT_BUILD='yes'" # Not really an artifact, but cli output only. Builds nothing. ["uboot"]="WHAT='uboot' ${common_cli_artifact_vars}" ["uboot-config"]="WHAT='uboot' UBOOT_CONFIGURE='yes' ${common_cli_artifact_interactive_vars} ${common_cli_artifact_vars}" diff --git a/lib/functions/compilation/kernel-dts-check.sh b/lib/functions/compilation/kernel-dts-check.sh deleted file mode 100644 index ca2094a625..0000000000 --- a/lib/functions/compilation/kernel-dts-check.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash -# -# SPDX-License-Identifier: GPL-2.0 -# -# Copyright (c) 2013-2024 Igor Pecovnik, igor@armbian.com -# -# This file is a part of the Armbian Build Framework -# https://github.com/armbian/build/ - - -# Validate the dts/dtb file against dt bindings found in "linux/Documentation/devicetree/bindings/" -# See slide 15 in https://elinux.org/images/1/17/How_to_Get_Your_DT_Schema_Bindings_Accepted_in_Less_than_10_Iterations_-_Krzysztof_Kozlowski%2C_Linaro_-_ELCE_2023.pdf -function validate_dts() { - [[ -z "${BOOT_FDT_FILE}" ]] && exit_with_error "BOOT_FDT_FILE not set! No dts file to validate." - display_alert "Validating dts/dtb file for selected board" "${BOOT_FDT_FILE} ; see output below" "info" - - # "make CHECK_DTBS=y" uses the pip modules "dtschema" and "yamllint" - prepare_python_and_pip - - # Run "make CHECK_DTBS=y" for the selected board's dtb file - run_kernel_make "CHECK_DTBS=y ${BOOT_FDT_FILE}" -} \ No newline at end of file diff --git a/lib/functions/compilation/kernel-make.sh b/lib/functions/compilation/kernel-make.sh index b37b74f439..5080a974f6 100644 --- a/lib/functions/compilation/kernel-make.sh +++ b/lib/functions/compilation/kernel-make.sh @@ -18,13 +18,12 @@ function run_kernel_make_internal() { prepare_distcc_compilation_config common_make_envs=( - "CCACHE_BASEDIR=\"$(pwd)\"" # Base directory for ccache, for cache reuse # @TODO: experiment with this and the source path to maximize hit rate - "CCACHE_TEMPDIR=\"${CCACHE_TEMPDIR:?}\"" # Temporary directory for ccache, under WORKDIR - "PATH=\"${toolchain}:${PYTHON3_INFO[USERBASE]}/bin:${PATH}\"" # Insert the toolchain and the pip binaries into the PATH - "PYTHONPATH=\"${PYTHON3_INFO[MODULES_PATH]}:${PYTHONPATH}\"" # Insert the pip modules downloaded by Armbian into PYTHONPATH (needed for dtb checks) - "DPKG_COLORS=always" # Use colors for dpkg @TODO no dpkg is done anymore, remove? - "XZ_OPT='--threads=0'" # Use parallel XZ compression - "TERM='${TERM}'" # Pass the terminal type, so that 'make menuconfig' can work. + "CCACHE_BASEDIR=\"$(pwd)\"" # Base directory for ccache, for cache reuse # @TODO: experiment with this and the source path to maximize hit rate + "CCACHE_TEMPDIR=\"${CCACHE_TEMPDIR:?}\"" # Temporary directory for ccache, under WORKDIR + "PATH=\"${toolchain}:${PATH}\"" # Insert the toolchain first into the PATH. + "DPKG_COLORS=always" # Use colors for dpkg @TODO no dpkg is done anymore, remove? + "XZ_OPT='--threads=0'" # Use parallel XZ compression + "TERM='${TERM}'" # Pass the terminal type, so that 'make menuconfig' can work. "COLUMNS='${COLUMNS:-160}'" "COLORFGBG='${COLORFGBG}'" ) diff --git a/lib/functions/compilation/kernel.sh b/lib/functions/compilation/kernel.sh index 6b3a02cfa3..a19a3d641d 100644 --- a/lib/functions/compilation/kernel.sh +++ b/lib/functions/compilation/kernel.sh @@ -53,14 +53,7 @@ function compile_kernel() { declare hash pre_patch_version kernel_main_patching # has it's own logging sections inside - # Validate dts file if flag is set and stop after validation. - if [[ "${DTS_VALIDATE}" == yes ]]; then - LOG_SECTION="validate_dts" do_with_logging validate_dts - display_alert "DTS_VALIDATE is set, stopping." "DTS_VALIDATE=yes and dts sucessfully checked. See output above to fix your board's dts file." "cachehit" - return 0 - fi - - # Stop after patching. + # Stop after patching; if [[ "${PATCH_ONLY}" == yes ]]; then display_alert "PATCH_ONLY is set, stopping." "PATCH_ONLY=yes and patching success" "cachehit" return 0 diff --git a/lib/functions/general/python-tools.sh b/lib/functions/general/python-tools.sh index 809ff5f15d..ae82d37e43 100644 --- a/lib/functions/general/python-tools.sh +++ b/lib/functions/general/python-tools.sh @@ -22,8 +22,6 @@ function early_prepare_pip3_dependencies_for_python_tools() { "oras==0.1.29" # for OCI stuff in mapper-oci-update "Jinja2==3.1.3" # for templating "rich==13.7.1" # for rich text formatting - "dtschema" # for checking dts files and dt bindings (use latest version) - "yamllint" # for checking dts files and dt bindings (use latest version) ) return 0 } @@ -49,20 +47,14 @@ function prepare_python_and_pip() { fi # Check that the actual python3 --version is 3.9 at least - declare python3_version python3_version_full - python3_version_full="$("${python3_binary_path}" --version)" # "cut" below masks errors, do it twice. + declare python3_version python3_full_version + python3_full_version="$("${python3_binary_path}" --version)" # "cut" below masks errors, do it twice. python3_version="$("${python3_binary_path}" --version | cut -d' ' -f2)" - display_alert "Python3 version" "${python3_version} - '${python3_version_full}'" "info" + display_alert "Python3 version" "${python3_version} - '${python3_full_version}'" "info" if ! linux-version compare "${python3_version}" ge "3.9"; then exit_with_error "Python3 version is too old (${python3_version}), need at least 3.9" fi - declare python3_version_majorminor python3_version_string - # Extract the major and minor version numbers (e.g., "3.12" instead of "3.12.2") - python3_version_majorminor=$(echo "${python3_version_full}" | awk '{print $2}' | cut -d. -f1,2) - # Construct the version string (e.g., "python3.12") - python3_version_string="python$python3_version_majorminor" - # Check actual pip3 version # Note: we don't use "/usr/bin/pip3" at all, since it's commonly missing. instead "python -m pip" # The hostdep package python3-pip is still required, and other crazy might impact this. @@ -108,19 +100,16 @@ function prepare_python_and_pip() { declare python_hash_base="${python_pip_cache}/pip_pkg_hash" declare python_hash_file="${python_hash_base}_${python3_pip_dependencies_hash}" declare python3_user_base="${python_pip_cache}/base" - declare python3_modules_path="${python3_user_base}/lib/${python3_version_string}/site-packages" declare python3_pycache="${python_pip_cache}/pycache" # declare a readonly global dict with all needed info for executing stuff using this setup declare -r -g -A PYTHON3_INFO=( [BIN]="${python3_binary_path}" [USERBASE]="${python3_user_base}" - [MODULES_PATH]="${python3_modules_path}" [PYCACHEPREFIX]="${python3_pycache}" [HASH]="${python3_pip_dependencies_hash}" [DEPS]="${python3_pip_dependencies[*]}" [VERSION]="${python3_version}" - [VERSION_STRING]="${python3_version_string}" [PIP_VERSION]="${pip3_version}" ) diff --git a/lib/library-functions.sh b/lib/library-functions.sh index da459ea79d..f970001fa2 100644 --- a/lib/library-functions.sh +++ b/lib/library-functions.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# This file is/was autogenerated by ./lib/tools/gen-library.sh; don't modify manually +# This file is/was autogenerated by lib/tools/gen-library.sh; don't modify manually # no errors tolerated. invoked before each sourced file to make sure. #set -o pipefail # trace ERR through pipes - will be enabled "soon" @@ -361,15 +361,6 @@ set -o errexit ## set -e : exit the script if any statement returns a non-true # shellcheck source=lib/functions/compilation/kernel-debs.sh source "${SRC}"/lib/functions/compilation/kernel-debs.sh -# no errors tolerated. invoked before each sourced file to make sure. -#set -o pipefail # trace ERR through pipes - will be enabled "soon" -#set -o nounset ## set -u : exit the script if you try to use an uninitialised variable - one day will be enabled -set -o errtrace # trace ERR through - enabled -set -o errexit ## set -e : exit the script if any statement returns a non-true return value - enabled -### lib/functions/compilation/kernel-dts-check.sh -# shellcheck source=lib/functions/compilation/kernel-dts-check.sh -source "${SRC}"/lib/functions/compilation/kernel-dts-check.sh - # no errors tolerated. invoked before each sourced file to make sure. #set -o pipefail # trace ERR through pipes - will be enabled "soon" #set -o nounset ## set -u : exit the script if you try to use an uninitialised variable - one day will be enabled @@ -1194,4 +1185,4 @@ source "${SRC}"/lib/functions/rootfs/trap-rootfs.sh #set -o nounset ## set -u : exit the script if you try to use an uninitialised variable - one day will be enabled set -o errtrace # trace ERR through - enabled set -o errexit ## set -e : exit the script if any statement returns a non-true return value - enabled -# This file is/was autogenerated by ./lib/tools/gen-library.sh; don't modify manually +# This file is/was autogenerated by lib/tools/gen-library.sh; don't modify manually