Browse Source

update

master
crims0n 5 years ago
parent
commit
0608796a2b
  1. 1
      build_modules
  2. 161
      linux-live/minioslib

1
build_modules

@ -15,6 +15,7 @@ fi
set -u set -u
. $SCRIPT_DIR/linux-live/minioslib || exit 1 . $SCRIPT_DIR/linux-live/minioslib || exit 1
. $SCRIPT_DIR/linux-live/config || exit 1 . $SCRIPT_DIR/linux-live/config || exit 1
. $SCRIPT_DIR/linux-live/livekitlib|| exit 1
# don't change! use ./autoinstall instead # don't change! use ./autoinstall instead
UNATTENDED="0" UNATTENDED="0"

161
linux-live/minioslib

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