From 3f7aa47cef3a830946b1d3d7514e92d1112dabdf Mon Sep 17 00:00:00 2001 From: crims0n Date: Sat, 29 May 2021 17:32:46 +0300 Subject: [PATCH] support for zstd compression --- docker/Dockerfile.py | 4 ++-- linux-live/buildconfig | 4 ++-- linux-live/config | 2 +- linux-live/minioslib | 18 +++++++++++++++--- linux-live/modules/03-apps/install | 10 ++++++++++ linux-live/modules/03-apps/package.list | 3 +++ linux-live/modules/04-drivers/postinstall | 4 ++-- linux-live/pkglists/hostreq.list | 1 + linux-live/pkglists/main.list | 1 + 9 files changed, 37 insertions(+), 10 deletions(-) diff --git a/docker/Dockerfile.py b/docker/Dockerfile.py index 6931b2c..ae40341 100755 --- a/docker/Dockerfile.py +++ b/docker/Dockerfile.py @@ -13,12 +13,12 @@ class DockerFile(pydocker.DockerFile): """ add here your custom features """ #d = DockerFile(base_img='ubuntu:focal', name='crims0n/minios-live-container:latest') -d = DockerFile(base_img='ubuntu:bionic', name='local/mlc:latest') +d = DockerFile(base_img='ubuntu:focal', name='local/mlc:latest') d.RUN_bash_script('/opt/install.sh', r''' touch /.minios-live-container apt-get update -y -apt-get install -y wget sudo debootstrap xorriso binutils squashfs-tools grub-pc-bin grub-efi-amd64-bin dosfstools mtools xz-utils liblz4-tool +apt-get install -y wget sudo debootstrap xorriso binutils squashfs-tools grub-pc-bin grub-efi-amd64-bin dosfstools mtools xz-utils liblz4-tool zstd : 'apt-get install -y patch cd /opt/ wget -c http://ru.archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/debootstrap_1.0.123ubuntu2_all.deb diff --git a/linux-live/buildconfig b/linux-live/buildconfig index af0f4e9..6a75bce 100644 --- a/linux-live/buildconfig +++ b/linux-live/buildconfig @@ -28,8 +28,8 @@ APT_CMD="apt-get" APT_OPTIONS="-y" #--no-install-recommends" -#LIVE_TYPE="casper" -LIVE_TYPE="livekit" +LIVE_TYPE="casper" +#LIVE_TYPE="livekit" UNION_BUILD_TYPE="overlayfs" #UNION_BUILD_TYPE="aufs" diff --git a/linux-live/config b/linux-live/config index 681ccbb..fafd547 100644 --- a/linux-live/config +++ b/linux-live/config @@ -33,7 +33,7 @@ DISTRIBUTION_VARIANT="minbase" DISTRIBUTION_URL="http://ru.archive.ubuntu.com/ubuntu" # -COMP_TYPE="xz" +COMP_TYPE="zstd" # Kernel file, will be copied to your Live Kit # Your kernel must support aufs and squashfs. Debian Jessie's kernel is ready diff --git a/linux-live/minioslib b/linux-live/minioslib index cc1df86..7146f6a 100644 --- a/linux-live/minioslib +++ b/linux-live/minioslib @@ -821,7 +821,11 @@ EOF COREFS="$COREFS $i" fi done - mksquashfs $COREFS $PARENT_DIR/image/$LIVEKITNAME/01-core-$COMP_TYPE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -keep-as-directory -noappend || exit + if [ $COMP_TYPE = "zstd" ]; then + mksquashfs $COREFS $PARENT_DIR/image/$LIVEKITNAME/01-core-$COMP_TYPE.$BEXT -comp $COMP_TYPE -Xcompression-level 22 -b 1024K -always-use-fragments -keep-as-directory -noappend || exit + else + mksquashfs $COREFS $PARENT_DIR/image/$LIVEKITNAME/01-core-$COMP_TYPE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -keep-as-directory -noappend || exit + fi elif [ $LIVE_TYPE = "casper" ]; then @@ -964,7 +968,11 @@ EOF sed -i '/os-prober/d' $PARENT_DIR/image/casper/filesystem.manifest-desktop # compress rootfs - mksquashfs $BUILD_DIR $PARENT_DIR/image/casper/filesystem.squashfs -comp $COMP_TYPE -b 1024K -always-use-fragments -noappend || exit + if [ $COMP_TYPE = "zstd" ]; then + mksquashfs $BUILD_DIR $PARENT_DIR/image/casper/filesystem.squashfs -comp $COMP_TYPE -Xcompression-level 22 -b 1024K -always-use-fragments -noappend || exit + else + mksquashfs $BUILD_DIR $PARENT_DIR/image/casper/filesystem.squashfs -comp $COMP_TYPE -b 1024K -always-use-fragments -noappend || exit + fi printf $(sudo du -sx --block-size=1 $BUILD_DIR | cut -f1) >$PARENT_DIR/image/casper/filesystem.size # create diskdefines @@ -1964,7 +1972,11 @@ function build_modules_live() { 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 + if [ $COMP_TYPE = "zstd" ]; then + mksquashfs $MODULE_UPPER_DIR $PARENT_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT -comp $COMP_TYPE -Xcompression-level 22 -b 1024K -always-use-fragments -noappend || exit + else + mksquashfs $MODULE_UPPER_DIR $PARENT_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -noappend || exit + fi else echo -e "${MAGENTA}$BUILD_DIR${ENDCOLOUR} is empty. Nothing to do." fi diff --git a/linux-live/modules/03-apps/install b/linux-live/modules/03-apps/install index 52a2330..36bbbfe 100644 --- a/linux-live/modules/03-apps/install +++ b/linux-live/modules/03-apps/install @@ -6,6 +6,16 @@ set -u # treat unset variable as error SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" +# opera & onlyoffice & vscode +:'wget -qO - https://deb.opera.com/archive.key | sudo apt-key add - +sudo add-apt-repository 'deb https://deb.opera.com/opera-stable/ stable non-free' +sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5 +sudo add-apt-repository 'deb https://download.onlyoffice.com/repo/debian squeeze main' +wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg +sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/ +sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list' +rm -f packages.microsoft.gpg' + # install packages if [ -f $SCRIPT_DIR/package.list ]; then sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ diff --git a/linux-live/modules/03-apps/package.list b/linux-live/modules/03-apps/package.list index b69350b..c0539de 100644 --- a/linux-live/modules/03-apps/package.list +++ b/linux-live/modules/03-apps/package.list @@ -1,6 +1,9 @@ open-vm-tools-desktop firefox firefox-locale-ru +#opera-stable +#onlyoffice-desktopeditors +#code remmina parole recordmydesktop diff --git a/linux-live/modules/04-drivers/postinstall b/linux-live/modules/04-drivers/postinstall index 43589d6..f70cc1e 100644 --- a/linux-live/modules/04-drivers/postinstall +++ b/linux-live/modules/04-drivers/postinstall @@ -6,5 +6,5 @@ set -u # treat unset variable as error SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" -#sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ - #$APT_CMD remove linux-headers-generic-hwe-20.04 $APT_OPTIONS >>$OUTPUT 2>&1 \ No newline at end of file +sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \ + $APT_CMD remove linux-headers-generic-hwe-20.04 $APT_OPTIONS >>$OUTPUT 2>&1 \ No newline at end of file diff --git a/linux-live/pkglists/hostreq.list b/linux-live/pkglists/hostreq.list index ef942b5..477eee6 100644 --- a/linux-live/pkglists/hostreq.list +++ b/linux-live/pkglists/hostreq.list @@ -5,6 +5,7 @@ debootstrap squashfs-tools xz-utils lz4 +zstd xorriso grub-pc-bin grub-efi-amd64-bin diff --git a/linux-live/pkglists/main.list b/linux-live/pkglists/main.list index 5f1cc7f..a0573d3 100644 --- a/linux-live/pkglists/main.list +++ b/linux-live/pkglists/main.list @@ -7,6 +7,7 @@ xorriso squashfs-tools bash-completion openssh-server +zstd # имя этого ▼ пакета нужно задавать в зависимости от необходимого типа ядра #linux-image-generic-hwe-18.04 #linux-image-generic