Compare commits

..

52 Commits

Author SHA1 Message Date
55683bce1b add data
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-06-05 04:38:44 +00:00
5b1697035c Add data
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-06-05 04:38:13 +00:00
3704dcf30a localtime不再bind
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-06-02 04:28:44 +00:00
4a266bb6d8 remove gcc depend
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-05-14 10:39:16 +00:00
e681fc9a22 changepng 2024-05-09 15:49:02 +08:00
3265a8311a adjust-png 2024-05-09 15:34:08 +08:00
f2916fa2a0 support-uos 2024-05-09 15:15:13 +08:00
2f3177b600 support-uos 2024-05-09 15:10:59 +08:00
1dab109d77 Merge remote-tracking branch 'refs/remotes/origin/master' 2024-05-07 13:51:59 +08:00
80cc726897 apparmor 2024-05-07 13:51:50 +08:00
223b86a39f spk resolv
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-05-07 05:48:18 +00:00
c1f7b9ac3b fix-apparmor 2024-05-01 21:28:16 +08:00
0fd58e7134 fix mime https://bbs.deepin.org.cn/phone/zh/post/271667
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-30 04:42:15 +00:00
99db451307 删除文件 src/etc/apparmor.d 2024-04-30 04:27:48 +00:00
87bd885bb5 update src/DEBIAN/control.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-30 04:25:20 +00:00
d98e3f7819 update src/DEBIAN/postinst.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-30 04:25:06 +00:00
e89d270e7b update src/DEBIAN/postinst.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-29 14:28:05 +00:00
d6dbc62e72 重载配置 2024-04-29 22:19:28 +08:00
a298a17a4a apparmor policy 2024-04-29 22:09:22 +08:00
ebae7611df try-fix-23-push 2024-04-18 23:07:05 +08:00
cc5684234d change version 2024-04-18 23:06:02 +08:00
c61d30ff5f try-fix-v23-settings 2024-04-17 23:35:23 +08:00
401256fab9 update database 2024-04-10 17:29:02 +08:00
b8d1d8b958 feat: support open in host os by mimetype 2024-04-10 17:25:45 +08:00
54ad42f12c update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-07 08:20:01 +00:00
8533c0478e update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-07 08:19:23 +00:00
04c4ed87e8 Change link
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-07 06:22:19 +00:00
c39b0d086a update src/DEBIAN/postinst.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-07 02:18:08 +00:00
274cd58361 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-02 05:18:39 +00:00
572e8710d9 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-02 05:18:12 +00:00
1f2e934230 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-02 05:17:44 +00:00
6d3996fc84 remove chmod
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-01 12:59:31 +00:00
5bf78dd789 update src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/ace-init.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-01 12:58:21 +00:00
2b311fe7ef fix: Can not use sudo when root
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-30 06:48:13 +00:00
97726bebf8 update src/DEBIAN/postinst.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-29 11:50:42 +00:00
0e8e4ecf0f update src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/ace-init.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-29 07:31:39 +00:00
e79923c206 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-23 15:02:42 +00:00
36b2ea2ced update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-23 15:02:06 +00:00
e9f2ebd9e5 修复:逻辑更改到postinst 2024-03-23 18:59:04 +08:00
99268485c4 修复:后续更新问题 2024-03-23 18:57:49 +08:00
ca582467dc damn忘了这个 2024-03-23 18:49:06 +08:00
92f87a3f62 不是龙架构不加liblol 2024-03-23 18:42:56 +08:00
6d76dc98aa 尝试修复和桌面冲突 2024-03-23 17:50:39 +08:00
fd1d9dded0 fix postinst 2024-03-23 17:05:52 +08:00
488c2f038f 修复龙架构 2024-03-23 16:09:36 +08:00
1b531a75b1 adapt to old version 2024-03-23 16:06:58 +08:00
73e3bec9c3 改回原包名 2024-03-23 16:01:18 +08:00
0bbaaea422 更改目录为ace-env 2024-03-23 15:39:58 +08:00
24fe84d5be Now change to ACE Bookworm 2024-03-23 13:40:19 +08:00
d74b603469 update src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/bookworm-run.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-20 07:04:15 +00:00
903788732c update ace-host-integration.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-20 02:50:43 +00:00
c976b58920 Delete unwork nvidia support
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-19 09:27:33 +00:00
48 changed files with 177 additions and 200 deletions

2
.gitignore vendored
View File

@@ -1,2 +1,2 @@
*.deb *.deb
src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bookworm-env.tar.xz src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/ace-env.tar.xz

View File

