You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
247 lines
9.6 KiB
247 lines
9.6 KiB
function build_modules_chroot() {
|
|
current_process
|
|
|
|
if [ $LIVE_TYPE = "casper" ]; then
|
|
#return 0
|
|
|
|
chroot_mount_fs
|
|
|
|
cd $SCRIPT_DIR/linux-live/modules
|
|
|
|
for MODULE in *; do
|
|
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/preinstall ]; then
|
|
cp $SCRIPT_DIR/linux-live/modules/$MODULE/preinstall $BUILDDIR/preinstall
|
|
chmod +x $BUILDDIR/preinstall
|
|
chroot $BUILDDIR /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 \
|
|
/preinstall >>$OUTPUT 2>&1
|
|
fi
|
|
|
|
# copy files
|
|
if [ "$(ls -A $SCRIPT_DIR/linux-live/modules/$MODULE/rootcopy)" != "" ]; then
|
|
(cd $SCRIPT_DIR/linux-live/modules/$MODULE/rootcopy && cp --parents -afr * $BUILDDIR/)
|
|
fi
|
|
|
|
# run install script
|
|
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/install ]; then
|
|
cp $SCRIPT_DIR/linux-live/modules/$MODULE/install $BUILDDIR/install
|
|
chmod +x $BUILDDIR/install
|
|
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/package.list ]; then
|
|
cp $SCRIPT_DIR/linux-live/modules/$MODULE/package.list $BUILDDIR/package.list
|
|
fi
|
|
chroot $BUILDDIR /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 \
|
|
/install >>$OUTPUT 2>&1
|
|
fi
|
|
|
|
# run post-install script
|
|
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/postinstall ]; then
|
|
cp $SCRIPT_DIR/linux-live/modules/$MODULE/postinstall $BUILDDIR/postinstall
|
|
chmod +x $BUILDDIR/postinstall
|
|
chroot $BUILDDIR /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 \
|
|
/postinstall >>$OUTPUT 2>&1
|
|
fi
|
|
|
|
chroot_finish_up
|
|
|
|
chroot_umount_fs
|
|
done
|
|
fi
|
|
|
|
if [ $CONTAINER_TYPE = "1" ]; then
|
|
if [ ! -f /.minios-live ]; then
|
|
setup_host
|
|
fi
|
|
fi
|
|
|
|
MODULES_DIR=$PARENT_DIR/modules
|
|
|
|
cd $SCRIPT_DIR/linux-live/modules
|
|
|
|
for MODULE in *; do
|
|
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_UPPER_DIR="$MODULES_DIR/$MODULE-upper"
|
|
MODULE_WORK_DIR="$MODULES_DIR/$MODULE-work"
|
|
MODULE_MERGED_DIR="$MODULES_DIR/$MODULE-merged"
|
|
|
|
module_check_build_dir
|
|
|
|
module_chroot_mount_fs
|
|
|
|
# run pre-install script
|
|
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/preinstall ]; then
|
|
cp $SCRIPT_DIR/linux-live/modules/$MODULE/preinstall $BUILDDIR/preinstall
|
|
chmod +x $BUILDDIR/preinstall
|
|
chroot $BUILDDIR /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 \
|
|
/preinstall >>$OUTPUT 2>&1
|
|
fi
|
|
|
|
: '# install packages
|
|
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/package.list ]; then
|
|
if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then
|
|
chroot $BUILDDIR /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 &&
|
|
chroot $BUILDDIR /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/package.list | tr "\n" " ") >>$OUTPUT 2>&1
|
|
else
|
|
chroot $BUILDDIR sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
|
|
$APT_CMD update >>$OUTPUT 2>&1 &&
|
|
chroot $BUILDDIR sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
|
|
$APT_CMD install $APT_OPTIONS \
|
|
$(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/modules/$MODULE/package.list | tr "\n" " ") >>$OUTPUT 2>&1
|
|
fi
|
|
fi'
|
|
|
|
# copy files
|
|
if [ "$(ls -A $SCRIPT_DIR/linux-live/modules/$MODULE/rootcopy)" != "" ]; then
|
|
(cd $SCRIPT_DIR/linux-live/modules/$MODULE/rootcopy && cp --parents -afr * $BUILDDIR/)
|
|
fi
|
|
|
|
# run install script
|
|
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/install ]; then
|
|
cp $SCRIPT_DIR/linux-live/modules/$MODULE/install $BUILDDIR/install
|
|
chmod +x $BUILDDIR/install
|
|
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/package.list ]; then
|
|
cp $SCRIPT_DIR/linux-live/modules/$MODULE/package.list $BUILDDIR/package.list
|
|
fi
|
|
chroot $BUILDDIR /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 \
|
|
/install >>$OUTPUT 2>&1
|
|
fi
|
|
|
|
# run post-install script
|
|
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/postinstall ]; then
|
|
cp $SCRIPT_DIR/linux-live/modules/$MODULE/postinstall $BUILDDIR/postinstall
|
|
chmod +x $BUILDDIR/postinstall
|
|
chroot $BUILDDIR /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 \
|
|
/postinstall >>$OUTPUT 2>&1
|
|
fi
|
|
|
|
module_chroot_finish_up
|
|
|
|
module_chroot_umount_fs
|
|
|
|
if [ ! -f $PARENT_DIR/image/$LIVEKITNAME/$MODULE.$BEXT ]; then
|
|
build_modules_live
|
|
fi
|
|
|
|
fi
|
|
done
|
|
}
|
|
|
|
function build_modules_live() {
|
|
current_process
|
|
|
|
if [ $LIVE_TYPE = "casper" ]; then
|
|
return 0
|
|
fi
|
|
|
|
if [ $CONTAINER_TYPE = "1" ]; then
|
|
if [ ! -f /.minios-live ]; then
|
|
setup_host
|
|
fi
|
|
fi
|
|
|
|
MODULES_DIR=$PARENT_DIR/modules
|
|
|
|
cd $SCRIPT_DIR/linux-live/modules
|
|
|
|
for MODULE in *; do
|
|
|
|
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_UPPER_DIR="$MODULES_DIR/$MODULE-upper"
|
|
MODULE_WORK_DIR="$MODULES_DIR/$MODULE-work"
|
|
MODULE_MERGED_DIR="$MODULES_DIR/$MODULE-merged"
|
|
|
|
if [ "$(ls -A $MODULE_UPPER_DIR)" != "" ]; then
|
|
|
|
# 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/$MODULE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -keep-as-directory -noappend || exit'
|
|
|
|
mksquashfs $MODULE_UPPER_DIR $PARENT_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -noappend || exit
|
|
else
|
|
echo -e "${MAGENTA}$BUILD_DIR${ENDCOLOUR} is empty. Nothing to do."
|
|
fi
|
|
fi
|
|
done
|
|
}
|
|
|