mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
Code cleaning attempts (#2925)
* Move function run_on_sdcard to more appropriate location * Focus on bash headers, unify, adjust (c) * Adjust (c) to range * Cleanup compile.sh * Cleaning main * Build all, main configs * fine tunning * Improve readme
This commit is contained in:
16
README.md
16
README.md
@@ -74,11 +74,18 @@ Run build tools inside Docker container:
|
||||
./compile.sh docker
|
||||
```
|
||||
|
||||
Build minimal CLI Debian buster based image for Odroid XU4. Use modern kernel and write image to the SD card:
|
||||
Build minimal CLI Armbian Focal image for Orangepi Zero. Use modern kernel and write image to the SD card:
|
||||
|
||||
```text
|
||||
./compile.sh BOARD="odroidxu4" BRANCH="current" RELEASE="buster" CARD_DEVICE="/dev/sda" \
|
||||
KERNEL_ONLY="no" KERNEL_CONFIGURE="no" BUILD_DESKTOP="yes" RELEASE="focal" BUILD_DESKTOP="yes" DESKTOP_ENVIRONMENT="xfce" DESKTOP_ENVIRONMENT_CONFIG_NAME="config_full" DESKTOP_APPGROUPS_SELECTED="browsers editors programming"
|
||||
./compile.sh \
|
||||
BOARD=orangepizero \
|
||||
BRANCH=current \
|
||||
RELEASE=focal \
|
||||
BUILD_MINIMAL=yes \
|
||||
BUILD_DESKTOP=no \
|
||||
KERNEL_ONLY=no \
|
||||
KERNEL_CONFIGURE=no \
|
||||
CARD_DEVICE="/dev/sda"
|
||||
```
|
||||
|
||||
[Build parameters, advanced build options, user defined configuration, build with Docker?](#additional-information)
|
||||
@@ -137,6 +144,9 @@ Armbian [releases](https://docs.armbian.com/Release_Changelog/) quarterly at the
|
||||
│ ├── boards Board configurations
|
||||
│ ├── bootenv Initial boot loaders environments per family
|
||||
│ ├── bootscripts Initial Boot loaders scripts per family
|
||||
│ ├── cli CLI packages configurations per distribution
|
||||
│ ├── desktop Desktop packages configurations per distribution
|
||||
│ ├── distributions Distributions settings
|
||||
│ ├── kernel Kernel build configurations per family
|
||||
│ ├── sources Kernel and u-boot sources locations and scripts
|
||||
│ ├── templates User configuration templates which populate userpatches
|
||||
|
||||
54
compile.sh
54
compile.sh
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
# Copyright (c) 2013-2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
@@ -21,18 +21,23 @@ grep -q "[[:space:]]" <<<"${SRC}" && { echo "\"${SRC}\" contains whitespace. Not
|
||||
cd "${SRC}" || exit
|
||||
|
||||
if [[ -f "${SRC}"/lib/general.sh ]]; then
|
||||
|
||||
# shellcheck source=lib/general.sh
|
||||
source "${SRC}"/lib/general.sh
|
||||
|
||||
else
|
||||
|
||||
echo "Error: missing build directory structure"
|
||||
echo "Please clone the full repository https://github.com/armbian/build/"
|
||||
exit 255
|
||||
|
||||
fi
|
||||
|
||||
# Add the variables needed at the beginning of the path
|
||||
check_args ()
|
||||
{
|
||||
for p in "$@"; do
|
||||
|
||||
for p in "$@"; do
|
||||
|
||||
case "${p%=*}" in
|
||||
LIB_TAG)
|
||||
@@ -48,12 +53,16 @@ check_args ()
|
||||
;;
|
||||
esac
|
||||
|
||||
done
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
|
||||
check_args "$@"
|
||||
|
||||
|
||||
update_src() {
|
||||
|
||||
cd "${SRC}" || exit
|
||||
if [[ ! -f "${SRC}"/.ignore_changes ]]; then
|
||||
echo -e "[\e[0;32m o.k. \x1B[0m] This script will try to update"
|
||||
@@ -62,7 +71,8 @@ update_src() {
|
||||
if [[ -n "${CHANGED_FILES}" ]]; then
|
||||
echo -e "[\e[0;35m warn \x1B[0m] Can't update since you made changes to: \e[0;32m\n${CHANGED_FILES}\x1B[0m"
|
||||
while true; do
|
||||
echo -e "Press \e[0;33m<Ctrl-C>\x1B[0m or \e[0;33mexit\x1B[0m to abort compilation, \e[0;33m<Enter>\x1B[0m to ignore and continue, \e[0;33mdiff\x1B[0m to display changes"
|
||||
echo -e "Press \e[0;33m<Ctrl-C>\x1B[0m or \e[0;33mexit\x1B[0m to abort compilation"\
|
||||
", \e[0;33m<Enter>\x1B[0m to ignore and continue, \e[0;33mdiff\x1B[0m to display changes"
|
||||
read -r
|
||||
if [[ "${REPLY}" == "diff" ]]; then
|
||||
git diff
|
||||
@@ -79,11 +89,14 @@ update_src() {
|
||||
git pull
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
|
||||
TMPFILE=$(mktemp)
|
||||
chmod 644 "${TMPFILE}"
|
||||
{
|
||||
|
||||
echo SRC="$SRC"
|
||||
echo LIB_TAG="$LIB_TAG"
|
||||
declare -f update_src
|
||||
@@ -94,15 +107,19 @@ chmod 644 "${TMPFILE}"
|
||||
#do not update/checkout git with root privileges to messup files onwership.
|
||||
#due to in docker/VM, we can't su to a normal user, so do not update/checkout git.
|
||||
if [[ $(systemd-detect-virt) == 'none' ]]; then
|
||||
|
||||
if [[ "${EUID}" == "0" ]]; then
|
||||
su "$(stat --format=%U "${SRC}"/.git)" -c "bash ${TMPFILE}"
|
||||
else
|
||||
bash "${TMPFILE}"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
rm "${TMPFILE}"
|
||||
|
||||
|
||||
if [[ "${EUID}" == "0" ]] || [[ "${1}" == "vagrant" ]]; then
|
||||
:
|
||||
elif [[ "${1}" == docker || "${1}" == dockerpurge || "${1}" == docker-shell ]] && grep -q "$(whoami)" <(getent group docker); then
|
||||
@@ -113,19 +130,23 @@ else
|
||||
exit $?
|
||||
fi
|
||||
|
||||
# Check for required packages for compiling
|
||||
|
||||
# Check for required packages
|
||||
if [[ -z "$(command -v dialog)" ]]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y dialog
|
||||
fi
|
||||
|
||||
if [[ -z "$(command -v fuser)" ]]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y psmisc
|
||||
fi
|
||||
|
||||
if [[ -z "$(command -v getfacl)" ]]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y acl
|
||||
fi
|
||||
|
||||
if [[ -z "$(command -v uuidgen)" ]]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y uuid-runtime
|
||||
@@ -138,6 +159,7 @@ if [[ "${1}" == vagrant && -z "$(command -v vagrant)" ]]; then
|
||||
sudo apt-get install -y vagrant virtualbox
|
||||
fi
|
||||
|
||||
# Purge Armbian Docker images
|
||||
if [[ "${1}" == dockerpurge && -f /etc/debian_version ]]; then
|
||||
display_alert "Purging Armbian Docker containers" "" "wrn"
|
||||
docker container ls -a | grep armbian | awk '{print $1}' | xargs docker container rm &> /dev/null
|
||||
@@ -146,6 +168,7 @@ if [[ "${1}" == dockerpurge && -f /etc/debian_version ]]; then
|
||||
set -- "docker" "$@"
|
||||
fi
|
||||
|
||||
# Docker shell
|
||||
if [[ "${1}" == docker-shell ]]; then
|
||||
shift
|
||||
#shellcheck disable=SC2034
|
||||
@@ -153,7 +176,7 @@ if [[ "${1}" == docker-shell ]]; then
|
||||
set -- "docker" "$@"
|
||||
fi
|
||||
|
||||
# Install Docker if not there but wanted. We cover only Debian based distro install. Else, manual Docker install is needed
|
||||
# Install Docker if not there but wanted. We cover only Debian based distro install. On other distros, manual Docker install is needed
|
||||
if [[ "${1}" == docker && -f /etc/debian_version && -z "$(command -v docker)" ]]; then
|
||||
|
||||
DOCKER_BINARY="docker-ce"
|
||||
@@ -185,11 +208,14 @@ if [[ "${1}" == docker && -f /etc/debian_version && -z "$(command -v docker)" ]]
|
||||
display_alert "Add yourself to docker group to avoid root privileges" "" "wrn"
|
||||
"${SRC}/compile.sh" "$@"
|
||||
exit $?
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Create userpatches directory if not exists
|
||||
mkdir -p "${SRC}"/userpatches
|
||||
|
||||
|
||||
# Create example configs if none found in userpatches
|
||||
if ! ls "${SRC}"/userpatches/{config-example.conf,config-docker.conf,config-vagrant.conf} 1> /dev/null 2>&1; then
|
||||
|
||||
@@ -261,17 +287,23 @@ popd > /dev/null || exit
|
||||
|
||||
# Script parameters handling
|
||||
while [[ "${1}" == *=* ]]; do
|
||||
parameter=${1%%=*}
|
||||
value=${1##*=}
|
||||
shift
|
||||
display_alert "Command line: setting $parameter to" "${value:-(empty)}" "info"
|
||||
eval "$parameter=\"$value\""
|
||||
|
||||
parameter=${1%%=*}
|
||||
value=${1##*=}
|
||||
shift
|
||||
display_alert "Command line: setting $parameter to" "${value:-(empty)}" "info"
|
||||
eval "$parameter=\"$value\""
|
||||
|
||||
done
|
||||
|
||||
if [[ "${BUILD_ALL}" == "yes" || "${BUILD_ALL}" == "demo" ]]; then
|
||||
|
||||
# shellcheck source=lib/build-all-ng.sh
|
||||
source "${SRC}"/lib/build-all-ng.sh
|
||||
|
||||
else
|
||||
|
||||
# shellcheck source=lib/main.sh
|
||||
source "${SRC}"/lib/main.sh
|
||||
|
||||
fi
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2013-2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
#
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
NAME_KERNEL="Image"
|
||||
NAME_INITRD="uInitrd"
|
||||
MAIN_CMDLINE="rootflags=data=writeback rw no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 bootsplash.bootfile=bootsplash.armbian"
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2013-2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
#
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
NAME_KERNEL="zImage"
|
||||
NAME_INITRD="uInitrd"
|
||||
MAIN_CMDLINE="rootflags=data=writeback rw no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 bootsplash.bootfile=bootsplash.armbian"
|
||||
@@ -7,6 +18,7 @@ ARCHITECTURE=arm
|
||||
ARCH=armhf
|
||||
KERNEL_IMAGE_TYPE=Image
|
||||
CAN_BUILD_STRETCH=yes
|
||||
|
||||
if [ "$(uname -m)" = "aarch64" ]; then
|
||||
[[ -z $UBOOT_COMPILER ]] && UBOOT_COMPILER="arm-linux-gnueabihf-"
|
||||
else
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) Authors: https://www.armbian.com/authors
|
||||
# Copyright (c) 2013-2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
|
||||
#
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
# Functions:
|
||||
# unset_all
|
||||
# pack_upload
|
||||
# build_main
|
||||
# array_contains
|
||||
# check_hash
|
||||
# build_all
|
||||
|
||||
|
||||
@@ -47,25 +49,22 @@ fi
|
||||
|
||||
unset_all ()
|
||||
{
|
||||
unset LINUXFAMILY LINUXCONFIG KERNELDIR KERNELSOURCE KERNELBRANCH BOOTDIR BOOTSOURCE BOOTBRANCH ARCH UBOOT_USE_GCC \
|
||||
KERNEL_USE_GCC CPUMIN CPUMAX UBOOT_VER KERNEL_VER GOVERNOR BOOTSIZE BOOTFS_TYPE UBOOT_TOOLCHAIN KERNEL_TOOLCHAIN \
|
||||
DEBOOTSTRAP_LIST PACKAGE_LIST_EXCLUDE KERNEL_IMAGE_TYPE write_uboot_platform family_tweaks family_tweaks_bsp \
|
||||
setup_write_uboot_platform uboot_custom_postprocess atf_custom_postprocess family_tweaks_s BOOTSCRIPT \
|
||||
UBOOT_TARGET_MAP LOCALVERSION UBOOT_COMPILER KERNEL_COMPILER BOOTCONFIG BOOTCONFIG_VAR_NAME INITRD_ARCH BOOTENV_FILE BOOTDELAY \
|
||||
ATF_TOOLCHAIN2 MOUNT SDCARD BOOTPATCHDIR KERNELPATCHDIR RELEASE IMAGE_TYPE OVERLAY_PREFIX ASOUND_STATE ATF_COMPILER \
|
||||
ATF_USE_GCC ATFSOURCE ATFDIR ATFBRANCH ATFSOURCEDIR PACKAGE_LIST_RM NM_IGNORE_DEVICES DISPLAY_MANAGER \
|
||||
family_tweaks_bsp_s CRYPTROOT_ENABLE CRYPTROOT_PASSPHRASE CRYPTROOT_SSH_UNLOCK CRYPTROOT_SSH_UNLOCK_PORT \
|
||||
CRYPTROOT_SSH_UNLOCK_KEY_NAME ROOT_MAPPER NETWORK HDMI USB WIRELESS ARMBIANMONITOR FORCE_BOOTSCRIPT_UPDATE \
|
||||
UBOOT_TOOLCHAIN2 toolchain2 BUILD_REPOSITORY_URL BUILD_REPOSITORY_COMMIT BUILD_TARGET HOST BUILD_IMAGE \
|
||||
DEB_STORAGE REPO_STORAGE REPO_CONFIG REPOSITORY_UPDATE PACKAGE_LIST_RELEASE LOCAL_MIRROR COMPILE_ATF \
|
||||
PACKAGE_LIST_BOARD PACKAGE_LIST_FAMILY PACKAGE_LIST_DESKTOP_BOARD PACKAGE_LIST_DESKTOP_FAMILY ATF_COMPILE ATFPATCHDIR OFFSET BOOTSOURCEDIR BOOT_USE_BLOBS \
|
||||
BOOT_SOC DDR_BLOB MINILOADER_BLOB BL31_BLOB BOOT_RK3328_USE_AYUFAN_ATF BOOT_USE_BLOBS BOOT_RK3399_LEGACY_HYBRID \
|
||||
BOOT_USE_MAINLINE_ATF BOOT_USE_TPL_SPL_BLOB BOOT_SUPPORT_SPI OFFLINE_WORK IMAGE_PARTITION_TABLE BOOT_LOGO UPSTREM_VER FORCED_MONTH_OFFSET \
|
||||
PACKAGE_LIST_BOARD_REMOVE PACKAGE_LIST_FAMILY_REMOVE PACKAGE_LIST_DESKTOP_BOARD_REMOVE PACKAGE_LIST_DESKTOP_FAMILY_REMOVE BOOTCONFIG_EDGE \
|
||||
DESKTOP_ENVIRONMENT DESKTOP_ENVIRONMENT_CONFIG_NAME DESKTOP_APPGROUPS_SELECTED DESKTOP_APT_FLAGS_SELECTED \
|
||||
DESKTOP_ENVIRONMENT_DIRPATH DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH DESKTOP_ENVIRONMENT_DIRPATH DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH \
|
||||
DESKTOP_CONFIG_PREFIX DESKTOP_CONFIGS_DIR DESKTOP_APPGROUPS_DIR DEBIAN_RECOMMENDS USE_OVERLAYFS aggregated_content DEBOOTSTRAP_COMPONENTS \
|
||||
DEBOOTSTRAP_OPTION MAINTAINER MAINTAINERMAIL EXTRAWIFI
|
||||
unset LINUXFAMILY LINUXCONFIG KERNELDIR KERNELSOURCE KERNELBRANCH BOOTDIR BOOTSOURCE BOOTBRANCH ARCH UBOOT_USE_GCC KERNEL_USE_GCC CPUMIN CPUMAX \
|
||||
UBOOT_VER KERNEL_VER GOVERNOR BOOTSIZE BOOTFS_TYPE UBOOT_TOOLCHAIN KERNEL_TOOLCHAIN DEBOOTSTRAP_LIST PACKAGE_LIST_EXCLUDE KERNEL_IMAGE_TYPE \
|
||||
write_uboot_platform family_tweaks family_tweaks_bsp setup_write_uboot_platform uboot_custom_postprocess atf_custom_postprocess family_tweaks_s \
|
||||
LOCALVERSION UBOOT_COMPILER KERNEL_COMPILER BOOTCONFIG BOOTCONFIG_VAR_NAME INITRD_ARCH BOOTENV_FILE BOOTDELAY ATF_TOOLCHAIN2 MOUNT SDCARD \
|
||||
BOOTPATCHDIR KERNELPATCHDIR RELEASE IMAGE_TYPE OVERLAY_PREFIX ASOUND_STATE ATF_COMPILER ATF_USE_GCC ATFSOURCE ATFDIR ATFBRANCH ATFSOURCEDIR \
|
||||
PACKAGE_LIST_RM NM_IGNORE_DEVICES DISPLAY_MANAGER family_tweaks_bsp_s CRYPTROOT_ENABLE CRYPTROOT_PASSPHRASE CRYPTROOT_SSH_UNLOCK \
|
||||
CRYPTROOT_SSH_UNLOCK_PORT CRYPTROOT_SSH_UNLOCK_KEY_NAME ROOT_MAPPER NETWORK HDMI USB WIRELESS ARMBIANMONITOR FORCE_BOOTSCRIPT_UPDATE \
|
||||
UBOOT_TOOLCHAIN2 toolchain2 BUILD_REPOSITORY_URL BUILD_REPOSITORY_COMMIT BUILD_TARGET HOST BUILD_IMAGE DEB_STORAGE REPO_STORAGE REPO_CONFIG \
|
||||
REPOSITORY_UPDATE PACKAGE_LIST_RELEASE LOCAL_MIRROR COMPILE_ATF PACKAGE_LIST_BOARD PACKAGE_LIST_FAMILY PACKAGE_LIST_DESKTOP_BOARD \
|
||||
PACKAGE_LIST_DESKTOP_FAMILY ATF_COMPILE ATFPATCHDIR OFFSET BOOTSOURCEDIR BOOT_USE_BLOBS BOOT_SOC DDR_BLOB MINILOADER_BLOB BL31_BLOB \
|
||||
BOOT_RK3328_USE_AYUFAN_ATF BOOT_USE_BLOBS BOOT_RK3399_LEGACY_HYBRID BOOT_USE_MAINLINE_ATF BOOT_USE_TPL_SPL_BLOB BOOT_SUPPORT_SPI OFFLINE_WORK \
|
||||
IMAGE_PARTITION_TABLE BOOT_LOGO UPSTREM_VER FORCED_MONTH_OFFSET PACKAGE_LIST_BOARD_REMOVE PACKAGE_LIST_FAMILY_REMOVE \
|
||||
PACKAGE_LIST_DESKTOP_BOARD_REMOVE PACKAGE_LIST_DESKTOP_FAMILY_REMOVE BOOTCONFIG_EDGE DESKTOP_ENVIRONMENT DESKTOP_ENVIRONMENT_CONFIG_NAME \
|
||||
DESKTOP_APPGROUPS_SELECTED DESKTOP_APT_FLAGS_SELECTED DESKTOP_ENVIRONMENT_DIRPATH DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH UBOOT_TARGET_MAP \
|
||||
DESKTOP_ENVIRONMENT_DIRPATH DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH DESKTOP_CONFIG_PREFIX DESKTOP_CONFIGS_DIR DESKTOP_APPGROUPS_DIR \
|
||||
DEBIAN_RECOMMENDS USE_OVERLAYFS aggregated_content DEBOOTSTRAP_COMPONENTS DEBOOTSTRAP_OPTION MAINTAINER MAINTAINERMAIL EXTRAWIFI BOOTSCRIPT
|
||||
}
|
||||
|
||||
pack_upload ()
|
||||
|
||||
@@ -1,21 +1,25 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
# Copyright (c) 2013-2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
|
||||
#
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
# Functions:
|
||||
|
||||
# create_chroot
|
||||
# chroot_prepare_distccd
|
||||
# chroot_build_packages
|
||||
# chroot_installpackages_local
|
||||
# chroot_installpackages
|
||||
|
||||
|
||||
|
||||
|
||||
# create_chroot <target_dir> <release> <arch>
|
||||
#
|
||||
create_chroot()
|
||||
|
||||
@@ -1,17 +1,21 @@
|
||||
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
# Copyright (c) 2013-2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
|
||||
#
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
# Functions:
|
||||
|
||||
# compilation_prepare
|
||||
|
||||
|
||||
|
||||
|
||||
compilation_prepare()
|
||||
{
|
||||
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
# Copyright (c) 2013-2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
|
||||
#
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
# Functions:
|
||||
|
||||
# compile_atf
|
||||
# compile_uboot
|
||||
# compile_kernel
|
||||
@@ -25,6 +26,9 @@
|
||||
# userpatch_create
|
||||
# overlayfs_wrapper
|
||||
|
||||
|
||||
|
||||
|
||||
compile_atf()
|
||||
{
|
||||
if [[ $CLEAN_LEVEL == *make* ]]; then
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
# Copyright (c) 2013-2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
|
||||
#
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
|
||||
@@ -1,19 +1,25 @@
|
||||
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2013-2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
|
||||
#
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
# Functions:
|
||||
|
||||
# debootstrap_ng
|
||||
# create_rootfs_cache
|
||||
# prepare_partitions
|
||||
# update_initramfs
|
||||
# create_image
|
||||
|
||||
|
||||
|
||||
|
||||
# debootstrap_ng
|
||||
#
|
||||
debootstrap_ng()
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# Copyright (c) 2013-2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
|
||||
#
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
# Functions:
|
||||
|
||||
# create_desktop_package
|
||||
# run_on_sdcard
|
||||
# install_ppa_prerequisites
|
||||
# add_apt_sources
|
||||
# add_desktop_package_sources
|
||||
@@ -117,17 +117,6 @@ create_desktop_package ()
|
||||
|
||||
|
||||
|
||||
run_on_sdcard() {
|
||||
|
||||
# Myy : The lack of quotes is deliberate here
|
||||
# This allows for redirections and pipes easily.
|
||||
chroot "${SDCARD}" /bin/bash -c "${@}" >> "${DEST}"/debug/install.log
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
install_ppa_prerequisites() {
|
||||
|
||||
# Myy : So... The whole idea is that, a good bunch of external sources
|
||||
@@ -143,6 +132,9 @@ install_ppa_prerequisites() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
add_apt_sources() {
|
||||
|
||||
local potential_paths=""
|
||||
@@ -211,12 +203,16 @@ desktop_postinstall ()
|
||||
# disable display manager for the first run
|
||||
run_on_sdcard "systemctl --no-reload disable lightdm.service >/dev/null 2>&1"
|
||||
run_on_sdcard "systemctl --no-reload disable gdm3.service >/dev/null 2>&1"
|
||||
run_on_sdcard "DEBIAN_FRONTEND=noninteractive apt-get update" >> "${DEST}"/debug/install.log
|
||||
|
||||
# update packages index
|
||||
run_on_sdcard "DEBIAN_FRONTEND=noninteractive apt-get update >/dev/null 2>&1"
|
||||
|
||||
# install per board packages
|
||||
if [[ -n ${PACKAGE_LIST_DESKTOP_BOARD} ]]; then
|
||||
run_on_sdcard "DEBIAN_FRONTEND=noninteractive apt-get -yqq --no-install-recommends install $PACKAGE_LIST_DESKTOP_BOARD"
|
||||
fi
|
||||
|
||||
# install per family packages
|
||||
if [[ -n ${PACKAGE_LIST_DESKTOP_FAMILY} ]]; then
|
||||
run_on_sdcard "DEBIAN_FRONTEND=noninteractive apt-get -yqq --no-install-recommends install $PACKAGE_LIST_DESKTOP_FAMILY"
|
||||
fi
|
||||
|
||||
@@ -1,19 +1,24 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
# Copyright (c) 2013-2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
|
||||
#
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
# Functions:
|
||||
|
||||
# install_common
|
||||
# install_rclocal
|
||||
# install_distribution_specific
|
||||
# post_debootstrap_tweaks
|
||||
|
||||
|
||||
|
||||
|
||||
install_common()
|
||||
{
|
||||
display_alert "Applying common tweaks" "" "info"
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
# Copyright (c) 2013-2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
|
||||
#
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
# Functions:
|
||||
|
||||
# mount_chroot
|
||||
# umount_chroot
|
||||
# unmount_on_exit
|
||||
@@ -18,6 +19,10 @@
|
||||
# write_uboot
|
||||
# customize_image
|
||||
# install_deb_chroot
|
||||
# run_on_sdcard
|
||||
|
||||
|
||||
|
||||
|
||||
# mount_chroot <target>
|
||||
#
|
||||
@@ -25,12 +30,17 @@
|
||||
#
|
||||
mount_chroot()
|
||||
{
|
||||
|
||||
local target=$1
|
||||
mount -t proc chproc "${target}"/proc
|
||||
mount -t sysfs chsys "${target}"/sys
|
||||
mount -t devtmpfs chdev "${target}"/dev || mount --bind /dev "${target}"/dev
|
||||
mount -t devpts chpts "${target}"/dev/pts
|
||||
} #############################################################################
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
# umount_chroot <target>
|
||||
#
|
||||
@@ -38,6 +48,7 @@ mount_chroot()
|
||||
#
|
||||
umount_chroot()
|
||||
{
|
||||
|
||||
local target=$1
|
||||
display_alert "Unmounting" "$target" "info"
|
||||
while grep -Eq "${target}.*(dev|proc|sys)" /proc/mounts
|
||||
@@ -47,12 +58,17 @@ umount_chroot()
|
||||
umount -l "${target}"/sys >/dev/null 2>&1
|
||||
sleep 5
|
||||
done
|
||||
} #############################################################################
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
# unmount_on_exit
|
||||
#
|
||||
unmount_on_exit()
|
||||
{
|
||||
|
||||
trap - INT TERM EXIT
|
||||
umount_chroot "${SDCARD}/"
|
||||
umount -l "${SDCARD}"/tmp >/dev/null 2>&1
|
||||
@@ -63,12 +79,17 @@ unmount_on_exit()
|
||||
losetup -d "${LOOP}" >/dev/null 2>&1
|
||||
rm -rf --one-file-system "${SDCARD}"
|
||||
exit_with_error "debootstrap-ng was interrupted"
|
||||
} #############################################################################
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
# check_loop_device <device_node>
|
||||
#
|
||||
check_loop_device()
|
||||
{
|
||||
|
||||
local device=$1
|
||||
if [[ ! -b $device ]]; then
|
||||
if [[ $CONTAINER_COMPAT == yes && -b /tmp/$device ]]; then
|
||||
@@ -78,16 +99,17 @@ check_loop_device()
|
||||
exit_with_error "Device node $device does not exist"
|
||||
fi
|
||||
fi
|
||||
} #############################################################################
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
# write_uboot <loopdev>
|
||||
#
|
||||
# writes u-boot to loop device
|
||||
# Parameters:
|
||||
# loopdev: loop device with mounted rootfs image
|
||||
#
|
||||
write_uboot()
|
||||
{
|
||||
|
||||
local loop=$1 revision
|
||||
display_alert "Writing U-boot bootloader" "$loop" "info"
|
||||
TEMP_DIR=$(mktemp -d || exit 1)
|
||||
@@ -105,10 +127,15 @@ write_uboot()
|
||||
write_uboot_platform "${TEMP_DIR}${DIR}" "$loop"
|
||||
[[ $? -ne 0 ]] && exit_with_error "U-boot bootloader failed to install" "@host"
|
||||
rm -rf ${TEMP_DIR}
|
||||
} #############################################################################
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
customize_image()
|
||||
{
|
||||
|
||||
# for users that need to prepare files at host
|
||||
[[ -f $USERPATCHES_PATH/customize-image-host.sh ]] && source "$USERPATCHES_PATH"/customize-image-host.sh
|
||||
cp "$USERPATCHES_PATH"/customize-image.sh "${SDCARD}"/tmp/customize-image.sh
|
||||
@@ -124,10 +151,15 @@ customize_image()
|
||||
if [[ $CUSTOMIZE_IMAGE_RC != 0 ]]; then
|
||||
exit_with_error "customize-image.sh exited with error (rc: $CUSTOMIZE_IMAGE_RC)"
|
||||
fi
|
||||
} #############################################################################
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
install_deb_chroot()
|
||||
{
|
||||
|
||||
local package=$1
|
||||
local variant=$2
|
||||
local transfer=$3
|
||||
@@ -149,4 +181,14 @@ install_deb_chroot()
|
||||
chroot "${SDCARD}" /bin/bash -c "DEBIAN_FRONTEND=noninteractive apt-get -yqq $apt_extra --no-install-recommends install $name" >> "${DEST}"/debug/install.log 2>&1
|
||||
[[ $? -ne 0 ]] && exit_with_error "Installation of $name failed" "${BOARD} ${RELEASE} ${BUILD_DESKTOP} ${LINUXFAMILY}"
|
||||
[[ ${variant} == remote && ${transfer} == yes ]] && rsync -rq "${SDCARD}"/var/cache/apt/archives/*.deb ${DEB_STORAGE}/
|
||||
|
||||
}
|
||||
|
||||
|
||||
run_on_sdcard()
|
||||
{
|
||||
|
||||
# Lack of quotes allows for redirections and pipes easily.
|
||||
chroot "${SDCARD}" /bin/bash -c "${@}" >> "${DEST}"/debug/install.log
|
||||
|
||||
}
|
||||
|
||||
136
lib/main.sh
136
lib/main.sh
@@ -1,25 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# Copyright (c) 2013-2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
|
||||
#
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
# Main program
|
||||
#
|
||||
|
||||
|
||||
|
||||
cleanup_list() {
|
||||
local varname="${1}"
|
||||
local list_to_clean="${!varname}"
|
||||
list_to_clean="${list_to_clean#"${list_to_clean%%[![:space:]]*}"}"
|
||||
list_to_clean="${list_to_clean%"${list_to_clean##*[![:space:]]}"}"
|
||||
echo ${list_to_clean}
|
||||
local varname="${1}"
|
||||
local list_to_clean="${!varname}"
|
||||
list_to_clean="${list_to_clean#"${list_to_clean%%[![:space:]]*}"}"
|
||||
list_to_clean="${list_to_clean%"${list_to_clean##*[![:space:]]}"}"
|
||||
echo ${list_to_clean}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if [[ $(basename "$0") == main.sh ]]; then
|
||||
|
||||
echo "Please use compile.sh to start the build process"
|
||||
@@ -27,6 +30,9 @@ if [[ $(basename "$0") == main.sh ]]; then
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
# default umask for root is 022 so parent directories won't be group writeable without this
|
||||
# this is used instead of making the chmod in prepare_host() recursive
|
||||
umask 002
|
||||
@@ -47,39 +53,40 @@ if [[ $BUILD_ALL != "yes" && -z $ROOT_FS_CREATE_ONLY ]]; then
|
||||
fi
|
||||
|
||||
# We'll use this title on all menus
|
||||
backtitle="Armbian building script, https://www.armbian.com | Author: Igor Pecovnik"
|
||||
backtitle="Armbian building script, https://www.armbian.com | https://docs.armbian.com | (c) 2013-2021 Igor Pecovnik "
|
||||
|
||||
# if language not set, set to english
|
||||
[[ -z $LANGUAGE ]] && export LANGUAGE="en_US:en"
|
||||
|
||||
# default console if not set
|
||||
[[ -z $CONSOLE_CHAR ]] && export CONSOLE_CHAR="UTF-8"
|
||||
# Warnings mitigation
|
||||
[[ -z $LANGUAGE ]] && export LANGUAGE="en_US:en" # set to english if not set
|
||||
[[ -z $CONSOLE_CHAR ]] && export CONSOLE_CHAR="UTF-8" # set console to UTF-8 if not set
|
||||
|
||||
# Libraries include
|
||||
|
||||
# Load libraries
|
||||
# shellcheck source=debootstrap.sh
|
||||
source "${SRC}"/lib/debootstrap.sh # system specific install
|
||||
source "${SRC}"/lib/debootstrap.sh # system specific install
|
||||
# shellcheck source=image-helpers.sh
|
||||
source "${SRC}"/lib/image-helpers.sh # helpers for OS image building
|
||||
source "${SRC}"/lib/image-helpers.sh # helpers for OS image building
|
||||
# shellcheck source=distributions.sh
|
||||
source "${SRC}"/lib/distributions.sh # system specific install
|
||||
source "${SRC}"/lib/distributions.sh # system specific install
|
||||
# shellcheck source=desktop.sh
|
||||
source "${SRC}"/lib/desktop.sh # desktop specific install
|
||||
source "${SRC}"/lib/desktop.sh # desktop specific install
|
||||
# shellcheck source=compilation.sh
|
||||
source "${SRC}"/lib/compilation.sh # patching and compilation of kernel, uboot, ATF
|
||||
source "${SRC}"/lib/compilation.sh # patching and compilation of kernel, uboot, ATF
|
||||
# shellcheck source=compilation-prepare.sh
|
||||
source "${SRC}"/lib/compilation-prepare.sh # kernel plugins - 3rd party drivers that are not upstreamed. Like WG, AUFS, various Wifi
|
||||
source "${SRC}"/lib/compilation-prepare.sh # drivers that are not upstreamed
|
||||
# shellcheck source=makeboarddeb.sh
|
||||
source "${SRC}"/lib/makeboarddeb.sh # create board support package
|
||||
source "${SRC}"/lib/makeboarddeb.sh # board support package
|
||||
# shellcheck source=general.sh
|
||||
source "${SRC}"/lib/general.sh # general functions
|
||||
source "${SRC}"/lib/general.sh # general functions
|
||||
# shellcheck source=chroot-buildpackages.sh
|
||||
source "${SRC}"/lib/chroot-buildpackages.sh # building packages in chroot
|
||||
source "${SRC}"/lib/chroot-buildpackages.sh # chroot packages building
|
||||
|
||||
# compress and remove old logs
|
||||
mkdir -p "${DEST}"/debug
|
||||
(cd "${DEST}"/debug && tar -czf logs-"$(<timestamp)".tgz ./*.log) > /dev/null 2>&1
|
||||
rm -f "${DEST}"/debug/*.log > /dev/null 2>&1
|
||||
date +"%d_%m_%Y-%H_%M_%S" > "${DEST}"/debug/timestamp
|
||||
|
||||
# delete compressed logs older than 7 days
|
||||
(cd "${DEST}"/debug && find . -name '*.tgz' -mtime +7 -delete) > /dev/null
|
||||
|
||||
@@ -95,8 +102,12 @@ fi
|
||||
|
||||
if [[ $PROGRESS_LOG_TO_FILE != yes ]]; then unset PROGRESS_LOG_TO_FILE; fi
|
||||
|
||||
|
||||
|
||||
SHOW_WARNING=yes
|
||||
|
||||
|
||||
|
||||
if [[ $USE_CCACHE != no ]]; then
|
||||
|
||||
CCACHE=ccache
|
||||
@@ -111,43 +122,56 @@ else
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
if [[ -n $REPOSITORY_UPDATE ]]; then
|
||||
|
||||
# select stable/beta configuration
|
||||
if [[ $BETA == yes ]]; then
|
||||
DEB_STORAGE=$DEST/debs-beta
|
||||
REPO_STORAGE=$DEST/repository-beta
|
||||
REPO_CONFIG="aptly-beta.conf"
|
||||
else
|
||||
DEB_STORAGE=$DEST/debs
|
||||
REPO_STORAGE=$DEST/repository
|
||||
REPO_CONFIG="aptly.conf"
|
||||
fi
|
||||
# select stable/beta configuration
|
||||
if [[ $BETA == yes ]]; then
|
||||
DEB_STORAGE=$DEST/debs-beta
|
||||
REPO_STORAGE=$DEST/repository-beta
|
||||
REPO_CONFIG="aptly-beta.conf"
|
||||
else
|
||||
DEB_STORAGE=$DEST/debs
|
||||
REPO_STORAGE=$DEST/repository
|
||||
REPO_CONFIG="aptly.conf"
|
||||
fi
|
||||
|
||||
# For user override
|
||||
if [[ -f "${USERPATCHES_PATH}"/lib.config ]]; then
|
||||
display_alert "Using user configuration override" "userpatches/lib.config" "info"
|
||||
source "${USERPATCHES_PATH}"/lib.config
|
||||
fi
|
||||
# For user override
|
||||
if [[ -f "${USERPATCHES_PATH}"/lib.config ]]; then
|
||||
display_alert "Using user configuration override" "userpatches/lib.config" "info"
|
||||
source "${USERPATCHES_PATH}"/lib.config
|
||||
fi
|
||||
|
||||
repo-manipulate "$REPOSITORY_UPDATE"
|
||||
exit
|
||||
repo-manipulate "$REPOSITORY_UPDATE"
|
||||
exit
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
if [ "$OFFLINE_WORK" == "yes" ]; then
|
||||
|
||||
echo -e "\n"
|
||||
display_alert "* " "You are working offline."
|
||||
display_alert "* " "Sources, time and host will not be checked"
|
||||
echo -e "\n"
|
||||
sleep 3s
|
||||
|
||||
else
|
||||
|
||||
# we need dialog to display the menu in case not installed. Other stuff gets installed later
|
||||
prepare_host_basic
|
||||
|
||||
fi
|
||||
|
||||
# if KERNEL_ONLY, KERNEL_CONFIGURE, BOARD, BRANCH or RELEASE are not set, display selection menu
|
||||
|
||||
|
||||
|
||||
|
||||
# if KERNEL_ONLY, KERNEL_CONFIGURE, BOARD, BRANCH or RELEASE are not set, display selection menu
|
||||
if [[ -z $KERNEL_ONLY ]]; then
|
||||
|
||||
options+=("yes" "U-boot and kernel packages")
|
||||
@@ -246,6 +270,9 @@ if [[ -z $BOARD ]]; then
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
if [[ -f $SRC/config/boards/${BOARD}.conf ]]; then
|
||||
BOARD_TYPE='conf'
|
||||
elif [[ -f $SRC/config/boards/${BOARD}.csc ]]; then
|
||||
@@ -258,6 +285,9 @@ elif [[ -f $SRC/config/boards/${BOARD}.tvb ]]; then
|
||||
BOARD_TYPE='tvb'
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
# shellcheck source=/dev/null
|
||||
source "${SRC}/config/boards/${BOARD}.${BOARD_TYPE}"
|
||||
LINUXFAMILY="${BOARDFAMILY}"
|
||||
@@ -284,6 +314,7 @@ if [[ -z $BRANCH ]]; then
|
||||
[[ $BRANCH == dev && $SHOW_WARNING == yes ]] && show_developer_warning
|
||||
|
||||
else
|
||||
|
||||
[[ $BRANCH == next ]] && KERNEL_TARGET="next"
|
||||
# next = new legacy. Should stay for backward compatibility, but be removed from menu above
|
||||
# or we left definitions in board configs and only remove menu
|
||||
@@ -291,6 +322,8 @@ else
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [[ $KERNEL_ONLY != yes && -z $RELEASE ]]; then
|
||||
|
||||
options=()
|
||||
@@ -359,7 +392,10 @@ fi
|
||||
|
||||
[[ $BUILD_MINIMAL == yes ]] && EXTERNAL=no
|
||||
|
||||
[[ ${KERNEL_CONFIGURE} == prebuilt ]] && [[ -z ${REPOSITORY_INSTALL} ]] && REPOSITORY_INSTALL="u-boot,kernel,bsp,armbian-zsh,armbian-config,armbian-firmware${BUILD_DESKTOP:+,armbian-desktop}"
|
||||
|
||||
[[ ${KERNEL_CONFIGURE} == prebuilt ]] && [[ -z ${REPOSITORY_INSTALL} ]] && \
|
||||
REPOSITORY_INSTALL="u-boot,kernel,bsp,armbian-zsh,armbian-config,armbian-firmware${BUILD_DESKTOP:+,armbian-desktop}"
|
||||
|
||||
|
||||
#shellcheck source=configuration.sh
|
||||
source "${SRC}"/lib/configuration.sh
|
||||
@@ -490,21 +526,33 @@ fi
|
||||
|
||||
overlayfs_wrapper "cleanup"
|
||||
|
||||
|
||||
|
||||
|
||||
# create board support package
|
||||
[[ -n $RELEASE && ! -f ${DEB_STORAGE}/$RELEASE/${BSP_CLI_PACKAGE_FULLNAME}.deb ]] && create_board_package
|
||||
|
||||
|
||||
|
||||
# create desktop package
|
||||
[[ -n $RELEASE && $DESKTOP_ENVIRONMENT && ! -f ${DEB_STORAGE}/$RELEASE/${CHOSEN_DESKTOP}_${REVISION}_all.deb ]] && create_desktop_package
|
||||
|
||||
|
||||
|
||||
|
||||
# build additional packages
|
||||
[[ $EXTERNAL_NEW == compile ]] && chroot_build_packages
|
||||
|
||||
if [[ $KERNEL_ONLY != yes ]]; then
|
||||
|
||||
[[ $BSP_BUILD != yes ]] && debootstrap_ng
|
||||
|
||||
else
|
||||
|
||||
display_alert "Kernel build done" "@host" "info"
|
||||
display_alert "Target directory" "${DEB_STORAGE}/" "info"
|
||||
display_alert "File name" "${CHOSEN_KERNEL}_${REVISION}_${ARCH}.deb" "info"
|
||||
|
||||
fi
|
||||
|
||||
# hook for function to run after build, i.e. to change owner of $SRC
|
||||
|
||||
@@ -1,18 +1,21 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# Copyright (c) 2021 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
|
||||
#
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
# Create board support packages
|
||||
#
|
||||
# Functions:
|
||||
# create_board_package
|
||||
|
||||
|
||||
|
||||
|
||||
create_board_package()
|
||||
{
|
||||
display_alert "Creating board support package" "$BOARD $BRANCH" "info"
|
||||
|
||||
Reference in New Issue
Block a user