|
|
@ -1512,7 +1512,7 @@ function module_check_build_dir() { |
|
|
|
else |
|
|
|
# ▼ должно быть только перенаправление ошибки! |
|
|
|
if [ "$(ls -A $MODULE_UPPER_DIR)" != "" ]; then |
|
|
|
echo -e "${MAGENTA}$MODULE_UPPER_DIR{ENDCOLOUR} is not empty." |
|
|
|
echo -e "${MAGENTA}$MODULE_UPPER_DIR${ENDCOLOUR} is not empty." |
|
|
|
module_cleanup |
|
|
|
module_check_mounted |
|
|
|
echo -e "The working directory is ${MAGENTA}$MODULE_MERGED_DIR${ENDCOLOUR}." |
|
|
@ -1526,15 +1526,43 @@ function module_check_build_dir() { |
|
|
|
function module_chroot_mount_fs() { |
|
|
|
echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..." |
|
|
|
|
|
|
|
local MODULES MODULE_LOWER_DIR |
|
|
|
|
|
|
|
#if [ ! -d $MODULE_MERGED_DIR/dev ]; then |
|
|
|
# mkdir $MODULE_MERGED_DIR/dev |
|
|
|
#fi |
|
|
|
|
|
|
|
module_check_mounted |
|
|
|
|
|
|
|
MODULES_LIST="" |
|
|
|
MODULES=($PARENT_DIR/image/$LIVEKITNAME/*.$BEXT) |
|
|
|
for ((i = ${#MODULES[@]} - 1; i >= 0; i--)); do |
|
|
|
MODULE_LOWER_DIR=$(basename ${MODULES[$i]} .$BEXT) |
|
|
|
mkdir -p $MODULES_DIR/lower/$MODULE_LOWER_DIR-lower |
|
|
|
mount ${MODULES[$i]} $MODULES_DIR/lower/$MODULE_LOWER_DIR-lower |
|
|
|
MODULES_LIST=$MODULES_LIST":""$MODULES_DIR/lower/$MODULE_LOWER_DIR-lower" |
|
|
|
done |
|
|
|
MODULES_LIST=${MODULES_LIST:1} |
|
|
|
|
|
|
|
mkdir -p $MODULE_UPPER_DIR $MODULE_WORK_DIR $MODULE_MERGED_DIR |
|
|
|
|
|
|
|
mount -t overlay overlay -o lowerdir=$BUILD_DIR,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 |
|
|
|
|
|
|
|
if [ ! -d $MODULE_MERGED_DIR/dev ]; then |
|
|
|
mkdir -p $MODULE_MERGED_DIR/dev |
|
|
|
fi |
|
|
|
if [ ! -d $MODULE_MERGED_DIR/run ]; then |
|
|
|
mkdir -p $MODULE_MERGED_DIR/run |
|
|
|
fi |
|
|
|
if [ ! -d $MODULE_MERGED_DIR/proc ]; then |
|
|
|
mkdir -p $MODULE_MERGED_DIR/proc |
|
|
|
fi |
|
|
|
if [ ! -d $MODULE_MERGED_DIR/sys ]; then |
|
|
|
mkdir -p $MODULE_MERGED_DIR/sys |
|
|
|
fi |
|
|
|
if [ ! -d $MODULE_MERGED_DIR/tmp ]; then |
|
|
|
mkdir -p $MODULE_MERGED_DIR/tmp |
|
|
|
fi |
|
|
|
|
|
|
|
: 'if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then |
|
|
|
ln -s /dev $MODULE_MERGED_DIR/dev |
|
|
@ -1555,6 +1583,8 @@ function module_chroot_mount_fs() { |
|
|
|
function module_chroot_umount_fs() { |
|
|
|
echo -e "=====> the ${CYAN}${FUNCNAME[0]}${ENDCOLOUR} function is executing ..." |
|
|
|
|
|
|
|
local MODULES MODULE_LOWER_DIR |
|
|
|
|
|
|
|
: 'if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then |
|
|
|
set +e |
|
|
|
rm -f $MODULE_MERGED_DIR/dev >>$OUTPUT 2>&1 |
|
|
@ -1576,6 +1606,12 @@ function module_chroot_umount_fs() { |
|
|
|
set -e |
|
|
|
#fi |
|
|
|
|
|
|
|
MODULES=($PARENT_DIR/image/$LIVEKITNAME/*.$BEXT) |
|
|
|
for ((i = ${#MODULES[@]} - 1; i >= 0; i--)); do |
|
|
|
MODULE_LOWER_DIR=$(basename ${MODULES[$i]} .$BEXT) |
|
|
|
umount $MODULES_DIR/lower/$MODULE_LOWER_DIR-lower |
|
|
|
done |
|
|
|
|
|
|
|
module_check_mounted |
|
|
|
} |
|
|
|
|
|
|
@ -1618,8 +1654,8 @@ EOF |
|
|
|
EOF |
|
|
|
|
|
|
|
# clean up useless stuff |
|
|
|
rm -rf $MODULE_UPPER_DIR/boot |
|
|
|
rm -rf $MODULE_UPPER_DIR/tmp/* $MODULE_UPPER_DIR/root/.bash_history >>$OUTPUT 2>&1 |
|
|
|
rm -rf $MODULE_UPPER_DIR/boot $MODULE_UPPER_DIR/dev $MODULE_UPPER_DIR/proc $MODULE_UPPER_DIR/sys $MODULE_UPPER_DIR/rmp $MODULE_UPPER_DIR/run |
|
|
|
rm -f $MODULE_UPPER_DIR/root/.bash_history >>$OUTPUT 2>&1 |
|
|
|
rm -rf $MODULE_UPPER_DIR/.cache |
|
|
|
find $MODULE_UPPER_DIR/var/log/ -type f | xargs rm -f >>$OUTPUT 2>&1 |
|
|
|
rm -f $MODULE_UPPER_DIR/etc/ssh/ssh_host* |
|
|
@ -1645,28 +1681,23 @@ function build_modules() { |
|
|
|
|
|
|
|
cd $SCRIPT_DIR/linux-live/modules |
|
|
|
|
|
|
|
for LIST in *; do |
|
|
|
for MODULE in *; do |
|
|
|
|
|
|
|
MODULE_UPPER_DIR="$MODULES_DIR/$LIST-upper" |
|
|
|
MODULE_WORK_DIR="$MODULES_DIR/$LIST-work" |
|
|
|
MODULE_MERGED_DIR="$MODULES_DIR/$LIST-merged" |
|
|
|
if (ls $PARENT_DIR/image/$LIVEKITNAME/*.$BEXT | grep -q $MODULE 2>/dev/null); then |
|
|
|
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 "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}" |
|
|
|
else |
|
|
|
|
|
|
|
module_check_build_dir |
|
|
|
MODULE_UPPER_DIR="$MODULES_DIR/$MODULE-upper" |
|
|
|
MODULE_WORK_DIR="$MODULES_DIR/$MODULE-work" |
|
|
|
MODULE_MERGED_DIR="$MODULES_DIR/$MODULE-merged" |
|
|
|
|
|
|
|
module_chroot_mount_fs |
|
|
|
module_check_build_dir |
|
|
|
|
|
|
|
if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then |
|
|
|
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 \ |
|
|
|
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ |
|
|
|
$APT_CMD update >>$OUTPUT 2>&1 && |
|
|
|
module_chroot_mount_fs |
|
|
|
|
|
|
|
if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then |
|
|
|
chroot $MODULE_MERGED_DIR /usr/bin/env \ |
|
|
|
OUTPUT=$OUTPUT \ |
|
|
|
LOGPATH=$LOGPATH \ |
|
|
@ -1677,35 +1708,46 @@ function build_modules() { |
|
|
|
APT_OPTIONS=$APT_OPTIONS \ |
|
|
|
LIVE_TYPE=$LIVE_TYPE \ |
|
|
|
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ |
|
|
|
$APT_CMD install $APT_OPTIONS \ |
|
|
|
$(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/modules/$LIST | tr "\n" " ") >>$OUTPUT 2>&1 |
|
|
|
else |
|
|
|
chroot $MODULE_MERGED_DIR sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ |
|
|
|
$APT_CMD update >>$OUTPUT 2>&1 && |
|
|
|
$APT_CMD update >>$OUTPUT 2>&1 && |
|
|
|
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 \ |
|
|
|
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ |
|
|
|
$APT_CMD install $APT_OPTIONS \ |
|
|
|
$(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/modules/$MODULE | tr "\n" " ") >>$OUTPUT 2>&1 |
|
|
|
else |
|
|
|
chroot $MODULE_MERGED_DIR sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ |
|
|
|
$APT_CMD install $APT_OPTIONS \ |
|
|
|
$(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/modules/$LIST | tr "\n" " ") >>$OUTPUT 2>&1 |
|
|
|
fi |
|
|
|
$APT_CMD update >>$OUTPUT 2>&1 && |
|
|
|
chroot $MODULE_MERGED_DIR sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ |
|
|
|
$APT_CMD install $APT_OPTIONS \ |
|
|
|
$(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/modules/$MODULE | tr "\n" " ") >>$OUTPUT 2>&1 |
|
|
|
fi |
|
|
|
|
|
|
|
module_chroot_finish_up |
|
|
|
module_chroot_finish_up |
|
|
|
|
|
|
|
if [ $LIST = "02-xubuntu" ]; then |
|
|
|
(cd $SCRIPT_DIR/linux-live/rootcopy-modules/02-xubuntu && cp --parents -afr * $MODULE_MERGED_DIR/) |
|
|
|
if [ $MODULE = "02-xubuntu" ]; then |
|
|
|
(cd $SCRIPT_DIR/linux-live/rootcopy-modules/02-xubuntu && cp --parents -afr * $MODULE_MERGED_DIR/) |
|
|
|
|
|
|
|
if cat $MODULE_MERGED_DIR/etc/passwd | grep /home/live; then |
|
|
|
chroot $MODULE_MERGED_DIR userdel live >>$OUTPUT 2>&1 |
|
|
|
rm -rf $MODULE_MERGED_DIR/home/live >>$OUTPUT 2>&1 |
|
|
|
fi |
|
|
|
if ! cat $MODULE_MERGED_DIR/etc/passwd | grep /home/live; then |
|
|
|
echo "Set up user 'live'" >>$OUTPUT 2>&1 |
|
|
|
chroot $MODULE_MERGED_DIR adduser --gecos '' live --disabled-password >>$OUTPUT 2>&1 |
|
|
|
fi |
|
|
|
echo "Set up password for user 'live'" >>$OUTPUT 2>&1 |
|
|
|
echo live:evil | chroot $MODULE_MERGED_DIR chpasswd >>$OUTPUT 2>&1 |
|
|
|
chroot $MODULE_MERGED_DIR addgroup live adm >>$OUTPUT 2>&1 |
|
|
|
chroot $MODULE_MERGED_DIR addgroup live sudo >>$OUTPUT 2>&1 |
|
|
|
if cat $MODULE_MERGED_DIR/etc/passwd | grep /home/live; then |
|
|
|
chroot $MODULE_MERGED_DIR userdel live >>$OUTPUT 2>&1 |
|
|
|
rm -rf $MODULE_MERGED_DIR/home/live >>$OUTPUT 2>&1 |
|
|
|
fi |
|
|
|
if ! cat $MODULE_MERGED_DIR/etc/passwd | grep /home/live; then |
|
|
|
echo "Set up user 'live'" >>$OUTPUT 2>&1 |
|
|
|
chroot $MODULE_MERGED_DIR adduser --gecos '' live --disabled-password >>$OUTPUT 2>&1 |
|
|
|
fi |
|
|
|
echo "Set up password for user 'live'" >>$OUTPUT 2>&1 |
|
|
|
echo live:evil | chroot $MODULE_MERGED_DIR chpasswd >>$OUTPUT 2>&1 |
|
|
|
chroot $MODULE_MERGED_DIR addgroup live adm >>$OUTPUT 2>&1 |
|
|
|
chroot $MODULE_MERGED_DIR addgroup live sudo >>$OUTPUT 2>&1 |
|
|
|
|
|
|
|
chroot $MODULE_MERGED_DIR /bin/bash -x <<EOF |
|
|
|
chroot $MODULE_MERGED_DIR /bin/bash -x <<EOF |
|
|
|
if [ -f /usr/share/xfce4/backdrops/xubuntu-wallpaper.png ]; then |
|
|
|
rm /usr/share/xfce4/backdrops/xubuntu-wallpaper.png |
|
|
|
fi |
|
|
@ -1715,35 +1757,36 @@ fi |
|
|
|
ln -s /usr/share/backgrounds/MiniOS.png /usr/share/xfce4/backdrops/xubuntu-wallpaper.png |
|
|
|
EOF |
|
|
|
|
|
|
|
if [ -d $BUILD_DIR/etc/lightdm ]; then |
|
|
|
cat <<EOF >$MODULE_MERGED_DIR/etc/lightdm/lightdm.conf |
|
|
|
if [ -d $MODULE_MERGED_DIR/etc/lightdm ]; then |
|
|
|
cat <<EOF >$MODULE_MERGED_DIR/etc/lightdm/lightdm.conf |
|
|
|
[Seat:*] |
|
|
|
autologin-session=xubuntu |
|
|
|
autologin-user=live |
|
|
|
autologin-user-timeout=0 |
|
|
|
EOF |
|
|
|
fi |
|
|
|
fi |
|
|
|
|
|
|
|
if [ -d $BUILD_DIR/etc/NetworkManager ]; then |
|
|
|
echo "Disable dhclient.service autostart." >>$OUTPUT 2>&1 |
|
|
|
chroot $BUILD_DIR systemctl disable dhclient >>$OUTPUT 2>&1 |
|
|
|
fi |
|
|
|
if [ -d $MODULE_MERGED_DIR/etc/NetworkManager ]; then |
|
|
|
echo "Disable dhclient.service autostart." >>$OUTPUT 2>&1 |
|
|
|
chroot $MODULE_MERGED_DIR systemctl disable dhclient >>$OUTPUT 2>&1 |
|
|
|
fi |
|
|
|
|
|
|
|
fi |
|
|
|
fi |
|
|
|
|
|
|
|
module_chroot_umount_fs |
|
|
|
module_chroot_umount_fs |
|
|
|
|
|
|
|
# create compressed 01-core.sb |
|
|
|
: 'cd $MODULE_UPPER_DIR |
|
|
|
# create compressed 01-core.sb |
|
|
|
: 'cd $MODULE_UPPER_DIR |
|
|
|
COREFS="" |
|
|
|
for i in $MKMOD; do |
|
|
|
if [ -d /$i ]; then |
|
|
|
COREFS="$COREFS $i" |
|
|
|
fi |
|
|
|
done |
|
|
|
mksquashfs $COREFS $PARENT_DIR/image/$LIVEKITNAME/$LIST.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -keep-as-directory -noappend || exit' |
|
|
|
mksquashfs $COREFS $PARENT_DIR/image/$LIVEKITNAME/$MODULE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -keep-as-directory -noappend || exit' |
|
|
|
|
|
|
|
mksquashfs $MODULE_UPPER_DIR $PARENT_DIR/image/$LIVEKITNAME/$LIST.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -noappend || exit |
|
|
|
mksquashfs $MODULE_UPPER_DIR $PARENT_DIR/image/$LIVEKITNAME/$MODULE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -noappend || exit |
|
|
|
|
|
|
|
fi |
|
|
|
done |
|
|
|
} |