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 }