From 0cd52e0b78ed3a770f842ed1c2a7405337887ea1 Mon Sep 17 00:00:00 2001 From: crims0n Date: Thu, 2 Dec 2021 20:54:32 +0300 Subject: [PATCH] Update --- .gitignore | 3 +- README.md | 39 ++++++++++++++++++- docker/02-build.sh | 2 +- docker/Dockerfile.py | 5 ++- linux-live/buildconfig | 2 +- linux-live/initramfs/initramfs_create | 6 +++ linux-live/initramfs/static/minios-configure | 2 +- linux-live/minioslib | 15 +++---- .../module_scripts/03-slax-desktop/install2 | 2 +- .../03-xfce-desktop/postinstall | 5 --- .../module_scripts/04-slax-apps/install2 | 3 +- linux-live/module_scripts/05-chromium/install | 16 ++++++++ linux-live/modules/slax-firefox/01-firmware | 1 + linux-live/modules/slax-firefox/02-xorg | 1 + .../modules/slax-firefox/03-slax-desktop | 1 + linux-live/modules/slax-firefox/04-slax-apps | 1 + linux-live/modules/slax-firefox/05-firefox | 1 + linux-live/modules/xfce-chromium/01-firmware | 1 + linux-live/modules/xfce-chromium/02-xorg | 1 + .../modules/xfce-chromium/03-xfce-desktop | 1 + linux-live/modules/xfce-chromium/04-xfce-apps | 1 + linux-live/modules/xfce-chromium/05-chromium | 1 + 22 files changed, 86 insertions(+), 24 deletions(-) create mode 120000 linux-live/modules/slax-firefox/01-firmware create mode 120000 linux-live/modules/slax-firefox/02-xorg create mode 120000 linux-live/modules/slax-firefox/03-slax-desktop create mode 120000 linux-live/modules/slax-firefox/04-slax-apps create mode 120000 linux-live/modules/slax-firefox/05-firefox create mode 120000 linux-live/modules/xfce-chromium/01-firmware create mode 120000 linux-live/modules/xfce-chromium/02-xorg create mode 120000 linux-live/modules/xfce-chromium/03-xfce-desktop create mode 120000 linux-live/modules/xfce-chromium/04-xfce-apps create mode 120000 linux-live/modules/xfce-chromium/05-chromium diff --git a/.gitignore b/.gitignore index 971d728..2323048 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ linux-live/minioslib copy docker/03-custom.sh *.iso *.xz -*.gz \ No newline at end of file +*.gz +linux-live/initramfs/initramfs.log \ No newline at end of file diff --git a/README.md b/README.md index bf4ac35..2ff2aae 100644 --- a/README.md +++ b/README.md @@ -35,4 +35,41 @@ Для сборки с помошью докера создайте в домашней папке папку build, поместите туда minios-slax, запустите 01-runme.sh из папки docker. Данное действие установит необходимые программы и создаст образ. Для запуска сборки отредактируйте под себя и запустите 02-build.sh. Пример содержимого файла: -`docker run --rm -it --name mlc --privileged -v /home/user/build:/build local/mlc` +`docker run --rm -it --name mlc --privileged -v /home/user/build:/build local/mlc /build/minios-slax/install -` + +These scripts build a bootable MiniOS ISO image. + +For installation use **install** - script for guided installation, **autoinstall** - script for automatic installation. + +**Never run scripts from linux-live! They will break your system.** + +**Supported commands:** `setup_host build_bootstrap build_chroot build_live build_modules build_iso` + +*setup_host* - installing packages required for building on the host + +*build_bootstrap* - install a minimal system using debootstrap + +*build_chroot* - installation of the rest of the components required to start the system + +*build_live* - build initramfs and squashfs image + +*build_modules_chroot* - building modules + +*build_iso* - build the final ISO image + +**Syntax:** `./install [start_cmd] [-] [end_cmd]` +- launch from start_cmd to end_cmd +- if start_cmd is omitted, all commands are executed starting from the first +- if end_cmd is omitted, all commands up to the last are executed +- enter one command to run a specific command +- enter '-' as the only argument to run all commands + + Examples: ./install build_bootstrap - build_chroot + ./install - build_chroot + ./install build_bootstrap - + ./install build_iso + ./install - + +To build with docker, create a build folder in your home folder, put minios-slax there, run 01-runme.sh from the docker folder. This action will install the required programs and create an image. To start the build, edit for yourself and run 02-build.sh. Sample file content: + +`docker run --rm -it --name mlc --privileged -v /home/user/build:/build local/mlc /build/minios-slax/install -` diff --git a/docker/02-build.sh b/docker/02-build.sh index 6c6e312..903e23b 100755 --- a/docker/02-build.sh +++ b/docker/02-build.sh @@ -1,2 +1,2 @@ #!/bin/bash -docker run -d --name mlc --privileged -v /build:/build local/mlc +docker run -d --name mlc --privileged -v /build:/build local/mlc /build/install - diff --git a/docker/Dockerfile.py b/docker/Dockerfile.py index 879d391..1dea885 100755 --- a/docker/Dockerfile.py +++ b/docker/Dockerfile.py @@ -61,8 +61,9 @@ rm -f /var/lib/dpkg/*-old ''') d.VOLUME = '/build' -d.WORKDIR = '/build/minios-slax' +d.WORKDIR = '/build/minios' +#d.WORKDIR = '/build/minios-slax' -d.CMD = ["/build/minios-slax/install", "-"] +#d.CMD = ["/build/minios-slax/install", "-"] d.build_img() diff --git a/linux-live/buildconfig b/linux-live/buildconfig index 8cdd50b..7b92045 100644 --- a/linux-live/buildconfig +++ b/linux-live/buildconfig @@ -16,7 +16,7 @@ DISTRIBUTION_ARCH=amd64 # окружение рабочего стола # desktop environment -DESKTOP_ENVIRONMENT=xfce +DESKTOP_ENVIRONMENT=slax-firefox # тип сжатия # compresssion type diff --git a/linux-live/initramfs/initramfs_create b/linux-live/initramfs/initramfs_create index e526399..9c1cacf 100755 --- a/linux-live/initramfs/initramfs_create +++ b/linux-live/initramfs/initramfs_create @@ -6,6 +6,12 @@ . ../config INITRAMFS=/tmp/$LIVEKITNAME-initramfs-$$ +SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" + +exec 19>$SCRIPT_DIR/initramfs.log +BASH_XTRACEFD=19 + +set -x # copy file to initramfs tree, including # all library dependencies (as shown by ldd) diff --git a/linux-live/initramfs/static/minios-configure b/linux-live/initramfs/static/minios-configure index f345e6f..c4be2da 100755 --- a/linux-live/initramfs/static/minios-configure +++ b/linux-live/initramfs/static/minios-configure @@ -467,7 +467,7 @@ EOF sed -i "s/NODM_USER=live/NODM_USER=$USER_NAME/g" /etc/default/nodm fi if [ -f /etc/slim.conf ]; then - sed -i "s/default_user live/default_user $USER_NAME/g" /etc/slim.conf + sed -i "s/#default_user simone/default_user $USER_NAME/g" /etc/slim.conf fi fi diff --git a/linux-live/minioslib b/linux-live/minioslib index 6dd579d..5ad0ce8 100644 --- a/linux-live/minioslib +++ b/linux-live/minioslib @@ -655,6 +655,7 @@ KERNEL_ARCH=$KERNEL_ARCH LIVEKITNAME=$LIVEKITNAME SYSTEMNAME=$SYSTEMNAME DISTRIBUTION_ARCH=$DISTRIBUTION_ARCH +MODULE=$MODULE EOF cat <<'EOF' >$1/functions @@ -1226,13 +1227,13 @@ EOF if [ $PACKAGE_VARIANT = "minimal" ]; then sed -i 's/minios.flags=perch/minios.flags=perch,automount/g' $BUILD_DIR/image/$LIVEKITNAME/boot/syslinux.cfg sed -i 's/minios.flags= /minios.flags=automount /g' $BUILD_DIR/image/$LIVEKITNAME/boot/syslinux.cfg - if [ $DESKTOP_ENVIRONMENT = "slax" ]; then + if [[ $DESKTOP_ENVIRONMENT =~ "slax" ]]; then sed -i 's/quiet/quiet user_name=root/g' $BUILD_DIR/image/$LIVEKITNAME/boot/syslinux.cfg fi if [ $BOOT_TYPE = "hybrid" ]; then sed -i 's/minios.flags=perch/minios.flags=perch,automount/g' $BUILD_DIR/image/boot/grub/grub.cfg sed -i 's/minios.flags= /minios.flags=automount /g' $BUILD_DIR/image/boot/grub/grub.cfg - if [ $DESKTOP_ENVIRONMENT = "slax" ]; then + if [[ $DESKTOP_ENVIRONMENT =~ "slax" ]]; then sed -i 's/quiet/quiet user_name=root/g' $BUILD_DIR/image/boot/grub/grub.cfg fi fi @@ -1615,14 +1616,14 @@ DISTRIBUTION_TYPE="$DISTRIBUTION_TYPE" DISTRIBUTION="$DISTRIBUTION" DISTRIBUTION_ARCH="$DISTRIBUTION_ARCH" PACKAGE_VARIANT="$PACKAGE_VARIANT" -DESKTOP_ENVIRONMENT="livekit" +DESKTOP_ENVIRONMENT="$DESKTOP_ENVIRONMENT" +COMP_TYPE="xz" # Compression method used for the system and modules. OUTPUT="/dev/stdout" # Default is output to /dev/stdout. You can use OUTPUT="/dev/null" if you want to silent installation or OUTPUT="somefilename.log" to route events to log file. DEBIAN_FRONTEND_TYPE="noninteractive" APT_CMD="apt-get" APT_OPTIONS="-y" UNION_BUILD_TYPE="overlayfs" BEXT="sb" -COMP_TYPE="xz" # Compression method used for the system and modules. EOF if [ ! -d /etc/NetworkManager ]; then @@ -2125,12 +2126,6 @@ function build_modules() { module_chroot_mount_fs - #if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then - # chroot_run $MODULE_MERGED_DIR $APT_CMD update - #else - # chroot_run $MODULE_MERGED_DIR $APT_CMD update >>$OUTPUT 2>&1 - #fi - # run pre-install script if [ -f $SCRIPT_DIR/linux-live/modules/$DESKTOP_ENVIRONMENT/$MODULE/preinstall ]; then if [ $OUTPUT = "/dev/stdout" ] && [ ! -f /dev/stdout ]; then diff --git a/linux-live/module_scripts/03-slax-desktop/install2 b/linux-live/module_scripts/03-slax-desktop/install2 index eb9395d..f6a0fa5 100644 --- a/linux-live/module_scripts/03-slax-desktop/install2 +++ b/linux-live/module_scripts/03-slax-desktop/install2 @@ -82,4 +82,4 @@ CFLAGS="-O2 \ make >>$OUTPUT 2>&1 cp cbatticon /squashfs-root/usr/bin >>$OUTPUT 2>&1 -dir2sb /squashfs-root /03-desktop.sb >>$OUTPUT 2>&1 \ No newline at end of file +dir2sb /squashfs-root /$MODULE.sb >>$OUTPUT 2>&1 \ No newline at end of file diff --git a/linux-live/module_scripts/03-xfce-desktop/postinstall b/linux-live/module_scripts/03-xfce-desktop/postinstall index 97d26cf..5236b4e 100644 --- a/linux-live/module_scripts/03-xfce-desktop/postinstall +++ b/linux-live/module_scripts/03-xfce-desktop/postinstall @@ -11,11 +11,6 @@ fi if grep slim $SCRIPT_DIR/$PACKAGE_VARIANT.list >>$OUTPUT 2>&1; then sed -i 's,# hidecursor false,hidecursor false,g' /etc/slim.conf sed -i 's,screenshot_cmd scrot /root/slim.png,# screenshot_cmd scrot /root/slim.png,g' /etc/slim.conf - if [ $PACKAGE_VARIANT = "minimal" ]; then - sed -i 's,#default_user simone,default_user root,g' /etc/slim.conf - else - sed -i "s,#default_user simone,default_user live,g" /etc/slim.conf - fi sed -i 's,#auto_login no,auto_login yes,g' /etc/slim.conf sed -i 's,current_theme debian-softwaves,current_theme minios,g' /etc/slim.conf fi diff --git a/linux-live/module_scripts/04-slax-apps/install2 b/linux-live/module_scripts/04-slax-apps/install2 index fcce0b8..026b871 100644 --- a/linux-live/module_scripts/04-slax-apps/install2 +++ b/linux-live/module_scripts/04-slax-apps/install2 @@ -41,4 +41,5 @@ rm -f /squashfs-root/usr/share/applications/nm-applet.desktop >>$OUTPUT 2>&1 rm -f /squashfs-root/usr/share/applications/nm-connection-editor.desktop >>$OUTPUT 2>&1 rm -f /squashfs-root/usr/share/applications/lxtask.desktop >>$OUTPUT 2>&1 -dir2sb /squashfs-root /04-apps.sb >>$OUTPUT 2>&1 +dir2sb /squashfs-root /$MODULE.sb >>$OUTPUT 2>&1 +#dir2sb /squashfs-root /04-slax-apps.sb >>$OUTPUT 2>&1 diff --git a/linux-live/module_scripts/05-chromium/install b/linux-live/module_scripts/05-chromium/install index 3cd3090..a9ac623 100644 --- a/linux-live/module_scripts/05-chromium/install +++ b/linux-live/module_scripts/05-chromium/install @@ -14,3 +14,19 @@ if [ -f $SCRIPT_DIR/$PACKAGE_VARIANT.list ]; then fi echo 'export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --disk-cache-dir=/dev/null --disk-cache-size=1"' >>/etc/chromium.d/default-flags + +if [ $PACKAGE_VARIANT = "minimal" ]; then + cat </etc/skel/.config/xfce4/helpers.rc +TerminalEmulator=xterm +FileManager=pcmanfm +WebBrowser=chromium + +EOF +elif [ $PACKAGE_VARIANT = "standard" ]; then + cat </etc/skel/.config/xfce4/helpers.rc +TerminalEmulator=xfce4-terminal +FileManager=Thunar +WebBrowser=chromium + +EOF +fi \ No newline at end of file diff --git a/linux-live/modules/slax-firefox/01-firmware b/linux-live/modules/slax-firefox/01-firmware new file mode 120000 index 0000000..0eb60cc --- /dev/null +++ b/linux-live/modules/slax-firefox/01-firmware @@ -0,0 +1 @@ +../../module_scripts/01-firmware \ No newline at end of file diff --git a/linux-live/modules/slax-firefox/02-xorg b/linux-live/modules/slax-firefox/02-xorg new file mode 120000 index 0000000..ceb3944 --- /dev/null +++ b/linux-live/modules/slax-firefox/02-xorg @@ -0,0 +1 @@ +../../module_scripts/02-xorg \ No newline at end of file diff --git a/linux-live/modules/slax-firefox/03-slax-desktop b/linux-live/modules/slax-firefox/03-slax-desktop new file mode 120000 index 0000000..7f715e2 --- /dev/null +++ b/linux-live/modules/slax-firefox/03-slax-desktop @@ -0,0 +1 @@ +../../module_scripts/03-slax-desktop \ No newline at end of file diff --git a/linux-live/modules/slax-firefox/04-slax-apps b/linux-live/modules/slax-firefox/04-slax-apps new file mode 120000 index 0000000..875e563 --- /dev/null +++ b/linux-live/modules/slax-firefox/04-slax-apps @@ -0,0 +1 @@ +../../module_scripts/04-slax-apps \ No newline at end of file diff --git a/linux-live/modules/slax-firefox/05-firefox b/linux-live/modules/slax-firefox/05-firefox new file mode 120000 index 0000000..4b299cc --- /dev/null +++ b/linux-live/modules/slax-firefox/05-firefox @@ -0,0 +1 @@ +../../module_scripts/05-firefox \ No newline at end of file diff --git a/linux-live/modules/xfce-chromium/01-firmware b/linux-live/modules/xfce-chromium/01-firmware new file mode 120000 index 0000000..0eb60cc --- /dev/null +++ b/linux-live/modules/xfce-chromium/01-firmware @@ -0,0 +1 @@ +../../module_scripts/01-firmware \ No newline at end of file diff --git a/linux-live/modules/xfce-chromium/02-xorg b/linux-live/modules/xfce-chromium/02-xorg new file mode 120000 index 0000000..ceb3944 --- /dev/null +++ b/linux-live/modules/xfce-chromium/02-xorg @@ -0,0 +1 @@ +../../module_scripts/02-xorg \ No newline at end of file diff --git a/linux-live/modules/xfce-chromium/03-xfce-desktop b/linux-live/modules/xfce-chromium/03-xfce-desktop new file mode 120000 index 0000000..21fe166 --- /dev/null +++ b/linux-live/modules/xfce-chromium/03-xfce-desktop @@ -0,0 +1 @@ +../../module_scripts/03-xfce-desktop \ No newline at end of file diff --git a/linux-live/modules/xfce-chromium/04-xfce-apps b/linux-live/modules/xfce-chromium/04-xfce-apps new file mode 120000 index 0000000..bb0e002 --- /dev/null +++ b/linux-live/modules/xfce-chromium/04-xfce-apps @@ -0,0 +1 @@ +../../module_scripts/04-xfce-apps \ No newline at end of file diff --git a/linux-live/modules/xfce-chromium/05-chromium b/linux-live/modules/xfce-chromium/05-chromium new file mode 120000 index 0000000..079f3be --- /dev/null +++ b/linux-live/modules/xfce-chromium/05-chromium @@ -0,0 +1 @@ +../../module_scripts/05-chromium \ No newline at end of file