Browse Source

Update

master
crims0n 4 years ago
parent
commit
50bc3de524
  1. 3
      .gitignore
  2. 4
      docker/02-build.sh
  3. 27
      docker/scripts/mlc-bionic-amd64.sh
  4. 27
      docker/scripts/mlc-bionic-i386.sh
  5. 27
      docker/scripts/mlc-bullseye-amd64.sh
  6. 27
      docker/scripts/mlc-bullseye-i386.sh
  7. 27
      docker/scripts/mlc-buster-amd64.sh
  8. 27
      docker/scripts/mlc-buster-i386.sh
  9. 27
      docker/scripts/mlc-focal-amd64.sh
  10. 27
      docker/scripts/mlc-focal-i386.sh
  11. 27
      docker/scripts/mlc-stretch-amd64.sh
  12. 27
      docker/scripts/mlc-stretch-i386.sh
  13. 13
      install
  14. 14
      linux-live/basesystem/01-core/install
  15. 9
      linux-live/buildconfig
  16. 2
      linux-live/config
  17. 7
      linux-live/install_chroot
  18. 4
      linux-live/livekitlib
  19. 504
      linux-live/minioslib
  20. 13
      linux-live/modules/01-firmware/install
  21. 1
      linux-live/modules/04-xfce-apps/install
  22. 12
      makeboot
  23. 12
      repack

3
.gitignore

@ -1,2 +1,3 @@
rootfs/ rootfs/
build/ build/
.install_dir

4
docker/02-build.sh

@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
docker run -d --name mlc --privileged -v /build:/build local/mlc #docker run -d --name mlc --privileged -v /build:/build local/mlc
#docker run --rm -it --name mlc --privileged -v /build:/build local/mlc /build/minios-slax/install build_modules - docker run -d --name mlc-modules --privileged -v /build:/build local/mlc /build/minios-slax/install build_modules -

27
docker/scripts/mlc-bionic-amd64.sh

@ -0,0 +1,27 @@
#!/bin/bash
docker run -d --name mlc-bionic-amd64 --privileged -v /build:/build \
-e DISTRIBUTION_TYPE="ubuntu" \
-e DISTRIBUTION="bionic" \
-e DISTRIBUTION_ARCH="amd64" \
-e DISTRIBUTION_VARIANT="minbase" \
-e PACKAGE_VARIANT="standard" \
-e LOGPATH="/var/log" \
-e OUTPUT="/dev/stdout" \
-e BUILD_TEST_ISO="0" \
-e CREATE_BACKUP="0" \
-e DEV_SYSTEM="0" \
-e DEBIAN_FRONTEND_TYPE="noninteractive" \
-e APT_CMD="apt-get" \
-e APT_OPTIONS="-y" \
-e LIVE_TYPE="livekit" \
-e BOOT_TYPE="hybrid" \
-e UNION_BUILD_TYPE="overlayfs" \
-e SYSTEMNAME="MiniOS" \
-e SYSTEMVER="2021" \
-e USE_BOOTSTRAP="1" \
-e USE_ROOTFS="1" \
-e ROOT_PASSWORD="toor" \
-e USER_NAME="live" \
-e USER_PASSWORD="evil" \
local/mlc

27
docker/scripts/mlc-bionic-i386.sh

@ -0,0 +1,27 @@
#!/bin/bash
docker run -d --name mlc-bionic-i386 --privileged -v /build:/build \
-e DISTRIBUTION_TYPE="ubuntu" \
-e DISTRIBUTION="bionic" \
-e DISTRIBUTION_ARCH="i386" \
-e DISTRIBUTION_VARIANT="minbase" \
-e PACKAGE_VARIANT="standard" \
-e LOGPATH="/var/log" \
-e OUTPUT="/dev/stdout" \
-e BUILD_TEST_ISO="0" \
-e CREATE_BACKUP="0" \
-e DEV_SYSTEM="0" \
-e DEBIAN_FRONTEND_TYPE="noninteractive" \
-e APT_CMD="apt-get" \
-e APT_OPTIONS="-y" \
-e LIVE_TYPE="livekit" \
-e BOOT_TYPE="hybrid" \
-e UNION_BUILD_TYPE="overlayfs" \
-e SYSTEMNAME="MiniOS" \
-e SYSTEMVER="2021" \
-e USE_BOOTSTRAP="1" \
-e USE_ROOTFS="1" \
-e ROOT_PASSWORD="toor" \
-e USER_NAME="live" \
-e USER_PASSWORD="evil" \
local/mlc

27
docker/scripts/mlc-bullseye-amd64.sh

@ -0,0 +1,27 @@
#!/bin/bash
docker run -d --name mlc-bullseye-amd64 --privileged -v /build:/build \
-e DISTRIBUTION_TYPE="debian" \
-e DISTRIBUTION="bullseye" \
-e DISTRIBUTION_ARCH="amd64" \
-e DISTRIBUTION_VARIANT="minbase" \
-e PACKAGE_VARIANT="standard" \
-e LOGPATH="/var/log" \
-e OUTPUT="/dev/stdout" \
-e BUILD_TEST_ISO="0" \
-e CREATE_BACKUP="0" \
-e DEV_SYSTEM="0" \
-e DEBIAN_FRONTEND_TYPE="noninteractive" \
-e APT_CMD="apt-get" \
-e APT_OPTIONS="-y" \
-e LIVE_TYPE="livekit" \
-e BOOT_TYPE="hybrid" \
-e UNION_BUILD_TYPE="overlayfs" \
-e SYSTEMNAME="MiniOS" \
-e SYSTEMVER="2021" \
-e USE_BOOTSTRAP="1" \
-e USE_ROOTFS="1" \
-e ROOT_PASSWORD="toor" \
-e USER_NAME="live" \
-e USER_PASSWORD="evil" \
local/mlc

27
docker/scripts/mlc-bullseye-i386.sh

@ -0,0 +1,27 @@
#!/bin/bash
docker run -d --name mlc-bullseye-i386 --privileged -v /build:/build \
-e DISTRIBUTION_TYPE="debian" \
-e DISTRIBUTION="bullseye" \
-e DISTRIBUTION_ARCH="i386" \
-e DISTRIBUTION_VARIANT="minbase" \
-e PACKAGE_VARIANT="standard" \
-e LOGPATH="/var/log" \
-e OUTPUT="/dev/stdout" \
-e BUILD_TEST_ISO="0" \
-e CREATE_BACKUP="0" \
-e DEV_SYSTEM="0" \
-e DEBIAN_FRONTEND_TYPE="noninteractive" \
-e APT_CMD="apt-get" \
-e APT_OPTIONS="-y" \
-e LIVE_TYPE="livekit" \
-e BOOT_TYPE="hybrid" \
-e UNION_BUILD_TYPE="overlayfs" \
-e SYSTEMNAME="MiniOS" \
-e SYSTEMVER="2021" \
-e USE_BOOTSTRAP="1" \
-e USE_ROOTFS="1" \
-e ROOT_PASSWORD="toor" \
-e USER_NAME="live" \
-e USER_PASSWORD="evil" \
local/mlc

27
docker/scripts/mlc-buster-amd64.sh

@ -0,0 +1,27 @@
#!/bin/bash
docker run -d --name mlc-buster-amd64 --privileged -v /build:/build \
-e DISTRIBUTION_TYPE="debian" \
-e DISTRIBUTION="buster" \
-e DISTRIBUTION_ARCH="amd64" \
-e DISTRIBUTION_VARIANT="minbase" \
-e PACKAGE_VARIANT="standard" \
-e LOGPATH="/var/log" \
-e OUTPUT="/dev/stdout" \
-e BUILD_TEST_ISO="0" \
-e CREATE_BACKUP="0" \
-e DEV_SYSTEM="0" \
-e DEBIAN_FRONTEND_TYPE="noninteractive" \
-e APT_CMD="apt-get" \
-e APT_OPTIONS="-y" \
-e LIVE_TYPE="livekit" \
-e BOOT_TYPE="hybrid" \
-e UNION_BUILD_TYPE="overlayfs" \
-e SYSTEMNAME="MiniOS" \
-e SYSTEMVER="2021" \
-e USE_BOOTSTRAP="1" \
-e USE_ROOTFS="1" \
-e ROOT_PASSWORD="toor" \
-e USER_NAME="live" \
-e USER_PASSWORD="evil" \
local/mlc

27
docker/scripts/mlc-buster-i386.sh

@ -0,0 +1,27 @@
#!/bin/bash
docker run -d --name mlc-buster-i386 --privileged -v /build:/build \
-e DISTRIBUTION_TYPE="debian" \
-e DISTRIBUTION="buster" \
-e DISTRIBUTION_ARCH="i386" \
-e DISTRIBUTION_VARIANT="minbase" \
-e PACKAGE_VARIANT="standard" \
-e LOGPATH="/var/log" \
-e OUTPUT="/dev/stdout" \
-e BUILD_TEST_ISO="0" \
-e CREATE_BACKUP="0" \
-e DEV_SYSTEM="0" \
-e DEBIAN_FRONTEND_TYPE="noninteractive" \
-e APT_CMD="apt-get" \
-e APT_OPTIONS="-y" \
-e LIVE_TYPE="livekit" \
-e BOOT_TYPE="hybrid" \
-e UNION_BUILD_TYPE="overlayfs" \
-e SYSTEMNAME="MiniOS" \
-e SYSTEMVER="2021" \
-e USE_BOOTSTRAP="1" \
-e USE_ROOTFS="1" \
-e ROOT_PASSWORD="toor" \
-e USER_NAME="live" \
-e USER_PASSWORD="evil" \
local/mlc

27
docker/scripts/mlc-focal-amd64.sh

@ -0,0 +1,27 @@
#!/bin/bash
docker run -d --name mlc-focal-amd64 --privileged -v /build:/build \
-e DISTRIBUTION_TYPE="ubuntu" \
-e DISTRIBUTION="focal" \
-e DISTRIBUTION_ARCH="amd64" \
-e DISTRIBUTION_VARIANT="minbase" \
-e PACKAGE_VARIANT="standard" \
-e LOGPATH="/var/log" \
-e OUTPUT="/dev/stdout" \
-e BUILD_TEST_ISO="0" \
-e CREATE_BACKUP="0" \
-e DEV_SYSTEM="0" \
-e DEBIAN_FRONTEND_TYPE="noninteractive" \
-e APT_CMD="apt-get" \
-e APT_OPTIONS="-y" \
-e LIVE_TYPE="livekit" \
-e BOOT_TYPE="hybrid" \
-e UNION_BUILD_TYPE="overlayfs" \
-e SYSTEMNAME="MiniOS" \
-e SYSTEMVER="2021" \
-e USE_BOOTSTRAP="1" \
-e USE_ROOTFS="1" \
-e ROOT_PASSWORD="toor" \
-e USER_NAME="live" \
-e USER_PASSWORD="evil" \
local/mlc

27
docker/scripts/mlc-focal-i386.sh

@ -0,0 +1,27 @@
#!/bin/bash
docker run -d --name mlc-focal-i386 --privileged -v /build:/build \
-e DISTRIBUTION_TYPE="ubuntu" \
-e DISTRIBUTION="focal" \
-e DISTRIBUTION_ARCH="i386" \
-e DISTRIBUTION_VARIANT="minbase" \
-e PACKAGE_VARIANT="standard" \
-e LOGPATH="/var/log" \
-e OUTPUT="/dev/stdout" \
-e BUILD_TEST_ISO="0" \
-e CREATE_BACKUP="0" \
-e DEV_SYSTEM="0" \
-e DEBIAN_FRONTEND_TYPE="noninteractive" \
-e APT_CMD="apt-get" \
-e APT_OPTIONS="-y" \
-e LIVE_TYPE="livekit" \
-e BOOT_TYPE="hybrid" \
-e UNION_BUILD_TYPE="overlayfs" \
-e SYSTEMNAME="MiniOS" \
-e SYSTEMVER="2021" \
-e USE_BOOTSTRAP="1" \
-e USE_ROOTFS="1" \
-e ROOT_PASSWORD="toor" \
-e USER_NAME="live" \
-e USER_PASSWORD="evil" \
local/mlc

27
docker/scripts/mlc-stretch-amd64.sh

