|
|
@ -11,11 +11,8 @@ |
|
|
|
# ================================================================= |
|
|
|
|
|
|
|
function common_variables() { |
|
|
|
# default is output to log. you can use OUTPUT="/dev/stdout" if you want to route events to standard output. |
|
|
|
#OUTPUT="/var/log/$LIVEKITNAME.log" |
|
|
|
OUTPUT="/dev/stdout" |
|
|
|
|
|
|
|
# |
|
|
|
CONTAINER_TYPE="0" |
|
|
|
set +u |
|
|
|
if [ -z $container ]; then |
|
|
|
container="" |
|
|
@ -25,25 +22,12 @@ function common_variables() { |
|
|
|
OUTPUT="/dev/stdout" |
|
|
|
#CONTAINER="docker" |
|
|
|
fi |
|
|
|
|
|
|
|
# if = "1", creates a second iso with a constant filename |
|
|
|
# если ="1", создаёт второй iso с постоянным именем файла |
|
|
|
BUILD_TEST_ISO="1" |
|
|
|
|
|
|
|
# if = "1", creates a copy of minios-live in chroot /opt |
|
|
|
# если ="1", создаёт копию minios-live в chroot /opt |
|
|
|
DEV_SYSTEM="0" |
|
|
|
|
|
|
|
# if ="1", creates backup in parent folder |
|
|
|
# если ="1", создаёт резервную копию в родительской папке |
|
|
|
CREATE_BACKUP="0" |
|
|
|
|
|
|
|
DEBIAN_FRONTEND_TYPE="noninteractive" |
|
|
|
#DEBIAN_FRONTEND_TYPE="ncurses" |
|
|
|
|
|
|
|
APT_CMD="apt-get" |
|
|
|
|
|
|
|
APT_OPTIONS="-y" #--no-install-recommends" |
|
|
|
if [ -f /.dockerenv ] || [ "$container" = "podman" ] && [ ! -d /opt/minios-live ] && [ ! -f /.minios-live-container ]; then |
|
|
|
CONTAINER_TYPE="1" |
|
|
|
fi |
|
|
|
if [[ (-f /.dockerenv || "$container" = "podman") && (-d /opt/minios-live || -f /.minios-live-container) ]]; then |
|
|
|
CONTAINER_TYPE="2" |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
# ================================================================= |
|
|
@ -385,16 +369,20 @@ function chroot_mount_fs() { |
|
|
|
|
|
|
|
check_mounted |
|
|
|
|
|
|
|
: 'if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then |
|
|
|
ln -s /dev $BUILD_DIR/dev |
|
|
|
ln -s /run $BUILD_DIR/run |
|
|
|
ln -s /proc $BUILD_DIR/proc |
|
|
|
ln -s /sys $BUILD_DIR/sys |
|
|
|
ln -s /tmp $BUILD_DIR/tmp |
|
|
|
else' |
|
|
|
mount --bind /dev $BUILD_DIR/dev |
|
|
|
mount --bind /run $BUILD_DIR/run |
|
|
|
mount none -t proc $BUILD_DIR/proc |
|
|
|
mount none -t sysfs $BUILD_DIR/sys |
|
|
|
mount none -t devpts $BUILD_DIR/dev/pts |
|
|
|
mount none -t tmpfs $BUILD_DIR/tmp |
|
|
|
#chroot $BUILD_DIR mount none -t proc /proc |
|
|
|
#chroot $BUILD_DIR mount none -t sysfs /sys |
|
|
|
#chroot $BUILD_DIR mount none -t devpts /dev/pts |
|
|
|
#chroot $BUILD_DIR mount none -t tmpfs /tmp |
|
|
|
#fi |
|
|
|
} |
|
|
|
|
|
|
|
# ================================================================= |
|
|
@ -404,11 +392,17 @@ function chroot_mount_fs() { |
|
|
|
|
|
|
|
function chroot_umount_fs() { |
|
|
|
echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..." |
|
|
|
|
|
|
|
: 'if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then |
|
|
|
set +e |
|
|
|
rm -f $BUILD_DIR/dev >>$OUTPUT 2>&1 |
|
|
|
rm -f $BUILD_DIR/run >>$OUTPUT 2>&1 |
|
|
|
rm -f $BUILD_DIR/proc >>$OUTPUT 2>&1 |
|
|
|
rm -f $BUILD_DIR/sys >>$OUTPUT 2>&1 |
|
|
|
rm -f $BUILD_DIR/tmp >>$OUTPUT 2>&1 |
|
|
|
set -e |
|
|
|
else' |
|
|
|
set +e |
|
|
|
#chroot $BUILD_DIR umount /proc |
|
|
|
#chroot $BUILD_DIR umount /sys |
|
|
|
#chroot $BUILD_DIR umount /dev/pts |
|
|
|
#chroot $BUILD_DIR umount /tmp |
|
|
|
umount $BUILD_DIR/proc >>$OUTPUT 2>&1 |
|
|
|
umount $BUILD_DIR/sys >>$OUTPUT 2>&1 |
|
|
|
umount $BUILD_DIR/dev/pts >>$OUTPUT 2>&1 |
|
|
@ -416,13 +410,15 @@ function chroot_umount_fs() { |
|
|
|
umount $BUILD_DIR/dev >>$OUTPUT 2>&1 |
|
|
|
umount $BUILD_DIR/run >>$OUTPUT 2>&1 |
|
|
|
set -e |
|
|
|
#fi |
|
|
|
|
|
|
|
check_mounted |
|
|
|
} |
|
|
|
|
|
|
|
function remove_log_file() { |
|
|
|
echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..." |
|
|
|
if [ -f /$LIVEKITNAME.log ]; then |
|
|
|
rm -f /$LIVEKITNAME.log |
|
|
|
if [ -f $LOGPATH/$LIVEKITNAME.log ]; then |
|
|
|
rm -f $LOGPATH/$LIVEKITNAME.log |
|
|
|
fi |
|
|
|
if [ -f $BUILD_DIR/$LIVEKITNAME.log ]; then |
|
|
|
rm -f $BUILD_DIR/$LIVEKITNAME.log |
|
|
@ -485,7 +481,7 @@ function create_apt_list() { |
|
|
|
function build_bootstrap() { |
|
|
|
current_process |
|
|
|
|
|
|
|
if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then |
|
|
|
if [ $CONTAINER_TYPE = "1" ]; then |
|
|
|
if [ ! -f /.minios-live ]; then |
|
|
|
setup_host |
|
|
|
fi |
|
|
@ -530,10 +526,24 @@ function copy_build_scripts() { |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
function preserve_environment_variables() { |
|
|
|
if [ -d /opt/minios-live ]; then |
|
|
|
chroot $BUILD_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 |
|
|
|
fi |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
function build_chroot() { |
|
|
|
current_process |
|
|
|
|
|
|
|
if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then |
|
|
|
if [ $CONTAINER_TYPE = "1" ]; then |
|
|
|
if [ ! -f /.minios-live ]; then |
|
|
|
setup_host |
|
|
|
fi |
|
|
@ -545,10 +555,10 @@ function build_chroot() { |
|
|
|
|
|
|
|
create_apt_list |
|
|
|
|
|
|
|
if [ "$OUTPUT"="/$LIVEKITNAME.log" ] && [ -f /$LIVEKITNAME.log ]; then |
|
|
|
if [ "$OUTPUT"="$LOGPATH/$LIVEKITNAME.log" ] && [ -f /$LIVEKITNAME.log ]; then |
|
|
|
mv -f /$LIVEKITNAME.log $BUILD_DIR/$LIVEKITNAME.log |
|
|
|
fi |
|
|
|
if [ "$OUTPUT"="/$LIVEKITNAME.log" ] && [ -f $BUILD_DIR/$LIVEKITNAME.log ]; then |
|
|
|
if [ "$OUTPUT"="$LOGPATH/$LIVEKITNAME.log" ] && [ -f $BUILD_DIR/$LIVEKITNAME.log ]; then |
|
|
|
echo "===========================================" >>$BUILD_DIR/$LIVEKITNAME.log 2>&1 |
|
|
|
echo "===========================================" >>$BUILD_DIR/$LIVEKITNAME.log 2>&1 |
|
|
|
echo "=============== CHROOT LOG ================" >>$BUILD_DIR/$LIVEKITNAME.log 2>&1 |
|
|
@ -557,11 +567,23 @@ function build_chroot() { |
|
|
|
fi |
|
|
|
|
|
|
|
cp -f $SCRIPT_DIR/linux-live/aptsources/$DISTRIBUTION.list $BUILD_DIR/etc/apt/sources.list |
|
|
|
chroot $BUILD_DIR /linux-live/install_chroot - |
|
|
|
|
|
|
|
if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then |
|
|
|
chroot $BUILD_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 /linux-live/install_chroot - |
|
|
|
else |
|
|
|
chroot $BUILD_DIR /linux-live/install_chroot - |
|
|
|
fi |
|
|
|
|
|
|
|
chroot_umount_fs |
|
|
|
|
|
|
|
if [ "$OUTPUT"="/$LIVEKITNAME.log" ] && [ -f $BUILD_DIR/$LIVEKITNAME.log ]; then |
|
|
|
if [ "$OUTPUT"="$LOGPATH/$LIVEKITNAME.log" ] && [ -f $BUILD_DIR/$LIVEKITNAME.log ]; then |
|
|
|
mv -f $BUILD_DIR/$LIVEKITNAME.log $SCRIPT_DIR/$LIVEKITNAME.log |
|
|
|
if [ -f $SCRIPT_DIR/$LIVEKITNAME.log ]; then |
|
|
|
echo -e "Installation log was saved to ${MAGENTA}$SCRIPT_DIR/$LIVEKITNAME.log${ENDCOLOUR}" |
|
|
@ -572,7 +594,7 @@ function build_chroot() { |
|
|
|
function build_live() { |
|
|
|
current_process |
|
|
|
|
|
|
|
if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then |
|
|
|
if [ $CONTAINER_TYPE = "1" ]; then |
|
|
|
if [ ! -f /.minios-live ]; then |
|
|
|
setup_host |
|
|
|
fi |
|
|
@ -585,10 +607,22 @@ function build_live() { |
|
|
|
check_build_dir |
|
|
|
|
|
|
|
chroot $BUILD_DIR mount none -t proc /proc |
|
|
|
chroot $BUILD_DIR /bin/bash -x <<'EOF' |
|
|
|
: 'chroot $BUILD_DIR /bin/bash -x <<EOF |
|
|
|
cd /linux-live |
|
|
|
./build |
|
|
|
EOF |
|
|
|
EOF' |
|
|
|
if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then |
|
|
|
chroot $BUILD_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 /linux-live/build |
|
|
|
else |
|
|
|
chroot $BUILD_DIR /linux-live/build |
|
|
|
fi |
|
|
|
chroot $BUILD_DIR umount /proc |
|
|
|
|
|
|
|
} |
|
|
@ -596,7 +630,7 @@ EOF |
|
|
|
function build_iso() { |
|
|
|
current_process |
|
|
|
|
|
|
|
if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then |
|
|
|
if [ $CONTAINER_TYPE = "1" ]; then |
|
|
|
if [ ! -f /.minios-live ]; then |
|
|
|
setup_host |
|
|
|
fi |
|
|
@ -680,7 +714,9 @@ function build_iso() { |
|
|
|
function setup_host() { |
|
|
|
current_process |
|
|
|
|
|
|
|
hostreq_pkg_list |
|
|
|
if [ $CONTAINER_TYPE != "2" ]; then |
|
|
|
hostreq_pkg_list |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
function chroot_setup_host() { |
|
|
@ -702,7 +738,7 @@ function chroot_setup_host() { |
|
|
|
function hostreq_pkg_list() { |
|
|
|
echo -e "${YELLOW}=====> installing required software for host system ...${ENDCOLOUR}" |
|
|
|
$APT_CMD update >>$OUTPUT 2>&1 |
|
|
|
if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then |
|
|
|
if [ $CONTAINER_TYPE = "1" ]; then |
|
|
|
touch /.minios-live |
|
|
|
$APT_CMD install -y wget patch >>$OUTPUT 2>&1 |
|
|
|
cd ~ |
|
|
|