@@ -21,11 +21,23 @@ Please use `git clone --recurse-submodules` to obtain the env
### Quick Install (Need to install Spark Store first) ### Quick Install (Need to install Spark Store first)
[spk://store/tools/cn.flamescion.bookworm-compatibility-mode/](https://spark-store-project.gitee.io/spk-resolv/?spk=spk://store/tools/cn.flamescion.bookworm-compatibility-mode/) [spk://store/tools/cn.flamescion.bookworm-compatibility-mode/](https://spk-resolv.spark-app.store/?spk=spk://store/tools/cn.flamescion.bookworm-compatibility-mode/)
### Manual InstallDebian/Fedora/Arch) ### Manual InstallDebian/Fedora/Arch)
https://share.shenmo.tech:23333/index.php?share/folder&user=1&sid=kr8z6Fqf https://pan.shenmo.tech/index.php?share/folder&user=1&sid=Ye6kyxQE
(Dependencies are needed to upgrade for Ubuntu 18.04/deepin 15)
https://cdn.d.store.deepinos.org.cn/store/depends/bubblewrap_0.3.1-4_amd64.deb x86
https://cdn.d.store.deepinos.org.cn/aarch64-store/depends/bubblewrap_0.3.1-4_arm64.deb arm64
### Amber-CE x86
Use LAT to run a x86 bookworm container. Can install x86 debs and run x86 apps
https://pan.shenmo.tech/index.php?share/folder&user=1&sid=qnJAY5BE
## Build Guide ## Build Guide
@@ -36,14 +48,14 @@ Here are the details:
1. Install dependencies: sudo apt-get install arch-test debootstrap libnss-mymachines systemd-container 1. Install dependencies: sudo apt-get install arch-test debootstrap libnss-mymachines systemd-container
2. Enter the terminal at `src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files` and execute `./build-container.sh amd64`.[for amd,other arch please change] 2. Enter the terminal at `src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files` and execute `./build-container.sh amd64`.[for amd,other arch please change]
3. Wait for the container to complete. 3. Wait for the container to complete.
4.Get in to `bookworm-compatibility-mode` dir,run`fakeroot dpkg-deb -b src .` 4.Get in to `amber-ce-bookworm` dir,run`fakeroot dpkg-deb -b src .`
5.Wating for complete. 5.Wating for complete.
### Fedora ### Fedora
See https://gitee.com/amber-compatability-environment/ace-rpm See https://gitee.com/amber-ce/ace-rpm
### Arch ### Arch
`yay -S cn.flamescion.bookworm-compatibility-mode` `yay -S amber-ce-bookworm`

View File

@@ -15,11 +15,21 @@
### 快捷安装 (需要安装星火应用商店) ### 快捷安装 (需要安装星火应用商店)
[spk://store/tools/cn.flamescion.bookworm-compatibility-mode/](https://spark-store-project.gitee.io/spk-resolv/?spk=spk://store/tools/cn.flamescion.bookworm-compatibility-mode/) [spk://store/tools/cn.flamescion.bookworm-compatibility-mode/](https://spk-resolv.spark-app.store/?spk=spk://store/tools/cn.flamescion.bookworm-compatibility-mode/)
### 手动安装Debian/Fedora/Arch) ### 手动安装Debian/Fedora/Arch)
https://share.shenmo.tech:23333/index.php?share/folder&user=1&sid=kr8z6Fqf https://pan.shenmo.tech/index.php?share/folder&user=1&sid=Ye6kyxQE
(Ubuntu 18.04/deepin 15需要先安装依赖)
https://cdn.d.store.deepinos.org.cn/store/depends/bubblewrap_0.3.1-4_amd64.deb x86
https://cdn.d.store.deepinos.org.cn/aarch64-store/depends/bubblewrap_0.3.1-4_arm64.deb arm64
### Amber-CE x86
利用 LAT 运行的x86容器可安装和运行x86的deb https://pan.shenmo.tech/index.php?share/folder&user=1&sid=qnJAY5BE
## 构建指南 ## 构建指南
@@ -32,15 +42,15 @@ https://share.shenmo.tech:23333/index.php?share/folder&user=1&sid=kr8z6Fqf
1. 安装依赖sudo apt-get install arch-test debootstrap libnss-mymachines systemd-container 1. 安装依赖sudo apt-get install arch-test debootstrap libnss-mymachines systemd-container
2.`src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files`位置进入终端,执行`./build-container.sh amd64`[amd架构其他架构同理]` 2.`src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files`位置进入终端,执行`./build-container.sh amd64`[amd架构其他架构同理]`
3. 等待容器打包完成 3. 等待容器打包完成
4. 进入`bookworm-compatibility-mode`目录,执行`fakeroot dpkg-deb -b src .` 4. 进入`amber-ce-bookworm`目录,执行`fakeroot dpkg-deb -b src .`
5. 等待打包完成 5. 等待打包完成
### Fedora ### Fedora
请前往 https://gitee.com/amber-compatability-environment/ace-rpm 请前往 https://gitee.com/amber-ce/ace-rpm
### Arch ### Arch
`yay -S cn.flamescion.bookworm-compatibility-mode` `yay -S amber-ce-bookworm`
--- ---

View File

@@ -1,8 +1,8 @@
Package: cn.flamescion.bookworm-compatibility-mode Package: cn.flamescion.bookworm-compatibility-mode
Version: 12.4.10 Version: 12.4.13.1
Section: misc Section: misc
Priority: optional Priority: optional
Depends: bubblewrap,flatpak,zenity,policykit-1,gcc,systemd Depends: bubblewrap,flatpak,zenity,policykit-1,systemd,procps
Maintainer: shenmo <shenmo@spark-app.store> Maintainer: shenmo <shenmo@spark-app.store>
Architecture: amd64 Architecture: amd64
Description: bwrap wrapper for install and running debs inside a bookworm container Description: bwrap wrapper for install and running debs inside a bookworm container

View File

@@ -1,9 +1,24 @@
#!/bin/bash #!/bin/bash
export PACKAGE_NAME="$DPKG_MAINTSCRIPT_PACKAGE" export PACKAGE_NAME="$DPKG_MAINTSCRIPT_PACKAGE"
/opt/apps/$PACKAGE_NAME/files/bin/bookworm-init
if [ "${PACKAGE_NAME}" = "cn.flamescion.bookworm-compatibility-mode" ];then
if [ -d /opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bookworm-env ];then
mv /opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bookworm-env /opt/apps/cn.flamescion.bookworm-compatibility-mode/files/ace-env
ln -sfv /opt/apps/cn.flamescion.bookworm-compatibility-mode/files/ace-env /opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bookworm-env
fi
fi
/opt/apps/$PACKAGE_NAME/files/bin/ace-init
if [ "${PACKAGE_NAME}" = "cn.flamescion.bookworm-compatibility-mode" ];then if [ "${PACKAGE_NAME}" = "cn.flamescion.bookworm-compatibility-mode" ];then
systemctl daemon-reload systemctl daemon-reload
systemctl enable ace-auto-upgrade systemctl enable ace-bookworm-auto-upgrade
systemctl start ace-auto-upgrade systemctl start ace-bookworm-auto-upgrade
fi fi
systemctl reload apparmor
true

View File

@@ -2,8 +2,8 @@
PACKAGE_NAME="$DPKG_MAINTSCRIPT_PACKAGE" PACKAGE_NAME="$DPKG_MAINTSCRIPT_PACKAGE"
if [ "${PACKAGE_NAME}" = "cn.flamescion.bookworm-compatibility-mode" ];then if [ "${PACKAGE_NAME}" = "cn.flamescion.bookworm-compatibility-mode" ];then
systemctl stop ace-auto-upgrade systemctl stop ace-bookworm-auto-upgrade
systemctl disable ace-auto-upgrade systemctl disable ace-bookworm-auto-upgrade
fi fi

View File

@@ -10,8 +10,8 @@ fi
# Desktop files (used by desktop environments within both X11 and Wayland) are # Desktop files (used by desktop environments within both X11 and Wayland) are
# looked for in XDG_DATA_DIRS; make sure it includes the relevant directory for ACE # looked for in XDG_DATA_DIRS; make sure it includes the relevant directory for ACE
ACE_path="/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bookworm-env/usr/share/" ACE_path="/opt/apps/amber-ce-bookworm/files/ace-env/flamescion-container-tools/data-dir/"
if [ -n "${XDG_DATA_DIRS##*${ACE_path}}" ] && [ -n "${XDG_DATA_DIRS##*${ACE_path}:*}" ]; then if [ -n "${XDG_DATA_DIRS##*${ACE_path}}" ] && [ -n "${XDG_DATA_DIRS##*${ACE_path}:*}" ]; then
export XDG_DATA_DIRS="${ACE_path}:${XDG_DATA_DIRS}" export XDG_DATA_DIRS="${XDG_DATA_DIRS}:${ACE_path}"
fi fi

View File

@@ -0,0 +1,7 @@
abi <abi/4.0>,
include <tunables/global>
profile bwrap /usr/bin/bwrap flags=(unconfined) {
userns,
#Site-specific additions and overrides. See local/README for details.
include if exists <local/bwrap>
}

View File

@@ -9,8 +9,8 @@ fi
# Desktop files (used by desktop environments within both X11 and Wayland) are # Desktop files (used by desktop environments within both X11 and Wayland) are
# looked for in XDG_DATA_DIRS; make sure it includes the relevant directory for ACE # looked for in XDG_DATA_DIRS; make sure it includes the relevant directory for ACE
ACE_path="/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bookworm-env/usr/share/" ACE_path="/opt/apps/amber-ce-bookworm/files/ace-env/flamescion-container-tools/data-dir/"
if [ -n "${XDG_DATA_DIRS##*${ACE_path}}" ] && [ -n "${XDG_DATA_DIRS##*${ACE_path}:*}" ]; then if [ -n "${XDG_DATA_DIRS##*${ACE_path}}" ] && [ -n "${XDG_DATA_DIRS##*${ACE_path}:*}" ]; then
export XDG_DATA_DIRS="${ACE_path}:${XDG_DATA_DIRS}" export XDG_DATA_DIRS="${XDG_DATA_DIRS}:${ACE_path}"
fi fi

View File

@@ -0,0 +1 @@
./cn.flamescion.bookworm-compatibility-mode/

View File

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 196 KiB

View File

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 134 KiB

View File

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB

View File

@@ -0,0 +1,11 @@
[Desktop Entry]
Version=1.0
Name=ACE Bookworm Software Uninstaller
Name[zh_CN]=ACE Bookworm软件卸载器
Comment=用于卸载ACE容器的应用
Type=Application
Exec=/opt/apps/amber-ce-bookworm/files/bin/ace-bookworm-uninstall-helper-gui
Icon=ACE-bookworm-uninstaller
Categories=System
# Generated from the DesktopGenerater component of the z-Tools toolkit

View File

@@ -1,9 +1,9 @@
[Desktop Entry] [Desktop Entry]
Categories=utils Categories=utils
Exec=bookworm-run %U Exec=bookworm-run %U
Icon=cn.flamescion.bookworm-compatibility-mode Icon=amber-ce-bookworm
Name=Amber CE Name=Amber CE Bookworm
Name[zh_CN]=ACE Name[zh_CN]=ACE Bookworm
Keywords=BCM,ACE,ace,mode Keywords=BCM,ACE,ace,mode
StartupNotify=true StartupNotify=true
Type=Application Type=Application

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

View File

@@ -8,7 +8,7 @@ fi
unset ABSOLUTE_PATH IN_CONTAINER_PATH PKGNAME_GUESS DPKG_LIST_FILE ACE_ENV_PATH unset ABSOLUTE_PATH IN_CONTAINER_PATH PKGNAME_GUESS DPKG_LIST_FILE ACE_ENV_PATH
# 定义环境路径变量 # 定义环境路径变量
ACE_ENV_PATH="/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bookworm-env" ACE_ENV_PATH="/opt/apps/amber-ce-bookworm/files/ace-env"
# 检查参数个数 # 检查参数个数
if [ "$#" -ne 1 ]; then if [ "$#" -ne 1 ]; then

View File

@@ -4,7 +4,7 @@ pkexec $0
exit exit
fi fi
# 定义应用列表文件路径 # 定义应用列表文件路径
ACE_dir="/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bookworm-env" ACE_dir="/opt/apps/amber-ce-bookworm/files/ace-env"
# 读取所有.desktop文件并构造应用列表 # 读取所有.desktop文件并构造应用列表
app_list=() app_list=()
@@ -44,7 +44,7 @@ selected_apps=$(zenity --list --title "应用列表" --column "是否卸载" --c
if [ -n "$selected_apps" ]; then if [ -n "$selected_apps" ]; then
# 卸载选中的应用 # 卸载选中的应用
(for app_desktop_path in $selected_apps; do (for app_desktop_path in $selected_apps; do
ace-uninstall-helper "$app_desktop_path" ace-bookworm-uninstall-helper "$app_desktop_path"
ret=$? ret=$?
if [ "$ret" != "0" ];then if [ "$ret" != "0" ];then
zenity --error --width 768 --text "$app_desktop_path 卸载失败,中止操作\n请手动执行\nsudo ace-uninstall-helper $app_desktop_path \n查看报错" zenity --error --width 768 --text "$app_desktop_path 卸载失败,中止操作\n请手动执行\nsudo ace-uninstall-helper $app_desktop_path \n查看报错"

View File

@@ -13,7 +13,7 @@ PKGNAME=`basename $ppparent_dir`
else else
PKGNAME=$PACKAGE_NAME PKGNAME=$PACKAGE_NAME
fi fi
chrootEnvPath=/opt/apps/$PKGNAME/files/bookworm-env chrootEnvPath=/opt/apps/$PKGNAME/files/ace-env
if [ ! -e $chrootEnvPath ];then if [ ! -e $chrootEnvPath ];then
echo "Uncompress the env...." echo "Uncompress the env...."
tar -xvf $chrootEnvPath.tar.xz -C /opt/apps/$PKGNAME/files/ tar -xvf $chrootEnvPath.tar.xz -C /opt/apps/$PKGNAME/files/
@@ -61,8 +61,6 @@ bwrap --dev-bind $chrootEnvPath/ / \
echo "Update the flamescion container tools" echo "Update the flamescion container tools"
cp -r `dirname $chrootEnvPath`/flamescion-container-tools/ $chrootEnvPath cp -r `dirname $chrootEnvPath`/flamescion-container-tools/ $chrootEnvPath
rm -rf $chrootEnvPath/usr/lib/`gcc -dumpmachine`/dri/dri
# 之前错误的多复制了一个,这里删掉
export container_user_gid="$(sudo -u $non_root_user id -rg)" export container_user_gid="$(sudo -u $non_root_user id -rg)"
export container_user_home="/home/${non_root_user}" export container_user_home="/home/${non_root_user}"
@@ -76,6 +74,9 @@ export container_user_uid="$(sudo -u $non_root_user id -ru)"
bookworm-run bash /flamescion-container-tools/container-init/init.sh bookworm-run bash /flamescion-container-tools/container-init/init.sh
rm $chrootEnvPath/etc/localtime
cp $(realpath /etc/localtime) $chrootEnvPath/etc/localtime
chmod 777 $chrootEnvPath/etc/localtime
bookworm-run cp /host/etc/locale.gen /etc/locale.gen && locale-gen bookworm-run cp /host/etc/locale.gen /etc/locale.gen && locale-gen
bookworm-run touch /finish.flag bookworm-run touch /finish.flag
bookworm-run apt clean bookworm-run apt clean
@@ -110,6 +111,6 @@ sudo -u $(who | awk '{print $1}' | head -n 1) bwrap --dev-bind $chrootEnvPath/ /
--dev-bind-try /etc/resolv.conf /etc/resolv.conf \ --dev-bind-try /etc/resolv.conf /etc/resolv.conf \
--dev-bind-try /home /home \ --dev-bind-try /home /home \
locale-gen locale-gen
bookworm-run update-locale LANG=$LANG
chown -R root $chrootEnvPath chown -R root $chrootEnvPath
chmod 777 -R $chrootEnvPath /usr/share/icons chmod 777 -R $chrootEnvPath/usr/share/icons

View File

@@ -6,14 +6,14 @@ pparent_dir=`dirname $parent_dir`
ppparent_dir=`dirname $pparent_dir` ppparent_dir=`dirname $pparent_dir`
PKGNAME=`basename $ppparent_dir` PKGNAME=`basename $ppparent_dir`
export PACKAGE_NAME=$PKGNAME export PACKAGE_NAME=$PKGNAME
chrootEnvPath=/opt/apps/$PKGNAME/files/bookworm-env chrootEnvPath=/opt/apps/$PKGNAME/files/ace-env
if [ ! -e $chrootEnvPath/finish.flag ];then if [ ! -e $chrootEnvPath/finish.flag ];then
if [ "$(id -u)" = "0" ]; then if [ "$(id -u)" = "0" ]; then
`dirname $chrootEnvPath`/bin/bookworm-init `dirname $chrootEnvPath`/bin/ace-init
else else
pkexec `dirname $chrootEnvPath`/bin/bookworm-init pkexec `dirname $chrootEnvPath`/bin/ace-init
fi fi
@@ -98,12 +98,15 @@ ENV_VARS=(
"PULSE_SERVER /run/user/\$uid/pulse/native" "PULSE_SERVER /run/user/\$uid/pulse/native"
"PATH /flamescion-container-tools/bin-override:\$PATH" "PATH /flamescion-container-tools/bin-override:\$PATH"
"IS_ACE_ENV 1" "IS_ACE_ENV 1"
"XDG_DATA_DIRS /flamescion-container-tools/additional-data-dir-in-container:\$XDG_DATA_DIRS"
) )
BIND_DIRS=( BIND_DIRS=(
"--dev-bind $chrootEnvPath/ /" "--dev-bind $chrootEnvPath/ /"
"--dev-bind-try /media /media" "--dev-bind-try /media /media"
"--dev-bind-try /mnt /mnt"
"--dev-bind-try /tmp /tmp" "--dev-bind-try /tmp /tmp"
"--dev-bind-try /data /data"
"--dev /dev" "--dev /dev"
"--dev-bind-try /dev/dri /dev/dri" "--dev-bind-try /dev/dri /dev/dri"
"--proc /proc" "--proc /proc"
@@ -114,10 +117,8 @@ BIND_DIRS=(
"--ro-bind-try /usr/share/themes /usr/local/share/themes" "--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/icons /usr/local/share/icons"
"--ro-bind-try /usr/share/fonts /usr/local/share/fonts" "--ro-bind-try /usr/share/fonts /usr/local/share/fonts"
"--ro-bind-try $(realpath /etc/localtime) /etc/localtime"
"--dev-bind-try /etc/resolv.conf /etc/resolv.conf" "--dev-bind-try /etc/resolv.conf /etc/resolv.conf"
"--dev-bind-try /home /home" "--dev-bind-try /home /home"
) )
EXTRA_ARGS=( EXTRA_ARGS=(
"--hostname Amber-CE-Bookworm" "--hostname Amber-CE-Bookworm"

View File

@@ -6,14 +6,14 @@ pparent_dir=`dirname $parent_dir`
ppparent_dir=`dirname $pparent_dir` ppparent_dir=`dirname $pparent_dir`
PKGNAME=`basename $ppparent_dir` PKGNAME=`basename $ppparent_dir`
export PACKAGE_NAME=$PKGNAME export PACKAGE_NAME=$PKGNAME
chrootEnvPath=/opt/apps/$PKGNAME/files/bookworm-env chrootEnvPath=/opt/apps/$PKGNAME/files/ace-env
if [ ! -e $chrootEnvPath/finish.flag ];then if [ ! -e $chrootEnvPath/finish.flag ];then
if [ "$(id -u)" = "0" ]; then if [ "$(id -u)" = "0" ]; then
`dirname $chrootEnvPath`/bin/bookworm-init `dirname $chrootEnvPath`/bin/ace-init
else else
pkexec `dirname $chrootEnvPath`/bin/bookworm-init pkexec `dirname $chrootEnvPath`/bin/ace-init
fi fi
@@ -98,12 +98,14 @@ ENV_VARS=(
"PULSE_SERVER /run/user/\$uid/pulse/native" "PULSE_SERVER /run/user/\$uid/pulse/native"
"PATH /flamescion-container-tools/bin-override:\$PATH" "PATH /flamescion-container-tools/bin-override:\$PATH"
"IS_ACE_ENV 1" "IS_ACE_ENV 1"
"XDG_DATA_DIRS /flamescion-container-tools/additional-data-dir-in-container:\$XDG_DATA_DIRS"
) )
BIND_DIRS=( BIND_DIRS=(
"--dev-bind $chrootEnvPath/ /" "--dev-bind $chrootEnvPath/ /"
"--dev-bind-try /media /media" "--dev-bind-try /media /media"
"--dev-bind-try /tmp /tmp" "--dev-bind-try /tmp /tmp"
"--dev-bind-try /data /data"
"--dev /dev" "--dev /dev"
"--dev-bind-try /dev/dri /dev/dri" "--dev-bind-try /dev/dri /dev/dri"
"--proc /proc" "--proc /proc"

View File

@@ -14,22 +14,29 @@ fi
if [ "$1" = "amd64" ] || [ "$1" = "x64" ];then if [ "$1" = "amd64" ] || [ "$1" = "x64" ];then
ARCH="amd64" ARCH="amd64"
ARCH_ANOTHERWAY="x64" ARCH_ANOTHERWAY="x64"
cd "`dirname $0`"
sudo debootstrap --include=libnotify-bin,apt-utils,bash-completion,bc,curl,dialog,diffutils,findutils,gnupg2,less,libnss-myhostname,libvte-common,lsof,ncurses-base,passwd,pinentry-curses,procps,sudo,time,util-linux,wget,libegl1-mesa,libgl1-mesa-glx,libvulkan1,mesa-vulkan-drivers,locales,libglib2.0-bin --arch=${ARCH} bookworm ./ace-env https://mirrors.ustc.edu.cn/debian/
elif [ "$1" = "arm64" ] || [ "$1" = "arm" ];then elif [ "$1" = "arm64" ] || [ "$1" = "arm" ];then
ARCH="arm64" ARCH="arm64"
ARCH_ANOTHERWAY="arm64" ARCH_ANOTHERWAY="arm64"
else
echo "Invalid architecture! Exit"
exit 1
fi
cd "`dirname $0`" cd "`dirname $0`"
sudo debootstrap --include=libnotify-bin,apt-utils,bash-completion,bc,curl,dialog,diffutils,findutils,gnupg2,less,libnss-myhostname,libvte-common,lsof,ncurses-base,passwd,pinentry-curses,procps,sudo,time,util-linux,wget,libegl1-mesa,libgl1-mesa-glx,libvulkan1,mesa-vulkan-drivers,locales,libglib2.0-bin --arch=${ARCH} bookworm ./bookworm-env https://mirrors.ustc.edu.cn/debian/ sudo debootstrap --include=libnotify-bin,apt-utils,bash-completion,bc,curl,dialog,diffutils,findutils,gnupg2,less,libnss-myhostname,libvte-common,lsof,ncurses-base,passwd,pinentry-curses,procps,sudo,time,util-linux,wget,libegl1-mesa,libgl1-mesa-glx,libvulkan1,mesa-vulkan-drivers,locales,libglib2.0-bin --arch=${ARCH} bookworm ./ace-env https://mirrors.ustc.edu.cn/debian/
elif [ "$1" = "loong" ] || [ "$1" = "loong64" ];then
ARCH="loong64"
ARCH_ANOTHERWAY="loong64"
sudo debootstrap --no-check-gpg --include=libnotify-bin,apt-utils,bash-completion,bc,curl,dialog,diffutils,findutils,gnupg2,less,libnss-myhostname,libvte-common,lsof,ncurses-base,passwd,pinentry-curses,procps,sudo,time,util-linux,wget,libegl1,libgl1-mesa-dri,libvulkan1,mesa-vulkan-drivers,locales,libglib2.0-bin --arch=${ARCH} --variant=buildd sid ./ace-env http://lauosc.cn:11232/debian
else
echo "Need to point out architecture"
exit
fi
sudo rm -rf bookworm-env/var/cache/apt/archives/*.deb sudo rm -rf ace-env/var/cache/apt/archives/*.deb
sudo tar -I 'xz -T0' -cvf bookworm-env.tar.xz bookworm-env/* sudo tar -I 'xz -T0' -cvf ace-env.tar.xz ace-env/*
sudo rm -rf bookworm-env sudo rm -rf ace-env
pushd flamescion-container-tools/ace-host-integration pushd flamescion-container-tools/ace-host-integration

View File

@@ -1,5 +1,5 @@
Package: ace-host-integration Package: ace-host-integration
Version: 1.2.1 Version: 1.2.2
Section: misc Section: misc
Priority: optional Priority: optional
Depends: bash Depends: bash

View File

@@ -49,12 +49,12 @@ local file=$1
echo "$file is detected. Processing host system integration..." echo "$file is detected. Processing host system integration..."
sed -i 's|^Exec=\(.*\)|Exec=bookworm-run \1|' "$file" sed -i 's|^Exec=\(.*\)|Exec=bookworm-run \1|' "$file"
sed -i '/^TryExec=/d' "$file" sed -i '/^TryExec=/d' "$file"
sed -i '/^Name=/ s/$/ (ACE-Integration)/' "$file" sed -i '/^Name=/ s/$/ (Bookworm)/' "$file"
sed -i "/^Name\[${LANGUAGE}\]=/ s/\$/ (ACE-Integration)/" "$file" sed -i "/^Name\[${LANGUAGE}\]=/ s/\$/ (Bookworm)/" "$file"
icon_line=$(grep "^Icon=" "$file") icon_line=$(grep "^Icon=" "$file")
if [[ "$icon_line" == "Icon=/"* ]]; then if [[ "$icon_line" == "Icon=/"* ]]; then
# 如果Icon=后面接的是/,则添加前缀 # 如果Icon=后面接的是/,则添加前缀
sed -i 's|^Icon=/|Icon=/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bookworm-env/|' "$file" sed -i 's|^Icon=/|Icon=/opt/apps/amber-ce-bookworm/files/bookworm-env/|' "$file"
fi fi
fi fi

View File

@@ -166,10 +166,10 @@ fi
user=$(who | awk '{print $1}' | head -n 1) user=$(who | awk '{print $1}' | head -n 1)
log.info "ACE环境中有 $update_app_number 个软件包可升级,正在自动升级" log.info "ACE Bookworm环境中有 $update_app_number 个软件包可升级,正在自动升级"
notify-send -a cn.flamescion.bookworm-compatibility-mode "ACE兼容环境" "ACE环境中有${update_app_number}个软件包可升级,执行自动升级..." notify-send -a amber-ce-bookworm "ACE兼容环境" "ACE环境中有${update_app_number}个软件包可升级,执行自动升级..."
${APT_COMMAND} clean ${APT_COMMAND} clean
${APT_COMMAND} full-upgrade -y ${APT_COMMAND} full-upgrade -y
${APT_COMMAND} clean ${APT_COMMAND} clean
notify-send -a cn.flamescion.bookworm-compatibility-mode "ACE兼容环境" "自动升级结束" notify-send -a amber-ce-bookworm "ACE兼容环境" "自动升级结束"

View File

@@ -0,0 +1 @@
# File in this dir will be seen as one of XDG_DATA_DIRS in ACE container.

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Exec=xdg-open %U
MimeType=inode/directory;application/x-mimearchive;x-scheme-handler/http;x-scheme-handler/https;application/msword;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/x-gzip;application/zip;application/rar;application/x-tar;application/pdf;application/rtf;image/gif;image/jpeg;image/jp2;image/png;image/tiff;image/bmp;image/svg+xml;image/webp;image/x-icon;application/kswps;application/kset;application/ksdps;application/x-photoshop;application/x-coreldraw;application/x-shockwave-flash;text/plain;application/x-javascript;text/javascript;text/css;text/html;application/xhtml+xml;text/xml;text/x-vcard;application/x-httpd-php;application/java-archive;application/vnd.android.package-archive;application/octet-stream;application/x-x509-user-cert;audio/mpeg;audio/midi;audio/x-wav;audio/x-mpegurl;audio/x-m4a;audio/ogg;audio/x-realaudio;video/mp4;video/mpeg;video/quicktime;video/x-m4v;video/x-ms-wmv;video/x-msvideo;video/webm;video/x-flv;application/xhtml_xml;
Name=ace-run-in-host-os
NoDisplay=true
Terminal=false
TryExec=
Type=Application
Version=1.0

View File

@@ -1,2 +1,2 @@
#!/bin/bash #!/bin/bash
host-spawn /opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/bookworm-run-bwrap $@ host-spawn /opt/apps/amber-ce-bookworm/files/bin/bookworm-run-bwrap $@

View File

@@ -18,6 +18,8 @@ fi
fi fi
printf "ACE: Setting up groups...\n" printf "ACE: Setting up groups...\n"
# If not existing, ensure we have a group for our user. # If not existing, ensure we have a group for our user.
if ! grep -q "^${container_user_name}:" /etc/group; then if ! grep -q "^${container_user_name}:" /etc/group; then
@@ -122,124 +124,9 @@ ln -sfv /flamescion-container-tools/bin-override/host-spawn-$(uname -m) /flamesc
apt install --reinstall /flamescion-container-tools/ace-host-integration.deb apt install --reinstall /flamescion-container-tools/ace-host-integration.deb
cd /flamescion-container-tools/data-dir/
### Do NVIDIA Integration ln -sfv ../../usr/share/applications/ .
ln -sfv ../../usr/share/icons/ .
echo "ACE: NVIDIA Integration" ln -svf ../../usr/share/mime .
update-desktop-database /usr/share/applications || true
ensureTargetDir() { update-mime-database /usr/share/mime || true
targetFile=$1
t=$(dirname "$targetFile")
mkdir -p "$t"
}
lib32_dir="/usr/lib/"
lib64_dir="/usr/lib/"
if [ -e "/usr/lib/x86_64-linux-gnu" ]; then
lib64_dir="/usr/lib/x86_64-linux-gnu/"
elif [ -e "/usr/lib64" ]; then
lib64_dir="/usr/lib64/"
fi
if [ -e "/usr/lib/i386-linux-gnu" ]; then
lib32_dir="/usr/lib/i386-linux-gnu/"
elif [ -e "/usr/lib32" ]; then
lib32_dir="/usr/lib32/"
fi
# First we find all non-lib files we need, this includes
# - binaries
# - confs
# - egl files
# - icd files
# Excluding here the libs, we will threat them later specifically
NVIDIA_FILES="$(find /host/etc/ /host/usr/ \
-path "/host/usr/lib/i386-linux-gnu/*" -prune -o \
-path "/host/usr/lib/x86_64-linux-gnu/*" -prune -o \
-path "/host/usr/lib32/*" -prune -o \
-path "/host/usr/lib64/*" -prune -o \
-iname "*nvidia*" -not -type d -print 2> /dev/null || :)"
for nvidia_file in ${NVIDIA_FILES}; do
dest_file="$(printf "%s" "${nvidia_file}" | sed 's|/host||g')"
ensureTargetDir ${dest_file}
cp -r "${nvidia_file}" "${dest_file}"
done
# Then we find all directories with nvidia in the name and just mount them
NVIDIA_DIRS="$(find /host/etc /host/usr -iname "*nvidia*" -type d 2> /dev/null || :)"
for nvidia_dir in ${NVIDIA_DIRS}; do
# /usr/lib64 is common in Arch or RPM based distros, while /usr/lib/x86_64-linux-gnu is
# common on Debian derivatives, so we need to adapt between the two nomenclatures.
if printf "%s" "${nvidia_dir}" | grep -Eq "lib32|lib64|x86_64-linux-gnu|i386-linux-gnu"; then
# Remove origin so we plug our own
dest_dir="$(printf "%s" "${nvidia_dir}" |
sed "s|/host/usr/lib/x86_64-linux-gnu/|${lib64_dir}|g" |
sed "s|/host/usr/lib/i386-linux-gnu/|${lib32_dir}|g" |
sed "s|/host/usr/lib64/|${lib64_dir}|g" |
sed "s|/host/usr/lib32/|${lib32_dir}|g")"
else
dest_dir="$(printf "%s" "${nvidia_dir}" | sed 's|/host||g')"
fi
ensureTargetDir ${dest_file}
cp -r "${nvidia_dir}" "${dest_file}"
done
# Then we find all the ".so" libraries, there are searched separately
# because we need to extract the relative path to mount them in the
# correct path based on the guest's setup
#
# /usr/lib64 is common in Arch or RPM based distros, while /usr/lib/x86_64-linux-gnu is
# common on Debian derivatives, so we need to adapt between the two nomenclatures.
NVIDIA_LIBS="$(find \
/host/usr/lib/i386-linux-gnu/ \
/host/usr/lib/x86_64-linux-gnu/ \
/host/usr/lib32/ \
/host/usr/lib64/ \
-iname "*nvidia*.so*" \
-o -iname "libcuda*.so*" \
-o -iname "libnvcuvid*.so*" \
-o -iname "libnvoptix*.so*" 2> /dev/null || :)"
for nvidia_lib in ${NVIDIA_LIBS}; do
dest_file="$(printf "%s" "${nvidia_lib}" |
sed "s|/host/usr/lib/x86_64-linux-gnu/|${lib64_dir}|g" |
sed "s|/host/usr/lib/i386-linux-gnu/|${lib32_dir}|g" |
sed "s|/host/usr/lib64/|${lib64_dir}|g" |
sed "s|/host/usr/lib32/|${lib32_dir}|g")"
# If file exists, just continue
# this may happen for directories like /usr/lib/nvidia/xorg/foo.so
# where the directory is already bind mounted (ro) and we don't need
# to mount further files in it.
if [ -e "${dest_file}" ]; then
continue
fi
type="file"
if [ -L "${nvidia_lib}" ]; then
type="link"
fi
if [ "${type}" = "link" ]; then
mkdir -p "$(dirname "${dest_file}")"
cp -d "${nvidia_lib}" "${dest_file}"
continue
fi
ensureTargetDir ${dest_file}
cp -r "${nvidia_lib}" "${dest_file}"
done
# Refresh ldconfig cache, also detect if there are empty files remaining
# and clean them.
# This could happen when upgrading drivers and changing versions.
empty_libs="$(ldconfig 2>&1 | grep -Eo "File.*is empty" | cut -d' ' -f2)"
if [ -n "${empty_libs}" ]; then
# shellcheck disable=SC2086
find ${empty_libs} -delete 2> /dev/null || :
find /usr/ /etc/ -empty -iname "*nvidia*" -delete 2> /dev/null || :
fi
echo "ACE: Timezone Integration"
rm /etc/localtime
cp $(realpath /host/etc/localtime) /etc/localtime
chmod 777 /etc/localtime

View File

@@ -0,0 +1 @@
# App in this dir will be integrated to host os. Will create symbol link when installing

View File

@@ -1,5 +1,5 @@
{ {
"appid": "cn.flamescion.bookworm-compatibility-mode", "appid": "amber-ce-bookworm",
"name": "cn.flamescion.bookworm-compatibility-mode", "name": "cn.flamescion.bookworm-compatibility-mode",
"version": "12.1.4", "version": "12.1.4",
"arch": ["amd64"], "arch": ["amd64"],

View File

@@ -0,0 +1 @@
../../opt/apps/amber-ce-bookworm/files/bin/ace-bookworm-uninstall-helper

View File

@@ -0,0 +1 @@
../../opt/apps/amber-ce-bookworm/files/bin/ace-bookworm-uninstall-helper-gui

View File

@@ -1 +0,0 @@
../../opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/ace-uninstall-helper

View File

@@ -1 +0,0 @@
../../opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/ace-uninstall-helper-gui

View File

@@ -1 +1 @@
../../opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/bookworm-run ../../opt/apps/amber-ce-bookworm/files/bin/bookworm-run

View File

@@ -10,8 +10,8 @@ fi
# Desktop files (used by desktop environments within both X11 and Wayland) are # Desktop files (used by desktop environments within both X11 and Wayland) are
# looked for in XDG_DATA_DIRS; make sure it includes the relevant directory for ACE # looked for in XDG_DATA_DIRS; make sure it includes the relevant directory for ACE
ACE_path="/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bookworm-env/usr/share/" ACE_path="/opt/apps/amber-ce-bookworm/files/ace-env/flamescion-container-tools/data-dir/"
if [ -n "${XDG_DATA_DIRS##*${ACE_path}}" ] && [ -n "${XDG_DATA_DIRS##*${ACE_path}:*}" ]; then if [ -n "${XDG_DATA_DIRS##*${ACE_path}}" ] && [ -n "${XDG_DATA_DIRS##*${ACE_path}:*}" ]; then
export XDG_DATA_DIRS="${ACE_path}:${XDG_DATA_DIRS}" export XDG_DATA_DIRS="${XDG_DATA_DIRS}:${ACE_path}"
fi fi

View File

@@ -0,0 +1,11 @@
[Desktop Entry]
Version=1.0
Name=ACE Bookworm Software Uninstaller
Name[zh_CN]=ACE Bookworm软件卸载器
Comment=用于卸载ACE容器的应用
Type=Application
Exec=/opt/apps/amber-ce-bookworm/files/bin/ace-bookworm-uninstall-helper-gui
Icon=ACE-bookworm-uninstaller
Categories=System
# Generated from the DesktopGenerater component of the z-Tools toolkit

View File

@@ -1,11 +0,0 @@
[Desktop Entry]
Version=1.0
Name=ACE Software Uninstaller
Name[zh_CN]=ACE软件卸载器
Comment=用于卸载ACE容器的应用
Type=Application
Exec=/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/ace-uninstall-helper-gui
Icon=ACE-uninstaller
Categories=System
# Generated from the DesktopGenerater component of the z-Tools toolkit

View File

@@ -0,0 +1,11 @@
[Desktop Entry]
Categories=utils
Exec=bookworm-run %U
Icon=amber-ce-bookworm
Name=Amber CE Bookworm
Name[zh_CN]=ACE Bookworm兼容环境
Keywords=BCM,ACE,ace,mode
StartupNotify=true
Type=Application
Terminal=true
Categories=System

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

View File

@@ -2,17 +2,17 @@
<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" <!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd"> "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig> <policyconfig>
<vendor>cn.flamescion.ace-uninstaller</vendor> <vendor>amber-ce-bookworm.ace-uninstaller</vendor>
<icon_name>x-package-repository</icon_name> <icon_name>x-package-repository</icon_name>
<action id="cn.flamescion.ace-uninstaller"> <action id="amber-ce-bookworm.ace-uninstaller">
<description>运行cn.flamescion.ace-uninstaller需要权限</description> <description>运行amber-ce-bookworm.ace-uninstaller需要权限</description>
<message>要使用cn.flamescion.ace-uninstaller需要权限</message> <message>要使用amber-ce-bookworm.ace-uninstaller需要权限</message>
<defaults> <defaults>
<allow_any>yes</allow_any> <allow_any>yes</allow_any>
<allow_inactive>yes</allow_inactive> <allow_inactive>yes</allow_inactive>
<allow_active>yes</allow_active> <allow_active>yes</allow_active>
</defaults> </defaults>
<annotate key="org.freedesktop.policykit.exec.path">/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/ace-uninstall-helper-gui</annotate> <annotate key="org.freedesktop.policykit.exec.path">/opt/apps/amber-ce-bookworm/files/bin/ace-bookworm-uninstall-helper-gui</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate> <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action> </action>
</policyconfig> </policyconfig>