@ -0,0 +1,27 @@
#!/bin/bash
docker run -d --name mlc-stretch-amd64 --privileged -v /build:/build \
-e DISTRIBUTION_TYPE="debian" \
-e DISTRIBUTION="stretch" \
-e DISTRIBUTION_ARCH="amd64" \
-e DISTRIBUTION_VARIANT="minbase" \
-e PACKAGE_VARIANT="standard" \
-e LOGPATH="/var/log" \
-e OUTPUT="/dev/stdout" \
-e BUILD_TEST_ISO="0" \
-e CREATE_BACKUP="0" \
-e DEV_SYSTEM="0" \
-e DEBIAN_FRONTEND_TYPE="noninteractive" \
-e APT_CMD="apt-get" \
-e APT_OPTIONS="-y" \
-e LIVE_TYPE="livekit" \
-e BOOT_TYPE="hybrid" \
-e UNION_BUILD_TYPE="overlayfs" \
-e SYSTEMNAME="MiniOS" \
-e SYSTEMVER="2021" \
-e USE_BOOTSTRAP="1" \
-e USE_ROOTFS="1" \
-e ROOT_PASSWORD="toor" \
-e USER_NAME="live" \
-e USER_PASSWORD="evil" \
local/mlc

27
docker/scripts/mlc-stretch-i386.sh

@ -0,0 +1,27 @@
#!/bin/bash
docker run -d --name mlc-stretch-i386 --privileged -v /build:/build \
-e DISTRIBUTION_TYPE="debian" \
-e DISTRIBUTION="stretch" \
-e DISTRIBUTION_ARCH="i386" \
-e DISTRIBUTION_VARIANT="minbase" \
-e PACKAGE_VARIANT="standard" \
-e LOGPATH="/var/log" \
-e OUTPUT="/dev/stdout" \
-e BUILD_TEST_ISO="0" \
-e CREATE_BACKUP="0" \
-e DEV_SYSTEM="0" \
-e DEBIAN_FRONTEND_TYPE="noninteractive" \
-e APT_CMD="apt-get" \
-e APT_OPTIONS="-y" \
-e LIVE_TYPE="livekit" \
-e BOOT_TYPE="hybrid" \
-e UNION_BUILD_TYPE="overlayfs" \
-e SYSTEMNAME="MiniOS" \
-e SYSTEMVER="2021" \
-e USE_BOOTSTRAP="1" \
-e USE_ROOTFS="1" \
-e ROOT_PASSWORD="toor" \
-e USER_NAME="live" \
-e USER_PASSWORD="evil" \
local/mlc

13
install

@ -5,16 +5,17 @@ set -o pipefail # exit on pipeline error
set -u # treat unset variable as error set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
PARENT_DIR="$(dirname "$SCRIPT_DIR")" BUILD_DIR="$SCRIPT_DIR/build"
ISO_DIR="$(dirname "$SCRIPT_DIR")"/iso ISO_DIR="$BUILD_DIR/iso"
#ISO_DIR=/build/template/iso
. $SCRIPT_DIR/linux-live/minioslib || exit 1
. $SCRIPT_DIR/linux-live/config || exit 1
set +u set +u
if [ -z $OUTPUT ]; then if [ -z $OUTPUT ]; then
. $SCRIPT_DIR/linux-live/buildconfig || exit 1 . $SCRIPT_DIR/linux-live/buildconfig || exit 1
fi fi
set -u set -u
. $SCRIPT_DIR/linux-live/minioslib || exit 1
. $SCRIPT_DIR/linux-live/config || exit 1
# change this for unattended installation # change this for unattended installation
UNATTENDED="1" UNATTENDED="1"
@ -23,7 +24,7 @@ CMD=(setup_host build_bootstrap build_chroot build_live build_modules build_iso)
# ============= main ================ # ============= main ================
BUILD_DIR="" INSTALL_DIR=""
common_variables common_variables
@ -66,7 +67,7 @@ fi
#loop through the commands #loop through the commands
for ((ii = $start_index; ii < $end_index; ii++)); do for ((ii = $start_index; ii < $end_index; ii++)); do
setup_build_dir setup_install_dir
${CMD[ii]} ${CMD[ii]}
done done

14
linux-live/basesystem/01-core/install

@ -32,14 +32,16 @@ if [ $PACKAGE_VARIANT = "standard" ]; then
#sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ #sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \ $APT_CMD install $APT_OPTIONS \
zstd >>$OUTPUT 2>&1 zstd >>$OUTPUT 2>&1
if [ $DISTRIBUTION != "stretch" ] || [ $DISTRIBUTION != "xenial" ]; then if [ $DISTRIBUTION = "stretch" ] || [ $DISTRIBUTION = "xenial" ]; then
#sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ #sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \ $APT_CMD install $APT_OPTIONS \
lz4 >>$OUTPUT 2>&1 liblz4-tool >>$OUTPUT 2>&1
else else
#sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \ $APT_CMD install $APT_OPTIONS \
liblz4-tool >>$OUTPUT 2>&1 lz4 >>$OUTPUT 2>&1
fi fi
fi fi
if [ $DISTRIBUTION = "bullseye" ]; then if [ $DISTRIBUTION = "bullseye" ]; then
@ -56,8 +58,12 @@ if [ $DISTRIBUTION_TYPE = "debian" ]; then
KERNEL_IMAGE="linux-image-$KERNEL_ARCH" KERNEL_IMAGE="linux-image-$KERNEL_ARCH"
fi fi
elif [ $DISTRIBUTION_TYPE = "ubuntu" ]; then elif [ $DISTRIBUTION_TYPE = "ubuntu" ]; then
KERNEL_IMAGE="linux-image-5.11.0-27-generic" if [ $DISTRIBUTION = "xenial" ]; then
KERNEL_IMAGE="linux-image-4.4.0-210-generic"
elif [ $DISTRIBUTION = "focal" ]; then
KERNEL_IMAGE="linux-image-5.4.0-84-generic"
#KERNEL_IMAGE="linux-image-generic" #KERNEL_IMAGE="linux-image-generic"
fi
fi fi
$APT_CMD update >>$OUTPUT 2>&1 && $APT_CMD update >>$OUTPUT 2>&1 &&

9
linux-live/buildconfig

@ -2,11 +2,11 @@
# distribution type # distribution type
# тип дистрибутива # тип дистрибутива
DISTRIBUTION_TYPE="debian" DISTRIBUTION_TYPE="ubuntu"
# distribution # distribution
# дистрибутив # дистрибутив
DISTRIBUTION="buster" DISTRIBUTION="bionic"
# distribution arch # distribution arch
# note: stretch only works with amd64 # note: stretch only works with amd64
@ -14,6 +14,8 @@ DISTRIBUTION="buster"
# для заметки: stretch работает только с amd64 # для заметки: stretch работает только с amd64
DISTRIBUTION_ARCH="amd64" DISTRIBUTION_ARCH="amd64"
COMP_TYPE="xz"
# bootstrap variant (used to build Ubuntu) # bootstrap variant (used to build Ubuntu)
# вариант bootstrap (используется для сборки Ubuntu) # вариант bootstrap (используется для сборки Ubuntu)
DISTRIBUTION_VARIANT="minbase" DISTRIBUTION_VARIANT="minbase"
@ -67,9 +69,6 @@ BOOT_TYPE="hybrid"
UNION_BUILD_TYPE="overlayfs" UNION_BUILD_TYPE="overlayfs"
#UNION_BUILD_TYPE="aufs" #UNION_BUILD_TYPE="aufs"
# не используется?
#INSTALL_OPTIONAL="1"
# Used when assigned to the ISO name when building Minios-Live # Used when assigned to the ISO name when building Minios-Live
SYSTEMNAME="MiniOS" SYSTEMNAME="MiniOS"

2
linux-live/config

@ -15,7 +15,7 @@
LIVEKITNAME="minios" LIVEKITNAME="minios"
# note: stretch only works with xz # note: stretch only works with xz
COMP_TYPE="lz4" COMP_TYPE="xz"
# Kernel file, will be copied to your Live Kit # Kernel file, will be copied to your Live Kit
# Your kernel must support aufs and squashfs. Debian Jessie's kernel is ready # Your kernel must support aufs and squashfs. Debian Jessie's kernel is ready

7
linux-live/install_chroot

@ -6,9 +6,14 @@ set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
. $SCRIPT_DIR/buildconfig || exit 1 #. $SCRIPT_DIR/buildconfig || exit 1
. $SCRIPT_DIR/minioslib || exit 1 . $SCRIPT_DIR/minioslib || exit 1
. $SCRIPT_DIR/config || exit 1 . $SCRIPT_DIR/config || exit 1
set +u
if [ -z $OUTPUT ]; then
. $SCRIPT_DIR/linux-live/buildconfig || exit 1
fi
set -u
CMD=(chroot_setup_host chroot_pkg_install chroot_configure chroot_finish_up) CMD=(chroot_setup_host chroot_pkg_install chroot_configure chroot_finish_up)

4
linux-live/livekitlib

