From 8d5a07277a4310ce3de523efee199e2fe3a0dc17 Mon Sep 17 00:00:00 2001 From: shenmo Date: Sat, 17 Feb 2024 15:45:25 +0800 Subject: [PATCH] bwrap --- src/DEBIAN/control | 4 +- .../files/bin/bookworm-run-bwrap | 72 +++++++++++++++++++ .../bin-override/bwrap | 2 + src/usr/bin/bookworm-init | 1 - 4 files changed, 76 insertions(+), 3 deletions(-) create mode 100755 src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/bookworm-run-bwrap create mode 100755 src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/flamescion-container-tools/bin-override/bwrap delete mode 120000 src/usr/bin/bookworm-init diff --git a/src/DEBIAN/control b/src/DEBIAN/control index b4530d8..eb0180b 100755 --- a/src/DEBIAN/control +++ b/src/DEBIAN/control @@ -1,8 +1,8 @@ Package: cn.flamescion.bookworm-compatibility-mode -Version: 12.4.8 +Version: 12.4.9 Section: misc Priority: optional Depends: bubblewrap,flatpak,zenity,policykit-1,gcc,systemd Maintainer: shenmo -Architecture: arm64 +Architecture: amd64 Description: bwrap wrapper for install and running debs inside a bookworm container diff --git a/src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/bookworm-run-bwrap b/src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/bookworm-run-bwrap new file mode 100755 index 0000000..462ee92 --- /dev/null +++ b/src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/bookworm-run-bwrap @@ -0,0 +1,72 @@ +#!/bin/bash + +curdir=`realpath $0` +parent_dir=`dirname $curdir` +pparent_dir=`dirname $parent_dir` +ppparent_dir=`dirname $pparent_dir` +PKGNAME=`basename $ppparent_dir` +export PACKAGE_NAME=$PKGNAME +chrootEnvPath=/opt/apps/$PKGNAME/files/bookworm-env + + +if [ ! -e $chrootEnvPath/finish.flag ];then + +if [ "$(id -u)" = "0" ]; then + `dirname $chrootEnvPath`/bin/bookworm-init +else +pkexec `dirname $chrootEnvPath`/bin/bookworm-init +fi + + +fi +non_root_user=$(who | awk '{print $1}' | head -n 1) +uid=$(id -u $non_root_user) + + +#### This part is for args pharm +if [ "$1" = "" ];then +container_command="bash" +else +container_command="$1" +shift +for arg in "$@"; do + arg="$(echo "${arg}x" | sed 's|'\''|'\'\\\\\'\''|g')" + arg="${arg%x}" + container_command="${container_command} '${arg}'" +done +fi + + +bwrap --dev-bind / / \ + bwrap \ + --setenv LANG "$LANG" \ + --setenv LC_COLLATE "$LC_COLLATE" \ + --setenv LC_CTYPE "$LC_CTYPE" \ + --setenv LC_MONETARY "$LC_MONETARY" \ + --setenv LC_MESSAGES "$LC_MESSAGES" \ + --setenv LC_NUMERIC "$LC_NUMERIC" \ + --setenv LC_TIME "$LC_TIME" \ + --setenv LC_ALL "$LC_ALL" \ + --setenv PULSE_SERVER /run/user/$uid/pulse/native \ + --setenv PATH /flamescion-container-tools/bin-override:$PATH \ + --setenv IS_ACE_ENV "1" \ + --dev-bind $chrootEnvPath/ / \ + --dev-bind-try /media /media \ + --dev-bind-try /tmp /tmp \ + --dev /dev \ + --dev-bind-try /dev/dri /dev/dri \ + --proc /proc \ + --dev-bind /sys /sys \ + --dev-bind /run /run \ + --dev-bind-try /run/user/$uid/pulse /run/user/$uid/pulse \ + --dev-bind / /host \ + --ro-bind-try /usr/share/themes /usr/local/share/themes \ + --ro-bind-try /usr/share/icons /usr/local/share/icons \ + --ro-bind-try /usr/share/fonts /usr/local/share/fonts \ + --hostname Amber-CE-Bookworm \ + --unshare-uts \ + --dev-bind-try /etc/resolv.conf /etc/resolv.conf \ + --dev-bind-try /home /home \ + /usr/bin/bwrap "$@" + + diff --git a/src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/flamescion-container-tools/bin-override/bwrap b/src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/flamescion-container-tools/bin-override/bwrap new file mode 100755 index 0000000..541b126 --- /dev/null +++ b/src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/flamescion-container-tools/bin-override/bwrap @@ -0,0 +1,2 @@ +#!/bin/bash +host-spawn /opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/bookworm-run-bwrap $@ diff --git a/src/usr/bin/bookworm-init b/src/usr/bin/bookworm-init deleted file mode 120000 index ebe9910..0000000 --- a/src/usr/bin/bookworm-init +++ /dev/null @@ -1 +0,0 @@ -../../opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/bookworm-init \ No newline at end of file