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

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
}