Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a9988f37f3 | |||
| 130839b368 | |||
| 574da47849 | |||
| 081203e0d4 | |||
| 57e9b966e0 | |||
| 667b83e52b | |||
| d2cf07bd01 | |||
| 5e74ed9b91 | |||
|
|
65dfa5291c | ||
|
|
2ad0ea3f42 | ||
|
|
aedcb5c1ed | ||
| 7f33d2fff7 | |||
| b93199bb05 | |||
| 6b0942d2d5 | |||
| de2d84e13a | |||
| 8fca595000 | |||
| ceb863717f | |||
| f489876185 | |||
| 1e47004eef | |||
|
|
4afbfab976 | ||
| 866a866d5b | |||
| 2bdfe5c177 |
1
ACE-rpm/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
cd rpmbuild && rpmbuild -ba SPECS/bookworm-compatibility-mode.spec
|
||||
0
ACE-rpm/rpmbuild/BUILD/.keep
Normal file
0
ACE-rpm/rpmbuild/RPMS/.keep
Normal file
58
ACE-rpm/rpmbuild/SPECS/bookworm-compatibility-mode.spec
Normal file
@@ -0,0 +1,58 @@
|
||||
Name: cn.flamescion.bookworm-compatibility-mode
|
||||
Version: 12.4.7
|
||||
Release: 1
|
||||
Summary: A container app packaging and distributing solution.
|
||||
License: unknown
|
||||
URL: https://gitee.com/amber-compatability-environment/bookworm-compatibility-mode
|
||||
Source0: bookworm-compatibility-mode-%{version}.tar.gz
|
||||
|
||||
BuildRequires: debootstrap, dpkg, bash, which, systemd-container
|
||||
Requires: bubblewrap, xdg-desktop-portal, flatpak, zenity, gcc
|
||||
|
||||
%description
|
||||
A container app packaging and distributing solution.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n bookworm-compatibility-mode-%{version}
|
||||
%global debug_package %{nil}
|
||||
|
||||
%post
|
||||
/opt/apps/%{name}/files/bin/bookworm-init
|
||||
|
||||
%postun
|
||||
if [ "$1" = "0" ] || [ "$1" = "1" ]; then
|
||||
echo "清理卸载残留"
|
||||
rm -rf /opt/apps/%{name}
|
||||
else
|
||||
echo "非卸载,跳过清理"
|
||||
fi
|
||||
|
||||
%install
|
||||
cp -r src/opt %{buildroot}
|
||||
cp -r src/etc %{buildroot}
|
||||
cp -r src/usr %{buildroot}
|
||||
|
||||
pushd %{buildroot}/opt/apps/%{name}/files
|
||||
if [ "%{_target_cpu}" = "aarch64" ]; then
|
||||
bash build-container.sh arm64
|
||||
elif [ "%{_target_cpu}" = "x86_64" ]; then
|
||||
bash build-container.sh amd64
|
||||
else
|
||||
echo "Unsupportable arch!"
|
||||
fi
|
||||
popd
|
||||
|
||||
%files
|
||||
%dir /opt/apps/%{name}
|
||||
/opt/apps/%{name}/*
|
||||
/etc/X11/Xsession.d/20ACE-Bookworm
|
||||
/etc/profile.d/ACE-Bookworm.sh
|
||||
%{_bindir}/*
|
||||
%attr(755,root,root) /usr/lib/systemd/user-environment-generators/60-ACE-Bookworm
|
||||
%attr(755,root,root) /usr/share/applications/*
|
||||
/usr/share/icons/*
|
||||
/usr/share/polkit-1/actions/cn.flamescion.ace-uninstaller.policy
|
||||
|
||||
%changelog
|
||||
* Fri Jan 26 2024 懵仙兔兔 <acgm@qq.com> - 12.4.7-1
|
||||
- First pello package
|
||||
0
ACE-rpm/rpmbuild/SRPMS/.keep
Normal file
34
README.md
@@ -11,8 +11,25 @@
|
||||
|
||||
## 构建指南
|
||||
|
||||
### Debian
|
||||
|
||||
先构建容器再打包,容器位置在`src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files`
|
||||
|
||||
下面是详细步骤:
|
||||
|
||||
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架构,其他架构同理]`
|
||||
3. 等待容器打包完成
|
||||
4. 进入`bookworm-compatibility-mode`目录,执行fakeroot dpkg-deb -b src cn.flamescion.bookworm-compatibility-mode.deb
|
||||
5. 等待打包完成
|
||||
|
||||
### Fedora
|
||||
|
||||
`ACE-rpm`目录下有相关的说明
|
||||
|
||||
### Arch
|
||||
|
||||
https://bbs.spark-app.store/d/1668-xing-huo-ying-yong-shang-dian-on-ace
|
||||
|
||||
# Bookworm compatibility mode
|
||||
|
||||
@@ -28,4 +45,21 @@ Please use `git clone --recurse-submodules` to obtain the env
|
||||
|
||||
## Build Guide
|
||||
|
||||
### Debian
|
||||
|
||||
Build the container first then build the package. Container at `src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files`
|
||||
Here are the details:
|
||||
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]
|
||||
3. Wait for the container to complete.
|
||||
4.Get in to `bookworm-compatibility-mode` dir,run`fakeroot dpkg-deb -b src cn.flamescion.bookworm-compatibility-mode.deb
|
||||
5.Wating for complete.
|
||||
|
||||
|
||||
### Fedora
|
||||
|
||||
See readme in `ACE-rpm` directory
|
||||
|
||||
### Arch
|
||||
|
||||
https://bbs.spark-app.store/d/1668-xing-huo-ying-yong-shang-dian-on-ace
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
Package: cn.flamescion.bookworm-compatibility-mode
|
||||
Version: 12.4.5
|
||||
Version: 12.4.8
|
||||
Section: misc
|
||||
Priority: optional
|
||||
Depends: bubblewrap,xdg-desktop-portal | flatpak,zenity,policykit-1,gcc
|
||||
Depends: bubblewrap,flatpak,zenity,policykit-1,gcc,systemd
|
||||
Maintainer: shenmo <shenmo@spark-app.store>
|
||||
Architecture: amd64
|
||||
Description: bwrap wrapper for install and running debs inside a bookworm container
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
#!/bin/bash
|
||||
export PACKAGE_NAME="$DPKG_MAINTSCRIPT_PACKAGE"
|
||||
/opt/apps/$PACKAGE_NAME/files/bin/bookworm-init
|
||||
if [ "$PACKAGE_NAME" = "cn.flamescion.bookworm-compatibility-mode" ];then
|
||||
ln -sf /opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/bookworm-run /usr/bin/bookworm-run
|
||||
ln -sf /opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/ace-uninstall-helper /usr/bin/ace-uninstall-helper
|
||||
ln -sf /opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/ace-uninstall-helper-gui /usr/bin/ace-uninstall-helper-gui
|
||||
|
||||
if [ "${PACKAGE_NAME}" = "cn.flamescion.bookworm-compatibility-mode" ];then
|
||||
systemctl daemon-reload
|
||||
systemctl enable ace-auto-upgrade
|
||||
systemctl start ace-auto-upgrade
|
||||
fi
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
#!/bin/bash
|
||||
PACKAGE_NAME="$DPKG_MAINTSCRIPT_PACKAGE"
|
||||
if [ "$1" = "remove" ] || [ "$1" = "purge" ];then
|
||||
if [ "$PACKAGE_NAME" = "cn.flamescion.bookworm-compatibility-mode" ];then
|
||||
unlink /usr/bin/bookworm-run
|
||||
unlink /usr/bin/ace-uninstall-helper
|
||||
unlink /usr/bin/ace-uninstall-helper-gui
|
||||
|
||||
if [ "${PACKAGE_NAME}" = "cn.flamescion.bookworm-compatibility-mode" ];then
|
||||
systemctl stop ace-auto-upgrade
|
||||
systemctl disable ace-auto-upgrade
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [ "$1" = "remove" ] || [ "$1" = "purge" ];then
|
||||
|
||||
echo "清理卸载残留"
|
||||
|
||||
rm -rf /opt/apps/$PACKAGE_NAME
|
||||
@@ -13,3 +17,5 @@ else
|
||||
echo "非卸载,跳过清理"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -190,6 +190,126 @@ ln -sfv /flamescion-container-tools/bin-override/host-spawn-$(uname -m) /flamesc
|
||||
|
||||
apt install --reinstall /flamescion-container-tools/ace-host-integration.deb
|
||||
|
||||
|
||||
|
||||
### Do NVIDIA Integration
|
||||
|
||||
echo "ACE: NVIDIA Integration"
|
||||
|
||||
ensureTargetDir() {
|
||||
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
|
||||
|
||||
|
||||
EOFFFFFF
|
||||
|
||||
#####init
|
||||
|
||||
@@ -66,7 +66,7 @@ bwrap --dev-bind / / \
|
||||
--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/share/icons \
|
||||
--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 \
|
||||
|
||||
@@ -23,7 +23,7 @@ exit 1
|
||||
fi
|
||||
|
||||
cd "`dirname $0`"
|
||||
sudo debootstrap --include=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 ./bookworm-env https://mirrors.ustc.edu.cn/debian/
|
||||
|
||||
|
||||
sudo rm -rf bookworm-env/var/cache/apt/archives/*.deb
|
||||
|
||||
@@ -22,6 +22,7 @@ local file=$1
|
||||
fi
|
||||
|
||||
fi
|
||||
chmod +x $file
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,175 @@
|
||||
#!/bin/bash
|
||||
LANGUAGE=en_US
|
||||
|
||||
|
||||
|
||||
#############################################################
|
||||
# ===== Log =====
|
||||
# log.info xxx
|
||||
# log.warn xxx
|
||||
# log.info xxx
|
||||
# log.debug xxx
|
||||
# 带颜色的echo
|
||||
function log.color_output() {
|
||||
local color=$1
|
||||
shift 1
|
||||
|
||||
echo >&2 -e "\033[${color}m$@\033[0m"
|
||||
return 0
|
||||
}
|
||||
|
||||
# Log is named without prefix "utils." for convenience
|
||||
# Usage: log.log <level> ...content
|
||||
function log.log() {
|
||||
if [[ $# < 2 ]]; then
|
||||
return -1
|
||||
fi
|
||||
|
||||
local level=$1
|
||||
shift 1
|
||||
|
||||
case $level in
|
||||
error) log.color_output "0;31" "[ERROR] $@" ;;
|
||||
warn) log.color_output "1;33" "[WARN] $@" ;;
|
||||
info) log.color_output "1;37" "[INFO] $@" ;;
|
||||
debug) log.color_output "1;30" "[DEBUG] $@" ;;
|
||||
esac
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
function log.error() { log.log "error" "$@"; }
|
||||
function log.warn() { log.log "warn" $@; }
|
||||
function log.info() { log.log "info" $@; }
|
||||
function log.debug() { log.log "debug" $@; }
|
||||
|
||||
|
||||
# 发送通知
|
||||
function notify-send() {
|
||||
|
||||
|
||||
# Detect user using the display
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
|
||||
# Detect uid of the user
|
||||
local uid=$(id -u $user)
|
||||
log.debug "User is $user and the uid of it is $uid"
|
||||
sudo -u $user DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${uid}/bus notify-send $@
|
||||
}
|
||||
|
||||
|
||||
# 检测网络链接畅通
|
||||
function network-check()
|
||||
{
|
||||
# 超时时间
|
||||
local timeout=15
|
||||
|
||||
# 目标网站
|
||||
local target=www.baidu.com
|
||||
|
||||
# 获取响应状态码
|
||||
local ret_code=`curl -I -s --connect-timeout ${timeout} ${target} -w %{http_code} | tail -n1`
|
||||
|
||||
if [ "x$ret_code" = "x200" ] ; then
|
||||
# 网络畅通
|
||||
return 0
|
||||
else
|
||||
# 网络不畅通
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
###############################################################
|
||||
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
log.error "Nope we need root to run"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
network-check
|
||||
if [ $? -ne 0 ] ; then
|
||||
log.error "NETWORK_FAIL"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
# The code above is modified from https://blog.csdn.net/yaxuan88521/article/details/120516298
|
||||
|
||||
if [ $(which aptss) ];then
|
||||
APT_COMMAND=aptss
|
||||
/usr/bin/apt update
|
||||
log.info "Using aptss to operate the upgrade process since we detect it."
|
||||
elif [ -e /usr/bin/apt ];then
|
||||
APT_COMMAND=/usr/bin/apt
|
||||
log.info "Using apt to operate the upgrade process."
|
||||
else
|
||||
log.error "Nope we support debian only now"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
${APT_COMMAND} update
|
||||
|
||||
updatetext=`${APT_COMMAND} update 2>&1`
|
||||
|
||||
until [ "`echo $updatetext | grep E: `" = "" ];do
|
||||
log.info "UPDATE_ERROR_AND_WAIT_15_SEC"
|
||||
sleep 15
|
||||
updatetext=`${APT_COMMAND} update 2>&1`
|
||||
|
||||
|
||||
|
||||
done
|
||||
|
||||
isupdate=`echo ${updatetext: -5}`
|
||||
if [ "$isupdate" = "date." ] ; then
|
||||
log.info "No need to upgrade. exit"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
## 从这里开始,只有检测到了更新才会进行
|
||||
update_app_number=`echo ${updatetext%package*} #从右向左截取第一个 src 后的字符串`
|
||||
update_app_number=`echo ${update_app_number##*information...}`
|
||||
|
||||
# 获取用户选择的要更新的应用
|
||||
PKG_LIST="$(env LANGUAGE=en_US /usr/bin/apt list --upgradable | awk NR\>1)"
|
||||
# 指定分隔符为 \n
|
||||
IFS_OLD="$IFS"
|
||||
IFS=$'\n'
|
||||
|
||||
for line in $PKG_LIST ; do
|
||||
PKG_NAME=$(echo $line | awk -F ' ' '{print $1}')
|
||||
PKG_NEW_VER=$(echo $line | awk -F ' ' '{print $2}')
|
||||
PKG_CUR_VER=$(echo $line | awk -F ' ' '{print $3}')
|
||||
|
||||
dpkg --compare-versions $PKG_NEW_VER le $PKG_CUR_VER
|
||||
|
||||
if [ $? -eq 0 ] ; then
|
||||
let update_app_number=$update_app_number-1
|
||||
continue
|
||||
fi
|
||||
|
||||
## 检测是否是 hold 状态
|
||||
PKG_STA=$(dpkg-query -W -f='${db:Status-Want}' $PKG_NAME)
|
||||
if [ "$PKG_STA" = "hold" ] ; then
|
||||
let update_app_number=$update_app_number-1
|
||||
fi
|
||||
done
|
||||
|
||||
# 还原分隔符
|
||||
IFS="$IFS_OLD"
|
||||
if [ $update_app_number -le 0 ] ; then
|
||||
log.info "No package need to upgrade after ignoring those holded ones. exit"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
## 如果都是hold或者版本一致的那就直接退出,否则把剩余的给提醒了
|
||||
|
||||
|
||||
user=$(who | awk '{print $1}' | head -n 1)
|
||||
|
||||
log.info "ACE环境中有 $update_app_number 个软件包可升级,正在自动升级"
|
||||
notify-send -a cn.flamescion.bookworm-compatibility-mode "ACE兼容环境" "ACE环境中有${update_app_number}个软件包可升级,执行自动升级..."
|
||||
|
||||
${APT_COMMAND} clean
|
||||
${APT_COMMAND} full-upgrade -y
|
||||
${APT_COMMAND} clean
|
||||
notify-send -a cn.flamescion.bookworm-compatibility-mode "ACE兼容环境" "自动升级结束"
|
||||
1
src/usr/bin/ace-uninstall-helper
Symbolic link
@@ -0,0 +1 @@
|
||||
../../opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/ace-uninstall-helper
|
||||
1
src/usr/bin/ace-uninstall-helper-gui
Symbolic link
@@ -0,0 +1 @@
|
||||
../../opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/ace-uninstall-helper-gui
|
||||
1
src/usr/bin/bookworm-init
Symbolic link
@@ -0,0 +1 @@
|
||||
../../opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/bookworm-init
|
||||
1
src/usr/bin/bookworm-run
Symbolic link
@@ -0,0 +1 @@
|
||||
../../opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/bookworm-run
|
||||
14
src/usr/lib/systemd/system/ace-auto-upgrade.service
Normal file
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Amber CE Auto upgrade
|
||||
After=apt-daily.service network.target network-online.target systemd-networkd.service NetworkManager.service connman.service
|
||||
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
RemainAfterExit=yes
|
||||
ExecStart=bookworm-run /flamescion-container-tools/ace-upgrader/ace-upgrader
|
||||
Restart=on-failure
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -6,6 +6,6 @@ Comment=用于卸载ACE容器的应用
|
||||
Type=Application
|
||||
Exec=/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/ace-uninstall-helper-gui
|
||||
Icon=ACE-uninstaller
|
||||
Categories=AudioVideo
|
||||
Categories=System
|
||||
|
||||
# Generated from the DesktopGenerater component of the z-Tools toolkit
|
||||
@@ -8,3 +8,4 @@ Keywords=BCM,ACE,ace,mode
|
||||
StartupNotify=true
|
||||
Type=Application
|
||||
Terminal=true
|
||||
Categories=System
|
||||
|
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 196 KiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 134 KiB |
@@ -8,3 +8,5 @@ rm -rf /var/cache/apt/
|
||||
rm -rf /var/lib/aptss/lists/*
|
||||
rm -rf /usr/share/doc
|
||||
|
||||
#apt install ace-integration in init
|
||||
#tools只保留gio hostspawn和xdg-open
|
||||