@ -786,9 +786,7 @@ change_root() {
# accessible on union without any further lookup down, else httpfs locks # accessible on union without any further lookup down, else httpfs locks
if [ "$(network_device)" != "" ]; then if [ "$(network_device)" != "" ]; then
touch "/net.up.flag" touch "/net.up.flag"
if [ ! -f $1/etc/resolv.conf ]; then touch "$1/etc/resolv.conf"
touch "$1/etc/resolv.conf"
fi
touch "$1/etc/hosts" touch "$1/etc/hosts"
touch "$1/etc/gai.conf" touch "$1/etc/gai.conf"
fi fi

504
linux-live/minioslib

@ -36,6 +36,7 @@ function common_variables() {
fi fi
if [ $DISTRIBUTION_ARCH = "amd64" ]; then if [ $DISTRIBUTION_ARCH = "amd64" ]; then
echo "+++++++++===amd64===+++++++++"
KERNEL_ARCH="amd64" KERNEL_ARCH="amd64"
#PACKAGE_VARIANT="standard" #PACKAGE_VARIANT="standard"
elif [ $DISTRIBUTION_ARCH = "i386" ]; then elif [ $DISTRIBUTION_ARCH = "i386" ]; then
@ -269,7 +270,7 @@ function check_is_in_chroot() {
function check_mounted() { function check_mounted() {
echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..." echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..."
if grep -qs "$BUILD_DIR/dev" /proc/mounts || grep -qs "$BUILD_DIR/run" /proc/mounts || grep -qs "$BUILD_DIR/proc" /proc/mounts || grep -qs "$BUILD_DIR/sys" /proc/mounts || grep -qs "$BUILD_DIR/dev/pts" /proc/mounts || grep -qs "$BUILD_DIR/tmp" /proc/mounts; then if grep -qs "$INSTALL_DIR/dev" /proc/mounts || grep -qs "$INSTALL_DIR/run" /proc/mounts || grep -qs "$INSTALL_DIR/proc" /proc/mounts || grep -qs "$INSTALL_DIR/sys" /proc/mounts || grep -qs "$INSTALL_DIR/dev/pts" /proc/mounts || grep -qs "$INSTALL_DIR/tmp" /proc/mounts; then
echo -e "${BOLD}${LIGHTYELLOW}Сhroot contains mounted filesystems.${ENDCOLOUR}" echo -e "${BOLD}${LIGHTYELLOW}Сhroot contains mounted filesystems.${ENDCOLOUR}"
if [ "$UNATTENDED" = "1" ]; then if [ "$UNATTENDED" = "1" ]; then
chroot_umount_fs chroot_umount_fs
@ -290,40 +291,40 @@ function check_mounted() {
# проверяем, пуста ли папка, в которую будет производиться установка # проверяем, пуста ли папка, в которую будет производиться установка
# ================================================================= # =================================================================
function check_build_dir() { function check_install_dir() {
echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..." echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..."
if [ "$UNATTENDED" = "1" ]; then if [ "$UNATTENDED" = "1" ]; then
#echo -e "${RED}!!!Unattended installation!!!${ENDCOLOUR}" #echo -e "${RED}!!!Unattended installation!!!${ENDCOLOUR}"
BUILD_DIR="/build/$DISTRIBUTION" INSTALL_DIR="$BUILD_DIR/$DISTRIBUTION-$DISTRIBUTION_ARCH"
echo -e "The working directory is ${MAGENTA}$BUILD_DIR${ENDCOLOUR}." echo -e "The working directory is ${MAGENTA}$INSTALL_DIR${ENDCOLOUR}."
if [ "$(ls -A $BUILD_DIR)" != "" ]; then if [ "$(ls -A $INSTALL_DIR)" != "" ]; then
cleanup cleanup
check_mounted check_mounted
fi fi
else else
# ▼ должно быть только перенаправление ошибки! # ▼ должно быть только перенаправление ошибки!
if [ "$(ls -A $BUILD_DIR)" != "" ]; then if [ "$(ls -A $INSTALL_DIR)" != "" ]; then
echo -e "${MAGENTA}$BUILD_DIR${ENDCOLOUR} is not empty." echo -e "${MAGENTA}$INSTALL_DIR${ENDCOLOUR} is not empty."
cleanup cleanup
check_mounted check_mounted
if [ ! -d "$BUILD_DIR" ]; then if [ ! -d "$INSTALL_DIR" ]; then
mkdir -p $BUILD_DIR mkdir -p $INSTALL_DIR
fi fi
BUILD_DIR="$( INSTALL_DIR="$(
cd $BUILD_DIR cd $INSTALL_DIR
pwd pwd
)" )"
echo $BUILD_DIR >$SCRIPT_DIR/.build_dir && chmod 644 $SCRIPT_DIR/.build_dir echo $INSTALL_DIR >$SCRIPT_DIR/.install_dir && chmod 644 $SCRIPT_DIR/.install_dir
echo -e "The working directory is ${MAGENTA}$BUILD_DIR${ENDCOLOUR}." echo -e "The working directory is ${MAGENTA}$INSTALL_DIR${ENDCOLOUR}."
else else
mkdir -p $BUILD_DIR mkdir -p $INSTALL_DIR
check_mounted check_mounted
BUILD_DIR="$( INSTALL_DIR="$(
cd $BUILD_DIR cd $INSTALL_DIR
pwd pwd
)" )"
echo $BUILD_DIR >$SCRIPT_DIR/.build_dir && chmod 644 $SCRIPT_DIR/.build_dir echo $INSTALL_DIR >$SCRIPT_DIR/.install_dir && chmod 644 $SCRIPT_DIR/.install_dir
echo -e "The working directory is ${MAGENTA}$BUILD_DIR${ENDCOLOUR}." echo -e "The working directory is ${MAGENTA}$INSTALL_DIR${ENDCOLOUR}."
fi fi
fi fi
} }
@ -333,37 +334,37 @@ function check_build_dir() {
# настраиваем папку для сборки # настраиваем папку для сборки
# ================================================================= # =================================================================
function setup_build_dir() { function setup_install_dir() {
echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..." echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..."
if [ "$UNATTENDED" = "1" ] && [ "$BUILD_DIR" = "" ]; then if [ "$UNATTENDED" = "1" ] && [ "$INSTALL_DIR" = "" ]; then
BUILD_DIR="/build/$DISTRIBUTION" INSTALL_DIR="$BUILD_DIR/$DISTRIBUTION"
check_build_dir check_install_dir
else else
if [ "$BUILD_DIR" = "" ]; then if [ "$INSTALL_DIR" = "" ]; then
if [ ! -f "$SCRIPT_DIR/.build_dir" ]; then if [ ! -f "$SCRIPT_DIR/.install_dir" ]; then
echo "Enter the address of the working directory where we will build the system" echo "Enter the address of the working directory where we will build the system"
read -r -p "$(echo -e "(Default is ${MAGENTA}$PARENT_DIR/$DISTRIBUTION${ENDCOLOUR}): ")" response read -r -p "$(echo -e "(Default is ${MAGENTA}$BUILD_DIR/$DISTRIBUTION${ENDCOLOUR}): ")" response
BUILD_DIR=${response,,} INSTALL_DIR=${response,,}
if [ "$BUILD_DIR" = "" ]; then if [ "$INSTALL_DIR" = "" ]; then
BUILD_DIR=$PARENT_DIR/$DISTRIBUTION INSTALL_DIR=$BUILD_DIR/$DISTRIBUTION
fi fi
check_build_dir check_install_dir
else else
LAST_BUILD_DIR=$(cat "$SCRIPT_DIR/.build_dir") LAST_INSTALL_DIR=$(cat "$SCRIPT_DIR/.install_dir")
echo -e "Last time you used the build directory ${MAGENTA}$LAST_BUILD_DIR${ENDCOLOUR}." echo -e "Last time you used the build directory ${MAGENTA}$LAST_INSTALL_DIR${ENDCOLOUR}."
read -r -p "$(echo -e ""Do you want to use it again? [${BOLD}${GREEN}Y${ENDCOLOUR}/n])" response read -r -p "$(echo -e ""Do you want to use it again? [${BOLD}${GREEN}Y${ENDCOLOUR}/n])" response
response=${response,,} response=${response,,}
if [[ "$response" =~ ^(no|n)$ ]]; then if [[ "$response" =~ ^(no|n)$ ]]; then
echo "Enter the address of the working directory where we will build the system" echo "Enter the address of the working directory where we will build the system"
read -r -p "$(echo -e "(Default is ${MAGENTA}$PARENT_DIR/$DISTRIBUTION${ENDCOLOUR}): ")" response read -r -p "$(echo -e "(Default is ${MAGENTA}$BUILD_DIR/$DISTRIBUTION${ENDCOLOUR}): ")" response
BUILD_DIR=${response,,} INSTALL_DIR=${response,,}
if [ "$BUILD_DIR" = "" ]; then if [ "$INSTALL_DIR" = "" ]; then
BUILD_DIR=$PARENT_DIR/$DISTRIBUTION INSTALL_DIR=$BUILD_DIR/$DISTRIBUTION
fi fi
check_build_dir check_install_dir
else else
BUILD_DIR="$LAST_BUILD_DIR" INSTALL_DIR="$LAST_INSTALL_DIR"
check_build_dir check_install_dir
fi fi
fi fi
fi fi
@ -379,21 +380,21 @@ function cleanup() {
if [ "${CMD[ii]}" = "setup_host" ] || [ "${CMD[ii]}" = "build_bootstrap" ] || [ "${CMD[ii]}" = "build_chroot" ]; then if [ "${CMD[ii]}" = "setup_host" ] || [ "${CMD[ii]}" = "build_bootstrap" ] || [ "${CMD[ii]}" = "build_chroot" ]; then
if [ "$UNATTENDED" = "1" ]; then if [ "$UNATTENDED" = "1" ]; then
check_mounted check_mounted
rm -rf $BUILD_DIR rm -rf $INSTALL_DIR
if [ -d "$BUILD_DIR" ]; then if [ -d "$INSTALL_DIR" ]; then
cleanup cleanup
fi fi
else else
read -r -p "$(echo -e ""Do you want to ${BOLD}${RED}completely remove content${ENDCOLOUR} of ${MAGENTA}$BUILD_DIR${ENDCOLOUR}? [y/${BOLD}${GREEN}N${ENDCOLOUR}])" response read -r -p "$(echo -e ""Do you want to ${BOLD}${RED}completely remove content${ENDCOLOUR} of ${MAGENTA}$INSTALL_DIR${ENDCOLOUR}? [y/${BOLD}${GREEN}N${ENDCOLOUR}])" response
response=${response,,} response=${response,,}
if [[ "$response" =~ ^(yes|y)$ ]]; then if [[ "$response" =~ ^(yes|y)$ ]]; then
check_mounted check_mounted
rm -rf $BUILD_DIR rm -rf $INSTALL_DIR
if [ -d "$BUILD_DIR" ]; then if [ -d "$INSTALL_DIR" ]; then
cleanup cleanup
fi fi
else else
echo -e "${MAGENTA}$BUILD_DIR${ENDCOLOUR} should be empty to continue." echo -e "${MAGENTA}$INSTALL_DIR${ENDCOLOUR} should be empty to continue."
exit 1 exit 1
fi fi
fi fi
@ -411,22 +412,22 @@ function chroot_mount_fs() {
check_mounted check_mounted
if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then
if [ -L $BUILD_DIR/etc/resolv.conf ]; then if [ -L $INSTALL_DIR/etc/resolv.conf ] || [ $DISTRIBUTION = "stretch" ]; then
mv $BUILD_DIR/etc/resolv.conf $BUILD_DIR/etc/resolv.conf.bak mv $INSTALL_DIR/etc/resolv.conf $INSTALL_DIR/etc/resolv.conf.bak
echo "nameserver 8.8.8.8" >$BUILD_DIR/etc/resolv.conf echo "nameserver 8.8.8.8" >>$INSTALL_DIR/etc/resolv.conf
fi fi
fi fi
mount --bind /dev $BUILD_DIR/dev mount --bind /dev $INSTALL_DIR/dev
mount --bind /run $BUILD_DIR/run mount --bind /run $INSTALL_DIR/run
if [ $DISTRIBUTION = "stretch" ]; then if [ $DISTRIBUTION = "stretch" ]; then
mount --bind /proc $BUILD_DIR/proc mount --bind /proc $INSTALL_DIR/proc
else else
mount none -t proc $BUILD_DIR/proc mount none -t proc $INSTALL_DIR/proc
fi fi
mount none -t sysfs $BUILD_DIR/sys mount none -t sysfs $INSTALL_DIR/sys
mount none -t devpts $BUILD_DIR/dev/pts mount none -t devpts $INSTALL_DIR/dev/pts
mount none -t tmpfs $BUILD_DIR/tmp mount none -t tmpfs $INSTALL_DIR/tmp
} }
# ================================================================= # =================================================================
@ -439,26 +440,26 @@ function chroot_umount_fs() {
set +e set +e
if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then
umount $BUILD_DIR/proc umount $INSTALL_DIR/proc
umount $BUILD_DIR/sys umount $INSTALL_DIR/sys
umount $BUILD_DIR/dev/pts umount $INSTALL_DIR/dev/pts
umount $BUILD_DIR/tmp umount $INSTALL_DIR/tmp
umount $BUILD_DIR/dev umount $INSTALL_DIR/dev
umount $BUILD_DIR/run umount $INSTALL_DIR/run
else else
umount $BUILD_DIR/proc >>$OUTPUT 2>&1 umount $INSTALL_DIR/proc >>$OUTPUT 2>&1
umount $BUILD_DIR/sys >>$OUTPUT 2>&1 umount $INSTALL_DIR/sys >>$OUTPUT 2>&1
umount $BUILD_DIR/dev/pts >>$OUTPUT 2>&1 umount $INSTALL_DIR/dev/pts >>$OUTPUT 2>&1
umount $BUILD_DIR/tmp >>$OUTPUT 2>&1 umount $INSTALL_DIR/tmp >>$OUTPUT 2>&1
umount $BUILD_DIR/dev >>$OUTPUT 2>&1 umount $INSTALL_DIR/dev >>$OUTPUT 2>&1
umount $BUILD_DIR/run >>$OUTPUT 2>&1 umount $INSTALL_DIR/run >>$OUTPUT 2>&1
fi fi
if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then
if [ -L $BUILD_DIR/etc/resolv.conf.bak ] && [ ! -L $BUILD_DIR/etc/resolv.conf ]; then if [ -L $INSTALL_DIR/etc/resolv.conf.bak ] || [ $DISTRIBUTION = "stretch" ]; then
rm -f $BUILD_DIR/etc/resolv.conf rm -f $INSTALL_DIR/etc/resolv.conf
mv $BUILD_DIR/etc/resolv.conf.bak $BUILD_DIR/etc/resolv.conf mv $INSTALL_DIR/etc/resolv.conf.bak $INSTALL_DIR/etc/resolv.conf
elif [ -L $BUILD_DIR/etc/resolv.conf.bak ] && [ -L $BUILD_DIR/etc/resolv.conf ]; then elif [ -L $INSTALL_DIR/etc/resolv.conf.bak ] && [ -L $INSTALL_DIR/etc/resolv.conf ]; then
rm -f $BUILD_DIR/etc/resolv.conf.bak rm -f $INSTALL_DIR/etc/resolv.conf.bak
fi fi
fi fi
set -e set -e
@ -475,8 +476,8 @@ function remove_log_file() {
if [ -f $LOGPATH/$LIVEKITNAME.log ]; then if [ -f $LOGPATH/$LIVEKITNAME.log ]; then
rm -f $LOGPATH/$LIVEKITNAME.log rm -f $LOGPATH/$LIVEKITNAME.log
fi fi
if [ -f $BUILD_DIR/$LIVEKITNAME.log ]; then if [ -f $INSTALL_DIR/$LIVEKITNAME.log ]; then
rm -f $BUILD_DIR/$LIVEKITNAME.log rm -f $INSTALL_DIR/$LIVEKITNAME.log
fi fi
} }
@ -496,30 +497,30 @@ function create_backup() {
DATE=$(date +%Y%m%d_%H%M) DATE=$(date +%Y%m%d_%H%M)
CHANGED="0" CHANGED="0"
rm -rf $SCRIPT_DIR/iso >>$OUTPUT 2>&1 rm -rf $SCRIPT_DIR/iso >>$OUTPUT 2>&1
rm -f $SCRIPT_DIR/.build_dir >>$OUTPUT 2>&1 rm -f $SCRIPT_DIR/.install_dir >>$OUTPUT 2>&1
rm -f $SCRIPT_DIR/*.log >>$OUTPUT 2>&1 rm -f $SCRIPT_DIR/*.log >>$OUTPUT 2>&1
if [ ! -d $PARENT_DIR/minios-live-current ]; then if [ ! -d $BUILD_DIR/minios-live-current ]; then
CHANGED="1" CHANGED="1"
mkdir -p $PARENT_DIR/minios-live-current mkdir -p $BUILD_DIR/minios-live-current
(cd $SCRIPT_DIR && cp --parents -afr * $PARENT_DIR/minios-live-current) (cd $SCRIPT_DIR && cp --parents -afr * $BUILD_DIR/minios-live-current)
else else
for file in $(find $SCRIPT_DIR -path $SCRIPT_DIR/.git -prune -false -o -type f | sed "s,$SCRIPT_DIR/,,g" | sed "s,.script_version,,g"); do for file in $(find $SCRIPT_DIR -path $SCRIPT_DIR/.git -prune -false -o -type f | sed "s,$SCRIPT_DIR/,,g" | sed "s,.script_version,,g"); do
if ! cmp $SCRIPT_DIR/$file $PARENT_DIR/minios-live-current/$file >>$OUTPUT 2>&1; then if ! cmp $SCRIPT_DIR/$file $BUILD_DIR/minios-live-current/$file >>$OUTPUT 2>&1; then
CHANGED="1" CHANGED="1"
echo -e "$file has been modified since last backup." >>$OUTPUT 2>&1 echo -e "$file has been modified since last backup." >>$OUTPUT 2>&1
echo -e "Copying $SCRIPT_DIR/$file to $PARENT_DIR/minios-live-current/$file..." >>$OUTPUT 2>&1 echo -e "Copying $SCRIPT_DIR/$file to $BUILD_DIR/minios-live-current/$file..." >>$OUTPUT 2>&1
cp -f "$SCRIPT_DIR/$file" "$PARENT_DIR/minios-live-current/$file" >>$OUTPUT 2>&1 cp -f "$SCRIPT_DIR/$file" "$BUILD_DIR/minios-live-current/$file" >>$OUTPUT 2>&1
fi fi
done done
fi fi
if [ $CHANGED = "1" ]; then if [ $CHANGED = "1" ]; then
SCRIPT_VERSION=$(cat $SCRIPT_DIR/.script_version) SCRIPT_VERSION=$(cat $SCRIPT_DIR/.script_version)
echo $(($SCRIPT_VERSION + 1)) >$SCRIPT_DIR/.script_version echo $(($SCRIPT_VERSION + 1)) >$SCRIPT_DIR/.script_version
echo $(($SCRIPT_VERSION + 1)) >$PARENT_DIR/minios-live-current/.script_version echo $(($SCRIPT_VERSION + 1)) >$BUILD_DIR/minios-live-current/.script_version
cd $SCRIPT_DIR >>$OUTPUT 2>&1 cd $SCRIPT_DIR >>$OUTPUT 2>&1
rm -f $PARENT_DIR/minios-live-current.tar.gz rm -f $BUILD_DIR/minios-live-current.tar.gz
tar -czf $PARENT_DIR/minios-live-current.tar.gz ./ >>$OUTPUT 2>&1 tar -czf $BUILD_DIR/minios-live-current.tar.gz ./ >>$OUTPUT 2>&1
cp $PARENT_DIR/minios-live-current.tar.gz $PARENT_DIR/minios-live-v$SCRIPT_VERSION-$DATE.tar.gz >>$OUTPUT 2>&1 cp $BUILD_DIR/minios-live-current.tar.gz $BUILD_DIR/minios-live-v$SCRIPT_VERSION-$DATE.tar.gz >>$OUTPUT 2>&1
fi fi
fi fi
} }
@ -543,6 +544,9 @@ function new_run() {
echo "================= based container to install. ===================" >>$OUTPUT 2>&1 echo "================= based container to install. ===================" >>$OUTPUT 2>&1
echo "=================================================================" >>$OUTPUT 2>&1 echo "=================================================================" >>$OUTPUT 2>&1
echo "=================================================================" >>$OUTPUT 2>&1 echo "=================================================================" >>$OUTPUT 2>&1
echo "========== Distributution: $DISTRIBUTION" >>$OUTPUT 2>&1
echo "========== Arch: $DISTRIBUTION_ARCH" >>$OUTPUT 2>&1
echo "========== Compression: $COMP_TYPE" >>$OUTPUT 2>&1
echo "" echo ""
} }
@ -579,52 +583,52 @@ function build_bootstrap() {
fi fi
if [ $USE_ROOTFS = "1" ] && [ ! -f $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH-rootfs.tar.gz ]; then if [ $USE_ROOTFS = "1" ] && [ ! -f $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH-rootfs.tar.gz ]; then
if [ -f $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH.tar.gz ]; then if [ -f $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH.tar.gz ]; then
if [ ! -d $BUILD_DIR ]; then if [ ! -d $INSTALL_DIR ]; then
mkdir -p $BUILD_DIR mkdir -p $INSTALL_DIR
fi fi
tar -xzf $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH.tar.gz -C $BUILD_DIR tar -xzf $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH.tar.gz -C $INSTALL_DIR
else else
# Раскомментировать для Ubuntu, но придётся вручную подбирать пакеты до соответсвия bootstrap Debian по пакетам. # Раскомментировать для Ubuntu, но придётся вручную подбирать пакеты до соответсвия bootstrap Debian по пакетам.
#if [ $DISTRIBUTION_TYPE != "debian" ]; then #if [ $DISTRIBUTION_TYPE != "debian" ]; then
# sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ # sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
# debootstrap --arch=$DISTRIBUTION_ARCH --variant=$DISTRIBUTION_VARIANT $DISTRIBUTION $BUILD_DIR $DISTRIBUTION_URL >>$OUTPUT 2>>$OUTPUT # debootstrap --arch=$DISTRIBUTION_ARCH --variant=$DISTRIBUTION_VARIANT $DISTRIBUTION $INSTALL_DIR $DISTRIBUTION_URL >>$OUTPUT 2>>$OUTPUT
#else #else
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
debootstrap --arch=$DISTRIBUTION_ARCH $DISTRIBUTION $BUILD_DIR $DISTRIBUTION_URL >>$OUTPUT 2>>$OUTPUT debootstrap --arch=$DISTRIBUTION_ARCH $DISTRIBUTION $INSTALL_DIR $DISTRIBUTION_URL >>$OUTPUT 2>>$OUTPUT
#fi #fi
if [ ! -d $SCRIPT_DIR/rootfs ]; then if [ ! -d $SCRIPT_DIR/rootfs ]; then
mkdir -p $SCRIPT_DIR/rootfs mkdir -p $SCRIPT_DIR/rootfs
fi fi
tar -czf $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH.tar.gz -C $BUILD_DIR . tar -czf $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH.tar.gz -C $INSTALL_DIR .
fi fi
elif [ $USE_ROOTFS = "1" ] && [ -f $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH-rootfs.tar.gz ]; then elif [ $USE_ROOTFS = "1" ] && [ -f $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH-rootfs.tar.gz ]; then
if [ ! -d $BUILD_DIR ]; then if [ ! -d $INSTALL_DIR ]; then
mkdir -p $BUILD_DIR mkdir -p $INSTALL_DIR
fi fi
tar -xzf $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH-rootfs.tar.gz -C $BUILD_DIR tar -xzf $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH-rootfs.tar.gz -C $INSTALL_DIR
elif [ $USE_ROOTFS != "1" ] && [ $USE_BOOTSTRAP = "1" ]; then elif [ $USE_ROOTFS != "1" ] && [ $USE_BOOTSTRAP = "1" ]; then
if [ -f $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH.tar.gz ]; then if [ -f $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH.tar.gz ]; then
if [ ! -d $BUILD_DIR ]; then if [ ! -d $INSTALL_DIR ]; then
mkdir -p $BUILD_DIR mkdir -p $INSTALL_DIR
fi fi
tar -xzf $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH.tar.gz -C $BUILD_DIR tar -xzf $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH.tar.gz -C $INSTALL_DIR
else else
# Раскомментировать для Ubuntu, но придётся вручную подбирать пакеты до соответсвия bootstrap Debian по пакетам. # Раскомментировать для Ubuntu, но придётся вручную подбирать пакеты до соответсвия bootstrap Debian по пакетам.
#if [ $DISTRIBUTION_TYPE != "debian" ]; then #if [ $DISTRIBUTION_TYPE != "debian" ]; then
# sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ # sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
# debootstrap --arch=$DISTRIBUTION_ARCH --variant=$DISTRIBUTION_VARIANT $DISTRIBUTION $BUILD_DIR $DISTRIBUTION_URL >>$OUTPUT 2>>$OUTPUT # debootstrap --arch=$DISTRIBUTION_ARCH --variant=$DISTRIBUTION_VARIANT $DISTRIBUTION $INSTALL_DIR $DISTRIBUTION_URL >>$OUTPUT 2>>$OUTPUT
#else #else
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
debootstrap --arch=$DISTRIBUTION_ARCH $DISTRIBUTION $BUILD_DIR $DISTRIBUTION_URL >>$OUTPUT 2>>$OUTPUT debootstrap --arch=$DISTRIBUTION_ARCH $DISTRIBUTION $INSTALL_DIR $DISTRIBUTION_URL >>$OUTPUT 2>>$OUTPUT
#fi #fi
if [ ! -d $SCRIPT_DIR/rootfs ]; then if [ ! -d $SCRIPT_DIR/rootfs ]; then
mkdir -p $SCRIPT_DIR/rootfs mkdir -p $SCRIPT_DIR/rootfs
fi fi
tar -czf $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH.tar.gz -C $BUILD_DIR . tar -czf $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH.tar.gz -C $INSTALL_DIR .
fi fi
else else
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
debootstrap --arch=$DISTRIBUTION_ARCH $DISTRIBUTION $BUILD_DIR $DISTRIBUTION_URL >>$OUTPUT 2>>$OUTPUT debootstrap --arch=$DISTRIBUTION_ARCH $DISTRIBUTION $INSTALL_DIR $DISTRIBUTION_URL >>$OUTPUT 2>>$OUTPUT
fi fi
build_rootfs build_rootfs
@ -647,8 +651,8 @@ function build_rootfs() {
create_apt_list create_apt_list
cp -f $SCRIPT_DIR/linux-live/aptsources/$DISTRIBUTION.list $BUILD_DIR/etc/apt/sources.list cp -f $SCRIPT_DIR/linux-live/aptsources/$DISTRIBUTION.list $INSTALL_DIR/etc/apt/sources.list
cat <<'EOF' >$BUILD_DIR/etc/apt/apt.conf.d/000MiniOS cat <<'EOF' >$INSTALL_DIR/etc/apt/apt.conf.d/000MiniOS
APT::Install-Recommends "0"; APT::Install-Recommends "0";
APT::Install-Suggests "0"; APT::Install-Suggests "0";
Acquire::Languages { "none"; } Acquire::Languages { "none"; }
@ -656,7 +660,7 @@ EOF
if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then
if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then
chroot $BUILD_DIR /usr/bin/env \ chroot $INSTALL_DIR /usr/bin/env \
OUTPUT=$OUTPUT \ OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \ LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \ BUILD_TEST_ISO=$BUILD_TEST_ISO \
@ -673,7 +677,7 @@ EOF
USER_NAME=$USER_NAME \ USER_NAME=$USER_NAME \
$APT_CMD update $APT_OPTIONS $APT_CMD update $APT_OPTIONS
else else
chroot $BUILD_DIR /usr/bin/env \ chroot $INSTALL_DIR /usr/bin/env \
OUTPUT=$OUTPUT \ OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \ LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \ BUILD_TEST_ISO=$BUILD_TEST_ISO \
@ -691,12 +695,12 @@ EOF
$APT_CMD update $APT_OPTIONS >>$OUTPUT 2>&1 $APT_CMD update $APT_OPTIONS >>$OUTPUT 2>&1
fi fi
else else
chroot $BUILD_DIR $APT_CMD update $APT_OPTIONS >>$OUTPUT 2>&1 chroot $INSTALL_DIR $APT_CMD update $APT_OPTIONS >>$OUTPUT 2>&1
fi fi
if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then
if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then
chroot $BUILD_DIR /usr/bin/env \ chroot $INSTALL_DIR /usr/bin/env \
OUTPUT=$OUTPUT \ OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \ LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \ BUILD_TEST_ISO=$BUILD_TEST_ISO \
@ -713,7 +717,7 @@ EOF
USER_NAME=$USER_NAME \ USER_NAME=$USER_NAME \
$APT_CMD upgrade $APT_OPTIONS $APT_CMD upgrade $APT_OPTIONS
else else
chroot $BUILD_DIR /usr/bin/env \ chroot $INSTALL_DIR /usr/bin/env \
OUTPUT=$OUTPUT \ OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \ LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \ BUILD_TEST_ISO=$BUILD_TEST_ISO \
@ -731,13 +735,13 @@ EOF
$APT_CMD upgrade $APT_OPTIONS >>$OUTPUT 2>&1 $APT_CMD upgrade $APT_OPTIONS >>$OUTPUT 2>&1
fi fi
else else
chroot $BUILD_DIR $APT_CMD upgrade $APT_OPTIONS >>$OUTPUT 2>&1 chroot $INSTALL_DIR $APT_CMD upgrade $APT_OPTIONS >>$OUTPUT 2>&1
fi fi
if [ -f $SCRIPT_DIR/linux-live/pkglists/prereq.list ]; then if [ -f $SCRIPT_DIR/linux-live/pkglists/prereq.list ]; then
if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then
if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then
chroot $BUILD_DIR /usr/bin/env \ chroot $INSTALL_DIR /usr/bin/env \
OUTPUT=$OUTPUT \ OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \ LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \ BUILD_TEST_ISO=$BUILD_TEST_ISO \
@ -755,7 +759,7 @@ EOF
$APT_CMD install $APT_OPTIONS \ $APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/pkglists/prereq.list | tr "\n" " ") $(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/pkglists/prereq.list | tr "\n" " ")
else else
chroot $BUILD_DIR /usr/bin/env \ chroot $INSTALL_DIR /usr/bin/env \
OUTPUT=$OUTPUT \ OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \ LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \ BUILD_TEST_ISO=$BUILD_TEST_ISO \
@ -774,14 +778,14 @@ EOF
$(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/pkglists/prereq.list | tr "\n" " ") >>$OUTPUT 2>&1 $(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/pkglists/prereq.list | tr "\n" " ") >>$OUTPUT 2>&1
fi fi
else else
chroot $BUILD_DIR $APT_CMD install $APT_OPTIONS \ chroot $INSTALL_DIR $APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/pkglists/prereq.list | tr "\n" " ") >>$OUTPUT 2>&1 $(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/pkglists/prereq.list | tr "\n" " ") >>$OUTPUT 2>&1
fi fi
fi fi
if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then
if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then
chroot $BUILD_DIR /usr/bin/env \ chroot $INSTALL_DIR /usr/bin/env \
OUTPUT=$OUTPUT \ OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \ LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \ BUILD_TEST_ISO=$BUILD_TEST_ISO \
@ -798,7 +802,7 @@ EOF
USER_NAME=$USER_NAME \ USER_NAME=$USER_NAME \
$APT_CMD clean $APT_OPTIONS $APT_CMD clean $APT_OPTIONS
else else
chroot $BUILD_DIR /usr/bin/env \ chroot $INSTALL_DIR /usr/bin/env \
OUTPUT=$OUTPUT \ OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \ LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \ BUILD_TEST_ISO=$BUILD_TEST_ISO \
@ -816,11 +820,11 @@ EOF
$APT_CMD clean $APT_OPTIONS >>$OUTPUT 2>&1 $APT_CMD clean $APT_OPTIONS >>$OUTPUT 2>&1
fi fi
else else
chroot $BUILD_DIR $APT_CMD clean $APT_OPTIONS >>$OUTPUT 2>&1 chroot $INSTALL_DIR $APT_CMD clean $APT_OPTIONS >>$OUTPUT 2>&1
fi fi
chroot_umount_fs chroot_umount_fs
tar -czf $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH-rootfs.tar.gz -C $BUILD_DIR . tar -czf $SCRIPT_DIR/rootfs/$DISTRIBUTION-$DISTRIBUTION_ARCH-rootfs.tar.gz -C $INSTALL_DIR .
fi fi
fi fi
} }
@ -831,40 +835,40 @@ EOF
# ================================================================= # =================================================================
function copy_build_scripts() { function copy_build_scripts() {
echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..." echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..."
if [ ! -d $BUILD_DIR/linux-live ]; then if [ ! -d $INSTALL_DIR/linux-live ]; then
mkdir -p $BUILD_DIR/linux-live mkdir -p $INSTALL_DIR/linux-live
(cd $SCRIPT_DIR/linux-live && cp --parents -afr * $BUILD_DIR/linux-live) (cd $SCRIPT_DIR/linux-live && cp --parents -afr * $INSTALL_DIR/linux-live)
else else
find $SCRIPT_DIR/linux-live -type f -print0 | sed "s,$SCRIPT_DIR/linux-live/,,g" | while IFS= read -r -d '' file; do find $SCRIPT_DIR/linux-live -type f -print0 | sed "s,$SCRIPT_DIR/linux-live/,,g" | while IFS= read -r -d '' file; do
if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then
if ! cmp $SCRIPT_DIR/linux-live/"$file" $BUILD_DIR/linux-live/"$file"; then if ! cmp $SCRIPT_DIR/linux-live/"$file" $INSTALL_DIR/linux-live/"$file"; then
echo -e "$file has been modified since last build run." echo -e "$file has been modified since last build run."
echo -e "Copying $SCRIPT_DIR/linux-live/$file to $BUILD_DIR/linux-live/$file..." echo -e "Copying $SCRIPT_DIR/linux-live/$file to $INSTALL_DIR/linux-live/$file..."
cp -f $SCRIPT_DIR/linux-live/"$file" $BUILD_DIR/linux-live/"$file" cp -f $SCRIPT_DIR/linux-live/"$file" $INSTALL_DIR/linux-live/"$file"
fi fi
else else
if ! cmp $SCRIPT_DIR/linux-live/"$file" $BUILD_DIR/linux-live/"$file" >>$OUTPUT 2>&1; then if ! cmp $SCRIPT_DIR/linux-live/"$file" $INSTALL_DIR/linux-live/"$file" >>$OUTPUT 2>&1; then
echo -e "$file has been modified since last build run." >>$OUTPUT 2>&1 echo -e "$file has been modified since last build run." >>$OUTPUT 2>&1
echo -e "Copying $SCRIPT_DIR/linux-live/$file to $BUILD_DIR/linux-live/$file..." >>$OUTPUT 2>&1 echo -e "Copying $SCRIPT_DIR/linux-live/$file to $INSTALL_DIR/linux-live/$file..." >>$OUTPUT 2>&1
cp -f $SCRIPT_DIR/linux-live/"$file" $BUILD_DIR/linux-live/"$file" >>$OUTPUT 2>&1 cp -f $SCRIPT_DIR/linux-live/"$file" $INSTALL_DIR/linux-live/"$file" >>$OUTPUT 2>&1
fi fi
fi fi
done done
fi fi
#chmod +x $BUILD_DIR/linux-live/build #chmod +x $INSTALL_DIR/linux-live/build
chmod +x $BUILD_DIR/linux-live/install_chroot chmod +x $INSTALL_DIR/linux-live/install_chroot
if [ "$DEV_SYSTEM" = "1" ]; then if [ "$DEV_SYSTEM" = "1" ]; then
if [ ! -d $BUILD_DIR/opt/minios-live ]; then if [ ! -d $INSTALL_DIR/opt/minios-live ]; then
mkdir -p $BUILD_DIR/opt/minios-live mkdir -p $INSTALL_DIR/opt/minios-live
(cd $SCRIPT_DIR && cp --parents -afr * $BUILD_DIR/opt/minios-live) (cd $SCRIPT_DIR && cp --parents -afr * $INSTALL_DIR/opt/minios-live)
else else
find $SCRIPT_DIR/linux-live -type f -print0 | sed "s,$SCRIPT_DIR/linux-live/,,g" | while IFS= read -r -d '' file; do find $SCRIPT_DIR/linux-live -type f -print0 | sed "s,$SCRIPT_DIR/linux-live/,,g" | while IFS= read -r -d '' file; do
if ! cmp $SCRIPT_DIR/"$file" $BUILD_DIR/opt/minios-live/"$file" >>$OUTPUT 2>&1; then if ! cmp $SCRIPT_DIR/"$file" $INSTALL_DIR/opt/minios-live/"$file" >>$OUTPUT 2>&1; then
echo -e "$file has been modified since last build run." >>$OUTPUT 2>&1 echo -e "$file has been modified since last build run." >>$OUTPUT 2>&1
echo -e "Copying $SCRIPT_DIR/$file to $BUILD_DIR/opt/minios-live/$file..." >>$OUTPUT 2>&1 echo -e "Copying $SCRIPT_DIR/$file to $INSTALL_DIR/opt/minios-live/$file..." >>$OUTPUT 2>&1
cp -f $SCRIPT_DIR/"$file" $BUILD_DIR/opt/minios-live/"$file" >>$OUTPUT 2>&1 cp -f $SCRIPT_DIR/"$file" $INSTALL_DIR/opt/minios-live/"$file" >>$OUTPUT 2>&1
fi fi
done done
fi fi
@ -891,20 +895,20 @@ function build_chroot() {
create_apt_list create_apt_list
if [ "$OUTPUT"="$LOGPATH/$LIVEKITNAME.log" ] && [ -f /$LIVEKITNAME.log ]; then if [ "$OUTPUT"="$LOGPATH/$LIVEKITNAME.log" ] && [ -f /$LIVEKITNAME.log ]; then
mv -f /$LIVEKITNAME.log $BUILD_DIR/$LIVEKITNAME.log mv -f /$LIVEKITNAME.log $INSTALL_DIR/$LIVEKITNAME.log
fi fi
if [ "$OUTPUT"="$LOGPATH/$LIVEKITNAME.log" ] && [ -f $BUILD_DIR/$LIVEKITNAME.log ]; then if [ "$OUTPUT"="$LOGPATH/$LIVEKITNAME.log" ] && [ -f $INSTALL_DIR/$LIVEKITNAME.log ]; then
echo "===========================================" >>$BUILD_DIR/$LIVEKITNAME.log 2>&1 echo "===========================================" >>$INSTALL_DIR/$LIVEKITNAME.log 2>&1
echo "===========================================" >>$BUILD_DIR/$LIVEKITNAME.log 2>&1 echo "===========================================" >>$INSTALL_DIR/$LIVEKITNAME.log 2>&1
echo "=============== CHROOT LOG ================" >>$BUILD_DIR/$LIVEKITNAME.log 2>&1 echo "=============== CHROOT LOG ================" >>$INSTALL_DIR/$LIVEKITNAME.log 2>&1
echo "===========================================" >>$BUILD_DIR/$LIVEKITNAME.log 2>&1 echo "===========================================" >>$INSTALL_DIR/$LIVEKITNAME.log 2>&1
echo "===========================================" >>$BUILD_DIR/$LIVEKITNAME.log 2>&1 echo "===========================================" >>$INSTALL_DIR/$LIVEKITNAME.log 2>&1
fi fi
cp -f $SCRIPT_DIR/linux-live/aptsources/$DISTRIBUTION.list $BUILD_DIR/etc/apt/sources.list cp -f $SCRIPT_DIR/linux-live/aptsources/$DISTRIBUTION.list $INSTALL_DIR/etc/apt/sources.list
if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then
chroot $BUILD_DIR /usr/bin/env \ chroot $INSTALL_DIR /usr/bin/env \
OUTPUT=$OUTPUT \ OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \ LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \ BUILD_TEST_ISO=$BUILD_TEST_ISO \
@ -921,13 +925,13 @@ function build_chroot() {
USER_NAME=$USER_NAME \ USER_NAME=$USER_NAME \
LIVE_TYPE=$LIVE_TYPE /linux-live/install_chroot - LIVE_TYPE=$LIVE_TYPE /linux-live/install_chroot -
else else
chroot $BUILD_DIR /linux-live/install_chroot - chroot $INSTALL_DIR /linux-live/install_chroot -
fi fi
chroot_umount_fs chroot_umount_fs
if [ "$OUTPUT"="$LOGPATH/$LIVEKITNAME.log" ] && [ -f $BUILD_DIR/$LIVEKITNAME.log ]; then if [ "$OUTPUT"="$LOGPATH/$LIVEKITNAME.log" ] && [ -f $INSTALL_DIR/$LIVEKITNAME.log ]; then
mv -f $BUILD_DIR/$LIVEKITNAME.log $SCRIPT_DIR/$LIVEKITNAME.log mv -f $INSTALL_DIR/$LIVEKITNAME.log $SCRIPT_DIR/$LIVEKITNAME.log
if [ -f $SCRIPT_DIR/$LIVEKITNAME.log ]; then if [ -f $SCRIPT_DIR/$LIVEKITNAME.log ]; then
echo -e "Installation log was saved to ${MAGENTA}$SCRIPT_DIR/$LIVEKITNAME.log${ENDCOLOUR}" echo -e "Installation log was saved to ${MAGENTA}$SCRIPT_DIR/$LIVEKITNAME.log${ENDCOLOUR}"
fi fi
@ -951,15 +955,15 @@ function build_live() {
copy_build_scripts copy_build_scripts
check_build_dir check_install_dir
rm -rf $PARENT_DIR/image rm -rf $BUILD_DIR/image
mkdir -p $PARENT_DIR/image/$LIVEKITNAME/{boot,changes,modules} mkdir -p $BUILD_DIR/image/$LIVEKITNAME/{boot,changes,modules}
build_boot build_boot
# create compressed 01-core.sb # create compressed 01-core.sb
cd $BUILD_DIR cd $INSTALL_DIR
COREFS="" COREFS=""
for i in $MKMOD; do for i in $MKMOD; do
if [ -d /$i ]; then if [ -d /$i ]; then
@ -968,12 +972,12 @@ function build_live() {
done done
: 'if [ $COMP_TYPE = "zstd" ]; then : 'if [ $COMP_TYPE = "zstd" ]; then
mksquashfs $COREFS $PARENT_DIR/image/$LIVEKITNAME/01-core-$COMP_TYPE.$BEXT -comp $COMP_TYPE -Xcompression-level 22 -b 1024K -always-use-fragments -keep-as-directory -noappend || exit mksquashfs $COREFS $BUILD_DIR/image/$LIVEKITNAME/01-core-$COMP_TYPE.$BEXT -comp $COMP_TYPE -Xcompression-level 22 -b 1024K -always-use-fragments -keep-as-directory -noappend || exit
else else
mksquashfs $COREFS $PARENT_DIR/image/$LIVEKITNAME/01-core-$COMP_TYPE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -keep-as-directory -noappend || exit mksquashfs $COREFS $BUILD_DIR/image/$LIVEKITNAME/01-core-$COMP_TYPE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -keep-as-directory -noappend || exit
fi' fi'
mksquashfs $COREFS $PARENT_DIR/image/$LIVEKITNAME/01-core-$COMP_TYPE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -keep-as-directory -noappend || exit mksquashfs $COREFS $BUILD_DIR/image/$LIVEKITNAME/01-core-$COMP_TYPE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -keep-as-directory -noappend || exit
} }
@ -993,36 +997,36 @@ function build_boot() {
copy_build_scripts copy_build_scripts
check_build_dir check_install_dir
# initramfs generation # initramfs generation
chroot $BUILD_DIR mount none -t proc /proc chroot $INSTALL_DIR mount none -t proc /proc
chmod +x $BUILD_DIR/linux-live/initrfs chmod +x $INSTALL_DIR/linux-live/initrfs
chroot $BUILD_DIR /linux-live/initrfs chroot $INSTALL_DIR /linux-live/initrfs
chroot $BUILD_DIR umount /proc chroot $INSTALL_DIR umount /proc
# copy kernel files # copy kernel files
cp $BUILD_DIR/boot/vmlinuz-**-**-* $PARENT_DIR/image/$LIVEKITNAME/boot/vmlinuz cp $INSTALL_DIR/boot/vmlinuz-**-**-* $BUILD_DIR/image/$LIVEKITNAME/boot/vmlinuz
cp $BUILD_DIR/boot/initrfs.img $PARENT_DIR/image/$LIVEKITNAME/boot/initrfs.img cp $INSTALL_DIR/boot/initrfs.img $BUILD_DIR/image/$LIVEKITNAME/boot/initrfs.img
#if [ $CLOUD != "true" ]; then #if [ $CLOUD != "true" ]; then
cp -r $SCRIPT_DIR/linux-live/bootfiles/* $PARENT_DIR/image/$LIVEKITNAME cp -r $SCRIPT_DIR/linux-live/bootfiles/* $BUILD_DIR/image/$LIVEKITNAME
#fi #fi
if [ $CLOUD = "true" ]; then if [ $CLOUD = "true" ]; then
BOOT_TYPE="hybrid" BOOT_TYPE="hybrid"
fi fi
if [ $BOOT_TYPE = "hybrid" ]; then if [ $BOOT_TYPE = "hybrid" ]; then
cp -r $SCRIPT_DIR/linux-live/bootfiles-grub/* $PARENT_DIR/image cp -r $SCRIPT_DIR/linux-live/bootfiles-grub/* $BUILD_DIR/image
#cp -r $SCRIPT_DIR/linux-live/bootfiles-hybrid/ $DIR #cp -r $SCRIPT_DIR/linux-live/bootfiles-hybrid/ $DIR
if [ ! -d $PARENT_DIR/image/.disk ]; then if [ ! -d $BUILD_DIR/image/.disk ]; then
mkdir -p $PARENT_DIR/image/.disk mkdir -p $BUILD_DIR/image/.disk
fi fi
echo $SYSTEMNAME >$PARENT_DIR/image/.disk/info echo $SYSTEMNAME >$BUILD_DIR/image/.disk/info
fi fi
if [ $CLOUD = "true" ]; then if [ $CLOUD = "true" ]; then
cat <<'EOF' | iconv -f 'UTF-8' -t "CP866//TRANSLIT" >$PARENT_DIR/image/minios/boot/syslinux.cfg cat <<'EOF' | iconv -f 'UTF-8' -t "CP866//TRANSLIT" >$BUILD_DIR/image/minios/boot/syslinux.cfg
UI /minios/boot/vesamenu.c32 UI /minios/boot/vesamenu.c32
PROMPT 0 PROMPT 0
@ -1057,7 +1061,7 @@ KERNEL /minios/boot/vmlinuz
APPEND vga=normal initrd=/minios/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 consoleblank=0 apparmor=0 selinux=0 minios.flags=toram net.ifnames=0 biosdevname=0 APPEND vga=normal initrd=/minios/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 consoleblank=0 apparmor=0 selinux=0 minios.flags=toram net.ifnames=0 biosdevname=0
EOF EOF
cat <<'EOF' >$PARENT_DIR/image/boot/grub/grub.cfg cat <<'EOF' >$BUILD_DIR/image/boot/grub/grub.cfg
set default="0" set default="0"
set timeout="4" set timeout="4"
set hidden_timeout_quiet=false set hidden_timeout_quiet=false
@ -1092,11 +1096,11 @@ EOF
fi fi
if [ $PACKAGE_VARIANT = "minimal" ]; then if [ $PACKAGE_VARIANT = "minimal" ]; then
sed -i 's/minios.flags=perch/minios.flags=perch,automount/g' $PARENT_DIR/image/$LIVEKITNAME/boot/syslinux.cfg sed -i 's/minios.flags=perch/minios.flags=perch,automount/g' $BUILD_DIR/image/$LIVEKITNAME/boot/syslinux.cfg
sed -i 's/minios.flags= /minios.flags=automount /g' $PARENT_DIR/image/$LIVEKITNAME/boot/syslinux.cfg sed -i 's/minios.flags= /minios.flags=automount /g' $BUILD_DIR/image/$LIVEKITNAME/boot/syslinux.cfg
if [ $BOOT_TYPE = "hybrid" ]; then if [ $BOOT_TYPE = "hybrid" ]; then
sed -i 's/minios.flags=perch/minios.flags=perch,automount/g' $PARENT_DIR/image/boot/grub/grub.cfg sed -i 's/minios.flags=perch/minios.flags=perch,automount/g' $BUILD_DIR/image/boot/grub/grub.cfg
sed -i 's/minios.flags= /minios.flags=automount /g' $PARENT_DIR/image/boot/grub/grub.cfg sed -i 's/minios.flags= /minios.flags=automount /g' $BUILD_DIR/image/boot/grub/grub.cfg
fi fi
fi fi
} }
@ -1113,19 +1117,17 @@ function build_iso() {
fi fi
fi fi
check_build_dir check_install_dir
if [ "$UNATTENDED" = "1" ]; then if [ "$UNATTENDED" = "1" ]; then
BUILD_DIR="/build/$DISTRIBUTION" INSTALL_DIR="$BUILD_DIR/$DISTRIBUTION"
fi fi
if [ "$BUILD_DIR" = "" ]; then if [ "$INSTALL_DIR" = "" ]; then
LAST_BUILD_DIR=$(cat "$SCRIPT_DIR/.build_dir") >>$OUTPUT 2>&1 LAST_INSTALL_DIR=$(cat "$SCRIPT_DIR/.install_dir") >>$OUTPUT 2>&1
BUILD_DIR=$LAST_BUILD_DIR INSTALL_DIR=$LAST_INSTALL_DIR
fi fi
ISO_DIR="/build/template/iso" cd $BUILD_DIR/image
cd $PARENT_DIR/image
if [ ! -d $ISO_DIR ]; then if [ ! -d $ISO_DIR ]; then
mkdir -p $ISO_DIR mkdir -p $ISO_DIR
fi fi
@ -1134,7 +1136,7 @@ function build_iso() {
VER=$SYSTEMVER VER=$SYSTEMVER
DATE=$(date +%Y%m%d_%H%M) DATE=$(date +%Y%m%d_%H%M)
DIR=$PARENT_DIR/image DIR=$BUILD_DIR/image
ISO=$ISO_DIR/$LIVEKITNAME-$DISTRIBUTION-$PACKAGE_VARIANT-$DISTRIBUTION_ARCH-$COMP_TYPE-$LIVE_TYPE-$DATE.iso ISO=$ISO_DIR/$LIVEKITNAME-$DISTRIBUTION-$PACKAGE_VARIANT-$DISTRIBUTION_ARCH-$COMP_TYPE-$LIVE_TYPE-$DATE.iso
B="-b $LIVEKITNAME/boot/isolinux.bin -c $LIVEKITNAME/boot/isolinux.boot" B="-b $LIVEKITNAME/boot/isolinux.bin -c $LIVEKITNAME/boot/isolinux.boot"
@ -1397,7 +1399,7 @@ EOF
if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then
if [ -f $SCRIPT_DIR/pkglists/prereq.list ]; then if [ -f $SCRIPT_DIR/pkglists/prereq.list ]; then
$APT_CMD update $APT_CMD update
echo -e "${YELLOW}=====> upgrading chroot system ...${ENDCOLOUR}" && echo -e "${YELLOW}=====> upgrading chroot system ...${ENDCOLOUR}" &&
$APT_CMD upgrade $APT_OPTIONS >>$OUTPUT 2>&1 && $APT_CMD upgrade $APT_OPTIONS >>$OUTPUT 2>&1 &&
echo -e "${YELLOW}=====> installing packages ...${ENDCOLOUR}" && echo -e "${YELLOW}=====> installing packages ...${ENDCOLOUR}" &&
$APT_CMD install $APT_OPTIONS \ $APT_CMD install $APT_OPTIONS \
@ -1564,7 +1566,7 @@ WantedBy=multi-user.target
WantedBy=network-online.target WantedBy=network-online.target
EOF EOF
systemctl enable dhclient >>$OUTPUT 2>&1 systemctl enable dhclient >>$OUTPUT 2>&1
elif [ -d /etc/NetworkManager ] && [ $DISTRIBUTION_TYPE = "ubuntu" ]; then elif [ -d /etc/NetworkManager ] && [[ $DISTRIBUTION = "bionic" || $DISTRIBUTION = "focal" ]]; then
cat <<EOF >/etc/netplan/01-netcfg.yaml cat <<EOF >/etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system # This file describes the network interfaces available on your system
# For more information, see netplan(5). # For more information, see netplan(5).
@ -1769,7 +1771,7 @@ function module_check_mounted() {
# #
# #
# ================================================================= # =================================================================
function module_check_build_dir() { function module_check_install_dir() {
echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..." echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..."
if [ "$UNATTENDED" = "1" ]; then if [ "$UNATTENDED" = "1" ]; then
#echo -e "${RED}!!!Unattended installation!!!${ENDCOLOUR}" #echo -e "${RED}!!!Unattended installation!!!${ENDCOLOUR}"
@ -1805,7 +1807,7 @@ function module_chroot_mount_fs() {
if [ $UNION_BUILD_TYPE = "overlayfs" ]; then if [ $UNION_BUILD_TYPE = "overlayfs" ]; then
MODULES_LIST="" MODULES_LIST=""
MODULES=($PARENT_DIR/image/$LIVEKITNAME/*.$BEXT) MODULES=($BUILD_DIR/image/$LIVEKITNAME/*.$BEXT)
for ((i = ${#MODULES[@]} - 1; i >= 0; i--)); do for ((i = ${#MODULES[@]} - 1; i >= 0; i--)); do
MODULE_LOWER_DIR=$(basename ${MODULES[$i]} .$BEXT) MODULE_LOWER_DIR=$(basename ${MODULES[$i]} .$BEXT)
mkdir -p $MODULES_DIR/lower/$MODULE_LOWER_DIR-lower mkdir -p $MODULES_DIR/lower/$MODULE_LOWER_DIR-lower
@ -1819,7 +1821,7 @@ function module_chroot_mount_fs() {
mount -t overlay overlay -o lowerdir=$MODULES_LIST,upperdir=$MODULE_UPPER_DIR,workdir=$MODULE_WORK_DIR $MODULE_MERGED_DIR mount -t overlay overlay -o lowerdir=$MODULES_LIST,upperdir=$MODULE_UPPER_DIR,workdir=$MODULE_WORK_DIR $MODULE_MERGED_DIR
elif [ $UNION_BUILD_TYPE = "aufs" ]; then elif [ $UNION_BUILD_TYPE = "aufs" ]; then
MODULES_LIST="" MODULES_LIST=""
MODULES=($PARENT_DIR/image/$LIVEKITNAME/*.$BEXT) MODULES=($BUILD_DIR/image/$LIVEKITNAME/*.$BEXT)
for ((i = ${#MODULES[@]} - 1; i >= 0; i--)); do for ((i = ${#MODULES[@]} - 1; i >= 0; i--)); do
MODULE_LOWER_DIR=$(basename ${MODULES[$i]} .$BEXT) MODULE_LOWER_DIR=$(basename ${MODULES[$i]} .$BEXT)
mkdir -p $MODULES_DIR/lower/$MODULE_LOWER_DIR-lower mkdir -p $MODULES_DIR/lower/$MODULE_LOWER_DIR-lower
@ -1852,9 +1854,9 @@ function module_chroot_mount_fs() {
mount --bind /dev $MODULE_MERGED_DIR/dev mount --bind /dev $MODULE_MERGED_DIR/dev
if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then
if [ -L $MODULE_MERGED_DIR/etc/resolv.conf ]; then if [ -L $MODULE_MERGED_DIR/etc/resolv.conf ] || [ $DISTRIBUTION = "stretch" ]; then
mv $MODULE_MERGED_DIR/etc/resolv.conf $MODULE_MERGED_DIR/etc/resolv.conf.bak mv $MODULE_MERGED_DIR/etc/resolv.conf $MODULE_MERGED_DIR/etc/resolv.conf.bak
echo "nameserver 8.8.8.8" >$MODULE_MERGED_DIR/etc/resolv.conf echo "nameserver 8.8.8.8" >>$MODULE_MERGED_DIR/etc/resolv.conf
fi fi
: 'if [ ! -d $MODULE_MERGED_DIR/run/resolvconf ]; then : 'if [ ! -d $MODULE_MERGED_DIR/run/resolvconf ]; then
mkdir -p $MODULE_MERGED_DIR/run/resolvconf mkdir -p $MODULE_MERGED_DIR/run/resolvconf
@ -1888,13 +1890,9 @@ function module_chroot_umount_fs() {
umount $MODULE_MERGED_DIR/tmp umount $MODULE_MERGED_DIR/tmp
umount $MODULE_MERGED_DIR/dev umount $MODULE_MERGED_DIR/dev
if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then
ls -la $MODULE_MERGED_DIR/etc/resolv.* if [[ -L $MODULE_MERGED_DIR/etc/resolv.conf.bak && ! -L $MODULE_MERGED_DIR/etc/resolv.conf ]] || [ $DISTRIBUTION = "stretch" ]; then
if [ -L $MODULE_MERGED_DIR/etc/resolv.conf.bak ] && [ ! -L $MODULE_MERGED_DIR/etc/resolv.conf ]; then
ls -la $MODULE_MERGED_DIR/etc/resolv.*
rm -f $MODULE_MERGED_DIR/etc/resolv.conf rm -f $MODULE_MERGED_DIR/etc/resolv.conf
ls -la $MODULE_MERGED_DIR/etc/resolv.*
mv $MODULE_MERGED_DIR/etc/resolv.conf.bak $MODULE_MERGED_DIR/etc/resolv.conf mv $MODULE_MERGED_DIR/etc/resolv.conf.bak $MODULE_MERGED_DIR/etc/resolv.conf
ls -la $MODULE_MERGED_DIR/etc/resolv.*
elif [ -L $MODULE_MERGED_DIR/etc/resolv.conf.bak ] && [ -L $MODULE_MERGED_DIR/etc/resolv.conf ]; then elif [ -L $MODULE_MERGED_DIR/etc/resolv.conf.bak ] && [ -L $MODULE_MERGED_DIR/etc/resolv.conf ]; then
rm -f $MODULE_MERGED_DIR/etc/resolv.conf.bak rm -f $MODULE_MERGED_DIR/etc/resolv.conf.bak
fi fi
@ -1917,7 +1915,7 @@ function module_chroot_umount_fs() {
umount $MODULE_MERGED_DIR/tmp >>$OUTPUT 2>&1 umount $MODULE_MERGED_DIR/tmp >>$OUTPUT 2>&1
umount $MODULE_MERGED_DIR/dev >>$OUTPUT 2>&1 umount $MODULE_MERGED_DIR/dev >>$OUTPUT 2>&1
if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then
if [ -L $MODULE_MERGED_DIR/etc/resolv.conf.bak ] && [ ! -L $MODULE_MERGED_DIR/etc/resolv.conf ]; then if [[ -L $MODULE_MERGED_DIR/etc/resolv.conf.bak && ! -L $MODULE_MERGED_DIR/etc/resolv.conf ]] || [ $DISTRIBUTION = "stretch"]; then
rm -f $MODULE_UPPER_DIR/etc/resolv.conf rm -f $MODULE_UPPER_DIR/etc/resolv.conf
mv $MODULE_MERGED_DIR/etc/resolv.conf.bak $MODULE_MERGED_DIR/etc/resolv.conf mv $MODULE_MERGED_DIR/etc/resolv.conf.bak $MODULE_MERGED_DIR/etc/resolv.conf
elif [ -L $MODULE_MERGED_DIR/etc/resolv.conf.bak ] && [ -L $MODULE_MERGED_DIR/etc/resolv.conf ]; then elif [ -L $MODULE_MERGED_DIR/etc/resolv.conf.bak ] && [ -L $MODULE_MERGED_DIR/etc/resolv.conf ]; then
@ -1937,7 +1935,7 @@ function module_chroot_umount_fs() {
fi fi
fi fi
MODULES=($PARENT_DIR/image/$LIVEKITNAME/*.$BEXT) MODULES=($BUILD_DIR/image/$LIVEKITNAME/*.$BEXT)
for ((i = ${#MODULES[@]} - 1; i >= 0; i--)); do for ((i = ${#MODULES[@]} - 1; i >= 0; i--)); do
MODULE_LOWER_DIR=$(basename ${MODULES[$i]} .$BEXT) MODULE_LOWER_DIR=$(basename ${MODULES[$i]} .$BEXT)
umount $MODULES_DIR/lower/$MODULE_LOWER_DIR-lower umount $MODULES_DIR/lower/$MODULE_LOWER_DIR-lower
@ -2289,45 +2287,42 @@ function build_modules() {
fi fi
fi fi
MODULES_DIR=$PARENT_DIR/modules MODULES_DIR=$BUILD_DIR/modules
cd $SCRIPT_DIR/linux-live/modules cd $SCRIPT_DIR/linux-live/modules
for MODULE in *; do for MODULE in *; do
if (ls $PARENT_DIR/image/$LIVEKITNAME/*.$BEXT | grep -q $MODULE 2>/dev/null); then if (ls $BUILD_DIR/image/$LIVEKITNAME/*.$BEXT | grep -q $MODULE 2>/dev/null); then
echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}" echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}"
echo -e "Please remove ${MAGENTA}$PARENT_DIR/image/$LIVEKITNAME/$MODULE.$BEXT${ENDCOLOUR} if you want to build ${MAGENTA}$MODULE${ENDCOLOUR}." echo -e "Please remove ${MAGENTA}$BUILD_DIR/image/$LIVEKITNAME/$MODULE.$BEXT${ENDCOLOUR} if you want to build ${MAGENTA}$MODULE${ENDCOLOUR}."
echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}" echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}"
else else
MODULE_UPPER_DIR="$MODULES_DIR/$MODULE-upper" MODULE_UPPER_DIR="$MODULES_DIR/$MODULE-upper"
MODULE_WORK_DIR="$MODULES_DIR/$MODULE-work" MODULE_WORK_DIR="$MODULES_DIR/$MODULE-work"
MODULE_MERGED_DIR="$MODULES_DIR/$MODULE-merged" MODULE_MERGED_DIR="$MODULES_DIR/$MODULE-merged"
module_check_build_dir module_check_install_dir
module_chroot_mount_fs module_chroot_mount_fs
chroot $MODULE_MERGED_DIR /usr/bin/env \ if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then
OUTPUT=$OUTPUT \ chroot $MODULE_MERGED_DIR /usr/bin/env \
LOGPATH=$LOGPATH \ OUTPUT=$OUTPUT \
BUILD_TEST_ISO=$BUILD_TEST_ISO \ LOGPATH=$LOGPATH \
CREATE_BACKUP=$CREATE_BACKUP \ BUILD_TEST_ISO=$BUILD_TEST_ISO \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \ CREATE_BACKUP=$CREATE_BACKUP \
APT_CMD=$APT_CMD \ DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_OPTIONS=$APT_OPTIONS \ APT_CMD=$APT_CMD \
LIVE_TYPE=$LIVE_TYPE \ APT_OPTIONS=$APT_OPTIONS \
DISTRIBUTION=$DISTRIBUTION \ LIVE_TYPE=$LIVE_TYPE \
DISTRIBUTION_TYPE=$DISTRIBUTION_TYPE \ DISTRIBUTION=$DISTRIBUTION \
PACKAGE_VARIANT=$PACKAGE_VARIANT \ DISTRIBUTION_TYPE=$DISTRIBUTION_TYPE \
COMP_TYPE=$COMP_TYPE \ PACKAGE_VARIANT=$PACKAGE_VARIANT \
KERNEL_ARCH=$KERNEL_ARCH \ COMP_TYPE=$COMP_TYPE \
USER_NAME=$USER_NAME \ KERNEL_ARCH=$KERNEL_ARCH \
$APT_CMD update >>$OUTPUT 2>&1 USER_NAME=$USER_NAME \
$APT_CMD update
# run pre-install script else
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/preinstall ]; then
cp $SCRIPT_DIR/linux-live/modules/$MODULE/preinstall $MODULE_MERGED_DIR/preinstall
chmod +x $MODULE_MERGED_DIR/preinstall
chroot $MODULE_MERGED_DIR /usr/bin/env \ chroot $MODULE_MERGED_DIR /usr/bin/env \
OUTPUT=$OUTPUT \ OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \ LOGPATH=$LOGPATH \
@ -2343,7 +2338,50 @@ function build_modules() {
COMP_TYPE=$COMP_TYPE \ COMP_TYPE=$COMP_TYPE \
KERNEL_ARCH=$KERNEL_ARCH \ KERNEL_ARCH=$KERNEL_ARCH \
USER_NAME=$USER_NAME \ USER_NAME=$USER_NAME \
/preinstall >>$OUTPUT 2>&1 $APT_CMD update >>$OUTPUT 2>&1
fi
# run pre-install script
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/preinstall ]; then
if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then
cp $SCRIPT_DIR/linux-live/modules/$MODULE/preinstall $MODULE_MERGED_DIR/preinstall
chmod +x $MODULE_MERGED_DIR/preinstall
chroot $MODULE_MERGED_DIR /usr/bin/env \
OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \
CREATE_BACKUP=$CREATE_BACKUP \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
DISTRIBUTION=$DISTRIBUTION \
DISTRIBUTION_TYPE=$DISTRIBUTION_TYPE \
PACKAGE_VARIANT=$PACKAGE_VARIANT \
COMP_TYPE=$COMP_TYPE \
KERNEL_ARCH=$KERNEL_ARCH \
USER_NAME=$USER_NAME \
/preinstall
else
cp $SCRIPT_DIR/linux-live/modules/$MODULE/preinstall $MODULE_MERGED_DIR/preinstall
chmod +x $MODULE_MERGED_DIR/preinstall
chroot $MODULE_MERGED_DIR /usr/bin/env \
OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \
CREATE_BACKUP=$CREATE_BACKUP \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
DISTRIBUTION=$DISTRIBUTION \
DISTRIBUTION_TYPE=$DISTRIBUTION_TYPE \
PACKAGE_VARIANT=$PACKAGE_VARIANT \
COMP_TYPE=$COMP_TYPE \
KERNEL_ARCH=$KERNEL_ARCH \
USER_NAME=$USER_NAME \
/preinstall >>$OUTPUT 2>&1
fi
fi fi
# copy files # copy files
@ -2426,16 +2464,16 @@ function build_modules() {
# run external actions # run external actions
if [ "$(ls -A $MODULE_UPPER_DIR)" != "" ]; then if [ "$(ls -A $MODULE_UPPER_DIR)" != "" ]; then
mkdir -p $PARENT_DIR/modules/tmp >>$OUTPUT 2>&1 mkdir -p $BUILD_DIR/modules/tmp >>$OUTPUT 2>&1
mksquashfs $MODULE_UPPER_DIR $PARENT_DIR/modules/tmp/$MODULE-stock.$BEXT -comp lz4 -b 1024K -always-use-fragments -noappend >>$OUTPUT 2>&1 || exit mksquashfs $MODULE_UPPER_DIR $BUILD_DIR/modules/tmp/$MODULE-stock.$BEXT -comp lz4 -b 1024K -always-use-fragments -noappend >>$OUTPUT 2>&1 || exit
mv $PARENT_DIR/modules/tmp/$MODULE-stock.$BEXT $MODULE_UPPER_DIR/$MODULE-stock.$BEXT >>$OUTPUT 2>&1 mv $BUILD_DIR/modules/tmp/$MODULE-stock.$BEXT $MODULE_UPPER_DIR/$MODULE-stock.$BEXT >>$OUTPUT 2>&1
cd $MODULE_UPPER_DIR >>$OUTPUT 2>&1 cd $MODULE_UPPER_DIR >>$OUTPUT 2>&1
unsquashfs $MODULE-stock.$BEXT >>$OUTPUT 2>&1 unsquashfs $MODULE-stock.$BEXT >>$OUTPUT 2>&1
else else
echo -e "${MAGENTA}$MODULE_UPPER_DIR${ENDCOLOUR} is empty. Nothing to do." echo -e "${MAGENTA}$MODULE_UPPER_DIR${ENDCOLOUR} is empty. Nothing to do."
fi fi
#module_check_build_dir #module_check_install_dir
module_chroot_mount_fs module_chroot_mount_fs
fi fi
@ -2553,7 +2591,7 @@ function build_modules() {
# run external actions # run external actions
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/is_internal_build ]; then if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/is_internal_build ]; then
cp $MODULE_UPPER_DIR/$MODULE.$BEXT $PARENT_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT >>$OUTPUT 2>&1 cp $MODULE_UPPER_DIR/$MODULE.$BEXT $BUILD_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT >>$OUTPUT 2>&1
fi fi
module_chroot_finish_up module_chroot_finish_up
@ -2567,19 +2605,19 @@ function build_modules() {
module_chroot_cleanup module_chroot_cleanup
if [ ! -f $SCRIPT_DIR/linux-live/modules/$MODULE/is_internal_build ]; then if [ ! -f $SCRIPT_DIR/linux-live/modules/$MODULE/is_internal_build ]; then
if [ ! -f $PARENT_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT ]; then if [ ! -f $BUILD_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT ]; then
if [ "$(ls -A $MODULE_UPPER_DIR)" != "" ]; then if [ "$(ls -A $MODULE_UPPER_DIR)" != "" ]; then
if [ $COMP_TYPE = "zstd" ]; then if [ $COMP_TYPE = "zstd" ]; then
mksquashfs $MODULE_UPPER_DIR $PARENT_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT -comp $COMP_TYPE -Xcompression-level 22 -b 1024K -always-use-fragments -noappend || exit mksquashfs $MODULE_UPPER_DIR $BUILD_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT -comp $COMP_TYPE -Xcompression-level 22 -b 1024K -always-use-fragments -noappend || exit
else else
mksquashfs $MODULE_UPPER_DIR $PARENT_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -noappend || exit mksquashfs $MODULE_UPPER_DIR $BUILD_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -noappend || exit
fi fi
else else
echo -e "${MAGENTA}$MODULE_UPPER_DIR${ENDCOLOUR} is empty. Nothing to do." echo -e "${MAGENTA}$MODULE_UPPER_DIR${ENDCOLOUR} is empty. Nothing to do."
fi fi
else else
echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}" echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}"
echo -e "Please remove ${MAGENTA}$PARENT_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT${ENDCOLOUR} if you want to build ${MAGENTA}$MODULE${ENDCOLOUR}." echo -e "Please remove ${MAGENTA}$BUILD_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT${ENDCOLOUR} if you want to build ${MAGENTA}$MODULE${ENDCOLOUR}."
echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}" echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}"
fi fi
fi fi
@ -2602,15 +2640,15 @@ function build_modules_live() {
fi fi
fi fi
MODULES_DIR=$PARENT_DIR/modules MODULES_DIR=$BUILD_DIR/modules
cd $SCRIPT_DIR/linux-live/modules cd $SCRIPT_DIR/linux-live/modules
for MODULE in *; do for MODULE in *; do
if (ls $PARENT_DIR/image/$LIVEKITNAME/*.$BEXT | grep -q $MODULE 2>/dev/null); then if (ls $BUILD_DIR/image/$LIVEKITNAME/*.$BEXT | grep -q $MODULE 2>/dev/null); then
echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}" echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}"
echo -e "Please remove ${MAGENTA}$PARENT_DIR/image/$LIVEKITNAME/$MODULE.$BEXT${ENDCOLOUR} if you want to build ${MAGENTA}$MODULE${ENDCOLOUR}." echo -e "Please remove ${MAGENTA}$BUILD_DIR/image/$LIVEKITNAME/$MODULE.$BEXT${ENDCOLOUR} if you want to build ${MAGENTA}$MODULE${ENDCOLOUR}."
echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}" echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}"
else else
@ -2620,9 +2658,9 @@ function build_modules_live() {
if [ "$(ls -A $MODULE_UPPER_DIR)" != "" ]; then if [ "$(ls -A $MODULE_UPPER_DIR)" != "" ]; then
if [ $COMP_TYPE = "zstd" ]; then if [ $COMP_TYPE = "zstd" ]; then
mksquashfs $MODULE_UPPER_DIR $PARENT_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT -comp $COMP_TYPE -Xcompression-level 22 -b 1024K -always-use-fragments -noappend || exit mksquashfs $MODULE_UPPER_DIR $BUILD_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT -comp $COMP_TYPE -Xcompression-level 22 -b 1024K -always-use-fragments -noappend || exit
else else
mksquashfs $MODULE_UPPER_DIR $PARENT_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -noappend || exit mksquashfs $MODULE_UPPER_DIR $BUILD_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -noappend || exit
fi fi
else else
echo -e "${MAGENTA}$MODULE_UPPER_DIR${ENDCOLOUR} is empty. Nothing to do." echo -e "${MAGENTA}$MODULE_UPPER_DIR${ENDCOLOUR} is empty. Nothing to do."
@ -2648,7 +2686,7 @@ function repack_module() {
function repack_modules() { function repack_modules() {
current_process current_process
cd $PARENT_DIR/image/$LIVEKITNAME/ cd $BUILD_DIR/image/$LIVEKITNAME/
for MODULE in *; do for MODULE in *; do
if (ls ./*-xz.$BEXT | grep -q $MODULE >>/dev/null 2>&1); then if (ls ./*-xz.$BEXT | grep -q $MODULE >>/dev/null 2>&1); then
OLD_COMP_TYPE="xz" OLD_COMP_TYPE="xz"

13
linux-live/modules/01-firmware/install

@ -11,9 +11,16 @@ echo "b43-fwcutter b43-fwcutter/install-unconditional boolean true" | debconf-se
# install packages # install packages
if [ $DISTRIBUTION_TYPE = "ubuntu" ]; then if [ $DISTRIBUTION_TYPE = "ubuntu" ]; then
#sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ if [ $DISTRIBUTION = "focal" ] || [ $DISTRIBUTION = "bionic" ]; then
$APT_CMD install $APT_OPTIONS \ #sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
linux-firmware firmware-b43-installer firmware-ath9k-htc >>$OUTPUT 2>&1 $APT_CMD install $APT_OPTIONS \
linux-firmware firmware-b43-installer firmware-ath9k-htc >>$OUTPUT 2>&1
else
#sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
#linux-firmware >>$OUTPUT 2>&1 #firmware-b43-installer
linux-image-generic
fi
else else
if [ -f $SCRIPT_DIR/$PACKAGE_VARIANT.list ]; then if [ -f $SCRIPT_DIR/$PACKAGE_VARIANT.list ]; then
#sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ #sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \

1
linux-live/modules/04-xfce-apps/install

@ -16,6 +16,7 @@ fi
if [ $PACKAGE_VARIANT = "standard" ]; then if [ $PACKAGE_VARIANT = "standard" ]; then
if [ $DISTRIBUTION = "stretch" ]; then if [ $DISTRIBUTION = "stretch" ]; then
echo 'deb http://ftp.debian.org/debian stretch-backports main' | sudo tee --append /etc/apt/sources.list.d/stretch-backports.list >>$OUTPUT 2>&1 echo 'deb http://ftp.debian.org/debian stretch-backports main' | sudo tee --append /etc/apt/sources.list.d/stretch-backports.list >>$OUTPUT 2>&1
$APT_CMD update >>$OUTPUT 2>&1
#sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ #sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install -t stretch-backports $APT_OPTIONS \ $APT_CMD install -t stretch-backports $APT_OPTIONS \
remmina remmina-plugin-rdp remmina-plugin-vnc >>$OUTPUT 2>&1 remmina remmina-plugin-rdp remmina-plugin-vnc >>$OUTPUT 2>&1

12
makeboot

@ -5,16 +5,16 @@ set -o pipefail # exit on pipeline error
set -u # treat unset variable as error set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
PARENT_DIR="$(dirname "$SCRIPT_DIR")" BUILD_DIR="$SCRIPT_DIR/build"
ISO_DIR="$(dirname "$SCRIPT_DIR")"/iso ISO_DIR="$BUILD_DIR/iso"
. $SCRIPT_DIR/linux-live/minioslib || exit 1
. $SCRIPT_DIR/linux-live/config || exit 1
set +u set +u
if [ -z $OUTPUT ]; then if [ -z $OUTPUT ]; then
. $SCRIPT_DIR/linux-live/buildconfig || exit 1 . $SCRIPT_DIR/linux-live/buildconfig || exit 1
fi fi
set -u set -u
. $SCRIPT_DIR/linux-live/minioslib || exit 1
. $SCRIPT_DIR/linux-live/config || exit 1
# change this for unattended installation # change this for unattended installation
UNATTENDED="1" UNATTENDED="1"
@ -23,7 +23,7 @@ CMD=(build_boot)
# ============= main ================ # ============= main ================
BUILD_DIR="" INSTALL_DIR=""
common_variables common_variables
@ -66,7 +66,7 @@ fi
#loop through the commands #loop through the commands
for ((ii = $start_index; ii < $end_index; ii++)); do for ((ii = $start_index; ii < $end_index; ii++)); do
setup_build_dir setup_install_dir
${CMD[ii]} ${CMD[ii]}
done done

12
repack

@ -5,16 +5,16 @@ set -o pipefail # exit on pipeline error
set -u # treat unset variable as error set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
PARENT_DIR="$(dirname "$SCRIPT_DIR")" BUILD_DIR="$SCRIPT_DIR/build"
ISO_DIR="$(dirname "$SCRIPT_DIR")"/iso ISO_DIR="$BUILD_DIR/iso"
. $SCRIPT_DIR/linux-live/minioslib || exit 1
. $SCRIPT_DIR/linux-live/config || exit 1
set +u set +u
if [ -z $OUTPUT ]; then if [ -z $OUTPUT ]; then
. $SCRIPT_DIR/linux-live/buildconfig || exit 1 . $SCRIPT_DIR/linux-live/buildconfig || exit 1
fi fi
set -u set -u
. $SCRIPT_DIR/linux-live/minioslib || exit 1
. $SCRIPT_DIR/linux-live/config || exit 1
# change this for unattended installation # change this for unattended installation
UNATTENDED="1" UNATTENDED="1"
@ -23,7 +23,7 @@ CMD=(repack_modules build_iso)
# ============= main ================ # ============= main ================
BUILD_DIR="" INSTALL_DIR=""
common_variables common_variables
@ -66,7 +66,7 @@ fi
#loop through the commands #loop through the commands
for ((ii = $start_index; ii < $end_index; ii++)); do for ((ii = $start_index; ii < $end_index; ii++)); do
setup_build_dir setup_install_dir
${CMD[ii]} ${CMD[ii]}
done done

Loading…
Cancel
Save