From 45c52d775578c3c719f7e499614ab2e7343134cb Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 16 Apr 2025 07:29:49 +0000 Subject: [PATCH 01/36] yfq Signed-off-by: shenmo --- tool/ssaudit | 4 ++-- tool/ssinstall | 4 ++-- tool/update-upgrade/ss-do-upgrade.sh | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tool/ssaudit b/tool/ssaudit index 7e5122d..53187ae 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -218,7 +218,7 @@ if [ "$try_run_ret" -ne 0 ]; then ## 若安装检测仍然失败 echo "----------------------------------------" echo "在 $ace_cmd 环境中预检成功,开始安装..." echo "----------------------------------------" - $ace_cmd 'dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yf' + $ace_cmd 'dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yfq' success=true break # 跳出循环 else @@ -242,7 +242,7 @@ if [ "$try_run_ret" -ne 0 ]; then ## 若安装检测仍然失败 exit "$try_run_ret" fi else ## 如果主机安装检测成功 - dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yf + dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yfq fi ### 退出阶段保持不变 ### diff --git a/tool/ssinstall b/tool/ssinstall index c1c5547..25fa3ae 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -232,7 +232,7 @@ if [ "$try_run_ret" -ne 0 ]; then ## 若安装检测仍然失败 echo "----------------------------------------" echo "在 $ace_cmd 环境中预检成功,开始安装..." echo "----------------------------------------" - $ace_cmd 'dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yf' + $ace_cmd 'dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yfq' success=true break # 跳出循环 else @@ -256,7 +256,7 @@ if [ "$try_run_ret" -ne 0 ]; then ## 若安装检测仍然失败 exit "$try_run_ret" fi else ## 如果主机安装检测成功 - dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yf + dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yfq fi ### 退出阶段保持不变 ### diff --git a/tool/update-upgrade/ss-do-upgrade.sh b/tool/update-upgrade/ss-do-upgrade.sh index 474a777..dee6321 100755 --- a/tool/update-upgrade/ss-do-upgrade.sh +++ b/tool/update-upgrade/ss-do-upgrade.sh @@ -146,7 +146,7 @@ for PKG_UPGRADE in $PKG_UPGRADE_LIST; do update_transhell # 启动升级任务 - (yes | pkexec ${HERE}/ss-do-upgrade-worker.sh upgrade-app $PKG_UPGRADE -y 2>&1 > /dev/null ) & + (yes n | pkexec ${HERE}/ss-do-upgrade-worker.sh upgrade-app $PKG_UPGRADE -yfq 2>&1 > /dev/null ) & # 计算进度百分比 progress=$(( count * 100 / total - 1)) From 4f294cee8f3b27795cfb84bf2d8c919b4d03ce09 Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 16 Apr 2025 22:53:43 +0800 Subject: [PATCH 02/36] =?UTF-8?q?=E8=BF=9B=E4=B8=80=E6=AD=A5=E9=80=82?= =?UTF-8?q?=E9=85=8DACE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssaudit | 34 +--- tool/store-helper/check-is-installed | 46 ++++- tool/store-helper/ss-launcher | 248 +++++++++++++-------------- tool/store-helper/uninstaller | 52 +++++- 4 files changed, 212 insertions(+), 168 deletions(-) diff --git a/tool/ssaudit b/tool/ssaudit index 53187ae..013a0e4 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -1,6 +1,8 @@ #!/bin/bash - +SPARK_DOWNLOAD_SERVER_URL="https://d.spark-app.store/" +SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL="d.spark-app.store" source /opt/durapps/spark-store/bin/bashimport/transhell.amber + load_transhell_debug export DEBIAN_FRONTEND=noninteractive @@ -60,30 +62,8 @@ function zenity() { } function hash_check() { - if [ ! -e "/var/lib/aptss/lists/d.spark-app.store_${STORE_URL}_Packages" ] && \ - [ ! -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && \ - [ ! -e "/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store_${STORE_URL}_Packages" ]; then - echo "接收星火仓库软件信息中..." - aptss ssupdate - fi - if [ -e "/var/lib/aptss/lists/d.spark-app.store_${STORE_URL}_Packages" ]; then - PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.spark-app.store_${STORE_URL}_Packages" - echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名仓库配置" - elif [ -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ]; then - PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" - echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是d域名单目录仓库配置" - else - PACKAGES_DATA_PATH="/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" - echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是SDU镜像仓库配置" - fi - - echo "正在运行包验证..." - echo "Running Spark Package Verify..." - - DEB_SHA512SUM=$(sha512sum "$1" | cut -d ' ' -f 1) - unset IS_SHA512SUM_CHECKED - IS_SHA512SUM_CHECKED=$(cat "$PACKAGES_DATA_PATH" | grep "$DEB_SHA512SUM") + IS_SHA512SUM_CHECKED=skipped } function lock_file(){ @@ -161,7 +141,9 @@ fi lock_file "$DEBPATH" -IS_SHA512SUM_CHECKED=skipped +hash_check "$DEBPATH" + + if [ ! -z "$IS_SHA512SUM_CHECKED" ]; then echo "校验跳过,开始安装" @@ -242,7 +224,7 @@ if [ "$try_run_ret" -ne 0 ]; then ## 若安装检测仍然失败 exit "$try_run_ret" fi else ## 如果主机安装检测成功 - dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yfq + dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yfq fi ### 退出阶段保持不变 ### diff --git a/tool/store-helper/check-is-installed b/tool/store-helper/check-is-installed index ef4d447..97b0201 100755 --- a/tool/store-helper/check-is-installed +++ b/tool/store-helper/check-is-installed @@ -1,10 +1,42 @@ #!/bin/bash -dpkg -l | grep "^ii $1 " > /dev/null +dpkg -s "$1" > /dev/null RET="$?" -if [[ "$RET" != "0" ]] && command -v bookworm-run > /dev/null;then - echo "Try ACE Bookworm" - bookworm-run dpkg -l | grep "^ii $1 " > /dev/null - RET="$?" - exit "$RET" -fi + if [[ "$RET" != "0" ]] &&[[ "$IS_ACE_ENV" == "" ]];then ## 如果未在ACE环境中 + # 定义按顺序尝试的ACE环境(命令:推荐安装包) + declare -a ace_commands_order=( + "bookworm-run:amber-ce-bookworm" + "trixie-run:amber-ce-trixie" + "deepin23-run:amber-ce-deepin23" + ) +for ace_entry in "${ace_commands_order[@]}"; do + ace_cmd=${ace_entry%%:*} + if command -v "$ace_cmd" >/dev/null 2>&1; then + echo "----------------------------------------" + echo "正在检查 $ace_cmd 环境的安装..." + echo "----------------------------------------" + + # 在ACE环境中执行安装检测 + $ace_cmd dpkg -l | grep "^ii $1 " > /dev/null + try_run_ret="$?" + + + # 最终检测结果处理 + if [ "$try_run_ret" -eq 0 ]; then + echo "----------------------------------------" + echo "在 $ace_cmd 环境中找到了安装" + echo "----------------------------------------" + exit $try_run_ret + else + echo "----------------------------------------" + echo "在 $ace_cmd 环境中未能找到安装,继续查找" + echo "----------------------------------------" + fi + fi + done + echo "----------------------------------------" + echo "所有已安装的 ACE 环境中未能找到安装,退出" + echo "----------------------------------------" + exit "$RET" + fi +## 如果在ACE环境中或者未出错 exit "$RET" diff --git a/tool/store-helper/ss-launcher b/tool/store-helper/ss-launcher index a635ff8..a7730dc 100755 --- a/tool/store-helper/ss-launcher +++ b/tool/store-helper/ss-launcher @@ -1,142 +1,132 @@ #!/bin/bash -# ===== 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 +# ===== ACE环境配置 ===== +declare -a ace_commands_order=( + "bookworm-run:amber-ce-bookworm" + "trixie-run:amber-ce-trixie" + "deepin23-run:amber-ce-deepin23" +) + +# ===== 日志和函数 ===== +[ -f /opt/durapps/spark-store/bin/bashimport/log.amber ] && \ + source /opt/durapps/spark-store/bin/bashimport/log.amber || { + log.info() { echo "INFO: $*"; } + log.warn() { echo "WARN: $*"; } + log.error() { echo "ERROR: $*"; } + log.debug() { echo "DEBUG: $*"; } } -# Log is named without prefix "utils." for convenience -# Usage: log.log ...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 scan_desktop_file_log(){ -unset desktop_file_path -package_name=$1 - for desktop_file_path in $(dpkg -L "$1" |grep /usr/share/applications/ | awk '/\.desktop$/ {print}'); do - if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then - log.info "$desktop_file_path is found." - fi - done - for desktop_file_path in $(dpkg -L "$1" |grep /opt/apps/$package_name/entries/applications/ | awk '/\.desktop$/ {print}'); do - if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then - log.info "$desktop_file_path is found." - fi - done - - -} - -function scan_desktop_file(){ +# ===== 功能函数 ===== +function scan_desktop_file_log() { unset desktop_file_path - local result="" - for desktop_file_path in $(dpkg -L "$1" | grep /usr/share/applications/ | awk '/\.desktop$/ {print}'); do - if [ "$(grep NoDisplay=true $desktop_file_path)" = "" ]; then - result+="$desktop_file_path," - fi - done - for desktop_file_path in $(dpkg -L "$1" | grep /opt/apps/$package_name/entries/applications | awk '/\.desktop$/ {print}'); do - if [ "$(grep NoDisplay=true $desktop_file_path)" = "" ]; then - result+="$desktop_file_path," - fi - done - # 去掉最后一个逗号 - if [ -n "$result" ]; then - result=${result%,} - fi - echo "$result" + local package_name=$1 + # 标准desktop文件检测 + while IFS= read -r path; do + [ -z "$(grep 'NoDisplay=true' "$path")" ] && { + log.info "Found valid desktop file: $path" + desktop_file_path="$path" + return 0 + } + done < <(dpkg -L "$package_name" 2>/dev/null | grep -E '/usr/share/applications/.*\.desktop$|/opt/apps/.*/entries/applications/.*\.desktop$') + + # 深度环境特殊处理 + while IFS= read -r path; do + [ -z "$(grep 'NoDisplay=true' "$path")" ] && { + log.info "Found deepin desktop file: $path" + desktop_file_path="$path" + return 0 + } + done < <(find /opt/apps/$package_name -path '*/entries/applications/*.desktop' 2>/dev/null) + return 1 } -function launch_app(){ +function scan_desktop_file() { + local package_name=$1 result="" + # 标准结果收集 + while IFS= read -r path; do + [ -z "$(grep 'NoDisplay=true' "$path")" ] && result+="$path," + done < <(dpkg -L "$package_name" 2>/dev/null | grep -E '/usr/share/applications/.*\.desktop$|/opt/apps/.*/entries/applications/.*\.desktop$') + + # 深度环境补充扫描 + while IFS= read -r path; do + [ -z "$(grep 'NoDisplay=true' "$path")" ] && result+="$path," + done < <(find /opt/apps/$package_name -path '*/entries/applications/*.desktop' 2>/dev/null) + + echo "${result%,}" +} - # 检查是否传入了路径参数 - if [ -z "$1" ]; then - log.error "请传入文件路径作为参数" +function launch_app() { + local DESKTOP_FILE_PATH="${1#file://}" + # 提取并净化Exec命令 + exec_command=$(grep -m1 '^Exec=' "$DESKTOP_FILE_PATH" | cut -d= -f2- | sed 's/%.//g') + [ -z "$exec_command" ] && return 1 + log.info "Launching: $exec_command" + # 图形环境启动优化 + if [ -n "$DISPLAY" ]; then + nohup env DISPLAY=$DISPLAY XAUTHORITY=${XAUTHORITY:-~/.Xauthority} ${SHELL:-bash} -c "$exec_command" >/dev/null 2>&1 & + else + nohup ${SHELL:-bash} -c "$exec_command" >/dev/null 2>&1 & + fi +} + +# ===== ACE环境执行器 ===== +function ace_runner() { + local command_type=$1 package_name=$2 + for ace_entry in "${ace_commands_order[@]}"; do + local ace_cmd=${ace_entry%%:*} + command -v "$ace_cmd" >/dev/null || continue + + log.info "Checking in $ace_cmd environment..." + if output=$($ace_cmd "$0" "$command_type" "$package_name" 2>/dev/null); then + [ "$command_type" = "list" ] && echo "$output" + exit 0 + fi + done + return 1 +} + +# ===== 主逻辑 ===== +[ $# -lt 2 ] && { + log.error "Usage: $0 {check|launch|list|start} package_name/desktop_file" + exit 1 +} + +case $1 in +check) + # 当前环境检查 + if scan_desktop_file_log "$2"; then + exit 0 + else + # 非ACE环境下执行ACE环境扫描 + [ -z "$IS_ACE_ENV" ] && ace_runner check "$2" exit 1 fi + ;; - DESKTOP_FILE_PATH=$1 - - if [[ $DESKTOP_FILE_PATH == file://* ]]; then - # 如果是,移除 'file://' 部分并输出结果 - DESKTOP_FILE_PATH="${DESKTOP_FILE_PATH#file://}" +list) + # 当前环境列表 + if result=$(scan_desktop_file "$2"); then + echo "$result" + exit 0 + else + # 非ACE环境下执行ACE环境扫描 + [ -z "$IS_ACE_ENV" ] && ace_runner list "$2" + exit 1 fi + ;; - # 获取文件内容中第一个 Exec= 后的命令 - exec_command=$(grep -m 1 -oP "(?<=Exec=).*" "$DESKTOP_FILE_PATH") - - # 删除 exec_command 中最后的 % 及其后面的内容 - exec_command="${exec_command%\%*}" - - # 打印提取的命令 - log.info "Command is $exec_command" - - # 在默认终端执行命令 - bash -c "$exec_command" -} - -if [ "$#" -lt 2 ];then -log.info "Usage: $0 check/launch/list/start packagename/desktop-file" -exit -1 -fi - - -if [ "$1" = "check" ];then - -scan_desktop_file_log "$2" - if [ "$desktop_file_path" = "" ];then - log.error "No desktop file found. exit -1" - exit -1 - else - exit 0 - fi - -elif [ "$1" = "list" ];then -scan_desktop_file "$2" - if [ "$desktop_file_path" = "" ];then - exit -1 - else - exit 0 - fi -elif [ "$1" = "launch" ];then -scan_desktop_file_log "$2" - if [ "$desktop_file_path" = "" ];then - log.error "No desktop file found. exit -1" - exit -1 - fi - - -launch_app "${desktop_file_path}" - -elif [ "$1" = "start" ];then -launch_app "${desktop_file_path}" -fi +launch|start) + # 当前环境启动 + if scan_desktop_file_log "$2" && launch_app "$desktop_file_path"; then + exit 0 + else + # 非ACE环境下通过ACE环境启动 + [ -z "$IS_ACE_ENV" ] && ace_runner launch "$2" + exit 1 + fi + ;; +*) + log.error "Invalid command: $1" + exit 2 + ;; +esac diff --git a/tool/store-helper/uninstaller b/tool/store-helper/uninstaller index 86cee57..eaad4c0 100755 --- a/tool/store-helper/uninstaller +++ b/tool/store-helper/uninstaller @@ -1,14 +1,54 @@ #!/bin/bash -dpkg -l | grep "^ii $1 " > /dev/null +# ===== ACE环境配置 ===== +declare -a ace_commands_order=( + "bookworm-run:amber-ce-bookworm" + "trixie-run:amber-ce-trixie" + "deepin23-run:amber-ce-deepin23" +) + +# ===== 日志和函数 ===== +[ -f /opt/durapps/spark-store/bin/bashimport/log.amber ] && \ + source /opt/durapps/spark-store/bin/bashimport/log.amber || { + log.info() { echo "INFO: $*"; } + log.warn() { echo "WARN: $*"; } + log.error() { echo "ERROR: $*"; } + log.debug() { echo "DEBUG: $*"; } +} + +dpkg -s "$1" > /dev/null RET="$?" if [[ "$RET" == "0" ]] ;then apt autopurge $1 -y else -if command -v bookworm-run > /dev/null;then - echo "Try ACE Bookworm" - bookworm-run apt autopurge $1 -y +for ace_entry in "${ace_commands_order[@]}"; do + ace_cmd=${ace_entry%%:*} + if command -v "$ace_cmd" >/dev/null 2>&1; then + echo "----------------------------------------" + echo "正在检查 $ace_cmd 环境的安装..." + echo "----------------------------------------" + + # 在ACE环境中执行安装检测 + $ace_cmd dpkg -l | grep "^ii $1 " > /dev/null + try_run_ret="$?" + -fi -fi + # 最终检测结果处理 + if [ "$try_run_ret" -eq 0 ]; then + echo "----------------------------------------" + echo "在 $ace_cmd 环境中找到了安装" + echo "----------------------------------------" + $ace_cmd apt autopurge $1 -y + else + echo "----------------------------------------" + echo "在 $ace_cmd 环境中未能找到安装,继续查找" + echo "----------------------------------------" + fi + fi + done + echo "----------------------------------------" + echo "所有已安装的 ACE 环境中未能找到安装,退出" + echo "----------------------------------------" + exit "$RET" + fi exit "$RET" From b4935edf0af1e6c24dc1949a45b3105882167b94 Mon Sep 17 00:00:00 2001 From: zty199 <1282441920@qq.com> Date: Mon, 28 Apr 2025 14:11:35 +0800 Subject: [PATCH 03/36] fix: unable to run in deepin without dxcb plugin QT_QPA_PLATFORM should be dxcb;xcb on x11 platform fallback to xcb when dxcb is unavailable Log: modify QT_QPA_PLATFORM; fix wrong QTWEBENGINE_CHROMIUM_FLAGS --- src/main.cpp | 18 ++++++++---------- src/utils/utils.cpp | 2 +- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index ec50d24..9573282 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -142,18 +142,18 @@ int main(int argc, char *argv[]) // 龙芯机器配置,使得 DApplication 能正确加载 QtWebEngine qputenv("DTK_FORCE_RASTER_WIDGETS", "FALSE"); + // 设置 QtWebEngine 环境变量 + QStringList chromium_flags; // 浏览器开启 GPU 支持 - // qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-features=UseModernMediaControls"); - // qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-web-security"); + // chromium_flags.append("--disable-features=UseModernMediaControls"); + // chromium_flags.append("--disable-web-security"); // 全平台软件渲染Webkit - qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-gpu"); -#ifdef __sw_64__ - qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--no-sandbox"); + chromium_flags.append("--disable-gpu"); +#if defined __sw_64__ || __loongarch__ + chromium_flags.append("--no-sandbox"); #endif + qputenv("QTWEBENGINE_CHROMIUM_FLAGS", chromium_flags.join(" ").toUtf8()); -#ifdef __loongarch__ - qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--no-sandbox"); -#endif /** * NOTE: https://zhuanlan.zhihu.com/p/550285855 * 避免 wayland 环境下从 QtWebEngine 后退回到 QWidget 时黑屏闪烁 @@ -163,8 +163,6 @@ int main(int argc, char *argv[]) DApplication::setAttribute(Qt::AA_UseSoftwareOpenGL); } - - #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) // 开启 Hidpi 支持 qDebug() << "Enable HiDPI Support."; diff --git a/src/utils/utils.cpp b/src/utils/utils.cpp index a3aa560..7d27054 100644 --- a/src/utils/utils.cpp +++ b/src/utils/utils.cpp @@ -198,7 +198,7 @@ void Utils::setQPAPlatform() // } else { - qputenv("QT_QPA_PLATFORM", "dxcb"); + qputenv("QT_QPA_PLATFORM", "dxcb;xcb"); } } From dc28c2e9d1fe34512530db4b9a323a71c75246fa Mon Sep 17 00:00:00 2001 From: shenmo Date: Sun, 25 May 2025 03:14:39 +0000 Subject: [PATCH 04/36] gitcode star Signed-off-by: shenmo --- README.zh.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.zh.md b/README.zh.md index 0b4a84c..0875ae8 100644 --- a/README.zh.md +++ b/README.zh.md @@ -1,6 +1,6 @@ # 星火应用商店 [![star](https://gitee.com/spark-store-project/spark-store/badge/star.svg?theme=gvp)](https://gitee.com/spark-store-project/spark-store/stargazers) [![fork](https://gitee.com/spark-store-project/spark-store/badge/fork.svg?theme=gvp)](https://gitee.com/spark-store-project/spark-store/members) - +![star](https://gitcode.com/spark-store-project/spark-store/star/badge.svg) ## 简介 From bbc4d27d7a875ec56d23235236f21a01edf2a96a Mon Sep 17 00:00:00 2001 From: shenmo Date: Sat, 31 May 2025 00:34:08 +0800 Subject: [PATCH 05/36] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20ssinstall-local=20?= =?UTF-8?q?=E4=BB=A5=E5=87=86=E5=A4=87=E5=90=8E=E7=BB=AD=E7=9A=84ACE?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transhell/ssinstall-local_en_US.transhell | 6 + .../transhell/ssinstall-local_zh_CN.transhell | 6 + tool/ssinstall | 1 + tool/ssinstall-local | 129 ++++++++++++++++++ 4 files changed, 142 insertions(+) create mode 100644 pkg/usr/share/ssinstall-local/transhell/ssinstall-local_en_US.transhell create mode 100644 pkg/usr/share/ssinstall-local/transhell/ssinstall-local_zh_CN.transhell create mode 100755 tool/ssinstall-local diff --git a/pkg/usr/share/ssinstall-local/transhell/ssinstall-local_en_US.transhell b/pkg/usr/share/ssinstall-local/transhell/ssinstall-local_en_US.transhell new file mode 100644 index 0000000..7d3fbf1 --- /dev/null +++ b/pkg/usr/share/ssinstall-local/transhell/ssinstall-local_en_US.transhell @@ -0,0 +1,6 @@ +#!/bin/bash +TRANSHELL_CONTENT_HASH_CHECK_FAILED="Failed in checking package hash! \nPossibly reason can be the package is broken, laggy in sync of Spark Store repository, or, there is a malware attempt to attack. \nIf you don't know what happend, please try install again after execute the command below\n sudo aptss update\n\nIf the problem still happen, please click APP Feedback button in the APP information page to feedback to us.\n\n If you are in the Audition Group,Please use ssaudit instead of ssinstall to audit APPs,for ssinstall is used for password-free install now.\nIf you want to install an app that is removed from Spark Store repository,you can also use ssaudit." +TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT="Please run ssinstall as root" +TRANSHELL_CONTENT_FILE_NOT_EXIST="File not exist" +TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB="No delete after install option given, will not delete the deb" +TRANSHELL_CONTENT_DEB_IS_DELETED="--delete-after-install option is given and the installation is succeeded, delete the deb file." diff --git a/pkg/usr/share/ssinstall-local/transhell/ssinstall-local_zh_CN.transhell b/pkg/usr/share/ssinstall-local/transhell/ssinstall-local_zh_CN.transhell new file mode 100644 index 0000000..680af76 --- /dev/null +++ b/pkg/usr/share/ssinstall-local/transhell/ssinstall-local_zh_CN.transhell @@ -0,0 +1,6 @@ +#!/bin/bash +TRANSHELL_CONTENT_HASH_CHECK_FAILED="软件包校验失败!这不应该发生!\n可能是因为软件包已损坏,星火仓库未同步,或者最坏的情况:恶意软件尝试利用自动安装来入侵系统!\n如果你不清楚发生了什么,请执行 sudo aptss update 后再尝试安装。\n如果问题仍然存在,请在应用信息界面点击 应用反馈 来提交反馈给我们!\n\n 如果你是审核人员,请使用 ssaudit来替代ssinstall进行审核工作,因为现在ssinstall已经被用于免密安装。\n如果你正在尝试安装已经下架的星火应用,也可用ssaudit来替代ssinstall" +TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT="请使用root启动ssinstall" +TRANSHELL_CONTENT_FILE_NOT_EXIST="文件不存在" +TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB="未指定安装后删除或安装出错,不删除deb包" +TRANSHELL_CONTENT_DEB_IS_DELETED="使用了--delete-after-install选项且安装未出错,删除deb包" diff --git a/tool/ssinstall b/tool/ssinstall index 25fa3ae..f5370a3 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -144,6 +144,7 @@ fi if [ ! -f "$1" ]; then echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST},Trying to redownload" + aptss update FILEPATH=$(dirname "$1") FILENAME=$(basename "$1") PACKAGE_NAME=$(echo "$FILENAME" | sed -r 's/^([^_]+)_.*$/\1/') diff --git a/tool/ssinstall-local b/tool/ssinstall-local new file mode 100755 index 0000000..94da042 --- /dev/null +++ b/tool/ssinstall-local @@ -0,0 +1,129 @@ +#!/bin/bash +SPARK_DOWNLOAD_SERVER_URL="https://d.spark-app.store/" +SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL="d.spark-app.store" +source /opt/durapps/spark-store/bin/bashimport/transhell.amber + +load_transhell_debug +export DEBIAN_FRONTEND=noninteractive + +help(){ + echo "Spark Store 安装脚本使用说明:" + echo "用法: $0 [选项] " + echo "" + echo "选项:" + echo " -h, --help 显示此帮助信息" + echo " --delete-after-install 安装完成后删除deb文件" + echo "" + echo "示例:" + echo " $0 /path/to/package.deb" + echo " $0 --delete-after-install /path/to/package.deb" +} + +parse_args() { + while [ $# -gt 0 ]; do + case "$1" in + -h | --help) + help + exit 0 + ;; + --delete-after-install) + DELETE_AFTER_INSTALL="1" + shift + ;; + *) + DEBPATH="$1" + ;; + esac + shift + done +} + +parse_args "$@" + +echo "Spark Store Install script. 星火商店安装脚本" + +function create_desktop_file() { + local user=$(who | awk '{print $1}' | head -n 1) + if [ -e $(sudo -u "$user" xdg-user-dir)/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop ];then + echo "It is configured that do not create desktop file. Give up" + else + exec_create_desktop_file + fi +} + +function exec_create_desktop_file() { + local user=$(who | awk '{print $1}' | head -n 1) + for desktop_file_path in $(dpkg -L "$package_name" |grep /usr/share/applications/ | awk '/\.desktop$/ {print}'); do + if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then + echo "$desktop_file_path is checked and will be installed to desktop" + sudo -u "$user" cp "$desktop_file_path" "$(sudo -u "$user" xdg-user-dir DESKTOP)/" + fi + done + for desktop_file_path in $(dpkg -L "$package_name" |grep /opt/apps/$package_name/entries/applications | awk '/\.desktop$/ {print}'); do + if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then + echo "$desktop_file_path is checked and will be installed to desktop" + chmod +x "$desktop_file_path" + sudo -u "$user" cp "$desktop_file_path" "$(sudo -u "$user" xdg-user-dir DESKTOP)/" + fi + done +} + +#################################### + +if [ $# -eq 0 ]; then + echo "没有接收到参数,退出" + help + echo "OMG-IT-GOES-WRONG" + exit 1 +fi + +if [ "$(id -u)" != "0" ]; then + echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}" + echo "OMG-IT-GOES-WRONG" + exit 1 +fi + +package_name=$(dpkg-deb -f "$DEBPATH" Package) +echo "Package name is $package_name" +try_run_output=$(aptss --dry-run install "$DEBPATH") +try_run_ret="$?" +# 安装失败后进行 aptss 刷新,随后尝试安装 +if [ "$try_run_ret" -ne 0 ]; then + aptss update + try_run_output=$(aptss --dry-run install "$DEBPATH") + try_run_ret="$?" +fi + +if [ "$try_run_ret" = "0" ]; then ## 若安装检测成功 + dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yfq +else + echo "Package manager quit with exit code.Here is the log" + echo "包管理器以错误代码退出.日志如下" + echo + echo -e "${try_run_output}" + echo "OMG-IT-GOES-WRONG" + exit 1 +fi + +### 退出阶段 +if [ "$?" = "0" ]; then + if dpkg -s "$package_name" >/dev/null 2>&1; then + echo "软件包已安装:$package_name" + create_desktop_file + if [ "$DELETE_AFTER_INSTALL" = "1" ];then + rm "$DEBPATH" + echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" + else + echo "${TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB}" + fi + else + echo "软件包未安装:$package_name" + echo "安装异常!抛出错误" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi +else + echo "安装异常!抛出错误" + echo "OMG-IT-GOES-WRONG" + exit 1 +fi \ No newline at end of file From 74cc0fbce9eba98ce95a2ff6bdb22c9aa15a670d Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 4 Jun 2025 11:49:36 +0800 Subject: [PATCH 06/36] =?UTF-8?q?feat:=20=E5=AE=8C=E5=85=A8=E9=87=8D?= =?UTF-8?q?=E6=9E=84=20ssinstall?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssinstall | 23 +++ tool/ssinstall-local | 129 ------------- tool/ssinstall-neo | 432 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 455 insertions(+), 129 deletions(-) delete mode 100755 tool/ssinstall-local create mode 100755 tool/ssinstall-neo diff --git a/tool/ssinstall b/tool/ssinstall index f5370a3..16098d7 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -21,6 +21,28 @@ case $(arch) in esac echo "Spark Store Install script. 星火商店安装脚本" +parse_args() { + while [ $# -gt 0 ]; do + case "$1" in + -h | --help) + help + exit 0 + ;; + --delete-after-install) + DELETE_AFTER_INSTALL="1" + shift + ;; + *) + DEBPATH="$1" + ;; + esac + shift + done +} + +parse_args "$@" + +# 包含自动识别安装需求和用户交互业务代码 function pkexec_as_current_user() { local user=$(who | awk '{print $1}' | head -n 1) @@ -136,6 +158,7 @@ fi + if [ "$(id -u)" != "0" ]; then echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}" echo "OMG-IT-GOES-WRONG" diff --git a/tool/ssinstall-local b/tool/ssinstall-local deleted file mode 100755 index 94da042..0000000 --- a/tool/ssinstall-local +++ /dev/null @@ -1,129 +0,0 @@ -#!/bin/bash -SPARK_DOWNLOAD_SERVER_URL="https://d.spark-app.store/" -SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL="d.spark-app.store" -source /opt/durapps/spark-store/bin/bashimport/transhell.amber - -load_transhell_debug -export DEBIAN_FRONTEND=noninteractive - -help(){ - echo "Spark Store 安装脚本使用说明:" - echo "用法: $0 [选项] " - echo "" - echo "选项:" - echo " -h, --help 显示此帮助信息" - echo " --delete-after-install 安装完成后删除deb文件" - echo "" - echo "示例:" - echo " $0 /path/to/package.deb" - echo " $0 --delete-after-install /path/to/package.deb" -} - -parse_args() { - while [ $# -gt 0 ]; do - case "$1" in - -h | --help) - help - exit 0 - ;; - --delete-after-install) - DELETE_AFTER_INSTALL="1" - shift - ;; - *) - DEBPATH="$1" - ;; - esac - shift - done -} - -parse_args "$@" - -echo "Spark Store Install script. 星火商店安装脚本" - -function create_desktop_file() { - local user=$(who | awk '{print $1}' | head -n 1) - if [ -e $(sudo -u "$user" xdg-user-dir)/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop ];then - echo "It is configured that do not create desktop file. Give up" - else - exec_create_desktop_file - fi -} - -function exec_create_desktop_file() { - local user=$(who | awk '{print $1}' | head -n 1) - for desktop_file_path in $(dpkg -L "$package_name" |grep /usr/share/applications/ | awk '/\.desktop$/ {print}'); do - if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then - echo "$desktop_file_path is checked and will be installed to desktop" - sudo -u "$user" cp "$desktop_file_path" "$(sudo -u "$user" xdg-user-dir DESKTOP)/" - fi - done - for desktop_file_path in $(dpkg -L "$package_name" |grep /opt/apps/$package_name/entries/applications | awk '/\.desktop$/ {print}'); do - if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then - echo "$desktop_file_path is checked and will be installed to desktop" - chmod +x "$desktop_file_path" - sudo -u "$user" cp "$desktop_file_path" "$(sudo -u "$user" xdg-user-dir DESKTOP)/" - fi - done -} - -#################################### - -if [ $# -eq 0 ]; then - echo "没有接收到参数,退出" - help - echo "OMG-IT-GOES-WRONG" - exit 1 -fi - -if [ "$(id -u)" != "0" ]; then - echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}" - echo "OMG-IT-GOES-WRONG" - exit 1 -fi - -package_name=$(dpkg-deb -f "$DEBPATH" Package) -echo "Package name is $package_name" -try_run_output=$(aptss --dry-run install "$DEBPATH") -try_run_ret="$?" -# 安装失败后进行 aptss 刷新,随后尝试安装 -if [ "$try_run_ret" -ne 0 ]; then - aptss update - try_run_output=$(aptss --dry-run install "$DEBPATH") - try_run_ret="$?" -fi - -if [ "$try_run_ret" = "0" ]; then ## 若安装检测成功 - dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yfq -else - echo "Package manager quit with exit code.Here is the log" - echo "包管理器以错误代码退出.日志如下" - echo - echo -e "${try_run_output}" - echo "OMG-IT-GOES-WRONG" - exit 1 -fi - -### 退出阶段 -if [ "$?" = "0" ]; then - if dpkg -s "$package_name" >/dev/null 2>&1; then - echo "软件包已安装:$package_name" - create_desktop_file - if [ "$DELETE_AFTER_INSTALL" = "1" ];then - rm "$DEBPATH" - echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" - else - echo "${TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB}" - fi - else - echo "软件包未安装:$package_name" - echo "安装异常!抛出错误" - echo "OMG-IT-GOES-WRONG" - exit 1 - fi -else - echo "安装异常!抛出错误" - echo "OMG-IT-GOES-WRONG" - exit 1 -fi \ No newline at end of file diff --git a/tool/ssinstall-neo b/tool/ssinstall-neo new file mode 100755 index 0000000..6634b00 --- /dev/null +++ b/tool/ssinstall-neo @@ -0,0 +1,432 @@ +#!/bin/bash +# 初始化常量和全局变量 +readonly SPARK_DOWNLOAD_SERVER_URL="https://d.spark-app.store/" +readonly SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL="d.spark-app.store" +# ACE环境配置 - 修改此数组即可添加或删除支持的环境 +readonly ACE_ENVIRONMENTS=( + "bookworm-run:amber-ce-bookworm" + "trixie-run:amber-ce-trixie" + "deepin23-run:amber-ce-deepin23" +) +# 生成ACE环境参数帮助信息 +function generate_ace_help() { + local help_text="" + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + local ace_param="--${ace_entry#*:}" + help_text+=" $ace_param 使用${ace_entry%%:*} ACE容器安装\n" + done + echo -e "$help_text" +} +source /opt/durapps/spark-store/bin/bashimport/transhell.amber +# 脚本工作变量 +DELETE_AFTER_INSTALL="0" +DEBPATH="" +FORCE_ACE_ENV="" +FORCE_NATIVE="0" +NO_CREATE_DESKTOP="0" +FORCE_CREATE_DESKTOP="0" + +# 加载翻译和调试 +load_transhell_debug +export DEBIAN_FRONTEND=noninteractive +# 根据架构设置仓库URL +case $(arch) in + x86_64) STORE_URL="store" ;; + aarch64) STORE_URL="aarch64-store" ;; + loongarch64) STORE_URL="loong64-store" ;; +esac +# 帮助函数 +function show_help() { + echo "Spark Store Install script. 星火商店安装脚本" + echo "用法: $0 [选项] " + echo "选项:" + echo " -h, --help 显示帮助信息" + echo " --delete-after-install 安装成功后删除软件包" + echo " --no-create-desktop-entry 不创建桌面快捷方式" + echo " --force-create-desktop-entry 强制创建桌面快捷方式" + echo "$(generate_ace_help)" + echo " --native 只在主机安装,不使用ACE容器" +} +# 参数解析 +function parse_args() { + while [ $# -gt 0 ]; do + case "$1" in + -h|--help) + show_help + exit 0 + ;; + --delete-after-install) + DELETE_AFTER_INSTALL="1" + shift + ;; + --native) + FORCE_NATIVE="1" + shift + ;; + --no-create-desktop-entry) + NO_CREATE_DESKTOP="1" + shift + ;; + --force-create-desktop-entry) + FORCE_CREATE_DESKTOP="1" + shift + ;; + *) + # 检查是否为ACE环境参数 + local is_ace_param=0 + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + local ace_param="--${ace_entry#*:}" + if [ "$1" = "$ace_param" ]; then + FORCE_ACE_ENV="${ace_entry%%:*}" + is_ace_param=1 + shift + break + fi + done + + # 如果不是ACE参数,则视为DEB路径 + if [ "$is_ace_param" -eq 0 ]; then + DEBPATH="$1" + shift + fi + ;; + esac + done +} + +# 验证当前用户 +function validate_user() { + if [ "$(id -u)" != "0" ]; then + echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi +} + +# 验证文件存在或尝试下载 +function validate_or_download_file() { + if [ ! -f "$1" ]; then + echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST},Trying to redownload" + aptss update + FILEPATH=$(dirname "$1") + FILENAME=$(basename "$1") + PACKAGE_NAME=$(echo "$FILENAME" | sed -r 's/^([^_]+)_.*$/\1/') + VERSION=$(echo "$FILENAME" | sed -r 's/^[^_]+_([^_]+)_.*$/\1/') + pushd "${FILEPATH}" >/dev/null || exit 1 + aptss download "${PACKAGE_NAME}" + popd >/dev/null || exit 1 + + if [ ! -f "$1" ]; then + echo "OMG-IT-GOES-WRONG" + exit 1 + fi + fi +} + +# 哈希校验 +function hash_check() { + local PACKAGES_DATA_PATH="" + + # 检查可能的仓库位置 + if [ -e "/var/lib/aptss/lists/${SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL}_${STORE_URL}_Packages" ]; then + PACKAGES_DATA_PATH="/var/lib/aptss/lists/${SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL}_${STORE_URL}_Packages" + elif [ -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ]; then + PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" + else + PACKAGES_DATA_PATH="/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" + fi + + echo "正在运行包验证..." + echo "Running Spark Package Verify..." + + DEB_SHA512SUM=$(sha512sum "$1" | cut -d ' ' -f 1) + unset IS_SHA512SUM_CHECKED + IS_SHA512SUM_CHECKED=$(grep -F "$DEB_SHA512SUM" "$PACKAGES_DATA_PATH") +} + +# 确保aptss存在 +function ensure_aptss_exist() { + if command -v aptss &>/dev/null; then + aptss update + else + local deb_file="/tmp/spark-store-console-in-container_latest_all.deb" + + if ! wget -O "$deb_file" "https://amber-ce-resource.spark-app.store/store/depends/spark-store-console-in-container_latest_all.deb"; then + echo "下载 .deb 安装包失败" >&2 + return 1 + fi + + if ! apt install -y "$deb_file"; then + echo "安装 .deb 包失败" >&2 + rm -f "$deb_file" + return 1 + fi + rm -f "$deb_file" + + if ! command -v aptss &>/dev/null; then + echo "成功安装但未找到 aptss 命令" >&2 + return 1 + fi + fi +} +export -f ensure_aptss_exist + +# 确保ACE环境存在 +function ensure_ace_env() { + local ace_env_pkg="${1}" + + if ! dpkg -l "$ace_env_pkg" &>/dev/null; then + echo "ACE环境$ace_env_pkg未安装,正在尝试安装..." + zenity --info --text="首次使用$ace_env_pkg环境,重启或注销桌面后才能在启动器中展示,不影响应用启动。安装将在后台继续。" --title="ACE环境安装" & + if ! aptss install -y "$ace_env_pkg"; then + echo "安装$ace_env_pkg失败" + return 1 + fi + fi + return 0 +} +export user=$(who | awk '{print $1}' | head -n 1) +# 在桌面创建快捷方式 +function create_desktop_file() { + # 如果明确要求不要创建或明确要创建,则跳过配置文件检查 + if [ "$NO_CREATE_DESKTOP" -eq 1 ]; then + echo "根据参数要求,跳过创建桌面快捷方式" + return + fi + + if [ "$FORCE_CREATE_DESKTOP" -eq 0 ]; then + if [ -e "$(sudo -u "$user" xdg-user-dir)/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop" ]; then + echo "根据配置要求,跳过创建桌面快捷方式" + return + fi + fi + + exec_create_desktop_file +} +export CURRENT_USER_DIR_DESKTOP=$(sudo -u "$user" xdg-user-dir DESKTOP) +function exec_create_desktop_file() { + local desktop_files=() + + # 收集所有桌面文件 + desktop_files+=($(dpkg -L "$package_name" | grep '/usr/share/applications/.*\.desktop$')) + desktop_files+=($(dpkg -L "$package_name" | grep '/opt/apps/'"$package_name"'/entries/applications/.*\.desktop$')) + + for desktop_file_path in "${desktop_files[@]}"; do + if [ "$FORCE_CREATE_DESKTOP" -eq 1 ] || [ -z "$(grep 'NoDisplay=true' "$desktop_file_path")" ]; then + echo "$desktop_file_path is checked and will be installed to desktop" + chmod +x "$desktop_file_path" + sudo -u "$user" cp "$desktop_file_path" "${CURRENT_USER_DIR_DESKTOP}" + fi + done +} +export -f exec_create_desktop_file + +# 在ACE环境中创建桌面快捷方式 +function create_desktop_in_ace() { + local ace_cmd="$1" + local package_name="$2" + + # 如果明确要求不要创建,则直接返回 + if [ "$NO_CREATE_DESKTOP" -eq 1 ]; then + echo "根据参数要求,跳过在ACE中创建桌面快捷方式" + return 0 + fi + + # 如果是强制创建,或者没有配置禁止创建 + if [ "$FORCE_CREATE_DESKTOP" -eq 1 ] || ! $ace_cmd "[ -e ~/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop ]"; then + echo "在ACE环境中创建桌面快捷方式..." + export -f exec_create_desktop_file + export package_name + export FORCE_CREATE_DESKTOP + $ace_cmd "exec_create_desktop_file" + else + echo "根据ACE环境中的配置,跳过创建桌面快捷方式" + fi +} + +# 在指定ACE环境中安装 +function install_in_ace_env() { + local ace_cmd="$1" + local deb_path="$2" + local ace_env_pkg="${3#*:}" + + if ! ensure_ace_env "$ace_env_pkg"; then + return 1 + fi + + echo "----------------------------------------" + echo "正在尝试使用 $ace_cmd 环境安装..." + echo "----------------------------------------" + + # 在ACE环境中执行安装 + if ! $ace_cmd "ensure_aptss_exist && { dpkg -i '$deb_path' || aptss install '$deb_path' -yfq; }"; then + return 1 + fi + + return 0 +} + +# 在主机安装 +function install_in_host() { + local deb_path="$1" + + dpkg -i "$deb_path" || aptss install "$deb_path" -yfq + return $? +} + +# 自动尝试在各种环境中安装 +function auto_try_install() { + local deb_path="$1" + + # 首先尝试在主机安装 + if install_in_host "$deb_path"; then + return 0 + fi + + # 如果主机安装失败且不在强制本地模式,尝试ACE环境 + if [ "$FORCE_NATIVE" -eq 0 ]; then + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + local ace_cmd=${ace_entry%%:*} + + if command -v "$ace_cmd" >/dev/null 2>&1; then + if install_in_ace_env "$ace_cmd" "$deb_path" "$ace_entry"; then + # 在ACE环境中创建桌面快捷方式 + create_desktop_in_ace "$ace_cmd" "$package_name" + return 0 + fi + fi + done + fi + + return 1 +} + +# 清理安装后的文件 +function post_install_cleanup() { + local success=$1 + local deb_path="$2" + local package_name="$3" + + if [ "$success" -eq 0 ] && [ "$DELETE_AFTER_INSTALL" -eq "1" ]; then + # 检查是否安装在主机 + if [ "$FORCE_NATIVE" -eq 1 ] || [ -n "$FORCE_ACE_ENV" ]; then + if [ "$FORCE_NATIVE" -eq 1 ]; then + if dpkg -s "$package_name" >/dev/null 2>&1; then + echo "软件包已在主机安装:$package_name" + create_desktop_file + unlock_file "$deb_path" + rm "$deb_path" + echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" + else + echo "软件包未在主机安装:$package_name" + echo "安装异常!抛出错误" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi + else + # ACE环境中安装的情况,不检查主机dpkg数据库 + echo "软件包已在ACE环境安装:$package_name" + unlock_file "$deb_path" + rm "$deb_path" + echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" + fi + else + # 自动模式下,如果ACE安装成功也会走到这里 + echo "软件包已安装:$package_name" + unlock_file "$deb_path" + rm "$deb_path" + echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" + fi + else + echo "${TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB}" + if [ "$FORCE_NATIVE" -eq 1 ] && ! dpkg -s "$package_name" >/dev/null 2>&1; then + echo "软件包未在主机安装:$package_name" + echo "安装异常!抛出错误" + echo "OMG-IT-GOES-WRONG" + exit 1 + elif [ -n "$FORCE_ACE_ENV" ] && ! command -v "$FORCE_ACE_ENV" >/dev/null 2>&1; then + echo "指定的ACE环境不可用" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi + fi +} + +# 文件锁定/解锁函数 +function lock_file() { + chattr +i "$1" +} + +function unlock_file() { + chattr -i "$1" +} + +# 主安装流程 +function main_install() { + parse_args "$@" + + if [ -z "$DEBPATH" ]; then + echo "没有接收到参数,退出" + show_help + echo "OMG-IT-GOES-WRONG" + exit 1 + fi + + # 设置退出时的文件解锁 + trap 'unlock_file $DEBPATH' EXIT + validate_user + validate_or_download_file "$DEBPATH" + + DEBPATH=$(realpath "$DEBPATH") + lock_file "$DEBPATH" + + hash_check "$DEBPATH" + + if [ -z "$IS_SHA512SUM_CHECKED" ]; then + echo "尝试更新仓库信息重新校验" + aptss ssupdate + hash_check "$DEBPATH" + if [ -z "$IS_SHA512SUM_CHECKED" ]; then + echo -e "$TRANSHELL_CONTENT_HASH_CHECK_FAILED" + zenity --info --icon-name=spark-store --height 270 --width 500 --text "$TRANSHELL_CONTENT_HASH_CHECK_FAILED" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi + fi + + package_name=$(dpkg-deb -f "$DEBPATH" Package) + local install_success=1 + + if [ -n "$FORCE_ACE_ENV" ]; then + # 查找对应的ACE环境包名 + local ace_env_pkg="" + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + if [ "${ace_entry%%:*}" = "$FORCE_ACE_ENV" ]; then + ace_env_pkg="${ace_entry#*:}" + break + fi + done + + # 强制使用指定的ACE环境安装 + if command -v "$FORCE_ACE_ENV" >/dev/null 2>&1; then + install_in_ace_env "$FORCE_ACE_ENV" "$DEBPATH" "$ace_env_pkg" + install_success=$? + if [ "$install_success" -eq 0 ]; then + create_desktop_in_ace "$FORCE_ACE_ENV" "$package_name" + fi + else + echo "指定的ACE环境 $FORCE_ACE_ENV 不可用" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi + else + # 自动选择安装方式 + auto_try_install "$DEBPATH" + install_success=$? + fi + + post_install_cleanup "$install_success" "$DEBPATH" "$package_name" +} + +# 执行主函数 +main_install "$@" From b708b6311362bf17d9aa44ae8d533b1630fda653 Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 5 Jun 2025 12:13:30 +0800 Subject: [PATCH 07/36] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=AE=8C=E6=AF=95ssins?= =?UTF-8?q?tall?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssaudit | 577 +++++++++++++++++++++++++++--------------- tool/ssinstall | 607 +++++++++++++++++++++++++++------------------ tool/ssinstall-neo | 432 -------------------------------- 3 files changed, 749 insertions(+), 867 deletions(-) delete mode 100755 tool/ssinstall-neo diff --git a/tool/ssaudit b/tool/ssaudit index 013a0e4..d034227 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -1,93 +1,166 @@ #!/bin/bash -SPARK_DOWNLOAD_SERVER_URL="https://d.spark-app.store/" -SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL="d.spark-app.store" +# 初始化常量和全局变量 +readonly SPARK_DOWNLOAD_SERVER_URL="https://d.spark-app.store/" +readonly SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL="d.spark-app.store" +# ACE环境配置 - 修改此数组即可添加或删除支持的环境 +readonly ACE_ENVIRONMENTS=( + "bookworm-run:amber-ce-bookworm" + "trixie-run:amber-ce-trixie" + "deepin23-run:amber-ce-deepin23" + "sid-run:amber-ce-sid" +) +readonly ACE_ENVIRONMENTS_FOR_AUTOINSTALL=( + "bookworm-run:amber-ce-bookworm" + "trixie-run:amber-ce-trixie" +) +# 生成ACE环境参数帮助信息 +function generate_ace_help() { + local help_text="" + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + local ace_param="--${ace_entry#*:}" + help_text+=" $ace_param 使用${ace_entry%%:*} ACE容器安装\n" + done + echo -e "$help_text" +} source /opt/durapps/spark-store/bin/bashimport/transhell.amber +# 脚本工作变量 +DELETE_AFTER_INSTALL="0" +DEBPATH="" +FORCE_ACE_ENV="" +FORCE_NATIVE="0" +NO_CREATE_DESKTOP="0" +FORCE_CREATE_DESKTOP="0" +# 加载翻译和调试 load_transhell_debug export DEBIAN_FRONTEND=noninteractive - -trap 'unlock_file $DEBPATH' EXIT +# 根据架构设置仓库URL case $(arch) in - x86_64) - STORE_URL="store" - ;; - aarch64) - STORE_URL="aarch64-store" - ;; - loongarch64) - STORE_URL="loong64-store" - STORE_LIST_URL="-loong64" - ;; + x86_64) STORE_URL="store" ;; + aarch64) STORE_URL="aarch64-store" ;; + loongarch64) STORE_URL="loong64-store" ;; esac - -echo "Spark Store Audit script. 星火商店审核脚本" - -function pkexec_as_current_user() { - local user=$(who | awk '{print $1}' | head -n 1) - local uid=$(id -u "$user") - sudo -u "$user" DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$uid"/bus pkexec "$@" +# 帮助函数 +function show_help() { + echo "Spark Store Audit script. 星火商店审核脚本" + echo "用法: $0 [选项] " + echo "选项:" + echo " -h, --help 显示帮助信息" + echo " --delete-after-install 安装成功后删除软件包" + echo " --no-create-desktop-entry 不创建桌面快捷方式" + echo " --force-create-desktop-entry 强制创建桌面快捷方式" + echo "$(generate_ace_help)" + echo " --native 只在主机安装,不使用ACE容器" } -function create_desktop_file() { - local user=$(who | awk '{print $1}' | head -n 1) - if [ -e $(sudo -u "$user" xdg-user-dir)/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop ];then - echo "It is configured that do not create desktop file. Give up" - else - exec_create_desktop_file - fi -} -function exec_create_desktop_file() { - local user=$(who | awk '{print $1}' | head -n 1) - for desktop_file_path in $(dpkg -L "$package_name" |grep /usr/share/applications/ | awk '/\.desktop$/ {print}'); do - if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then - echo $desktop_file_path is checked and will be installed to desktop - sudo -u "$user" cp "$desktop_file_path" "$(sudo -u "$user" xdg-user-dir DESKTOP)/" - fi +# 参数解析 +function parse_args() { + while [ $# -gt 0 ]; do + case "$1" in + -h|--help) + show_help + exit 0 + ;; + --delete-after-install) + DELETE_AFTER_INSTALL="1" + shift + ;; + --native) + FORCE_NATIVE="1" + shift + ;; + --no-create-desktop-entry) + NO_CREATE_DESKTOP="1" + shift + ;; + --force-create-desktop-entry) + FORCE_CREATE_DESKTOP="1" + shift + ;; + *) + # 检查是否为ACE环境参数 + local is_ace_param=0 + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + local ace_param="--${ace_entry#*:}" + if [ "$1" = "$ace_param" ]; then + FORCE_ACE_ENV="${ace_entry%%:*}" + is_ace_param=1 + shift + break + fi + done + + # 如果不是ACE参数,则视为DEB路径 + if [ "$is_ace_param" -eq 0 ]; then + DEBPATH="$1" + shift + fi + ;; + esac done - for desktop_file_path in $(dpkg -L "$package_name" |grep /opt/apps/$package_name/entries/applications | awk '/\.desktop$/ {print}'); do - if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then - echo $desktop_file_path is checked and will be installed to desktop - chmod +x $desktop_file_path - sudo -u "$user" cp "$desktop_file_path" "$(sudo -u "$user" xdg-user-dir DESKTOP)/" - fi - done - - } - -function zenity() { - local user=$(who | awk '{print $1}' | head -n 1) - local uid=$(id -u "$user") - sudo -u "$user" DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$uid"/bus zenity "$@" +# 验证当前用户 +function validate_user() { + if [ "$(id -u)" != "0" ]; then + echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi } +# 验证文件存在或尝试下载 +function validate_or_download_file() { + if [ ! -f "$1" ]; then + echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST},Trying to redownload" + aptss update + FILEPATH=$(dirname "$1") + FILENAME=$(basename "$1") + PACKAGE_NAME=$(echo "$FILENAME" | sed -r 's/^([^_]+)_.*$/\1/') + VERSION=$(echo "$FILENAME" | sed -r 's/^[^_]+_([^_]+)_.*$/\1/') + pushd "${FILEPATH}" >/dev/null || exit 1 + aptss download "${PACKAGE_NAME}" + popd >/dev/null || exit 1 + + if [ ! -f "$1" ]; then + echo "OMG-IT-GOES-WRONG" + exit 1 + fi + fi +} + +# 哈希校验 function hash_check() { + local PACKAGES_DATA_PATH="" + + # 检查可能的仓库位置 + if [ -e "/var/lib/aptss/lists/${SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL}_${STORE_URL}_Packages" ]; then + PACKAGES_DATA_PATH="/var/lib/aptss/lists/${SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL}_${STORE_URL}_Packages" + elif [ -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ]; then + PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" + else + PACKAGES_DATA_PATH="/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" + fi - IS_SHA512SUM_CHECKED=skipped + echo "正在运行包验证..." + echo "Running Spark Package Verify..." + + DEB_SHA512SUM=$(sha512sum "$1" | cut -d ' ' -f 1) + unset IS_SHA512SUM_CHECKED + IS_SHA512SUM_CHECKED=$(grep -F "$DEB_SHA512SUM" "$PACKAGES_DATA_PATH") } -function lock_file(){ -chattr +i "$1" -} - -function unlock_file(){ -chattr -i "$1" -} - -function ensure_aptss_exist(){ - +# 确保aptss存在 +function ensure_aptss_exist() { if command -v aptss &>/dev/null; then aptss update else local deb_file="/tmp/spark-store-console-in-container_latest_all.deb" - # Download package if ! wget -O "$deb_file" "https://amber-ce-resource.spark-app.store/store/depends/spark-store-console-in-container_latest_all.deb"; then echo "下载 .deb 安装包失败" >&2 return 1 fi - # Install package if ! apt install -y "$deb_file"; then echo "安装 .deb 包失败" >&2 rm -f "$deb_file" @@ -95,7 +168,6 @@ function ensure_aptss_exist(){ fi rm -f "$deb_file" - # Verify installation if ! command -v aptss &>/dev/null; then echo "成功安装但未找到 aptss 命令" >&2 return 1 @@ -103,152 +175,265 @@ function ensure_aptss_exist(){ fi } export -f ensure_aptss_exist -#################################### -if [ $# -eq 0 ]; then - echo "没有接收到参数,退出" - echo "用法:$0 deb路径" - echo "OMG-IT-GOES-WRONG" - exit -fi - - - -if [ "$(id -u)" != "0" ]; then - echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}" - echo "OMG-IT-GOES-WRONG" - exit 1 -fi - -if [ ! -f "$1" ]; then - echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST},Trying to redownload" - FILEPATH=$(dirname "$1") - FILENAME=$(basename "$1") - PACKAGE_NAME=$(echo "$FILENAME" | sed -r 's/^([^_]+)_.*$/\1/') - VERSION=$(echo "$FILENAME" | sed -r 's/^[^_]+_([^_]+)_.*$/\1/') - pushd ${FILEPATH} - aptss download ${PACKAGE_NAME} - popd - if [ ! -f "$1" ]; then - echo "OMG-IT-GOES-WRONG" - exit 1 - else - DEBPATH=$(realpath "$1") +# 确保ACE环境存在 +function ensure_ace_env() { + local ace_env_pkg="${1}" + + if ! dpkg -l "$ace_env_pkg" &>/dev/null; then + echo "ACE环境$ace_env_pkg未安装,正在尝试安装..." + zenity --info --text="首次使用$ace_env_pkg环境,重启或注销桌面后才能在启动器中展示,不影响应用启动。安装将在后台继续。" --title="ACE环境安装" & + if ! aptss install -y "$ace_env_pkg"; then + echo "安装$ace_env_pkg失败" + return 1 + fi fi + return 0 +} +export user=$(who | awk '{print $1}' | head -n 1) +# 在桌面创建快捷方式 +function create_desktop_file() { + # 如果明确要求不要创建或明确要创建,则跳过配置文件检查 + if [ "$NO_CREATE_DESKTOP" -eq 1 ]; then + echo "根据参数要求,跳过创建桌面快捷方式" + return + fi + + if [ "$FORCE_CREATE_DESKTOP" -eq 0 ]; then + if [ -e "$(sudo -u "$user" xdg-user-dir)/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop" ]; then + echo "根据配置要求,跳过创建桌面快捷方式" + return + fi + fi + + exec_create_desktop_file +} +export CURRENT_USER_DIR_DESKTOP=$(sudo -u "$user" xdg-user-dir DESKTOP) +function exec_create_desktop_file() { + local desktop_files=() + + # 收集所有桌面文件 + desktop_files+=($(dpkg -L "$package_name" | grep '/usr/share/applications/.*\.desktop$')) + desktop_files+=($(dpkg -L "$package_name" | grep '/opt/apps/'"$package_name"'/entries/applications/.*\.desktop$')) + + for desktop_file_path in "${desktop_files[@]}"; do + if [ "$FORCE_CREATE_DESKTOP" -eq 1 ] || [ -z "$(grep 'NoDisplay=true' "$desktop_file_path")" ]; then + echo "$desktop_file_path is checked and will be installed to desktop" + chmod +x "$desktop_file_path" + sudo -u "$user" cp "$desktop_file_path" "${CURRENT_USER_DIR_DESKTOP}" + fi + done +} +export -f exec_create_desktop_file + +# 在ACE环境中创建桌面快捷方式 +function create_desktop_in_ace() { + local ace_cmd="$1" + local package_name="$2" + + # 如果明确要求不要创建,则直接返回 + if [ "$NO_CREATE_DESKTOP" -eq 1 ]; then + echo "根据参数要求,跳过在ACE中创建桌面快捷方式" + return 0 + fi + + # 如果是强制创建,或者没有配置禁止创建 + if [ "$FORCE_CREATE_DESKTOP" -eq 1 ] || ! $ace_cmd "[ -e ~/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop ]"; then + echo "在ACE环境中创建桌面快捷方式..." + export -f exec_create_desktop_file + export package_name + export FORCE_CREATE_DESKTOP + $ace_cmd "exec_create_desktop_file" else - DEBPATH=$(realpath "$1") -fi + echo "根据ACE环境中的配置,跳过创建桌面快捷方式" + fi +} -lock_file "$DEBPATH" +# 在指定ACE环境中安装 +function install_in_ace_env() { + local ace_cmd="$1" + local deb_path="$2" + local ace_env_pkg="${3#*:}" + + if ! ensure_ace_env "$ace_env_pkg"; then + return 1 + fi + + echo "----------------------------------------" + echo "正在尝试使用 $ace_cmd 环境安装..." + echo "----------------------------------------" + + # 在ACE环境中执行安装 + if ! $ace_cmd "ensure_aptss_exist && { dpkg -i '$deb_path' || aptss install '$deb_path' -yfq; }"; then + return 1 + fi + + return 0 +} -hash_check "$DEBPATH" +# 在主机安装 +function install_in_host() { + local deb_path="$1" + + dpkg -i "$deb_path" || aptss install "$deb_path" -yfq + return $? +} - - -if [ ! -z "$IS_SHA512SUM_CHECKED" ]; then - echo "校验跳过,开始安装" - echo "----------------------------------------------------------------------------------" -package_name=$(dpkg-deb -f "$DEBPATH" Package) -echo "Package name is $package_name" -try_run_output=$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh test-install-app "$DEBPATH") -try_run_ret="$?" -# 安装失败后进行 aptss 刷新,随后尝试在主机安装 -if [ "$try_run_ret" -ne 0 ]; then - aptss update - try_run_output=$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh test-install-app "$DEBPATH") - try_run_ret="$?" -fi - -if [ "$try_run_ret" -ne 0 ]; then ## 若安装检测仍然失败 - if [[ "$IS_ACE_ENV" == "" ]];then ## 如果未在ACE环境中 - # 定义按顺序尝试的ACE环境(命令:推荐安装包) - declare -a ace_commands_order=( - "bookworm-run:amber-ce-bookworm" - "trixie-run:amber-ce-trixie" - "deepin23-run:amber-ce-deepin23" - ) - - success=false - recommendation_msg="" - # 收集所有推荐信息 - for ace_entry in "${ace_commands_order[@]}"; do - recommendation_msg+="您可安装 ${ace_entry%%:*} 兼容环境后重试: ${ace_entry#*:}\n" - done - - # 按顺序尝试每个ACE环境 - for ace_entry in "${ace_commands_order[@]}"; do - ace_cmd=${ace_entry%%:*} - if command -v "$ace_cmd" >/dev/null 2>&1; then - echo "----------------------------------------" - echo "正在尝试使用 $ace_cmd 环境安装..." - echo "----------------------------------------" - - # 在ACE环境中执行安装检测 - $ace_cmd ensure_aptss_exist - try_run_output=$($ace_cmd aptss install --dry-run "$DEBPATH" 2>&1) - try_run_ret="$?" - - # 如果首次检测失败则更新后重试 - if [ "$try_run_ret" -ne 0 ]; then - $ace_cmd aptss update - try_run_output=$($ace_cmd aptss install --dry-run "$DEBPATH" 2>&1) - try_run_ret="$?" - fi - - # 最终检测结果处理 - if [ "$try_run_ret" -eq 0 ]; then - echo "----------------------------------------" - echo "在 $ace_cmd 环境中预检成功,开始安装..." - echo "----------------------------------------" - $ace_cmd 'dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yfq' - success=true - break # 跳出循环 - else - echo "----------------------------------------" - echo "在 $ace_cmd 环境中安装预检失败,错误信息:" - echo -e "${try_run_output}" - echo "----------------------------------------" +# 自动尝试在各种环境中安装 +function auto_try_install() { + local deb_path="$1" + + # 首先尝试在主机安装 + if install_in_host "$deb_path"; then + return 0 + fi + + # 如果主机安装失败且不在强制本地模式,尝试ACE环境 + if [ "$FORCE_NATIVE" -eq 0 ]; then + for ace_entry in "${ACE_ENVIRONMENTS_FOR_AUTOINSTALL[@]}"; do + local ace_cmd=${ace_entry%%:*} + local ace_env_pkg=${ace_entry#*:} + + # 确保ACE环境存在 + if ensure_ace_env "$ace_env_pkg"; then + if install_in_ace_env "$ace_cmd" "$deb_path" "$ace_env_pkg"; then + # 在ACE环境中创建桌面快捷方式 + create_desktop_in_ace "$ace_cmd" "$package_name" + return 0 fi fi done + fi + + return 1 +} - if ! $success; then - echo "OMG-IT-GOES-WRONG" - echo -e "${try_run_output}" - echo -e "所有ACE环境尝试失败,推荐安装以下任一兼容环境:\n${recommendation_msg}" - exit "$try_run_ret" +# 清理安装后的文件 +function post_install_cleanup() { + local success=$1 + local deb_path="$2" + local package_name="$3" + + if [ "$success" -eq 0 ] && [ "$DELETE_AFTER_INSTALL" -eq "1" ]; then + # 检查是否安装在主机 + if [ "$FORCE_NATIVE" -eq 1 ] || [ -n "$FORCE_ACE_ENV" ]; then + if [ "$FORCE_NATIVE" -eq 1 ]; then + if dpkg -s "$package_name" >/dev/null 2>&1; then + echo "软件包已在主机安装:$package_name" + create_desktop_file + unlock_file "$deb_path" + rm "$deb_path" + echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" + else + echo "软件包未在主机安装:$package_name" + echo "安装异常!抛出错误" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi + else + # ACE环境中安装的情况,不检查主机dpkg数据库 + echo "软件包已在ACE环境安装:$package_name" + unlock_file "$deb_path" + rm "$deb_path" + echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" + fi + else + # 自动模式下,如果ACE安装成功也会走到这里 + echo "软件包已安装:$package_name" + unlock_file "$deb_path" + rm "$deb_path" + echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" + fi + else + echo "${TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB}" + if [ "$FORCE_NATIVE" -eq 1 ] && ! dpkg -s "$package_name" >/dev/null 2>&1; then + echo "软件包未在主机安装:$package_name" + echo "安装异常!抛出错误" + echo "OMG-IT-GOES-WRONG" + exit 1 + elif [ -n "$FORCE_ACE_ENV" ] && ! command -v "$FORCE_ACE_ENV" >/dev/null 2>&1; then + echo "指定的ACE环境不可用" + echo "OMG-IT-GOES-WRONG" + exit 1 fi - else # 已经在ACE环境中仍失败直接退出 - echo "OMG-IT-GOES-WRONG" - echo -e "${try_run_output}" - exit "$try_run_ret" fi -else ## 如果主机安装检测成功 - dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yfq -fi +} -### 退出阶段保持不变 ### -if [ "$?" = "0" ] && [ "$2" = "--delete-after-install" ]; then - if dpkg -s "$package_name" >/dev/null 2>&1; then - echo "软件包已安装:$package_name" - create_desktop_file - unlock_file $DEBPATH - rm "$DEBPATH" - echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" - else - echo "软件包未安装:$package_name" - echo "安装异常!抛出错误" +# 文件锁定/解锁函数 +function lock_file() { + chattr +i "$1" +} + +function unlock_file() { + chattr -i "$1" +} + +# 主安装流程 +function main_install() { + parse_args "$@" + + if [ -z "$DEBPATH" ]; then + echo "没有接收到参数,退出" + show_help echo "OMG-IT-GOES-WRONG" + exit 1 fi -else - echo "${TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB}" - if dpkg -s "$package_name" >/dev/null 2>&1; then - echo "软件包已安装:$package_name" - create_desktop_file + + # 设置退出时的文件解锁 + trap 'unlock_file $DEBPATH' EXIT + validate_user + validate_or_download_file "$DEBPATH" + + DEBPATH=$(realpath "$DEBPATH") + lock_file "$DEBPATH" + +# hash_check "$DEBPATH" +# +# if [ -z "$IS_SHA512SUM_CHECKED" ]; then +# echo "尝试更新仓库信息重新校验" +# aptss ssupdate +# hash_check "$DEBPATH" +# if [ -z "$IS_SHA512SUM_CHECKED" ]; then +# echo -e "$TRANSHELL_CONTENT_HASH_CHECK_FAILED" +# zenity --info --icon-name=spark-store --height 270 --width 500 --text "$TRANSHELL_CONTENT_HASH_CHECK_FAILED" +# echo "OMG-IT-GOES-WRONG" +# exit 1 +# fi +# fi + + package_name=$(dpkg-deb -f "$DEBPATH" Package) + local install_success=1 + + if [ -n "$FORCE_ACE_ENV" ]; then + # 查找对应的ACE环境包名 + local ace_env_pkg="" + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + if [ "${ace_entry%%:*}" = "$FORCE_ACE_ENV" ]; then + ace_env_pkg="${ace_entry#*:}" + break + fi + done + + # 强制使用指定的ACE环境安装 + if command -v "$FORCE_ACE_ENV" >/dev/null 2>&1; then + install_in_ace_env "$FORCE_ACE_ENV" "$DEBPATH" "$ace_env_pkg" + install_success=$? + if [ "$install_success" -eq 0 ]; then + create_desktop_in_ace "$FORCE_ACE_ENV" "$package_name" + fi + else + echo "指定的ACE环境 $FORCE_ACE_ENV 不可用" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi else - echo "软件包未安装:$package_name" - echo "安装异常!抛出错误" - echo "OMG-IT-GOES-WRONG" + # 自动选择安装方式 + auto_try_install "$DEBPATH" + install_success=$? fi -fi -fi + + post_install_cleanup "$install_success" "$DEBPATH" "$package_name" +} + +# 执行主函数 +main_install "$@" diff --git a/tool/ssinstall b/tool/ssinstall index 16098d7..8de3203 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -1,105 +1,144 @@ #!/bin/bash -SPARK_DOWNLOAD_SERVER_URL="https://d.spark-app.store/" -SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL="d.spark-app.store" +# 初始化常量和全局变量 +readonly SPARK_DOWNLOAD_SERVER_URL="https://d.spark-app.store/" +readonly SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL="d.spark-app.store" +# ACE环境配置 - 修改此数组即可添加或删除支持的环境 +readonly ACE_ENVIRONMENTS=( + "bookworm-run:amber-ce-bookworm" + "trixie-run:amber-ce-trixie" + "deepin23-run:amber-ce-deepin23" + "sid-run:amber-ce-sid" +) +readonly ACE_ENVIRONMENTS_FOR_AUTOINSTALL=( + "bookworm-run:amber-ce-bookworm" + "trixie-run:amber-ce-trixie" +) +# 生成ACE环境参数帮助信息 +function generate_ace_help() { + local help_text="" + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + local ace_param="--${ace_entry#*:}" + help_text+=" $ace_param 使用${ace_entry%%:*} ACE容器安装\n" + done + echo -e "$help_text" +} source /opt/durapps/spark-store/bin/bashimport/transhell.amber +# 脚本工作变量 +DELETE_AFTER_INSTALL="0" +DEBPATH="" +FORCE_ACE_ENV="" +FORCE_NATIVE="0" +NO_CREATE_DESKTOP="0" +FORCE_CREATE_DESKTOP="0" +# 加载翻译和调试 load_transhell_debug export DEBIAN_FRONTEND=noninteractive - -trap 'unlock_file $DEBPATH' EXIT +# 根据架构设置仓库URL case $(arch) in - x86_64) - STORE_URL="store" - ;; - aarch64) - STORE_URL="aarch64-store" - ;; - loongarch64) - STORE_URL="loong64-store" - STORE_LIST_URL="-loong64" - ;; + x86_64) STORE_URL="store" ;; + aarch64) STORE_URL="aarch64-store" ;; + loongarch64) STORE_URL="loong64-store" ;; esac - -echo "Spark Store Install script. 星火商店安装脚本" -parse_args() { +# 帮助函数 +function show_help() { + echo "Spark Store Install script. 星火商店安装脚本" + echo "用法: $0 [选项] " + echo "选项:" + echo " -h, --help 显示帮助信息" + echo " --delete-after-install 安装成功后删除软件包" + echo " --no-create-desktop-entry 不创建桌面快捷方式" + echo " --force-create-desktop-entry 强制创建桌面快捷方式" + echo "$(generate_ace_help)" + echo " --native 只在主机安装,不使用ACE容器" +} +# 参数解析 +function parse_args() { while [ $# -gt 0 ]; do case "$1" in - -h | --help) - help - exit 0 - ;; - --delete-after-install) - DELETE_AFTER_INSTALL="1" - shift - ;; - *) - DEBPATH="$1" - ;; + -h|--help) + show_help + exit 0 + ;; + --delete-after-install) + DELETE_AFTER_INSTALL="1" + shift + ;; + --native) + FORCE_NATIVE="1" + shift + ;; + --no-create-desktop-entry) + NO_CREATE_DESKTOP="1" + shift + ;; + --force-create-desktop-entry) + FORCE_CREATE_DESKTOP="1" + shift + ;; + *) + # 检查是否为ACE环境参数 + local is_ace_param=0 + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + local ace_param="--${ace_entry#*:}" + if [ "$1" = "$ace_param" ]; then + FORCE_ACE_ENV="${ace_entry%%:*}" + is_ace_param=1 + shift + break + fi + done + + # 如果不是ACE参数,则视为DEB路径 + if [ "$is_ace_param" -eq 0 ]; then + DEBPATH="$1" + shift + fi + ;; esac - shift done } -parse_args "$@" - -# 包含自动识别安装需求和用户交互业务代码 - -function pkexec_as_current_user() { - local user=$(who | awk '{print $1}' | head -n 1) - local uid=$(id -u "$user") - sudo -u "$user" DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$uid"/bus pkexec "$@" -} -function create_desktop_file() { - local user=$(who | awk '{print $1}' | head -n 1) - if [ -e $(sudo -u "$user" xdg-user-dir)/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop ];then - echo "It is configured that do not create desktop file. Give up" - else - exec_create_desktop_file - fi -} -function exec_create_desktop_file() { - local user=$(who | awk '{print $1}' | head -n 1) - for desktop_file_path in $(dpkg -L "$package_name" |grep /usr/share/applications/ | awk '/\.desktop$/ {print}'); do - if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then - echo $desktop_file_path is checked and will be installed to desktop - sudo -u "$user" cp "$desktop_file_path" "$(sudo -u "$user" xdg-user-dir DESKTOP)/" - fi - done - for desktop_file_path in $(dpkg -L "$package_name" |grep /opt/apps/$package_name/entries/applications | awk '/\.desktop$/ {print}'); do - if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then - echo $desktop_file_path is checked and will be installed to desktop - chmod +x $desktop_file_path - sudo -u "$user" cp "$desktop_file_path" "$(sudo -u "$user" xdg-user-dir DESKTOP)/" - fi - done - - -} - - -function zenity() { - local user=$(who | awk '{print $1}' | head -n 1) - local uid=$(id -u "$user") - sudo -u "$user" DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$uid"/bus zenity "$@" -} - -function hash_check() { - if [ ! -e "/var/lib/aptss/lists/${SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL}_${STORE_URL}_Packages" ] && \ - [ ! -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && \ - [ ! -e "/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store_${STORE_URL}_Packages" ]; then - echo "接收星火仓库软件信息中..." - aptss ssupdate +# 验证当前用户 +function validate_user() { + if [ "$(id -u)" != "0" ]; then + echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}" + echo "OMG-IT-GOES-WRONG" + exit 1 fi +} +# 验证文件存在或尝试下载 +function validate_or_download_file() { + if [ ! -f "$1" ]; then + echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST},Trying to redownload" + aptss update + FILEPATH=$(dirname "$1") + FILENAME=$(basename "$1") + PACKAGE_NAME=$(echo "$FILENAME" | sed -r 's/^([^_]+)_.*$/\1/') + VERSION=$(echo "$FILENAME" | sed -r 's/^[^_]+_([^_]+)_.*$/\1/') + pushd "${FILEPATH}" >/dev/null || exit 1 + aptss download "${PACKAGE_NAME}" + popd >/dev/null || exit 1 + + if [ ! -f "$1" ]; then + echo "OMG-IT-GOES-WRONG" + exit 1 + fi + fi +} + +# 哈希校验 +function hash_check() { + local PACKAGES_DATA_PATH="" + + # 检查可能的仓库位置 if [ -e "/var/lib/aptss/lists/${SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL}_${STORE_URL}_Packages" ]; then PACKAGES_DATA_PATH="/var/lib/aptss/lists/${SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL}_${STORE_URL}_Packages" - echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名仓库配置" elif [ -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ]; then PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" - echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是d域名单目录仓库配置" else PACKAGES_DATA_PATH="/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" - echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是SDU镜像仓库配置" fi echo "正在运行包验证..." @@ -107,31 +146,21 @@ function hash_check() { DEB_SHA512SUM=$(sha512sum "$1" | cut -d ' ' -f 1) unset IS_SHA512SUM_CHECKED - IS_SHA512SUM_CHECKED=$(cat "$PACKAGES_DATA_PATH" | grep "$DEB_SHA512SUM") + IS_SHA512SUM_CHECKED=$(grep -F "$DEB_SHA512SUM" "$PACKAGES_DATA_PATH") } -function lock_file(){ -chattr +i "$1" -} - -function unlock_file(){ -chattr -i "$1" -} - -function ensure_aptss_exist(){ - +# 确保aptss存在 +function ensure_aptss_exist() { if command -v aptss &>/dev/null; then aptss update else local deb_file="/tmp/spark-store-console-in-container_latest_all.deb" - # Download package if ! wget -O "$deb_file" "https://amber-ce-resource.spark-app.store/store/depends/spark-store-console-in-container_latest_all.deb"; then echo "下载 .deb 安装包失败" >&2 return 1 fi - # Install package if ! apt install -y "$deb_file"; then echo "安装 .deb 包失败" >&2 rm -f "$deb_file" @@ -139,7 +168,6 @@ function ensure_aptss_exist(){ fi rm -f "$deb_file" - # Verify installation if ! command -v aptss &>/dev/null; then echo "成功安装但未找到 aptss 命令" >&2 return 1 @@ -147,164 +175,265 @@ function ensure_aptss_exist(){ fi } export -f ensure_aptss_exist -#################################### -if [ $# -eq 0 ]; then - echo "没有接收到参数,退出" - echo "用法:$0 deb路径" - echo "OMG-IT-GOES-WRONG" - exit -fi - - - - -if [ "$(id -u)" != "0" ]; then - echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}" - echo "OMG-IT-GOES-WRONG" - exit 1 -fi - -if [ ! -f "$1" ]; then - echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST},Trying to redownload" - aptss update - FILEPATH=$(dirname "$1") - FILENAME=$(basename "$1") - PACKAGE_NAME=$(echo "$FILENAME" | sed -r 's/^([^_]+)_.*$/\1/') - VERSION=$(echo "$FILENAME" | sed -r 's/^[^_]+_([^_]+)_.*$/\1/') - pushd ${FILEPATH} - aptss download ${PACKAGE_NAME} - popd - if [ ! -f "$1" ]; then - echo "OMG-IT-GOES-WRONG" - exit 1 - else - DEBPATH=$(realpath "$1") +# 确保ACE环境存在 +function ensure_ace_env() { + local ace_env_pkg="${1}" + + if ! dpkg -l "$ace_env_pkg" &>/dev/null; then + echo "ACE环境$ace_env_pkg未安装,正在尝试安装..." + zenity --info --text="首次使用$ace_env_pkg环境,重启或注销桌面后才能在启动器中展示,不影响应用启动。安装将在后台继续。" --title="ACE环境安装" & + if ! aptss install -y "$ace_env_pkg"; then + echo "安装$ace_env_pkg失败" + return 1 + fi fi + return 0 +} +export user=$(who | awk '{print $1}' | head -n 1) +# 在桌面创建快捷方式 +function create_desktop_file() { + # 如果明确要求不要创建或明确要创建,则跳过配置文件检查 + if [ "$NO_CREATE_DESKTOP" -eq 1 ]; then + echo "根据参数要求,跳过创建桌面快捷方式" + return + fi + + if [ "$FORCE_CREATE_DESKTOP" -eq 0 ]; then + if [ -e "$(sudo -u "$user" xdg-user-dir)/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop" ]; then + echo "根据配置要求,跳过创建桌面快捷方式" + return + fi + fi + + exec_create_desktop_file +} +export CURRENT_USER_DIR_DESKTOP=$(sudo -u "$user" xdg-user-dir DESKTOP) +function exec_create_desktop_file() { + local desktop_files=() + + # 收集所有桌面文件 + desktop_files+=($(dpkg -L "$package_name" | grep '/usr/share/applications/.*\.desktop$')) + desktop_files+=($(dpkg -L "$package_name" | grep '/opt/apps/'"$package_name"'/entries/applications/.*\.desktop$')) + + for desktop_file_path in "${desktop_files[@]}"; do + if [ "$FORCE_CREATE_DESKTOP" -eq 1 ] || [ -z "$(grep 'NoDisplay=true' "$desktop_file_path")" ]; then + echo "$desktop_file_path is checked and will be installed to desktop" + chmod +x "$desktop_file_path" + sudo -u "$user" cp "$desktop_file_path" "${CURRENT_USER_DIR_DESKTOP}" + fi + done +} +export -f exec_create_desktop_file + +# 在ACE环境中创建桌面快捷方式 +function create_desktop_in_ace() { + local ace_cmd="$1" + local package_name="$2" + + # 如果明确要求不要创建,则直接返回 + if [ "$NO_CREATE_DESKTOP" -eq 1 ]; then + echo "根据参数要求,跳过在ACE中创建桌面快捷方式" + return 0 + fi + + # 如果是强制创建,或者没有配置禁止创建 + if [ "$FORCE_CREATE_DESKTOP" -eq 1 ] || ! $ace_cmd "[ -e ~/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop ]"; then + echo "在ACE环境中创建桌面快捷方式..." + export -f exec_create_desktop_file + export package_name + export FORCE_CREATE_DESKTOP + $ace_cmd "exec_create_desktop_file" else - DEBPATH=$(realpath "$1") -fi + echo "根据ACE环境中的配置,跳过创建桌面快捷方式" + fi +} -lock_file "$DEBPATH" +# 在指定ACE环境中安装 +function install_in_ace_env() { + local ace_cmd="$1" + local deb_path="$2" + local ace_env_pkg="${3#*:}" + + if ! ensure_ace_env "$ace_env_pkg"; then + return 1 + fi + + echo "----------------------------------------" + echo "正在尝试使用 $ace_cmd 环境安装..." + echo "----------------------------------------" + + # 在ACE环境中执行安装 + if ! $ace_cmd "ensure_aptss_exist && { dpkg -i '$deb_path' || aptss install '$deb_path' -yfq; }"; then + return 1 + fi + + return 0 +} -hash_check "$DEBPATH" +# 在主机安装 +function install_in_host() { + local deb_path="$1" + + dpkg -i "$deb_path" || aptss install "$deb_path" -yfq + return $? +} -if [ -z "$IS_SHA512SUM_CHECKED" ]; then - echo "尝试更新仓库信息重新校验" - aptss ssupdate - hash_check "$DEBPATH" - if [ -z "$IS_SHA512SUM_CHECKED" ]; then - echo -e "$TRANSHELL_CONTENT_HASH_CHECK_FAILED" - zenity --info --icon-name=spark-store --height 270 --width 500 --text "$TRANSHELL_CONTENT_HASH_CHECK_FAILED" - echo "OMG-IT-GOES-WRONG" - exit 1 - fi -fi - -if [ ! -z "$IS_SHA512SUM_CHECKED" ]; then - echo "校验成功,开始安装" - echo "----------------------------------------------------------------------------------" -package_name=$(dpkg-deb -f "$DEBPATH" Package) -echo "Package name is $package_name" -try_run_output=$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh test-install-app "$DEBPATH") -try_run_ret="$?" -# 安装失败后进行 aptss 刷新,随后尝试在主机安装 -if [ "$try_run_ret" -ne 0 ]; then - aptss update - try_run_output=$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh test-install-app "$DEBPATH") - try_run_ret="$?" -fi - -if [ "$try_run_ret" -ne 0 ]; then ## 若安装检测仍然失败 - if [[ "$IS_ACE_ENV" == "" ]];then ## 如果未在ACE环境中 - # 定义按顺序尝试的ACE环境(命令:推荐安装包) - declare -a ace_commands_order=( - "bookworm-run:amber-ce-bookworm" - "trixie-run:amber-ce-trixie" - "deepin23-run:amber-ce-deepin23" - ) - - success=false - recommendation_msg="" - # 收集所有推荐信息 - for ace_entry in "${ace_commands_order[@]}"; do - recommendation_msg+="您可安装 ${ace_entry%%:*} 兼容环境后重试: ${ace_entry#*:}\n" - done - - # 按顺序尝试每个ACE环境 - for ace_entry in "${ace_commands_order[@]}"; do - ace_cmd=${ace_entry%%:*} - if command -v "$ace_cmd" >/dev/null 2>&1; then - echo "----------------------------------------" - echo "正在尝试使用 $ace_cmd 环境安装..." - echo "----------------------------------------" - - # 在ACE环境中执行安装检测 - $ace_cmd ensure_aptss_exist - try_run_output=$($ace_cmd aptss install --dry-run "$DEBPATH" 2>&1) - try_run_ret="$?" - - # 如果首次检测失败则更新后重试 - if [ "$try_run_ret" -ne 0 ]; then - $ace_cmd aptss update - try_run_output=$($ace_cmd aptss install --dry-run "$DEBPATH" 2>&1) - try_run_ret="$?" - fi - - # 最终检测结果处理 - if [ "$try_run_ret" -eq 0 ]; then - echo "----------------------------------------" - echo "在 $ace_cmd 环境中预检成功,开始安装..." - echo "----------------------------------------" - $ace_cmd 'dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yfq' - success=true - break # 跳出循环 - else - echo "----------------------------------------" - echo "在 $ace_cmd 环境中安装预检失败,错误信息:" - echo -e "${try_run_output}" - echo "----------------------------------------" +# 自动尝试在各种环境中安装 +function auto_try_install() { + local deb_path="$1" + + # 首先尝试在主机安装 + if install_in_host "$deb_path"; then + return 0 + fi + + # 如果主机安装失败且不在强制本地模式,尝试ACE环境 + if [ "$FORCE_NATIVE" -eq 0 ]; then + for ace_entry in "${ACE_ENVIRONMENTS_FOR_AUTOINSTALL[@]}"; do + local ace_cmd=${ace_entry%%:*} + local ace_env_pkg=${ace_entry#*:} + + # 确保ACE环境存在 + if ensure_ace_env "$ace_env_pkg"; then + if install_in_ace_env "$ace_cmd" "$deb_path" "$ace_env_pkg"; then + # 在ACE环境中创建桌面快捷方式 + create_desktop_in_ace "$ace_cmd" "$package_name" + return 0 fi fi done + fi + + return 1 +} - if ! $success; then - echo "OMG-IT-GOES-WRONG" - echo -e "${try_run_output}" - echo -e "所有ACE环境尝试失败,推荐安装以下任一兼容环境:\n${recommendation_msg}" - exit "$try_run_ret" +# 清理安装后的文件 +function post_install_cleanup() { + local success=$1 + local deb_path="$2" + local package_name="$3" + + if [ "$success" -eq 0 ] && [ "$DELETE_AFTER_INSTALL" -eq "1" ]; then + # 检查是否安装在主机 + if [ "$FORCE_NATIVE" -eq 1 ] || [ -n "$FORCE_ACE_ENV" ]; then + if [ "$FORCE_NATIVE" -eq 1 ]; then + if dpkg -s "$package_name" >/dev/null 2>&1; then + echo "软件包已在主机安装:$package_name" + create_desktop_file + unlock_file "$deb_path" + rm "$deb_path" + echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" + else + echo "软件包未在主机安装:$package_name" + echo "安装异常!抛出错误" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi + else + # ACE环境中安装的情况,不检查主机dpkg数据库 + echo "软件包已在ACE环境安装:$package_name" + unlock_file "$deb_path" + rm "$deb_path" + echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" + fi + else + # 自动模式下,如果ACE安装成功也会走到这里 + echo "软件包已安装:$package_name" + unlock_file "$deb_path" + rm "$deb_path" + echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" + fi + else + echo "${TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB}" + if [ "$FORCE_NATIVE" -eq 1 ] && ! dpkg -s "$package_name" >/dev/null 2>&1; then + echo "软件包未在主机安装:$package_name" + echo "安装异常!抛出错误" + echo "OMG-IT-GOES-WRONG" + exit 1 + elif [ -n "$FORCE_ACE_ENV" ] && ! command -v "$FORCE_ACE_ENV" >/dev/null 2>&1; then + echo "指定的ACE环境不可用" + echo "OMG-IT-GOES-WRONG" + exit 1 fi - else # 已经在ACE环境中仍失败直接退出 - echo "OMG-IT-GOES-WRONG" - echo -e "${try_run_output}" - exit "$try_run_ret" fi -else ## 如果主机安装检测成功 - dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yfq -fi +} -### 退出阶段保持不变 ### -if [ "$?" = "0" ] && [ "$2" = "--delete-after-install" ]; then - if dpkg -s "$package_name" >/dev/null 2>&1; then - echo "软件包已安装:$package_name" - create_desktop_file - unlock_file $DEBPATH - rm "$DEBPATH" - echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" - else - echo "软件包未安装:$package_name" - echo "安装异常!抛出错误" +# 文件锁定/解锁函数 +function lock_file() { + chattr +i "$1" +} + +function unlock_file() { + chattr -i "$1" +} + +# 主安装流程 +function main_install() { + parse_args "$@" + + if [ -z "$DEBPATH" ]; then + echo "没有接收到参数,退出" + show_help echo "OMG-IT-GOES-WRONG" + exit 1 fi -else - echo "${TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB}" - if dpkg -s "$package_name" >/dev/null 2>&1; then - echo "软件包已安装:$package_name" - create_desktop_file + + # 设置退出时的文件解锁 + trap 'unlock_file $DEBPATH' EXIT + validate_user + validate_or_download_file "$DEBPATH" + + DEBPATH=$(realpath "$DEBPATH") + lock_file "$DEBPATH" + + hash_check "$DEBPATH" + + if [ -z "$IS_SHA512SUM_CHECKED" ]; then + echo "尝试更新仓库信息重新校验" + aptss ssupdate + hash_check "$DEBPATH" + if [ -z "$IS_SHA512SUM_CHECKED" ]; then + echo -e "$TRANSHELL_CONTENT_HASH_CHECK_FAILED" + zenity --info --icon-name=spark-store --height 270 --width 500 --text "$TRANSHELL_CONTENT_HASH_CHECK_FAILED" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi + fi + + package_name=$(dpkg-deb -f "$DEBPATH" Package) + local install_success=1 + + if [ -n "$FORCE_ACE_ENV" ]; then + # 查找对应的ACE环境包名 + local ace_env_pkg="" + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + if [ "${ace_entry%%:*}" = "$FORCE_ACE_ENV" ]; then + ace_env_pkg="${ace_entry#*:}" + break + fi + done + + # 强制使用指定的ACE环境安装 + if command -v "$FORCE_ACE_ENV" >/dev/null 2>&1; then + install_in_ace_env "$FORCE_ACE_ENV" "$DEBPATH" "$ace_env_pkg" + install_success=$? + if [ "$install_success" -eq 0 ]; then + create_desktop_in_ace "$FORCE_ACE_ENV" "$package_name" + fi + else + echo "指定的ACE环境 $FORCE_ACE_ENV 不可用" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi else - echo "软件包未安装:$package_name" - echo "安装异常!抛出错误" - echo "OMG-IT-GOES-WRONG" + # 自动选择安装方式 + auto_try_install "$DEBPATH" + install_success=$? fi -fi -fi + + post_install_cleanup "$install_success" "$DEBPATH" "$package_name" +} + +# 执行主函数 +main_install "$@" diff --git a/tool/ssinstall-neo b/tool/ssinstall-neo deleted file mode 100755 index 6634b00..0000000 --- a/tool/ssinstall-neo +++ /dev/null @@ -1,432 +0,0 @@ -#!/bin/bash -# 初始化常量和全局变量 -readonly SPARK_DOWNLOAD_SERVER_URL="https://d.spark-app.store/" -readonly SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL="d.spark-app.store" -# ACE环境配置 - 修改此数组即可添加或删除支持的环境 -readonly ACE_ENVIRONMENTS=( - "bookworm-run:amber-ce-bookworm" - "trixie-run:amber-ce-trixie" - "deepin23-run:amber-ce-deepin23" -) -# 生成ACE环境参数帮助信息 -function generate_ace_help() { - local help_text="" - for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do - local ace_param="--${ace_entry#*:}" - help_text+=" $ace_param 使用${ace_entry%%:*} ACE容器安装\n" - done - echo -e "$help_text" -} -source /opt/durapps/spark-store/bin/bashimport/transhell.amber -# 脚本工作变量 -DELETE_AFTER_INSTALL="0" -DEBPATH="" -FORCE_ACE_ENV="" -FORCE_NATIVE="0" -NO_CREATE_DESKTOP="0" -FORCE_CREATE_DESKTOP="0" - -# 加载翻译和调试 -load_transhell_debug -export DEBIAN_FRONTEND=noninteractive -# 根据架构设置仓库URL -case $(arch) in - x86_64) STORE_URL="store" ;; - aarch64) STORE_URL="aarch64-store" ;; - loongarch64) STORE_URL="loong64-store" ;; -esac -# 帮助函数 -function show_help() { - echo "Spark Store Install script. 星火商店安装脚本" - echo "用法: $0 [选项] " - echo "选项:" - echo " -h, --help 显示帮助信息" - echo " --delete-after-install 安装成功后删除软件包" - echo " --no-create-desktop-entry 不创建桌面快捷方式" - echo " --force-create-desktop-entry 强制创建桌面快捷方式" - echo "$(generate_ace_help)" - echo " --native 只在主机安装,不使用ACE容器" -} -# 参数解析 -function parse_args() { - while [ $# -gt 0 ]; do - case "$1" in - -h|--help) - show_help - exit 0 - ;; - --delete-after-install) - DELETE_AFTER_INSTALL="1" - shift - ;; - --native) - FORCE_NATIVE="1" - shift - ;; - --no-create-desktop-entry) - NO_CREATE_DESKTOP="1" - shift - ;; - --force-create-desktop-entry) - FORCE_CREATE_DESKTOP="1" - shift - ;; - *) - # 检查是否为ACE环境参数 - local is_ace_param=0 - for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do - local ace_param="--${ace_entry#*:}" - if [ "$1" = "$ace_param" ]; then - FORCE_ACE_ENV="${ace_entry%%:*}" - is_ace_param=1 - shift - break - fi - done - - # 如果不是ACE参数,则视为DEB路径 - if [ "$is_ace_param" -eq 0 ]; then - DEBPATH="$1" - shift - fi - ;; - esac - done -} - -# 验证当前用户 -function validate_user() { - if [ "$(id -u)" != "0" ]; then - echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}" - echo "OMG-IT-GOES-WRONG" - exit 1 - fi -} - -# 验证文件存在或尝试下载 -function validate_or_download_file() { - if [ ! -f "$1" ]; then - echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST},Trying to redownload" - aptss update - FILEPATH=$(dirname "$1") - FILENAME=$(basename "$1") - PACKAGE_NAME=$(echo "$FILENAME" | sed -r 's/^([^_]+)_.*$/\1/') - VERSION=$(echo "$FILENAME" | sed -r 's/^[^_]+_([^_]+)_.*$/\1/') - pushd "${FILEPATH}" >/dev/null || exit 1 - aptss download "${PACKAGE_NAME}" - popd >/dev/null || exit 1 - - if [ ! -f "$1" ]; then - echo "OMG-IT-GOES-WRONG" - exit 1 - fi - fi -} - -# 哈希校验 -function hash_check() { - local PACKAGES_DATA_PATH="" - - # 检查可能的仓库位置 - if [ -e "/var/lib/aptss/lists/${SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL}_${STORE_URL}_Packages" ]; then - PACKAGES_DATA_PATH="/var/lib/aptss/lists/${SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL}_${STORE_URL}_Packages" - elif [ -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ]; then - PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" - else - PACKAGES_DATA_PATH="/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" - fi - - echo "正在运行包验证..." - echo "Running Spark Package Verify..." - - DEB_SHA512SUM=$(sha512sum "$1" | cut -d ' ' -f 1) - unset IS_SHA512SUM_CHECKED - IS_SHA512SUM_CHECKED=$(grep -F "$DEB_SHA512SUM" "$PACKAGES_DATA_PATH") -} - -# 确保aptss存在 -function ensure_aptss_exist() { - if command -v aptss &>/dev/null; then - aptss update - else - local deb_file="/tmp/spark-store-console-in-container_latest_all.deb" - - if ! wget -O "$deb_file" "https://amber-ce-resource.spark-app.store/store/depends/spark-store-console-in-container_latest_all.deb"; then - echo "下载 .deb 安装包失败" >&2 - return 1 - fi - - if ! apt install -y "$deb_file"; then - echo "安装 .deb 包失败" >&2 - rm -f "$deb_file" - return 1 - fi - rm -f "$deb_file" - - if ! command -v aptss &>/dev/null; then - echo "成功安装但未找到 aptss 命令" >&2 - return 1 - fi - fi -} -export -f ensure_aptss_exist - -# 确保ACE环境存在 -function ensure_ace_env() { - local ace_env_pkg="${1}" - - if ! dpkg -l "$ace_env_pkg" &>/dev/null; then - echo "ACE环境$ace_env_pkg未安装,正在尝试安装..." - zenity --info --text="首次使用$ace_env_pkg环境,重启或注销桌面后才能在启动器中展示,不影响应用启动。安装将在后台继续。" --title="ACE环境安装" & - if ! aptss install -y "$ace_env_pkg"; then - echo "安装$ace_env_pkg失败" - return 1 - fi - fi - return 0 -} -export user=$(who | awk '{print $1}' | head -n 1) -# 在桌面创建快捷方式 -function create_desktop_file() { - # 如果明确要求不要创建或明确要创建,则跳过配置文件检查 - if [ "$NO_CREATE_DESKTOP" -eq 1 ]; then - echo "根据参数要求,跳过创建桌面快捷方式" - return - fi - - if [ "$FORCE_CREATE_DESKTOP" -eq 0 ]; then - if [ -e "$(sudo -u "$user" xdg-user-dir)/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop" ]; then - echo "根据配置要求,跳过创建桌面快捷方式" - return - fi - fi - - exec_create_desktop_file -} -export CURRENT_USER_DIR_DESKTOP=$(sudo -u "$user" xdg-user-dir DESKTOP) -function exec_create_desktop_file() { - local desktop_files=() - - # 收集所有桌面文件 - desktop_files+=($(dpkg -L "$package_name" | grep '/usr/share/applications/.*\.desktop$')) - desktop_files+=($(dpkg -L "$package_name" | grep '/opt/apps/'"$package_name"'/entries/applications/.*\.desktop$')) - - for desktop_file_path in "${desktop_files[@]}"; do - if [ "$FORCE_CREATE_DESKTOP" -eq 1 ] || [ -z "$(grep 'NoDisplay=true' "$desktop_file_path")" ]; then - echo "$desktop_file_path is checked and will be installed to desktop" - chmod +x "$desktop_file_path" - sudo -u "$user" cp "$desktop_file_path" "${CURRENT_USER_DIR_DESKTOP}" - fi - done -} -export -f exec_create_desktop_file - -# 在ACE环境中创建桌面快捷方式 -function create_desktop_in_ace() { - local ace_cmd="$1" - local package_name="$2" - - # 如果明确要求不要创建,则直接返回 - if [ "$NO_CREATE_DESKTOP" -eq 1 ]; then - echo "根据参数要求,跳过在ACE中创建桌面快捷方式" - return 0 - fi - - # 如果是强制创建,或者没有配置禁止创建 - if [ "$FORCE_CREATE_DESKTOP" -eq 1 ] || ! $ace_cmd "[ -e ~/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop ]"; then - echo "在ACE环境中创建桌面快捷方式..." - export -f exec_create_desktop_file - export package_name - export FORCE_CREATE_DESKTOP - $ace_cmd "exec_create_desktop_file" - else - echo "根据ACE环境中的配置,跳过创建桌面快捷方式" - fi -} - -# 在指定ACE环境中安装 -function install_in_ace_env() { - local ace_cmd="$1" - local deb_path="$2" - local ace_env_pkg="${3#*:}" - - if ! ensure_ace_env "$ace_env_pkg"; then - return 1 - fi - - echo "----------------------------------------" - echo "正在尝试使用 $ace_cmd 环境安装..." - echo "----------------------------------------" - - # 在ACE环境中执行安装 - if ! $ace_cmd "ensure_aptss_exist && { dpkg -i '$deb_path' || aptss install '$deb_path' -yfq; }"; then - return 1 - fi - - return 0 -} - -# 在主机安装 -function install_in_host() { - local deb_path="$1" - - dpkg -i "$deb_path" || aptss install "$deb_path" -yfq - return $? -} - -# 自动尝试在各种环境中安装 -function auto_try_install() { - local deb_path="$1" - - # 首先尝试在主机安装 - if install_in_host "$deb_path"; then - return 0 - fi - - # 如果主机安装失败且不在强制本地模式,尝试ACE环境 - if [ "$FORCE_NATIVE" -eq 0 ]; then - for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do - local ace_cmd=${ace_entry%%:*} - - if command -v "$ace_cmd" >/dev/null 2>&1; then - if install_in_ace_env "$ace_cmd" "$deb_path" "$ace_entry"; then - # 在ACE环境中创建桌面快捷方式 - create_desktop_in_ace "$ace_cmd" "$package_name" - return 0 - fi - fi - done - fi - - return 1 -} - -# 清理安装后的文件 -function post_install_cleanup() { - local success=$1 - local deb_path="$2" - local package_name="$3" - - if [ "$success" -eq 0 ] && [ "$DELETE_AFTER_INSTALL" -eq "1" ]; then - # 检查是否安装在主机 - if [ "$FORCE_NATIVE" -eq 1 ] || [ -n "$FORCE_ACE_ENV" ]; then - if [ "$FORCE_NATIVE" -eq 1 ]; then - if dpkg -s "$package_name" >/dev/null 2>&1; then - echo "软件包已在主机安装:$package_name" - create_desktop_file - unlock_file "$deb_path" - rm "$deb_path" - echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" - else - echo "软件包未在主机安装:$package_name" - echo "安装异常!抛出错误" - echo "OMG-IT-GOES-WRONG" - exit 1 - fi - else - # ACE环境中安装的情况,不检查主机dpkg数据库 - echo "软件包已在ACE环境安装:$package_name" - unlock_file "$deb_path" - rm "$deb_path" - echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" - fi - else - # 自动模式下,如果ACE安装成功也会走到这里 - echo "软件包已安装:$package_name" - unlock_file "$deb_path" - rm "$deb_path" - echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" - fi - else - echo "${TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB}" - if [ "$FORCE_NATIVE" -eq 1 ] && ! dpkg -s "$package_name" >/dev/null 2>&1; then - echo "软件包未在主机安装:$package_name" - echo "安装异常!抛出错误" - echo "OMG-IT-GOES-WRONG" - exit 1 - elif [ -n "$FORCE_ACE_ENV" ] && ! command -v "$FORCE_ACE_ENV" >/dev/null 2>&1; then - echo "指定的ACE环境不可用" - echo "OMG-IT-GOES-WRONG" - exit 1 - fi - fi -} - -# 文件锁定/解锁函数 -function lock_file() { - chattr +i "$1" -} - -function unlock_file() { - chattr -i "$1" -} - -# 主安装流程 -function main_install() { - parse_args "$@" - - if [ -z "$DEBPATH" ]; then - echo "没有接收到参数,退出" - show_help - echo "OMG-IT-GOES-WRONG" - exit 1 - fi - - # 设置退出时的文件解锁 - trap 'unlock_file $DEBPATH' EXIT - validate_user - validate_or_download_file "$DEBPATH" - - DEBPATH=$(realpath "$DEBPATH") - lock_file "$DEBPATH" - - hash_check "$DEBPATH" - - if [ -z "$IS_SHA512SUM_CHECKED" ]; then - echo "尝试更新仓库信息重新校验" - aptss ssupdate - hash_check "$DEBPATH" - if [ -z "$IS_SHA512SUM_CHECKED" ]; then - echo -e "$TRANSHELL_CONTENT_HASH_CHECK_FAILED" - zenity --info --icon-name=spark-store --height 270 --width 500 --text "$TRANSHELL_CONTENT_HASH_CHECK_FAILED" - echo "OMG-IT-GOES-WRONG" - exit 1 - fi - fi - - package_name=$(dpkg-deb -f "$DEBPATH" Package) - local install_success=1 - - if [ -n "$FORCE_ACE_ENV" ]; then - # 查找对应的ACE环境包名 - local ace_env_pkg="" - for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do - if [ "${ace_entry%%:*}" = "$FORCE_ACE_ENV" ]; then - ace_env_pkg="${ace_entry#*:}" - break - fi - done - - # 强制使用指定的ACE环境安装 - if command -v "$FORCE_ACE_ENV" >/dev/null 2>&1; then - install_in_ace_env "$FORCE_ACE_ENV" "$DEBPATH" "$ace_env_pkg" - install_success=$? - if [ "$install_success" -eq 0 ]; then - create_desktop_in_ace "$FORCE_ACE_ENV" "$package_name" - fi - else - echo "指定的ACE环境 $FORCE_ACE_ENV 不可用" - echo "OMG-IT-GOES-WRONG" - exit 1 - fi - else - # 自动选择安装方式 - auto_try_install "$DEBPATH" - install_success=$? - fi - - post_install_cleanup "$install_success" "$DEBPATH" "$package_name" -} - -# 执行主函数 -main_install "$@" From 930111f2df698fa5fc13353ad825e32e3d69cc80 Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 5 Jun 2025 14:20:11 +0800 Subject: [PATCH 08/36] =?UTF-8?q?=E4=B8=8D=E5=86=8D=E6=AF=8F=E6=AC=A1?= =?UTF-8?q?=E9=83=BD=20update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssaudit | 33 ++++++++++++++++++++++++--------- tool/ssinstall | 33 ++++++++++++++++++++++++--------- 2 files changed, 48 insertions(+), 18 deletions(-) diff --git a/tool/ssaudit b/tool/ssaudit index d034227..9c37e84 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -151,9 +151,7 @@ function hash_check() { # 确保aptss存在 function ensure_aptss_exist() { - if command -v aptss &>/dev/null; then - aptss update - else + if ! command -v aptss &>/dev/null; then local deb_file="/tmp/spark-store-console-in-container_latest_all.deb" if ! wget -O "$deb_file" "https://amber-ce-resource.spark-app.store/store/depends/spark-store-console-in-container_latest_all.deb"; then @@ -264,19 +262,36 @@ function install_in_ace_env() { echo "----------------------------------------" # 在ACE环境中执行安装 - if ! $ace_cmd "ensure_aptss_exist && { dpkg -i '$deb_path' || aptss install '$deb_path' -yfq; }"; then - return 1 + if $ace_cmd "ensure_aptss_exist && { dpkg -i '$deb_path' || aptss install '$deb_path' -yfq; }"; then + return 0 + else + # 如果第一次安装失败,执行aptss update后再试一次 + echo "第一次安装失败,正在更新仓库信息后重试..." + $ace_cmd "aptss update" + if $ace_cmd "dpkg -i '$deb_path' || aptss install '$deb_path' -yfq"; then + return 0 + else + return 1 + fi fi - - return 0 } # 在主机安装 function install_in_host() { local deb_path="$1" - dpkg -i "$deb_path" || aptss install "$deb_path" -yfq - return $? + if dpkg -i "$deb_path" || aptss install "$deb_path" -yfq; then + return 0 + else + # 如果第一次安装失败,执行aptss update后再试一次 + echo "第一次安装失败,正在更新仓库信息后重试..." + aptss update + if dpkg -i "$deb_path" || aptss install "$deb_path" -yfq; then + return 0 + else + return 1 + fi + fi } # 自动尝试在各种环境中安装 diff --git a/tool/ssinstall b/tool/ssinstall index 8de3203..e50843f 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -151,9 +151,7 @@ function hash_check() { # 确保aptss存在 function ensure_aptss_exist() { - if command -v aptss &>/dev/null; then - aptss update - else + if ! command -v aptss &>/dev/null; then local deb_file="/tmp/spark-store-console-in-container_latest_all.deb" if ! wget -O "$deb_file" "https://amber-ce-resource.spark-app.store/store/depends/spark-store-console-in-container_latest_all.deb"; then @@ -264,19 +262,36 @@ function install_in_ace_env() { echo "----------------------------------------" # 在ACE环境中执行安装 - if ! $ace_cmd "ensure_aptss_exist && { dpkg -i '$deb_path' || aptss install '$deb_path' -yfq; }"; then - return 1 + if $ace_cmd "ensure_aptss_exist && { dpkg -i '$deb_path' || aptss install '$deb_path' -yfq; }"; then + return 0 + else + # 如果第一次安装失败,执行aptss update后再试一次 + echo "第一次安装失败,正在更新仓库信息后重试..." + $ace_cmd "aptss update" + if $ace_cmd "dpkg -i '$deb_path' || aptss install '$deb_path' -yfq"; then + return 0 + else + return 1 + fi fi - - return 0 } # 在主机安装 function install_in_host() { local deb_path="$1" - dpkg -i "$deb_path" || aptss install "$deb_path" -yfq - return $? + if dpkg -i "$deb_path" || aptss install "$deb_path" -yfq; then + return 0 + else + # 如果第一次安装失败,执行aptss update后再试一次 + echo "第一次安装失败,正在更新仓库信息后重试..." + aptss update + if dpkg -i "$deb_path" || aptss install "$deb_path" -yfq; then + return 0 + else + return 1 + fi + fi } # 自动尝试在各种环境中安装 From ea6e7a19bd6f395433ade7f249b1400675c6cbdb Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 5 Jun 2025 14:21:14 +0800 Subject: [PATCH 09/36] 4.7.1~test1 --- debian/changelog | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index ca3a18d..1df431a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,6 @@ -spark-store (4.7.0) UNRELEASED; urgency=medium +spark-store (4.7.1~test1) UNRELEASED; urgency=medium - * aptss 第二、三阶段加速 - * 修复部分应用无法启动的问题 - * 支持使用 ACE deepin23 trixie + * ssinstall升级,支持安装到ACE和自动安装到ACE -- shenmo Tue, 24 Sep 2024 11:27:08 +0800 From 3c2a6ac635c12262412a84144f180af3b96173d2 Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 5 Jun 2025 14:51:32 +0800 Subject: [PATCH 10/36] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=A4=9A=E4=B8=AAACE?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssaudit | 185 ++++++++++++++++++++++++++++++------------------- tool/ssinstall | 185 ++++++++++++++++++++++++++++++------------------- 2 files changed, 226 insertions(+), 144 deletions(-) diff --git a/tool/ssaudit b/tool/ssaudit index 9c37e84..5a25c57 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -13,6 +13,9 @@ readonly ACE_ENVIRONMENTS_FOR_AUTOINSTALL=( "bookworm-run:amber-ce-bookworm" "trixie-run:amber-ce-trixie" ) +# 全局变量初始化(位于 parse_args 前) +ACE_PARAMS=() + # 生成ACE环境参数帮助信息 function generate_ace_help() { local help_text="" @@ -54,51 +57,53 @@ function show_help() { } # 参数解析 function parse_args() { - while [ $# -gt 0 ]; do - case "$1" in - -h|--help) - show_help - exit 0 - ;; - --delete-after-install) - DELETE_AFTER_INSTALL="1" - shift - ;; - --native) - FORCE_NATIVE="1" - shift - ;; - --no-create-desktop-entry) - NO_CREATE_DESKTOP="1" - shift - ;; - --force-create-desktop-entry) - FORCE_CREATE_DESKTOP="1" - shift - ;; - *) - # 检查是否为ACE环境参数 - local is_ace_param=0 - for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do - local ace_param="--${ace_entry#*:}" - if [ "$1" = "$ace_param" ]; then - FORCE_ACE_ENV="${ace_entry%%:*}" - is_ace_param=1 - shift - break - fi - done - - # 如果不是ACE参数,则视为DEB路径 - if [ "$is_ace_param" -eq 0 ]; then - DEBPATH="$1" - shift - fi - ;; - esac - done + while [ $# -gt 0 ]; do + case "$1" in + -h|--help) + show_help + exit 0 + ;; + --delete-after-install) + DELETE_AFTER_INSTALL="1" + shift + ;; + --native) + FORCE_NATIVE="1" + shift + ;; + --no-create-desktop-entry) + NO_CREATE_DESKTOP="1" + shift + ;; + --force-create-desktop-entry) + FORCE_CREATE_DESKTOP="1" + shift + ;; + *) + # 检查是否为ACE环境参数 + local is_ace_param=0 + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + local ace_param="--${ace_entry#*:}" + if [ "$1" = "$ace_param" ]; then + # 将ACE环境命令名加入数组 + ACE_PARAMS+=("${ace_entry%%:*}") + is_ace_param=1 + shift + break + fi + done + + # 如果不是ACE环境参数,则视为DEB路径 + if [ "$is_ace_param" -eq 0 ]; then + DEBPATH="$1" + shift + fi + ;; + esac + done } + # 验证当前用户 function validate_user() { if [ "$(id -u)" != "0" ]; then @@ -418,36 +423,72 @@ function main_install() { package_name=$(dpkg-deb -f "$DEBPATH" Package) local install_success=1 - - if [ -n "$FORCE_ACE_ENV" ]; then - # 查找对应的ACE环境包名 - local ace_env_pkg="" - for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do - if [ "${ace_entry%%:*}" = "$FORCE_ACE_ENV" ]; then - ace_env_pkg="${ace_entry#*:}" - break - fi - done - - # 强制使用指定的ACE环境安装 - if command -v "$FORCE_ACE_ENV" >/dev/null 2>&1; then - install_in_ace_env "$FORCE_ACE_ENV" "$DEBPATH" "$ace_env_pkg" - install_success=$? - if [ "$install_success" -eq 0 ]; then - create_desktop_in_ace "$FORCE_ACE_ENV" "$package_name" - fi - else - echo "指定的ACE环境 $FORCE_ACE_ENV 不可用" - echo "OMG-IT-GOES-WRONG" - exit 1 - fi - else - # 自动选择安装方式 - auto_try_install "$DEBPATH" - install_success=$? + if [ "$FORCE_NATIVE" -eq 1 ]; then + # 优先使用主机安装,忽略所有ACE参数 + echo "忽略ACE,使用主机安装 $package_name" + install_in_host "$DEBPATH" + install_success=$? + # 安装成功后在主机创建桌面快捷方式 + if [ "$install_success" -eq 0 ]; then + create_desktop_file fi - - post_install_cleanup "$install_success" "$DEBPATH" "$package_name" + + elif [ ${#ACE_PARAMS[@]} -gt 0 ]; then + # 用户指定了一个或多个ACE环境,且未要求原生安装 + echo "使用ACE环境安装,已指定环境: ${ACE_PARAMS[*]}" + + # 查找第一个已安装的ACE环境 + chosen_env="" + for env_cmd in "${ACE_PARAMS[@]}"; do + if command -v "$env_cmd" >/dev/null 2>&1; then + chosen_env="$env_cmd" + break + fi + done + # 如果没有安装任何环境,则使用第一个指定的环境 + if [ -z "$chosen_env" ]; then + chosen_env="${ACE_PARAMS[0]}" + echo "未发现已安装的ACE环境,准备安装 $chosen_env..." + # 查找对应的ACE环境软件包名 + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + if [ "${ace_entry%%:*}" = "$chosen_env" ]; then + ace_pkg="${ace_entry#*:}" + break + fi + done + # 安装ACE环境(示例使用aptss工具,可根据实际情况调整) + aptss install "$ace_pkg" -y + fi + + # 再次确认ACE环境命令是否可用 + if command -v "$chosen_env" >/dev/null 2>&1; then + # 查找软件包名(仅首次查找即可) + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + if [ "${ace_entry%%:*}" = "$chosen_env" ]; then + ace_pkg="${ace_entry#*:}" + break + fi + done + echo "在 ACE 环境 $chosen_env 中安装 $package_name" + install_in_ace_env "$chosen_env" "$DEBPATH" "$ace_pkg" + install_success=$? + if [ "$install_success" -eq 0 ]; then + create_desktop_in_ace "$chosen_env" "$package_name" + fi + else + echo "指定的ACE环境 $chosen_env 不可用" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi + + else + # 未指定ACE环境和--native,使用自动安装逻辑(先主机再ACE) + echo "自动选择安装方式" + auto_try_install "$DEBPATH" + install_success=$? + fi + + post_install_cleanup "$install_success" "$DEBPATH" "$package_name" } # 执行主函数 diff --git a/tool/ssinstall b/tool/ssinstall index e50843f..e9b53fa 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -13,6 +13,9 @@ readonly ACE_ENVIRONMENTS_FOR_AUTOINSTALL=( "bookworm-run:amber-ce-bookworm" "trixie-run:amber-ce-trixie" ) +# 全局变量初始化(位于 parse_args 前) +ACE_PARAMS=() + # 生成ACE环境参数帮助信息 function generate_ace_help() { local help_text="" @@ -54,51 +57,53 @@ function show_help() { } # 参数解析 function parse_args() { - while [ $# -gt 0 ]; do - case "$1" in - -h|--help) - show_help - exit 0 - ;; - --delete-after-install) - DELETE_AFTER_INSTALL="1" - shift - ;; - --native) - FORCE_NATIVE="1" - shift - ;; - --no-create-desktop-entry) - NO_CREATE_DESKTOP="1" - shift - ;; - --force-create-desktop-entry) - FORCE_CREATE_DESKTOP="1" - shift - ;; - *) - # 检查是否为ACE环境参数 - local is_ace_param=0 - for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do - local ace_param="--${ace_entry#*:}" - if [ "$1" = "$ace_param" ]; then - FORCE_ACE_ENV="${ace_entry%%:*}" - is_ace_param=1 - shift - break - fi - done - - # 如果不是ACE参数,则视为DEB路径 - if [ "$is_ace_param" -eq 0 ]; then - DEBPATH="$1" - shift - fi - ;; - esac - done + while [ $# -gt 0 ]; do + case "$1" in + -h|--help) + show_help + exit 0 + ;; + --delete-after-install) + DELETE_AFTER_INSTALL="1" + shift + ;; + --native) + FORCE_NATIVE="1" + shift + ;; + --no-create-desktop-entry) + NO_CREATE_DESKTOP="1" + shift + ;; + --force-create-desktop-entry) + FORCE_CREATE_DESKTOP="1" + shift + ;; + *) + # 检查是否为ACE环境参数 + local is_ace_param=0 + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + local ace_param="--${ace_entry#*:}" + if [ "$1" = "$ace_param" ]; then + # 将ACE环境命令名加入数组 + ACE_PARAMS+=("${ace_entry%%:*}") + is_ace_param=1 + shift + break + fi + done + + # 如果不是ACE环境参数,则视为DEB路径 + if [ "$is_ace_param" -eq 0 ]; then + DEBPATH="$1" + shift + fi + ;; + esac + done } + # 验证当前用户 function validate_user() { if [ "$(id -u)" != "0" ]; then @@ -418,36 +423,72 @@ function main_install() { package_name=$(dpkg-deb -f "$DEBPATH" Package) local install_success=1 - - if [ -n "$FORCE_ACE_ENV" ]; then - # 查找对应的ACE环境包名 - local ace_env_pkg="" - for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do - if [ "${ace_entry%%:*}" = "$FORCE_ACE_ENV" ]; then - ace_env_pkg="${ace_entry#*:}" - break - fi - done - - # 强制使用指定的ACE环境安装 - if command -v "$FORCE_ACE_ENV" >/dev/null 2>&1; then - install_in_ace_env "$FORCE_ACE_ENV" "$DEBPATH" "$ace_env_pkg" - install_success=$? - if [ "$install_success" -eq 0 ]; then - create_desktop_in_ace "$FORCE_ACE_ENV" "$package_name" - fi - else - echo "指定的ACE环境 $FORCE_ACE_ENV 不可用" - echo "OMG-IT-GOES-WRONG" - exit 1 - fi - else - # 自动选择安装方式 - auto_try_install "$DEBPATH" - install_success=$? + if [ "$FORCE_NATIVE" -eq 1 ]; then + # 优先使用主机安装,忽略所有ACE参数 + echo "忽略ACE,使用主机安装 $package_name" + install_in_host "$DEBPATH" + install_success=$? + # 安装成功后在主机创建桌面快捷方式 + if [ "$install_success" -eq 0 ]; then + create_desktop_file fi - - post_install_cleanup "$install_success" "$DEBPATH" "$package_name" + + elif [ ${#ACE_PARAMS[@]} -gt 0 ]; then + # 用户指定了一个或多个ACE环境,且未要求原生安装 + echo "使用ACE环境安装,已指定环境: ${ACE_PARAMS[*]}" + + # 查找第一个已安装的ACE环境 + chosen_env="" + for env_cmd in "${ACE_PARAMS[@]}"; do + if command -v "$env_cmd" >/dev/null 2>&1; then + chosen_env="$env_cmd" + break + fi + done + # 如果没有安装任何环境,则使用第一个指定的环境 + if [ -z "$chosen_env" ]; then + chosen_env="${ACE_PARAMS[0]}" + echo "未发现已安装的ACE环境,准备安装 $chosen_env..." + # 查找对应的ACE环境软件包名 + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + if [ "${ace_entry%%:*}" = "$chosen_env" ]; then + ace_pkg="${ace_entry#*:}" + break + fi + done + # 安装ACE环境(示例使用aptss工具,可根据实际情况调整) + aptss install "$ace_pkg" -y + fi + + # 再次确认ACE环境命令是否可用 + if command -v "$chosen_env" >/dev/null 2>&1; then + # 查找软件包名(仅首次查找即可) + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + if [ "${ace_entry%%:*}" = "$chosen_env" ]; then + ace_pkg="${ace_entry#*:}" + break + fi + done + echo "在 ACE 环境 $chosen_env 中安装 $package_name" + install_in_ace_env "$chosen_env" "$DEBPATH" "$ace_pkg" + install_success=$? + if [ "$install_success" -eq 0 ]; then + create_desktop_in_ace "$chosen_env" "$package_name" + fi + else + echo "指定的ACE环境 $chosen_env 不可用" + echo "OMG-IT-GOES-WRONG" + exit 1 + fi + + else + # 未指定ACE环境和--native,使用自动安装逻辑(先主机再ACE) + echo "自动选择安装方式" + auto_try_install "$DEBPATH" + install_success=$? + fi + + post_install_cleanup "$install_success" "$DEBPATH" "$package_name" } # 执行主函数 From 6640dc9bbaa07be6dac4502dd6ffdaff6a9c1c63 Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 5 Jun 2025 17:08:03 +0800 Subject: [PATCH 11/36] =?UTF-8?q?=E5=9C=A8=E4=B8=BB=E6=9C=BA=E6=88=96?= =?UTF-8?q?=E8=80=85=20ACE=20=E5=AE=89=E8=A3=85=E4=B9=8B=E5=89=8D=EF=BC=8C?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20aptss=20install=20--dry-run=20=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E6=B5=8B=E8=AF=95=E8=83=BD=E5=90=A6=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E6=9D=A5=E6=9B=BF=E4=BB=A3=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E5=B0=9D=E8=AF=95=E5=AE=89=E8=A3=85=EF=BC=8C=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=A4=B1=E8=B4=A5=E4=BA=86=EF=BC=8C=E5=88=99?= =?UTF-8?q?aptss=20update=20=E5=90=8E=E5=86=8D=E6=AC=A1=E5=B0=9D=E8=AF=95?= =?UTF-8?q?=EF=BC=8C=E5=A6=82=E6=9E=9C=E5=A4=B1=E8=B4=A5=E4=BA=86=E5=B0=B1?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E9=80=80=E5=87=BA=EF=BC=8C=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E5=B0=9D=E8=AF=95=E5=AE=89=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssaudit | 42 ++++++++++++++++++++++++------------------ tool/ssinstall | 42 ++++++++++++++++++++++++------------------ 2 files changed, 48 insertions(+), 36 deletions(-) diff --git a/tool/ssaudit b/tool/ssaudit index 5a25c57..e6cced1 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -266,36 +266,43 @@ function install_in_ace_env() { echo "正在尝试使用 $ace_cmd 环境安装..." echo "----------------------------------------" - # 在ACE环境中执行安装 - if $ace_cmd "ensure_aptss_exist && { dpkg -i '$deb_path' || aptss install '$deb_path' -yfq; }"; then - return 0 - else - # 如果第一次安装失败,执行aptss update后再试一次 - echo "第一次安装失败,正在更新仓库信息后重试..." + # 首先尝试dry-run测试 + if ! $ace_cmd "ensure_aptss_exist && aptss install --dry-run '$deb_path'"; then + echo "初始dry-run测试失败,尝试更新后重试..." $ace_cmd "aptss update" - if $ace_cmd "dpkg -i '$deb_path' || aptss install '$deb_path' -yfq"; then - return 0 - else + if ! $ace_cmd "aptss install --dry-run '$deb_path'"; then + echo "dry-run测试仍然失败,放弃安装" return 1 fi fi + + # dry-run成功后执行实际安装 + if $ace_cmd "dpkg -i '$deb_path' || aptss install '$deb_path' -yfq"; then + return 0 + else + return 1 + fi } # 在主机安装 function install_in_host() { local deb_path="$1" + # 首先尝试dry-run测试 + if ! aptss install --dry-run "$deb_path"; then + echo "初始dry-run测试失败,尝试更新后重试..." + aptss update + if ! aptss install --dry-run "$deb_path"; then + echo "dry-run测试仍然失败,放弃安装" + return 1 + fi + fi + + # dry-run成功后执行实际安装 if dpkg -i "$deb_path" || aptss install "$deb_path" -yfq; then return 0 else - # 如果第一次安装失败,执行aptss update后再试一次 - echo "第一次安装失败,正在更新仓库信息后重试..." - aptss update - if dpkg -i "$deb_path" || aptss install "$deb_path" -yfq; then - return 0 - else - return 1 - fi + return 1 fi } @@ -327,7 +334,6 @@ function auto_try_install() { return 1 } - # 清理安装后的文件 function post_install_cleanup() { local success=$1 diff --git a/tool/ssinstall b/tool/ssinstall index e9b53fa..3ec57c1 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -266,36 +266,43 @@ function install_in_ace_env() { echo "正在尝试使用 $ace_cmd 环境安装..." echo "----------------------------------------" - # 在ACE环境中执行安装 - if $ace_cmd "ensure_aptss_exist && { dpkg -i '$deb_path' || aptss install '$deb_path' -yfq; }"; then - return 0 - else - # 如果第一次安装失败,执行aptss update后再试一次 - echo "第一次安装失败,正在更新仓库信息后重试..." + # 首先尝试dry-run测试 + if ! $ace_cmd "ensure_aptss_exist && aptss install --dry-run '$deb_path'"; then + echo "初始dry-run测试失败,尝试更新后重试..." $ace_cmd "aptss update" - if $ace_cmd "dpkg -i '$deb_path' || aptss install '$deb_path' -yfq"; then - return 0 - else + if ! $ace_cmd "aptss install --dry-run '$deb_path'"; then + echo "dry-run测试仍然失败,放弃安装" return 1 fi fi + + # dry-run成功后执行实际安装 + if $ace_cmd "dpkg -i '$deb_path' || aptss install '$deb_path' -yfq"; then + return 0 + else + return 1 + fi } # 在主机安装 function install_in_host() { local deb_path="$1" + # 首先尝试dry-run测试 + if ! aptss install --dry-run "$deb_path"; then + echo "初始dry-run测试失败,尝试更新后重试..." + aptss update + if ! aptss install --dry-run "$deb_path"; then + echo "dry-run测试仍然失败,放弃安装" + return 1 + fi + fi + + # dry-run成功后执行实际安装 if dpkg -i "$deb_path" || aptss install "$deb_path" -yfq; then return 0 else - # 如果第一次安装失败,执行aptss update后再试一次 - echo "第一次安装失败,正在更新仓库信息后重试..." - aptss update - if dpkg -i "$deb_path" || aptss install "$deb_path" -yfq; then - return 0 - else - return 1 - fi + return 1 fi } @@ -327,7 +334,6 @@ function auto_try_install() { return 1 } - # 清理安装后的文件 function post_install_cleanup() { local success=$1 From 8cb92d99727995128bf9a1f7260084cac9af96c8 Mon Sep 17 00:00:00 2001 From: shenmo Date: Sat, 7 Jun 2025 11:18:06 +0800 Subject: [PATCH 12/36] =?UTF-8?q?=E6=94=AF=E6=8C=81=20ACE=20=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=8F=82=E6=95=B0Tag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/appintopage.cpp | 15 +++++++++++++++ src/widgets/common/downloaditem.cpp | 12 ++++++++++-- src/widgets/common/downloaditem.h | 3 +++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/pages/appintopage.cpp b/src/pages/appintopage.cpp index 4e22bd8..67bb9b2 100644 --- a/src/pages/appintopage.cpp +++ b/src/pages/appintopage.cpp @@ -552,6 +552,21 @@ void AppIntoPage::on_downloadButton_clicked() Qt::QueuedConnection); isDownloading(downloadUrl); + + // 处理 tags,设置 installExtraArg + QString tags = info["Tags"].toString(); + QStringList taglist = tags.split(";", Qt::SkipEmptyParts); + if (taglist.contains("native")) { + item->installExtraArg = "--native"; + } else if (taglist.contains("amber-ce-bookworm")) { + item->installExtraArg = "--amber-ce-bookworm"; + } else if (taglist.contains("amber-ce-trixie")) { + item->installExtraArg = "--amber-ce-trixie"; + } else if (taglist.contains("amber-ce-sid")) { + item->installExtraArg = "--amber-ce-sid"; + } else if (taglist.contains("amber-ce-deepin23")) { + item->installExtraArg = "--amber-ce-deepin23"; + } } void AppIntoPage::on_pushButton_3_clicked() diff --git a/src/widgets/common/downloaditem.cpp b/src/widgets/common/downloaditem.cpp index 574780b..f66da96 100644 --- a/src/widgets/common/downloaditem.cpp +++ b/src/widgets/common/downloaditem.cpp @@ -175,8 +175,16 @@ void DownloadItem::slotAsyncInstall(int t) switch (t) { case 0: - installer.start("pkexec", QStringList() << "/usr/local/bin/ssinstall" - << "/tmp/spark-store/" + ui->label_filename->text().toUtf8() << "--delete-after-install"); + { + QStringList args; + args << "/usr/local/bin/ssinstall" + << "/tmp/spark-store/" + ui->label_filename->text().toUtf8(); + if (!installExtraArg.isEmpty()) { + args << installExtraArg; + } + args << "--delete-after-install"; + installer.start("pkexec", args); + } break; case 1: installer.start("deepin-deb-installer", QStringList() << "/tmp/spark-store/" + ui->label_filename->text().toUtf8()); diff --git a/src/widgets/common/downloaditem.h b/src/widgets/common/downloaditem.h index 13c2d2b..afd479c 100644 --- a/src/widgets/common/downloaditem.h +++ b/src/widgets/common/downloaditem.h @@ -43,6 +43,9 @@ public: void install(int); + // 新增:安装时额外参数 + QString installExtraArg; + private: Ui::DownloadItem *ui; From f08366a3d546146ad8b8a0d057be6b042f2a8314 Mon Sep 17 00:00:00 2001 From: zty199 <1282441920@qq.com> Date: Sat, 7 Jun 2025 13:39:55 +0800 Subject: [PATCH 13/36] fix: rarely crash after install finished in DownloadItem::slotAsyncInstall, QProcess should not be deleteLater since it is not pointer Log: fix rarely crash; move installExtraArg set before download started --- src/pages/appintopage.cpp | 37 ++++++++++++++++------------- src/widgets/common/downloaditem.cpp | 3 --- src/widgets/downloadlistwidget.cpp | 5 +++- src/widgets/downloadlistwidget.h | 4 +++- 4 files changed, 28 insertions(+), 21 deletions(-) diff --git a/src/pages/appintopage.cpp b/src/pages/appintopage.cpp index 67bb9b2..7c58198 100644 --- a/src/pages/appintopage.cpp +++ b/src/pages/appintopage.cpp @@ -536,7 +536,27 @@ void AppIntoPage::on_downloadButton_clicked() emit clickedDownloadBtn(); - DownloadItem *item = dw->addItem(info["Name"].toString(), info["Filename"].toString(), info["Pkgname"].toString(), iconpixmap, downloadUrl); + // 处理 tags,设置 installExtraArg + QString installExtraArg; +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + QStringList taglist = info["Tags"].toString().split(";", Qt::SkipEmptyParts); +#else + QStringList taglist = info["Tags"].toString().split(";", QString::SkipEmptyParts); +#endif + if (taglist.contains("native")) { + installExtraArg = "--native"; + } else if (taglist.contains("amber-ce-bookworm")) { + installExtraArg = "--amber-ce-bookworm"; + } else if (taglist.contains("amber-ce-trixie")) { + installExtraArg = "--amber-ce-trixie"; + } else if (taglist.contains("amber-ce-sid")) { + installExtraArg = "--amber-ce-sid"; + } else if (taglist.contains("amber-ce-deepin23")) { + installExtraArg = "--amber-ce-deepin23"; + } + + DownloadItem *item = dw->addItem(info["Name"].toString(), info["Filename"].toString(), info["Pkgname"].toString(), + iconpixmap, downloadUrl, installExtraArg); if (item == nullptr) { return; @@ -552,21 +572,6 @@ void AppIntoPage::on_downloadButton_clicked() Qt::QueuedConnection); isDownloading(downloadUrl); - - // 处理 tags,设置 installExtraArg - QString tags = info["Tags"].toString(); - QStringList taglist = tags.split(";", Qt::SkipEmptyParts); - if (taglist.contains("native")) { - item->installExtraArg = "--native"; - } else if (taglist.contains("amber-ce-bookworm")) { - item->installExtraArg = "--amber-ce-bookworm"; - } else if (taglist.contains("amber-ce-trixie")) { - item->installExtraArg = "--amber-ce-trixie"; - } else if (taglist.contains("amber-ce-sid")) { - item->installExtraArg = "--amber-ce-sid"; - } else if (taglist.contains("amber-ce-deepin23")) { - item->installExtraArg = "--amber-ce-deepin23"; - } } void AppIntoPage::on_pushButton_3_clicked() diff --git a/src/widgets/common/downloaditem.cpp b/src/widgets/common/downloaditem.cpp index f66da96..96903d2 100644 --- a/src/widgets/common/downloaditem.cpp +++ b/src/widgets/common/downloaditem.cpp @@ -252,8 +252,5 @@ void DownloadItem::slotAsyncInstall(int t) ui->widget_spinner->hide(); DownloadItem::isInstall = false; - installer.deleteLater(); - isInstall.deleteLater(); - emit finished(error == 0 && !haveError && !notRoot); } diff --git a/src/widgets/downloadlistwidget.cpp b/src/widgets/downloadlistwidget.cpp index f253fb6..413477a 100644 --- a/src/widgets/downloadlistwidget.cpp +++ b/src/widgets/downloadlistwidget.cpp @@ -85,7 +85,9 @@ void DownloadListWidget::clearItem() ui->listWidget->clear(); } -DownloadItem* DownloadListWidget::addItem(QString name, QString fileName, QString pkgName, const QPixmap icon, QString downloadurl) +DownloadItem* DownloadListWidget::addItem(QString name, QString fileName, QString pkgName, + const QPixmap icon, QString downloadurl, + const QString &installExtraArg) { if (fileName.isEmpty()) { @@ -104,6 +106,7 @@ DownloadItem* DownloadListWidget::addItem(QString name, QString fileName, QStrin di->setName(name); di->setFileName(fileName); di->pkgName = pkgName; + di->installExtraArg = installExtraArg; di->seticon(icon); QListWidgetItem *pItem = new QListWidgetItem(); pItem->setSizeHint(QSize(240, 56)); // ui 中单个 downloaditem 高度固定 56px(上下 margin 8px,图片固定 48x48) diff --git a/src/widgets/downloadlistwidget.h b/src/widgets/downloadlistwidget.h index 6faebc0..263c160 100644 --- a/src/widgets/downloadlistwidget.h +++ b/src/widgets/downloadlistwidget.h @@ -19,7 +19,9 @@ class DownloadListWidget : public DBlurEffectWidget Q_OBJECT public: - DownloadItem *addItem(QString name, QString fileName, QString pkgName, const QPixmap icon, QString downloadurl); + DownloadItem *addItem(QString name, QString fileName, QString pkgName, + const QPixmap icon, QString downloadurl, + const QString &installExtraArg); int nowDownload = 0; int allDownload = 0; int toDownload = 0; From c0b2edf1b009ff6bc0d0215acdabb88126d5277d Mon Sep 17 00:00:00 2001 From: shenmo Date: Mon, 9 Jun 2025 13:34:14 +0800 Subject: [PATCH 14/36] =?UTF-8?q?check=5Fis=5Finstalled=20=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=90=8C=E6=AD=A5ssinstall=20,=20ssinstall=20?= =?UTF-8?q?=E6=8B=92=E7=BB=9D=E5=9C=A8=20ACE=20=E5=86=85=E9=83=A8=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=88=B0=20ACE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssaudit | 7 +- tool/ssinstall | 10 +- tool/store-helper/check-is-installed | 16 +-- translations/spark-store_en.ts | 144 ++++++++++----------------- translations/spark-store_es.ts | 144 ++++++++++----------------- translations/spark-store_fr.ts | 144 ++++++++++----------------- translations/spark-store_zh_CN.ts | 144 ++++++++++----------------- translations/spark-store_zh_TW.ts | 144 ++++++++++----------------- 8 files changed, 272 insertions(+), 481 deletions(-) diff --git a/tool/ssaudit b/tool/ssaudit index e6cced1..0cc7e2e 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -257,7 +257,10 @@ function install_in_ace_env() { local ace_cmd="$1" local deb_path="$2" local ace_env_pkg="${3#*:}" - + if [ "$IS_ACE_ENV" != "" ]; then + echo "无法在ACE中安装ACE包" + return 1 + fi if ! ensure_ace_env "$ace_env_pkg"; then return 1 fi @@ -316,7 +319,7 @@ function auto_try_install() { fi # 如果主机安装失败且不在强制本地模式,尝试ACE环境 - if [ "$FORCE_NATIVE" -eq 0 ]; then + if [ "$FORCE_NATIVE" -eq 0 ] || [ "$IS_ACE_ENV" = "" ]; then for ace_entry in "${ACE_ENVIRONMENTS_FOR_AUTOINSTALL[@]}"; do local ace_cmd=${ace_entry%%:*} local ace_env_pkg=${ace_entry#*:} diff --git a/tool/ssinstall b/tool/ssinstall index 3ec57c1..19186b8 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -258,6 +258,10 @@ function install_in_ace_env() { local deb_path="$2" local ace_env_pkg="${3#*:}" + if [ "$IS_ACE_ENV" != "" ]; then + echo "无法在ACE中安装ACE包" + return 1 + fi if ! ensure_ace_env "$ace_env_pkg"; then return 1 fi @@ -315,8 +319,8 @@ function auto_try_install() { return 0 fi - # 如果主机安装失败且不在强制本地模式,尝试ACE环境 - if [ "$FORCE_NATIVE" -eq 0 ]; then + # 如果主机安装失败,并非在ACE内运行且不在强制本地模式,尝试ACE环境 + if [ "$FORCE_NATIVE" -eq 0 ] || [ "$IS_ACE_ENV" = "" ]; then for ace_entry in "${ACE_ENVIRONMENTS_FOR_AUTOINSTALL[@]}"; do local ace_cmd=${ace_entry%%:*} local ace_env_pkg=${ace_entry#*:} @@ -391,7 +395,9 @@ function lock_file() { } function unlock_file() { + if [ -e "$1" ];then chattr -i "$1" + fi } # 主安装流程 diff --git a/tool/store-helper/check-is-installed b/tool/store-helper/check-is-installed index 97b0201..9aaffe0 100755 --- a/tool/store-helper/check-is-installed +++ b/tool/store-helper/check-is-installed @@ -2,13 +2,15 @@ dpkg -s "$1" > /dev/null RET="$?" if [[ "$RET" != "0" ]] &&[[ "$IS_ACE_ENV" == "" ]];then ## 如果未在ACE环境中 - # 定义按顺序尝试的ACE环境(命令:推荐安装包) - declare -a ace_commands_order=( - "bookworm-run:amber-ce-bookworm" - "trixie-run:amber-ce-trixie" - "deepin23-run:amber-ce-deepin23" - ) -for ace_entry in "${ace_commands_order[@]}"; do +readonly ACE_ENVIRONMENTS=( + "bookworm-run:amber-ce-bookworm" + "trixie-run:amber-ce-trixie" + "deepin23-run:amber-ce-deepin23" + "sid-run:amber-ce-sid" +) + + +for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do ace_cmd=${ace_entry%%:*} if command -v "$ace_cmd" >/dev/null 2>&1; then echo "----------------------------------------" diff --git a/translations/spark-store_en.ts b/translations/spark-store_en.ts index 9932a13..e14fb49 100644 --- a/translations/spark-store_en.ts +++ b/translations/spark-store_en.ts @@ -24,68 +24,63 @@ - - + + + <html><head/><body><p>Capable to deepin 23</p></body></html> + + + + + <html><head/><body><p>This app is developed by community user,we give this tag to honor those who contribute to the Linux Ecology</p></body></html> - - + + <html><head/><body><p>Capable to UOS home 20</p></body></html> - - + + <html><head/><body><p>A deepin-wine2 app. Spark Store will automatically configure the wine kit for you.</p></body></html> - - <html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html> - - - - - + + <html><head/><body><p>This is a DTK5 app,which means it would have better effect on Deepin Desktop Environment</p></body></html> - - - <html><head/><body><p>Capable to deepin 20</p></body></html> - - - - - + + <html><head/><body><p>An Appimage to deb app.</p></body></html> - + Share Spk share link - + APP Feedback - + Introduction - + Description - + Screen capture @@ -94,94 +89,55 @@ - + Download and Install - - <html><head/><body><p><img src=":/tags/community.svg" height=30 width=30 /></p></body></html> - - - - - + + <html><head/><body><p>Capable to Ubuntu 22.04</p></body></html> - - <html><head/><body><p><img src=":/tags/ubuntu.png" width=30 height=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/uos-authorize.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/logo_icon.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/deepin.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/a2d.png"height=30 width=30 /></p></body></html> - - - - - + + <html><head/><body><p>A Wine app.Spark Store will automatically configure the wine kit for you</p></body></html> - - <html><head/><body><p><img src=":/tags/dwine5.svg" height=30 width=30 /></p></body></html> - - - - + + <html><head/><body><p>Capable to Debian Stable</p></body></html> - - <html><head/><body><p><img src=":/tags/debian.svg" height="30" width="30"/></p></body></html> - - - - + Update - + Contributor - + Pkgname - + Author - + Size - + Website @@ -260,18 +216,18 @@ - + Spark Store - + Uninstall succeeded - + The URL has been copied to the clipboard @@ -359,9 +315,9 @@ - - + + Spark Store @@ -372,32 +328,32 @@ - + Installation complete. - - + + Finish - + Retry - - - - - Error happened in dpkg progress , please check the install info or try to reinstall. - - + Error happened in dpkg progress , please check the install info or try to reinstall. + + + + + + dpkg progress had been aborted, please check the install info or try to reinstall. diff --git a/translations/spark-store_es.ts b/translations/spark-store_es.ts index bc77882..d41cefe 100644 --- a/translations/spark-store_es.ts +++ b/translations/spark-store_es.ts @@ -24,68 +24,63 @@ Número de descargas - - + + + <html><head/><body><p>Capable to deepin 23</p></body></html> + <html><head/><body><p>Capaz de deepin 20</p></body></html> {23<?} + + + + <html><head/><body><p>This app is developed by community user,we give this tag to honor those who contribute to the Linux Ecology</p></body></html> <html><head/><body><p>Esta aplicación fue desarrollada por usuarios de la comunidad y la Etiquetamos en honor a aquellos que contribuyeron a la ecología de linux.</p></body></html> - - + + <html><head/><body><p>Capable to UOS home 20</p></body></html> <html><head/><body><p>Capaz de UOS home 20</p></body></html> - - + + <html><head/><body><p>A deepin-wine2 app. Spark Store will automatically configure the wine kit for you.</p></body></html> <html><head/><body><p>A deepin-wine2 app. La tienda Spark le configurará automáticamente un traje de vino.</p></body></html> - - <html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html> - <html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html> - - - - + + <html><head/><body><p>This is a DTK5 app,which means it would have better effect on Deepin Desktop Environment</p></body></html> <html><head/><body><p>Esta es una aplicación dtk5, lo que significa que funcionará mejor en un entorno de escritorio profundo.</p></body></html> - - - <html><head/><body><p>Capable to deepin 20</p></body></html> - <html><head/><body><p>Capaz de deepin 20</p></body></html> - - - - + + <html><head/><body><p>An Appimage to deb app.</p></body></html> <html><head/><body><p>Appimage de la aplicación deb.</p></body></html> - + Share Comunión - + APP Feedback Comentarios de la app - + Introduction Introducción - + Description Descripción - + Screen capture Captura de pantalla @@ -94,94 +89,55 @@ - + Download and Install Descargar e instalar - - <html><head/><body><p><img src=":/tags/community.svg" height=30 width=30 /></p></body></html> - - - - - + + <html><head/><body><p>Capable to Ubuntu 22.04</p></body></html> <html><head/><body><p>Capaz de Ubuntu 22.04</p></body></html> - - <html><head/><body><p><img src=":/tags/ubuntu.png" width=30 height=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/uos-authorize.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/logo_icon.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/deepin.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/a2d.png"height=30 width=30 /></p></body></html> - - - - - + + <html><head/><body><p>A Wine app.Spark Store will automatically configure the wine kit for you</p></body></html> <html><head/><body><p>La aplicación wine. Spark Store configurará automáticamente el kit Wine para usted</p></body></html> - - <html><head/><body><p><img src=":/tags/dwine5.svg" height=30 width=30 /></p></body></html> - - - - + + <html><head/><body><p>Capable to Debian Stable</p></body></html> - - <html><head/><body><p><img src=":/tags/debian.svg" height="30" width="30"/></p></body></html> - - - - + Update Modernizar - + Contributor Contribuyentes - + Pkgname Nombre del embalaje - + Author Autor - + Size Tamaño - + Website Sitio web @@ -260,18 +216,18 @@ - + Spark Store SPARK Store - + Uninstall succeeded Desinstalación exitosa - + The URL has been copied to the clipboard La URL ha sido copiada al portapapeles @@ -359,9 +315,9 @@ Descarga completada. - - + + Spark Store SPARK Store @@ -372,32 +328,32 @@ Se está instalando - + Installation complete. La instalación está completa. - - + + Finish Completado - + Retry Reinterpretar - - - - - Error happened in dpkg progress , please check the install info or try to reinstall. - Se produjo un error durante el proceso dpkg, verifique la información de instalación o intente reinstalar. - + Error happened in dpkg progress , please check the install info or try to reinstall. + Se produjo un error durante el proceso dpkg, verifique la información de instalación o intente reinstalar. + + + + + dpkg progress had been aborted, please check the install info or try to reinstall. El proceso de DPKG ha sido interrumpido, compruebe la información de instalación o intente reinstalar. diff --git a/translations/spark-store_fr.ts b/translations/spark-store_fr.ts index 1e62451..5c08721 100644 --- a/translations/spark-store_fr.ts +++ b/translations/spark-store_fr.ts @@ -24,68 +24,63 @@ Nombre de téléchargements - - + + + <html><head/><body><p>Capable to deepin 23</p></body></html> + <html><head/><body><p>Capable de la deepin 20</p></body></html> {23<?} + + + + <html><head/><body><p>This app is developed by community user,we give this tag to honor those who contribute to the Linux Ecology</p></body></html> <html><head/><body><p>Cette application a été développée par des utilisateurs de la communauté et nous avons donné ce label à ceux qui ont contribué à l'écologie de Linux</p></body></html> - - + + <html><head/><body><p>Capable to UOS home 20</p></body></html> <html><head/><body><p>Capable de la home UOS 20</p></body></html> - - + + <html><head/><body><p>A deepin-wine2 app. Spark Store will automatically configure the wine kit for you.</p></body></html> <html><head/><body><p>Une application deepin-wine2. Le Spark Store configure automatiquement votre pack de vins.</p></body></html> - - <html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html> - <html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html> - - - - + + <html><head/><body><p>This is a DTK5 app,which means it would have better effect on Deepin Desktop Environment</p></body></html> <html><head/><body><p>C'est une application dtk5, ce qui signifie qu'elle fonctionnera mieux dans un environnement de bureau profond.</p></body></html> - - - <html><head/><body><p>Capable to deepin 20</p></body></html> - <html><head/><body><p>Capable de la deepin 20</p></body></html> - - - - + + <html><head/><body><p>An Appimage to deb app.</p></body></html> <html><head/><body><p>Appimage pour l'application DEB</p></body></html> - + Share Au total - + APP Feedback App feedback - + Introduction Présentation - + Description Description - + Screen capture Captures d'écran @@ -94,94 +89,55 @@ - + Download and Install Télécharger et installer - - <html><head/><body><p><img src=":/tags/community.svg" height=30 width=30 /></p></body></html> - - - - - + + <html><head/><body><p>Capable to Ubuntu 22.04</p></body></html> <html><head/><body><p>Capable de la Ubuntu 22.04</p></body></html> - - <html><head/><body><p><img src=":/tags/ubuntu.png" width=30 height=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/uos-authorize.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/logo_icon.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/deepin.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/a2d.png"height=30 width=30 /></p></body></html> - - - - - + + <html><head/><body><p>A Wine app.Spark Store will automatically configure the wine kit for you</p></body></html> <html><head/><body><p>L'application wine. Spark Store configure automatiquement le kit Wine pour vous</p></body></html> - - <html><head/><body><p><img src=":/tags/dwine5.svg" height=30 width=30 /></p></body></html> - - - - + + <html><head/><body><p>Capable to Debian Stable</p></body></html> - - <html><head/><body><p><img src=":/tags/debian.svg" height="30" width="30"/></p></body></html> - - - - + Update Moderniser - + Contributor Contributeurs - + Pkgname Nom de l'emballage - + Author Auteur - + Size Taille - + Website Site Web @@ -260,18 +216,18 @@ - + Spark Store Le Spark store - + Uninstall succeeded Désinstallation réussie - + The URL has been copied to the clipboard L'URL a été copiée dans le presse - papiers @@ -359,9 +315,9 @@ Le téléchargement est terminé. - - + + Spark Store Le Spark store @@ -372,32 +328,32 @@ Installation en cours - + Installation complete. L'installation est terminée. - - + + Finish Terminé - + Retry Essayez à nouveau - - - - - Error happened in dpkg progress , please check the install info or try to reinstall. - Une erreur s'est produite dans le processus dpkg, vérifiez les informations d'installation ou essayez de réinstaller. - + Error happened in dpkg progress , please check the install info or try to reinstall. + Une erreur s'est produite dans le processus dpkg, vérifiez les informations d'installation ou essayez de réinstaller. + + + + + dpkg progress had been aborted, please check the install info or try to reinstall. La progression de DPKG a été interrompue, veuillez vérifier les informations d’installation ou essayer de réinstaller. diff --git a/translations/spark-store_zh_CN.ts b/translations/spark-store_zh_CN.ts index 3765f74..fae7ea2 100644 --- a/translations/spark-store_zh_CN.ts +++ b/translations/spark-store_zh_CN.ts @@ -24,63 +24,58 @@ 下载量 - - + + + <html><head/><body><p>Capable to deepin 23</p></body></html> + <html><head/><body><p>支持deepin 20</p></body></html> {23<?} + + + + <html><head/><body><p>This app is developed by community user,we give this tag to honor those who contribute to the Linux Ecology</p></body></html> <html><head/><body><p>这款应用是社区开发者开发的,我们为社区开发者颁发这款勋章以表彰他们对Linux生态的贡献</p></body></html> - - + + <html><head/><body><p>Capable to UOS home 20</p></body></html> <html><head/><body><p>支持UOS家庭版 20</p></body></html> - - + + <html><head/><body><p>A deepin-wine2 app. Spark Store will automatically configure the wine kit for you.</p></body></html> 这是一款 deepin-wine2 应用。星火商店会为你自动配置wine环境 - - <html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html> - - - - - + + <html><head/><body><p>This is a DTK5 app,which means it would have better effect on Deepin Desktop Environment</p></body></html> <html><head/><body><p>这是一款DTK5应用,请使用深度桌面环境来获得最完美的体验</p></body></html> - - - <html><head/><body><p>Capable to deepin 20</p></body></html> - <html><head/><body><p>支持deepin 20</p></body></html> - - - - + + <html><head/><body><p>An Appimage to deb app.</p></body></html> <html><head/><body><p>这是一款Appimage转制应用.</p></body></html> - + Share Spk分享链接 - + APP Feedback 应用反馈 - + Description 描述 - + Screen capture 屏幕截图 @@ -89,99 +84,60 @@ - + Download and Install 下载并安装 - - <html><head/><body><p><img src=":/tags/community.svg" height=30 width=30 /></p></body></html> - - - - - + + <html><head/><body><p>Capable to Ubuntu 22.04</p></body></html> <html><head/><body><p>支持Ubuntu 22.04</p></body></html> - - <html><head/><body><p><img src=":/tags/ubuntu.png" width=30 height=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/uos-authorize.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/logo_icon.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/deepin.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/a2d.png"height=30 width=30 /></p></body></html> - - - - - + + <html><head/><body><p>A Wine app.Spark Store will automatically configure the wine kit for you</p></body></html> 这是一款 Wine 应用。星火商店会为你自动配置wine环境 - - <html><head/><body><p><img src=":/tags/dwine5.svg" height=30 width=30 /></p></body></html> - - - - + + <html><head/><body><p>Capable to Debian Stable</p></body></html> <html><head/><body><p>支持Debian Stable</p></body></html> - - <html><head/><body><p><img src=":/tags/debian.svg" height="30" width="30"/></p></body></html> - - - - + Introduction 介绍 - + Update 更新时间 - + Contributor 投稿用户 - + Pkgname 软件包名 - + Author 软件作者 - + Size 软件大小 - + Website 软件官网 @@ -260,18 +216,18 @@ 当前应用不支持或未在您的平台上测试过,安装后可能会出现问题 - + Spark Store 星火应用商店 - + Uninstall succeeded 卸载成功 - + The URL has been copied to the clipboard 链接已复制到剪贴板 @@ -359,9 +315,9 @@ 下载完成. - - + + Spark Store 星火应用商店 @@ -372,32 +328,32 @@ 正在安装 - + Installation complete. 安装完成. - - + + Finish 完成 - + Retry 重试 - - - - - Error happened in dpkg progress , please check the install info or try to reinstall. - 安装出现错误,请检查安装详情或尝试重新安装。 - + Error happened in dpkg progress , please check the install info or try to reinstall. + 安装出现错误,请检查安装详情或尝试重新安装。 + + + + + dpkg progress had been aborted, please check the install info or try to reinstall. 安装被中止,请检查安装详情或尝试重新安装。 diff --git a/translations/spark-store_zh_TW.ts b/translations/spark-store_zh_TW.ts index ddc6048..6d84644 100644 --- a/translations/spark-store_zh_TW.ts +++ b/translations/spark-store_zh_TW.ts @@ -24,63 +24,58 @@ 下載次數 - - + + + <html><head/><body><p>Capable to deepin 23</p></body></html> + <html><head/><body><p>支持deepin 20</p></body></html> {23<?} + + + + <html><head/><body><p>This app is developed by community user,we give this tag to honor those who contribute to the Linux Ecology</p></body></html> <html><head/><body><p>这款应用是社区开发者开发的,我们为社区开发者颁发这款勋章以表彰他们对Linux生态的贡献</p></body></html> - - + + <html><head/><body><p>Capable to UOS home 20</p></body></html> <html><head/><body><p>支持UOS家庭版 20</p></body></html> - - + + <html><head/><body><p>A deepin-wine2 app. Spark Store will automatically configure the wine kit for you.</p></body></html> 这是一款 deepin-wine2 应用。星火商店会为你自动配置wine环境 - - <html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html> - - - - - + + <html><head/><body><p>This is a DTK5 app,which means it would have better effect on Deepin Desktop Environment</p></body></html> <html><head/><body><p>这是一款DTK5应用,请使用深度桌面环境来获得最完美的体验</p></body></html> - - - <html><head/><body><p>Capable to deepin 20</p></body></html> - <html><head/><body><p>支持deepin 20</p></body></html> - - - - + + <html><head/><body><p>An Appimage to deb app.</p></body></html> <html><head/><body><p>这是一款Appimage转制应用.</p></body></html> - + Share Spk共享链接 - + APP Feedback 軟件錯誤回報 - + Description 軟體詳細資料 - + Screen capture 軟體演示 @@ -89,99 +84,60 @@ - + Download and Install 下載並安裝 - - <html><head/><body><p><img src=":/tags/community.svg" height=30 width=30 /></p></body></html> - - - - - + + <html><head/><body><p>Capable to Ubuntu 22.04</p></body></html> <html><head/><body><p>支持Ubuntu 22.04</p></body></html> - - <html><head/><body><p><img src=":/tags/ubuntu.png" width=30 height=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/uos-authorize.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/logo_icon.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/deepin.svg" height=30 width=30 /></p></body></html> - - - - - <html><head/><body><p><img src=":/tags/a2d.png"height=30 width=30 /></p></body></html> - - - - - + + <html><head/><body><p>A Wine app.Spark Store will automatically configure the wine kit for you</p></body></html> 这是一款 Wine 应用。星火商店会为你自动配置wine环境 - - <html><head/><body><p><img src=":/tags/dwine5.svg" height=30 width=30 /></p></body></html> - - - - + + <html><head/><body><p>Capable to Debian Stable</p></body></html> - - <html><head/><body><p><img src=":/tags/debian.svg" height="30" width="30"/></p></body></html> - - - - + Introduction 軟體介紹 - + Update 更新时间 - + Contributor 投稿用户 - + Pkgname 软件包名 - + Author 软件作者 - + Size 软件大小 - + Website 软件官网 @@ -260,18 +216,18 @@ - + Spark Store 星火应用商店 - + Uninstall succeeded 卸载成功 - + The URL has been copied to the clipboard 链接已复制到剪贴板 @@ -359,9 +315,9 @@ 下載完成. - - + + Spark Store 星火应用商店 @@ -372,32 +328,32 @@ 正在安裝 - + Installation complete. 安裝完成. - - + + Finish 完成 - + Retry 重试 - - - - - Error happened in dpkg progress , please check the install info or try to reinstall. - 安裝出現錯誤,請檢查安裝詳情或嘗試重新安裝。 - + Error happened in dpkg progress , please check the install info or try to reinstall. + 安裝出現錯誤,請檢查安裝詳情或嘗試重新安裝。 + + + + + dpkg progress had been aborted, please check the install info or try to reinstall. 安裝被中止,請檢查安裝詳情或嘗試重新安裝。 From 5bc65827b276e6edd1fd29f88cfd582a7cf21354 Mon Sep 17 00:00:00 2001 From: shenmo Date: Mon, 9 Jun 2025 23:25:33 +0800 Subject: [PATCH 15/36] =?UTF-8?q?=E5=9C=A8=E6=89=A7=E8=A1=8C=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=89=8D=EF=BC=8C=E8=87=AA=E5=8A=A8=E9=85=8D=E7=BD=AE?= =?UTF-8?q?ACE=E7=9A=84=E4=BE=9D=E8=B5=96=EF=BC=8C=E4=BB=A5=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E9=83=A8=E5=88=86=E5=BA=94=E7=94=A8=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=86=99=E7=9A=84=E4=B8=8D=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssaudit | 1 + tool/ssinstall | 1 + 2 files changed, 2 insertions(+) diff --git a/tool/ssaudit b/tool/ssaudit index 0cc7e2e..09d41b1 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -280,6 +280,7 @@ function install_in_ace_env() { fi # dry-run成功后执行实际安装 + $ace_cmd "aptss install store.spark-app.app-runtime-base --no-install-recommends -yfq" if $ace_cmd "dpkg -i '$deb_path' || aptss install '$deb_path' -yfq"; then return 0 else diff --git a/tool/ssinstall b/tool/ssinstall index 19186b8..c547ad5 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -281,6 +281,7 @@ function install_in_ace_env() { fi # dry-run成功后执行实际安装 + $ace_cmd "aptss install store.spark-app.app-runtime-base --no-install-recommends -yfq" if $ace_cmd "dpkg -i '$deb_path' || aptss install '$deb_path' -yfq"; then return 0 else From fb6446292c1556e55845391915b07a8c5d2c2a38 Mon Sep 17 00:00:00 2001 From: shenmo Date: Tue, 10 Jun 2025 14:51:00 +0800 Subject: [PATCH 16/36] =?UTF-8?q?add:=20Sparky=20=E6=98=9F=E5=B0=8F?= =?UTF-8?q?=E7=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/application.cpp | 7 +++---- src/assets/assets.qrc | 1 + src/assets/icon/sparky.png | Bin 0 -> 410630 bytes 3 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 src/assets/icon/sparky.png diff --git a/src/application.cpp b/src/application.cpp index 46c56a9..2505143 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -35,14 +35,13 @@ Application::Application(int &argc, char **argv) setApplicationName("spark-store"); // 影响 ~/.config/spark-union ~/.local/share/spark-union 下文件夹名称 setApplicationDisplayName(QObject::tr("Spark Store")); // 设置窗口显示标题 (Wayland 下会显示 Qt 原生标题栏) setProductName(QObject::tr("Spark Store")); - setProductIcon(QIcon::fromTheme("spark-store")); + setProductIcon(QIcon(":/icon/sparky.png")); setApplicationHomePage("https://gitee.com/spark-store-project"); setApplicationDescription( QObject::tr( "An appstore powered by community
" - "https://www.spark-app.store
" - "Spark developers")); - setApplicationLicense(" Spark Opensource License "); + "Sparky is our mascot, designed by Tyson Tan
")); + setApplicationLicense(" GPL V3 "); // 检查 ~/.config/spark-union/spark-store 文件夹是否存在 checkAppConfigLocation(); diff --git a/src/assets/assets.qrc b/src/assets/assets.qrc index 348edce..b8887ca 100644 --- a/src/assets/assets.qrc +++ b/src/assets/assets.qrc @@ -73,5 +73,6 @@ tags/uos.png tags/uos.svg translations/qtwebengine_zh.qm + icon/sparky.png diff --git a/src/assets/icon/sparky.png b/src/assets/icon/sparky.png new file mode 100644 index 0000000000000000000000000000000000000000..cf154b00a3d827707178327b2c90b14721101f7b GIT binary patch literal 410630 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

EUHh< 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
_hf^UHj#Jsd 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⋙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

x%yjm7= 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

5quJ{ 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 literal 0 HcmV?d00001 From 05a5b89464765540c30e620fbc7f5444cb0189d9 Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 11 Jun 2025 15:10:09 +0800 Subject: [PATCH 17/36] =?UTF-8?q?fix:=20=E7=8E=B0=E5=9C=A8=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=88=B0ACE=E7=9A=84=E8=BD=AF=E4=BB=B6=E5=8C=85?= =?UTF-8?q?=E4=B8=8D=E4=BC=9A=E5=86=8D=E6=8A=A5=E9=94=99=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/appintopage.cpp | 47 ++++++++++++++-------------- src/widgets/common/downloaditem.cpp | 12 +++---- tool/store-helper/check-is-installed | 7 +++-- tool/store-helper/ss-launcher | 5 +-- 4 files changed, 37 insertions(+), 34 deletions(-) diff --git a/src/pages/appintopage.cpp b/src/pages/appintopage.cpp index 7c58198..413021a 100644 --- a/src/pages/appintopage.cpp +++ b/src/pages/appintopage.cpp @@ -151,24 +151,25 @@ void AppIntoPage::openUrl(const QUrl &url) { isInstalled = true; - QProcess isUpdate; - isUpdate.start("dpkg-query", QStringList() << "--showformat='${Version}'" - << "--show" << info["Pkgname"].toString()); - isUpdate.waitForFinished(180 * 1000); // 默认超时 3 分钟 - QString localVersion = isUpdate.readAllStandardOutput(); - localVersion.replace("'", ""); + // QProcess isUpdate; + // isUpdate.start("dpkg-query", QStringList() << "--showformat='${Version}'" + // << "--show" << info["Pkgname"].toString()); + // isUpdate.waitForFinished(180 * 1000); // 默认超时 3 分钟 + // QString localVersion = isUpdate.readAllStandardOutput(); + // localVersion.replace("'", ""); - isUpdate.start("dpkg", QStringList() << "--compare-versions" << localVersion << "ge" << info["Version"].toString()); - isUpdate.waitForFinished(180 * 1000); // 默认超时 3 分钟 - if (isUpdate.exitCode() == 0 && isUpdate.exitStatus() == QProcess::NormalExit) - { - isUpdated = true; - } - else - { - isUpdated = false; - } - isUpdate.close(); + // isUpdate.start("dpkg", QStringList() << "--compare-versions" << localVersion << "ge" << info["Version"].toString()); + // isUpdate.waitForFinished(180 * 1000); // 默认超时 3 分钟 + // if (isUpdate.exitCode() == 0 && isUpdate.exitStatus() == QProcess::NormalExit) + // { + // isUpdated = true; + // } + // else + // { + // isUpdated = false; + // } + // isUpdate.close(); + isUpdated = true; //去掉直接点击升级的功能 } else { @@ -586,11 +587,11 @@ void AppIntoPage::on_pushButton_3_clicked() uninstall.waitForFinished(-1); uninstall.close(); - QProcess check; - check.start("dpkg", QStringList() << "-s" << info["Pkgname"].toString().toLower()); - check.waitForFinished(-1); + // QProcess check; + // check.start("dpkg", QStringList() << "-s" << info["Pkgname"].toString().toLower()); + // check.waitForFinished(-1); - if (check.exitCode() != 0 || check.exitStatus() != QProcess::NormalExit) + if (uninstall.exitCode() != 0 || uninstall.exitStatus() != QProcess::NormalExit) { ui->downloadButton->setText(tr("Download and Install")); ui->pushButton_3->hide(); @@ -601,7 +602,7 @@ void AppIntoPage::on_pushButton_3_clicked() ui->downloadButton->setEnabled(true); ui->pushButton_3->setEnabled(true); - check.close(); + // check.close(); }); } @@ -617,4 +618,4 @@ void AppIntoPage::on_updateButton_clicked() { QString feedbackURL = "https://bbs.spark-app.store/"; QProcess::startDetached("xdg-open", QStringList{feedbackURL}); -} \ No newline at end of file +} diff --git a/src/widgets/common/downloaditem.cpp b/src/widgets/common/downloaditem.cpp index 96903d2..45cdc54 100644 --- a/src/widgets/common/downloaditem.cpp +++ b/src/widgets/common/downloaditem.cpp @@ -216,11 +216,11 @@ void DownloadItem::slotAsyncInstall(int t) } } - QProcess isInstall; - isInstall.start("dpkg", QStringList() << "-s" << pkgName); - isInstall.waitForFinished(180 * 1000); // 默认超时 3 分钟 - int error = QString::fromStdString(isInstall.readAllStandardError().toStdString()).length(); - if (error == 0 && !haveError) + // QProcess isInstall; + // isInstall.start("dpkg", QStringList() << "-s" << pkgName); + // isInstall.waitForFinished(180 * 1000); // 默认超时 3 分钟 + // int error = QString::fromStdString(isInstall.readAllStandardError().toStdString()).length(); + if ( !haveError) { ui->pushButton_install->hide(); Utils::sendNotification("spark-store", tr("Spark Store"), ui->label->text() + " " + tr("Installation complete.")); @@ -252,5 +252,5 @@ void DownloadItem::slotAsyncInstall(int t) ui->widget_spinner->hide(); DownloadItem::isInstall = false; - emit finished(error == 0 && !haveError && !notRoot); + emit finished(!haveError && !notRoot); } diff --git a/tool/store-helper/check-is-installed b/tool/store-helper/check-is-installed index 9aaffe0..3251815 100755 --- a/tool/store-helper/check-is-installed +++ b/tool/store-helper/check-is-installed @@ -1,13 +1,14 @@ #!/bin/bash -dpkg -s "$1" > /dev/null -RET="$?" - if [[ "$RET" != "0" ]] &&[[ "$IS_ACE_ENV" == "" ]];then ## 如果未在ACE环境中 readonly ACE_ENVIRONMENTS=( "bookworm-run:amber-ce-bookworm" "trixie-run:amber-ce-trixie" "deepin23-run:amber-ce-deepin23" "sid-run:amber-ce-sid" ) +dpkg -s "$1" > /dev/null +RET="$?" +if [[ "$RET" != "0" ]] &&[[ "$IS_ACE_ENV" == "" ]];then ## 如果未在ACE环境中 + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do diff --git a/tool/store-helper/ss-launcher b/tool/store-helper/ss-launcher index a7730dc..977ec97 100755 --- a/tool/store-helper/ss-launcher +++ b/tool/store-helper/ss-launcher @@ -1,10 +1,11 @@ #!/bin/bash # ===== ACE环境配置 ===== -declare -a ace_commands_order=( +readonly ACE_ENVIRONMENTS=( "bookworm-run:amber-ce-bookworm" "trixie-run:amber-ce-trixie" "deepin23-run:amber-ce-deepin23" + "sid-run:amber-ce-sid" ) # ===== 日志和函数 ===== @@ -72,7 +73,7 @@ function launch_app() { # ===== ACE环境执行器 ===== function ace_runner() { local command_type=$1 package_name=$2 - for ace_entry in "${ace_commands_order[@]}"; do + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do local ace_cmd=${ace_entry%%:*} command -v "$ace_cmd" >/dev/null || continue From 9b92894e4fed627ca7a82d3a8ad2cfae97481d07 Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 11 Jun 2025 15:33:00 +0800 Subject: [PATCH 18/36] =?UTF-8?q?=E6=B7=BB=E5=8A=A0ssinstall=20tips?= =?UTF-8?q?=EF=BC=8C=E6=96=B9=E4=BE=BF=E5=90=8E=E7=BB=AD=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssinstall | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tool/ssinstall b/tool/ssinstall index c547ad5..43b7a02 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -2,7 +2,7 @@ # 初始化常量和全局变量 readonly SPARK_DOWNLOAD_SERVER_URL="https://d.spark-app.store/" readonly SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL="d.spark-app.store" -# ACE环境配置 - 修改此数组即可添加或删除支持的环境 +# ACE环境配置 - 修改此数组即可添加或删除支持的环境——记得修改 store-helper 里的 uninstaller 和 ss-launcher readonly ACE_ENVIRONMENTS=( "bookworm-run:amber-ce-bookworm" "trixie-run:amber-ce-trixie" From cd4f104e1af7b561ada4aa9fce6f069912d63290 Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 11 Jun 2025 15:44:48 +0800 Subject: [PATCH 19/36] =?UTF-8?q?=E5=AE=8C=E6=88=90uninstaller=E7=9A=84ACE?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssinstall | 2 +- tool/store-helper/uninstaller | 206 ++++++++++++++++++++++++++++------ 2 files changed, 172 insertions(+), 36 deletions(-) diff --git a/tool/ssinstall b/tool/ssinstall index 43b7a02..48144bf 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -2,7 +2,7 @@ # 初始化常量和全局变量 readonly SPARK_DOWNLOAD_SERVER_URL="https://d.spark-app.store/" readonly SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL="d.spark-app.store" -# ACE环境配置 - 修改此数组即可添加或删除支持的环境——记得修改 store-helper 里的 uninstaller 和 ss-launcher +# ACE环境配置 - 修改此数组即可添加或删除支持的环境——记得修改 store-helper 里的 uninstaller check-is-installed 和 ss-launcher readonly ACE_ENVIRONMENTS=( "bookworm-run:amber-ce-bookworm" "trixie-run:amber-ce-trixie" diff --git a/tool/store-helper/uninstaller b/tool/store-helper/uninstaller index eaad4c0..ea10feb 100755 --- a/tool/store-helper/uninstaller +++ b/tool/store-helper/uninstaller @@ -1,10 +1,82 @@ #!/bin/bash # ===== ACE环境配置 ===== -declare -a ace_commands_order=( + +readonly ACE_ENVIRONMENTS=( "bookworm-run:amber-ce-bookworm" "trixie-run:amber-ce-trixie" "deepin23-run:amber-ce-deepin23" + "sid-run:amber-ce-sid" ) +# 生成ACE环境参数帮助信息 +function generate_ace_help() { + local help_text="" + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + local ace_param="--${ace_entry#*:}" + help_text+=" $ace_param 使用${ace_entry%%:*} ACE容器卸载\n" + done + echo -e "$help_text" +} +# 帮助函数 +function show_help() { + echo "Spark Store Uninstall script. 星火商店卸载脚本" + echo "用法: $0 [选项] 包名" + echo "选项:" + echo " -h, --help 显示帮助信息" + echo " --delete-after-install 安装成功后删除软件包" + echo " --no-create-desktop-entry 不创建桌面快捷方式" + echo " --force-create-desktop-entry 强制创建桌面快捷方式" + echo "$(generate_ace_help)" + echo " --native 只在主机卸载,不使用ACE容器" +} + + +# 参数解析 +function parse_args() { + while [ $# -gt 0 ]; do + case "$1" in + -h|--help) + show_help + exit 0 + ;; + --delete-after-install) + DELETE_AFTER_INSTALL="1" + shift + ;; + --native) + FORCE_NATIVE="1" + shift + ;; + --no-create-desktop-entry) + NO_CREATE_DESKTOP="1" + shift + ;; + --force-create-desktop-entry) + FORCE_CREATE_DESKTOP="1" + shift + ;; + *) + # 检查是否为ACE环境参数 + local is_ace_param=0 + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + local ace_param="--${ace_entry#*:}" + if [ "$1" = "$ace_param" ]; then + # 将ACE环境命令名加入数组 + ACE_PARAMS+=("${ace_entry%%:*}") + is_ace_param=1 + shift + break + fi + done + + # 如果不是ACE环境参数,则视为包名 + if [ "$is_ace_param" -eq 0 ]; then + PACKAGE_NAME="$1" + shift + fi + ;; + esac + done +} # ===== 日志和函数 ===== [ -f /opt/durapps/spark-store/bin/bashimport/log.amber ] && \ @@ -15,40 +87,104 @@ declare -a ace_commands_order=( log.debug() { echo "DEBUG: $*"; } } -dpkg -s "$1" > /dev/null -RET="$?" -if [[ "$RET" == "0" ]] ;then -apt autopurge $1 -y +# 初始化变量 +FORCE_NATIVE=0 +ACE_PARAMS=() +PACKAGE_NAME="" +uninstall_success=0 + +# 解析参数 +parse_args "$@" + +if [ -z "$PACKAGE_NAME" ]; then + log.error "请指定要卸载的包名" + exit 1 +fi + +# 尝试在本地卸载 +try_native_uninstall() { + if [ "$FORCE_NATIVE" -eq 1 ] || [ ${#ACE_PARAMS[@]} -eq 0 ]; then + echo "----------------------------------------" + echo "正在检查本地环境中的安装..." + echo "----------------------------------------" + + dpkg -s "$PACKAGE_NAME" > /dev/null + RET="$?" + if [[ "$RET" == "0" ]]; then + echo "----------------------------------------" + echo "在本地环境中找到了安装" + echo "----------------------------------------" + apt autopurge "$PACKAGE_NAME" -y + uninstall_success=1 + return 0 + else + echo "----------------------------------------" + echo "在本地环境中未能找到安装" + echo "----------------------------------------" + fi + fi + return 1 +} + +# 尝试在ACE环境中卸载 +try_ace_uninstall() { + local ace_cmd="$1" + if command -v "$ace_cmd" >/dev/null 2>&1; then + echo "----------------------------------------" + echo "正在检查 $ace_cmd 环境的安装..." + echo "----------------------------------------" + + $ace_cmd dpkg -l | grep "^ii $PACKAGE_NAME " > /dev/null + try_run_ret="$?" + + if [ "$try_run_ret" -eq 0 ]; then + echo "----------------------------------------" + echo "在 $ace_cmd 环境中找到了安装" + echo "----------------------------------------" + $ace_cmd apt autopurge "$PACKAGE_NAME" -y + uninstall_success=1 + return 0 + else + echo "----------------------------------------" + echo "在 $ace_cmd 环境中未能找到安装" + echo "----------------------------------------" + fi + fi + return 1 +} + +# 主卸载逻辑 +if [ $FORCE_NATIVE -eq 1 ] && [ ${#ACE_PARAMS[@]} -eq 0 ]; then + # 只有 --native 参数时,只尝试本地卸载 + try_native_uninstall || exit $? +elif [ $FORCE_NATIVE -eq 0 ] && [ ${#ACE_PARAMS[@]} -gt 0 ]; then + # 只有 ACE 参数时,只尝试指定的 ACE 环境卸载 + for ace_param in "${ACE_PARAMS[@]}"; do + try_ace_uninstall "$ace_param" + done +elif [ $FORCE_NATIVE -eq 1 ] && [ ${#ACE_PARAMS[@]} -gt 0 ]; then + # 同时有 --native 和 ACE 参数时,先尝试本地卸载,再尝试 ACE 环境卸载 + try_native_uninstall + for ace_param in "${ACE_PARAMS[@]}"; do + try_ace_uninstall "$ace_param" + done else + # 无参数时,先尝试本地卸载,再尝试所有 ACE 环境卸载 + try_native_uninstall + + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do + ace_cmd=${ace_entry%%:*} + if command -v "$ace_cmd" >/dev/null 2>&1; then + try_ace_uninstall "$ace_cmd" + fi + done +fi -for ace_entry in "${ace_commands_order[@]}"; do - ace_cmd=${ace_entry%%:*} - if command -v "$ace_cmd" >/dev/null 2>&1; then - echo "----------------------------------------" - echo "正在检查 $ace_cmd 环境的安装..." - echo "----------------------------------------" - - # 在ACE环境中执行安装检测 - $ace_cmd dpkg -l | grep "^ii $1 " > /dev/null - try_run_ret="$?" - +if [ $uninstall_success -eq 0 ]; then + echo "----------------------------------------" + echo "在所有指定的环境中未能找到安装,退出" + echo "----------------------------------------" + exit 1 +fi - # 最终检测结果处理 - if [ "$try_run_ret" -eq 0 ]; then - echo "----------------------------------------" - echo "在 $ace_cmd 环境中找到了安装" - echo "----------------------------------------" - $ace_cmd apt autopurge $1 -y - else - echo "----------------------------------------" - echo "在 $ace_cmd 环境中未能找到安装,继续查找" - echo "----------------------------------------" - fi - fi - done - echo "----------------------------------------" - echo "所有已安装的 ACE 环境中未能找到安装,退出" - echo "----------------------------------------" - exit "$RET" - fi -exit "$RET" +exit 0 From 4fc8ef3f483d3e5d2c00c1173afc00f0382b144a Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 11 Jun 2025 20:41:51 +0800 Subject: [PATCH 20/36] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E7=BB=99=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=8C=87=E5=BC=95=EF=BC=8C=E6=8C=87=E5=AF=BC=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=BD=BF=E7=94=A8ACE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/update-upgrade/ss-do-upgrade-worker.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tool/update-upgrade/ss-do-upgrade-worker.sh b/tool/update-upgrade/ss-do-upgrade-worker.sh index 75c0f89..4f2a8e6 100755 --- a/tool/update-upgrade/ss-do-upgrade-worker.sh +++ b/tool/update-upgrade/ss-do-upgrade-worker.sh @@ -37,6 +37,8 @@ if [ "$(id -u)" != "0" ] ; then fi aptss install "${@:2}" --only-upgrade 2>&1 | tee /tmp/spark-store-app-upgrade-log.txt + sed -i '1i--------------------------------------------------------------' /tmp/spark-store-app-upgrade-log.txt + sed -i '1i更新失败可能是由于系统版本过低,您可先【卸载】此应用后再在商店【安装】此应用来尝试修复此问题,商店会在安装时尝试自动解决问题。若仍无法解决,请按照指引进行反馈' /tmp/spark-store-app-upgrade-log.txt chmod 777 /tmp/spark-store-app-upgrade-log.txt IS_UPGRADE_ERROR=`cat /tmp/spark-store-app-upgrade-log.txt | grep "Package manager quit with exit code."` echo "$IS_UPGRADE_ERROR" > /tmp/spark-store-app-upgrade-status.txt From 233b5e8c76b89359d649d2fb95cc0c21e0a86a26 Mon Sep 17 00:00:00 2001 From: MeowVing Date: Wed, 11 Jun 2025 13:30:14 +0000 Subject: [PATCH 21/36] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9C=AC=E6=9C=BA?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E3=80=81ACE=20=E5=85=BC=E5=AE=B9=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E5=AE=89=E8=A3=85=20Tags?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MeowVing --- src/assets/tags/amber-ce-bookworm.svg | 1 + src/assets/tags/amber-ce-bookworm_full.svg | 1 + src/assets/tags/amber-ce-sid.svg | 1 + src/assets/tags/amber-ce-sid_full.svg | 1 + src/assets/tags/amber-ce-trixie.svg | 1 + src/assets/tags/amber-ce-trixie_full.svg | 1 + src/assets/tags/native.svg | 1 + src/assets/tags/native_full.svg | 1 + 8 files changed, 8 insertions(+) create mode 100644 src/assets/tags/amber-ce-bookworm.svg create mode 100644 src/assets/tags/amber-ce-bookworm_full.svg create mode 100644 src/assets/tags/amber-ce-sid.svg create mode 100644 src/assets/tags/amber-ce-sid_full.svg create mode 100644 src/assets/tags/amber-ce-trixie.svg create mode 100644 src/assets/tags/amber-ce-trixie_full.svg create mode 100644 src/assets/tags/native.svg create mode 100644 src/assets/tags/native_full.svg diff --git a/src/assets/tags/amber-ce-bookworm.svg b/src/assets/tags/amber-ce-bookworm.svg new file mode 100644 index 0000000..60638cf --- /dev/null +++ b/src/assets/tags/amber-ce-bookworm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/tags/amber-ce-bookworm_full.svg b/src/assets/tags/amber-ce-bookworm_full.svg new file mode 100644 index 0000000..4ed208d --- /dev/null +++ b/src/assets/tags/amber-ce-bookworm_full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/tags/amber-ce-sid.svg b/src/assets/tags/amber-ce-sid.svg new file mode 100644 index 0000000..6b28b6b --- /dev/null +++ b/src/assets/tags/amber-ce-sid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/tags/amber-ce-sid_full.svg b/src/assets/tags/amber-ce-sid_full.svg new file mode 100644 index 0000000..bfa1651 --- /dev/null +++ b/src/assets/tags/amber-ce-sid_full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/tags/amber-ce-trixie.svg b/src/assets/tags/amber-ce-trixie.svg new file mode 100644 index 0000000..d675bcf --- /dev/null +++ b/src/assets/tags/amber-ce-trixie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/tags/amber-ce-trixie_full.svg b/src/assets/tags/amber-ce-trixie_full.svg new file mode 100644 index 0000000..7669a3a --- /dev/null +++ b/src/assets/tags/amber-ce-trixie_full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/tags/native.svg b/src/assets/tags/native.svg new file mode 100644 index 0000000..96bfb03 --- /dev/null +++ b/src/assets/tags/native.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/tags/native_full.svg b/src/assets/tags/native_full.svg new file mode 100644 index 0000000..6c633d2 --- /dev/null +++ b/src/assets/tags/native_full.svg @@ -0,0 +1 @@ + \ No newline at end of file From 9493f0738a89f398d6383976b0ebe11b0892309c Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 11 Jun 2025 21:41:49 +0800 Subject: [PATCH 22/36] add assets --- src/assets/assets.qrc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/assets/assets.qrc b/src/assets/assets.qrc index b8887ca..baa3064 100644 --- a/src/assets/assets.qrc +++ b/src/assets/assets.qrc @@ -74,5 +74,13 @@ tags/uos.svg translations/qtwebengine_zh.qm icon/sparky.png + tags/amber-ce-bookworm_full.svg + tags/amber-ce-bookworm.svg + tags/amber-ce-sid_full.svg + tags/amber-ce-sid.svg + tags/amber-ce-trixie_full.svg + tags/amber-ce-trixie.svg + tags/native_full.svg + tags/native.svg From 0ca73a2a28128549580a7f4754a08539967c70ed Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 11 Jun 2025 22:14:51 +0800 Subject: [PATCH 23/36] =?UTF-8?q?=E5=AE=8C=E6=88=90V4.8.0=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/appintopage.cpp | 76 +++++++++++++++++++++++++++------------ src/pages/appintopage.ui | 67 +++++++++++++++++++++++++++++++--- 2 files changed, 115 insertions(+), 28 deletions(-) diff --git a/src/pages/appintopage.cpp b/src/pages/appintopage.cpp index 413021a..f00e805 100644 --- a/src/pages/appintopage.cpp +++ b/src/pages/appintopage.cpp @@ -235,6 +235,9 @@ void AppIntoPage::clear() ui->tag_debian->hide(); ui->tag_ubuntu->hide(); ui->tag_community->hide(); + ui->tag_native->hide(); + ui->tag_amber_ce_bookworm->hide(); + ui->tag_amber_ce_trixie->hide(); ui->icon->clear(); ui->title->clear(); ui->version->clear(); @@ -405,33 +408,17 @@ void AppIntoPage::setAppinfoTags(const QStringList &tagList) bool deepinSupport = false; bool uosSupport = false; bool debianSupport = false; + bool hasAmberTag = false; + foreach (const QString &tag, tagList) { - if (tag == "community") + if (tag.isEmpty()) { + continue; + } + else if (tag == "community") { ui->tag_community->show(); } - else if (tag == "debian") - { - ui->tag_debian->show(); - debianSupport = true; - } - else if (tag == "ubuntu") - { - ui->tag_ubuntu->show(); - ubuntuSupport = true; - } - else if (tag == "deepin") - { - ui->tag_deepin->show(); - deepinSupport = true; - } - else if (tag == "uos") - { - ui->tag_uos->show(); - uosSupport = true; - - } else if (tag == "dtk5") { ui->tag_dtk5->show(); @@ -448,10 +435,53 @@ void AppIntoPage::setAppinfoTags(const QStringList &tagList) { ui->tag_a2d->show(); } + else if (tag == "native") + { + ui->tag_native->show(); + } + else if (tag == "amber-ce-bookworm") + { + ui->tag_amber_ce_bookworm->show(); + hasAmberTag = true; + } + else if (tag == "amber-ce-trixie") + { + ui->tag_amber_ce_trixie->show(); + hasAmberTag = true; + } + else if (!hasAmberTag) // Only process distro tags if we haven't found an amber tag + { + + if (tag == "debian") + { + ui->tag_debian->show(); + debianSupport = true; + } + else if (tag == "ubuntu") + { + ui->tag_ubuntu->show(); + ubuntuSupport = true; + } + else if (tag == "deepin") + { + ui->tag_deepin->show(); + deepinSupport = true; + } + else if (tag == "uos") + { + ui->tag_uos->show(); + uosSupport = true; + } + } + } + + if (!hasAmberTag) + { + notifyUserUnsupportedTags(ubuntuSupport, deepinSupport, uosSupport, debianSupport); } - notifyUserUnsupportedTags(ubuntuSupport, deepinSupport, uosSupport ,debianSupport); } + void AppIntoPage::notifyUserUnsupportedTags(bool ubuntuSupport, bool deepinSupport, bool uosSupport, bool debianSupport) { if (!SettingsPage::needUncompatibleNotification) { diff --git a/src/pages/appintopage.ui b/src/pages/appintopage.ui index 7492a61..72e225f 100644 --- a/src/pages/appintopage.ui +++ b/src/pages/appintopage.ui @@ -385,8 +385,8 @@ - 184 - 20 + 20 + 37 @@ -467,6 +467,63 @@ + + + + + 40 + 40 + + + + <html><head/><body><p>This app can only be installed natively</p></body></html> + + + <html><head/><body><p>This app can only be installed natively</p></body></html> + + + :/tags/native.svg + + + + + + + + 40 + 40 + + + + <html><head/><body><p>This app will be installed to debian12 ACE</p></body></html> + + + <html><head/><body><p>This app will be installed to debian12 ACE</p></body></html> + + + :/tags/amber-ce-bookworm.svg + + + + + + + + 40 + 40 + + + + <html><head/><body><p>This app will be installed to debian13 ACE</p></body></html> + + + <html><head/><body><p>This app will be installed to debian13 ACE</p></body></html> + + + :/tags/amber-ce-trixie.svg + + + @@ -474,8 +531,8 @@ - 184 - 20 + 20 + 37 @@ -718,7 +775,7 @@ 0 0 - 524 + 482 601 From ca6e47e9a39132fb7ddfc18f6fe019833e9bc346 Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 11 Jun 2025 22:20:28 +0800 Subject: [PATCH 24/36] 4.8.0~test1 --- debian/changelog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 1df431a..1eecaa1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ -spark-store (4.7.1~test1) UNRELEASED; urgency=medium +spark-store (4.8.0~test1) UNRELEASED; urgency=medium * ssinstall升级,支持安装到ACE和自动安装到ACE + * 商店支持展示ACE标识,支持识别 native amber-ce-bookworm amber-ce-trixie -- shenmo Tue, 24 Sep 2024 11:27:08 +0800 From 33c892b39de61d509165cb74cc93d2e95a2fb85f Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 11 Jun 2025 23:14:44 +0800 Subject: [PATCH 25/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9ssinstall?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssaudit | 50 +++++++++++++++++++++++++++++++++----------------- tool/ssinstall | 27 +++++++++++++++++++++++++-- 2 files changed, 58 insertions(+), 19 deletions(-) diff --git a/tool/ssaudit b/tool/ssaudit index 09d41b1..25837b4 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -2,7 +2,7 @@ # 初始化常量和全局变量 readonly SPARK_DOWNLOAD_SERVER_URL="https://d.spark-app.store/" readonly SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL="d.spark-app.store" -# ACE环境配置 - 修改此数组即可添加或删除支持的环境 +# ACE环境配置 - 修改此数组即可添加或删除支持的环境——记得修改 store-helper 里的 uninstaller check-is-installed 和 ss-launcher readonly ACE_ENVIRONMENTS=( "bookworm-run:amber-ce-bookworm" "trixie-run:amber-ce-trixie" @@ -13,6 +13,27 @@ readonly ACE_ENVIRONMENTS_FOR_AUTOINSTALL=( "bookworm-run:amber-ce-bookworm" "trixie-run:amber-ce-trixie" ) +function get_current_user() { + # 优先通过 who 命令获取用户 + local user + user=$(who | awk '{print $1}' | head -n 1 2>/dev/null) + + # 如果 who 无输出,则通过 loginctl 获取 + if [[ -z "$user" ]]; then + user=$(loginctl list-sessions --no-legend 2>/dev/null | awk '{print $3}' | head -n 1) + fi + + # 返回最终结果(可能为空) + echo "${user}" +} + +function zenity() { + local user=$(get_current_user) + local uid=$(id -u "$user") + sudo -u "$user" DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$uid"/bus zenity "$@" +} + + # 全局变量初始化(位于 parse_args 前) ACE_PARAMS=() @@ -45,7 +66,7 @@ case $(arch) in esac # 帮助函数 function show_help() { - echo "Spark Store Audit script. 星火商店审核脚本" + echo "Spark Store audit script. 星火商店审核脚本" echo "用法: $0 [选项] " echo "选项:" echo " -h, --help 显示帮助信息" @@ -257,6 +278,7 @@ function install_in_ace_env() { local ace_cmd="$1" local deb_path="$2" local ace_env_pkg="${3#*:}" + if [ "$IS_ACE_ENV" != "" ]; then echo "无法在ACE中安装ACE包" return 1 @@ -268,13 +290,15 @@ function install_in_ace_env() { echo "----------------------------------------" echo "正在尝试使用 $ace_cmd 环境安装..." echo "----------------------------------------" - + $ace_cmd "ensure_aptss_exist" + # 首先尝试dry-run测试 - if ! $ace_cmd "ensure_aptss_exist && aptss install --dry-run '$deb_path'"; then + if ! $ace_cmd "aptss install --dry-run '$deb_path'"; then echo "初始dry-run测试失败,尝试更新后重试..." $ace_cmd "aptss update" if ! $ace_cmd "aptss install --dry-run '$deb_path'"; then echo "dry-run测试仍然失败,放弃安装" + echo "OMG_IT_GOES_WRONG" return 1 fi fi @@ -319,7 +343,7 @@ function auto_try_install() { return 0 fi - # 如果主机安装失败且不在强制本地模式,尝试ACE环境 + # 如果主机安装失败,并非在ACE内运行且不在强制本地模式,尝试ACE环境 if [ "$FORCE_NATIVE" -eq 0 ] || [ "$IS_ACE_ENV" = "" ]; then for ace_entry in "${ACE_ENVIRONMENTS_FOR_AUTOINSTALL[@]}"; do local ace_cmd=${ace_entry%%:*} @@ -395,7 +419,9 @@ function lock_file() { } function unlock_file() { + if [ -e "$1" ];then chattr -i "$1" + fi } # 主安装流程 @@ -418,18 +444,8 @@ function main_install() { lock_file "$DEBPATH" # hash_check "$DEBPATH" -# -# if [ -z "$IS_SHA512SUM_CHECKED" ]; then -# echo "尝试更新仓库信息重新校验" -# aptss ssupdate -# hash_check "$DEBPATH" -# if [ -z "$IS_SHA512SUM_CHECKED" ]; then -# echo -e "$TRANSHELL_CONTENT_HASH_CHECK_FAILED" -# zenity --info --icon-name=spark-store --height 270 --width 500 --text "$TRANSHELL_CONTENT_HASH_CHECK_FAILED" -# echo "OMG-IT-GOES-WRONG" -# exit 1 -# fi -# fi + + package_name=$(dpkg-deb -f "$DEBPATH" Package) local install_success=1 diff --git a/tool/ssinstall b/tool/ssinstall index 48144bf..bfcc21f 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -13,6 +13,27 @@ readonly ACE_ENVIRONMENTS_FOR_AUTOINSTALL=( "bookworm-run:amber-ce-bookworm" "trixie-run:amber-ce-trixie" ) +function get_current_user() { + # 优先通过 who 命令获取用户 + local user + user=$(who | awk '{print $1}' | head -n 1 2>/dev/null) + + # 如果 who 无输出,则通过 loginctl 获取 + if [[ -z "$user" ]]; then + user=$(loginctl list-sessions --no-legend 2>/dev/null | awk '{print $3}' | head -n 1) + fi + + # 返回最终结果(可能为空) + echo "${user}" +} + +function zenity() { + local user=$(get_current_user) + local uid=$(id -u "$user") + sudo -u "$user" DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$uid"/bus zenity "$@" +} + + # 全局变量初始化(位于 parse_args 前) ACE_PARAMS=() @@ -269,13 +290,15 @@ function install_in_ace_env() { echo "----------------------------------------" echo "正在尝试使用 $ace_cmd 环境安装..." echo "----------------------------------------" - + $ace_cmd "ensure_aptss_exist" + # 首先尝试dry-run测试 - if ! $ace_cmd "ensure_aptss_exist && aptss install --dry-run '$deb_path'"; then + if ! $ace_cmd "aptss install --dry-run '$deb_path'"; then echo "初始dry-run测试失败,尝试更新后重试..." $ace_cmd "aptss update" if ! $ace_cmd "aptss install --dry-run '$deb_path'"; then echo "dry-run测试仍然失败,放弃安装" + echo "OMG_IT_GOES_WRONG" return 1 fi fi From da65d3b90e62c3b9af320c3942877ad9a4251dc9 Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 12 Jun 2025 00:12:55 +0800 Subject: [PATCH 26/36] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E4=B8=8B=E4=BB=8D=E7=84=B6=E4=BC=9A=E5=BC=B9?= =?UTF-8?q?=E5=87=BAtag=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/appintopage.cpp | 76 +++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/src/pages/appintopage.cpp b/src/pages/appintopage.cpp index f00e805..1ca7e8f 100644 --- a/src/pages/appintopage.cpp +++ b/src/pages/appintopage.cpp @@ -410,48 +410,49 @@ void AppIntoPage::setAppinfoTags(const QStringList &tagList) bool debianSupport = false; bool hasAmberTag = false; + // First pass: Check if any Amber tags exist foreach (const QString &tag, tagList) { - if (tag.isEmpty()) { - continue; - } - else if (tag == "community") + if (tag == "amber-ce-bookworm" || tag == "amber-ce-trixie") { - ui->tag_community->show(); - } - else if (tag == "dtk5") - { - ui->tag_dtk5->show(); - } - else if (tag == "dwine2") - { - ui->tag_dwine2->show(); - } - else if (tag == "dwine5") - { - ui->tag_dwine5->show(); - } - else if (tag == "a2d") - { - ui->tag_a2d->show(); - } - else if (tag == "native") - { - ui->tag_native->show(); - } - else if (tag == "amber-ce-bookworm") - { - ui->tag_amber_ce_bookworm->show(); hasAmberTag = true; + break; // No need to continue checking } - else if (tag == "amber-ce-trixie") - { - ui->tag_amber_ce_trixie->show(); - hasAmberTag = true; - } - else if (!hasAmberTag) // Only process distro tags if we haven't found an amber tag - { + } + // Second pass: Apply tags based on whether we have Amber tags + foreach (const QString &tag, tagList) + { + if (tag.isEmpty()) + continue; + + if (tag == "native") + ui->tag_native->show(); + + else if (tag == "community") + ui->tag_community->show(); + + else if (tag == "dtk5") + ui->tag_dtk5->show(); + + else if (tag == "dwine2") + ui->tag_dwine2->show(); + + else if (tag == "dwine5") + ui->tag_dwine5->show(); + + else if (tag == "a2d") + ui->tag_a2d->show(); + + else if (tag == "amber-ce-bookworm") + ui->tag_amber_ce_bookworm->show(); + + else if (tag == "amber-ce-trixie") + ui->tag_amber_ce_trixie->show(); + + // Only process distro tags if there are no Amber tags + else if (!hasAmberTag) + { if (tag == "debian") { ui->tag_debian->show(); @@ -476,12 +477,11 @@ void AppIntoPage::setAppinfoTags(const QStringList &tagList) } if (!hasAmberTag) - { notifyUserUnsupportedTags(ubuntuSupport, deepinSupport, uosSupport, debianSupport); - } } + void AppIntoPage::notifyUserUnsupportedTags(bool ubuntuSupport, bool deepinSupport, bool uosSupport, bool debianSupport) { if (!SettingsPage::needUncompatibleNotification) { From e98def4839bc7bc6a4ab31bcbb52dccccb16c6f5 Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 12 Jun 2025 00:14:12 +0800 Subject: [PATCH 27/36] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20ss-launcher=20?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=90=AF=E5=8A=A8=E5=BA=94=E7=94=A8=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/store-helper/ss-launcher | 65 ++++++++++++++++++++++++++--------- 1 file changed, 48 insertions(+), 17 deletions(-) diff --git a/tool/store-helper/ss-launcher b/tool/store-helper/ss-launcher index 977ec97..0460eae 100755 --- a/tool/store-helper/ss-launcher +++ b/tool/store-helper/ss-launcher @@ -25,7 +25,7 @@ function scan_desktop_file_log() { while IFS= read -r path; do [ -z "$(grep 'NoDisplay=true' "$path")" ] && { log.info "Found valid desktop file: $path" - desktop_file_path="$path" + export desktop_file_path="$path" return 0 } done < <(dpkg -L "$package_name" 2>/dev/null | grep -E '/usr/share/applications/.*\.desktop$|/opt/apps/.*/entries/applications/.*\.desktop$') @@ -34,7 +34,7 @@ function scan_desktop_file_log() { while IFS= read -r path; do [ -z "$(grep 'NoDisplay=true' "$path")" ] && { log.info "Found deepin desktop file: $path" - desktop_file_path="$path" + export desktop_file_path="$path" return 0 } done < <(find /opt/apps/$package_name -path '*/entries/applications/*.desktop' 2>/dev/null) @@ -61,28 +61,59 @@ function launch_app() { # 提取并净化Exec命令 exec_command=$(grep -m1 '^Exec=' "$DESKTOP_FILE_PATH" | cut -d= -f2- | sed 's/%.//g') [ -z "$exec_command" ] && return 1 + [ ! -z "$IS_ACE_ENV" ] && HOST_PREFIX="host-spawn" + exec_command="${HOST_PREFIX} $exec_command" log.info "Launching: $exec_command" - # 图形环境启动优化 - if [ -n "$DISPLAY" ]; then - nohup env DISPLAY=$DISPLAY XAUTHORITY=${XAUTHORITY:-~/.Xauthority} ${SHELL:-bash} -c "$exec_command" >/dev/null 2>&1 & - else - nohup ${SHELL:-bash} -c "$exec_command" >/dev/null 2>&1 & - fi + ${SHELL:-bash} -c " $exec_command" & + } +# 导出函数以便在ACE环境中使用 +export -f launch_app scan_desktop_file scan_desktop_file_log log.info log.warn log.debug log.error + # ===== ACE环境执行器 ===== function ace_runner() { - local command_type=$1 package_name=$2 + local action=$1 + local target=$2 + for ace_entry in "${ACE_ENVIRONMENTS[@]}"; do local ace_cmd=${ace_entry%%:*} - command -v "$ace_cmd" >/dev/null || continue + local ace_env=${ace_entry#*:} - log.info "Checking in $ace_cmd environment..." - if output=$($ace_cmd "$0" "$command_type" "$package_name" 2>/dev/null); then - [ "$command_type" = "list" ] && echo "$output" - exit 0 + if ! command -v "$ace_cmd" >/dev/null; then + log.debug "$ace_cmd not found, skipping..." + continue fi + + log.info "Attempting in $ace_env environment..." + + case "$action" in + check) + if "$ace_cmd" scan_desktop_file_log "$target"; then + log.info "Found desktop file in $ace_env" + return 0 + fi + ;; + list) + local result + if result=$("$ace_cmd" scan_desktop_file "$target"); then + echo "$result" + return 0 + fi + ;; + launch|start) +"$ace_cmd" scan_desktop_file_log "$target" + if desktop_path=$("$ace_cmd" scan_desktop_file_log "$target"); then + log.info "Launching from $ace_env..." + "$ace_cmd" launch_app $("$ace_cmd" scan_desktop_file "$target") + return 0 + fi + ;; + esac + + log.debug "Attempt in $ace_env failed" done + return 1 } @@ -100,7 +131,7 @@ check) else # 非ACE环境下执行ACE环境扫描 [ -z "$IS_ACE_ENV" ] && ace_runner check "$2" - exit 1 + exit $? fi ;; @@ -112,7 +143,7 @@ list) else # 非ACE环境下执行ACE环境扫描 [ -z "$IS_ACE_ENV" ] && ace_runner list "$2" - exit 1 + exit $? fi ;; @@ -123,7 +154,7 @@ launch|start) else # 非ACE环境下通过ACE环境启动 [ -z "$IS_ACE_ENV" ] && ace_runner launch "$2" - exit 1 + exit $? fi ;; *) From 50fd18fbe400b3cec0aa1d1e081622755981bcf1 Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 12 Jun 2025 00:19:01 +0800 Subject: [PATCH 28/36] =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=8A=A0=E5=9B=9E?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E5=90=8E=E5=88=9B=E5=BB=BA=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssaudit | 1 + tool/ssinstall | 1 + 2 files changed, 2 insertions(+) diff --git a/tool/ssaudit b/tool/ssaudit index 25837b4..94f61e9 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -340,6 +340,7 @@ function auto_try_install() { # 首先尝试在主机安装 if install_in_host "$deb_path"; then + create_desktop_file return 0 fi diff --git a/tool/ssinstall b/tool/ssinstall index bfcc21f..6e0bed9 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -340,6 +340,7 @@ function auto_try_install() { # 首先尝试在主机安装 if install_in_host "$deb_path"; then + create_desktop_file return 0 fi From 72e3d54f8d8e92e272aa6a04d5f193b270b5eb0b Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 12 Jun 2025 00:32:19 +0800 Subject: [PATCH 29/36] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9C=A8ACE=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E5=88=A4=E5=AE=9A=E6=9D=A1=E4=BB=B6=EF=BC=8C=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=88=A4=E5=AE=9A=E5=B0=8F=E5=B0=8F=E7=94=B5=E8=84=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssaudit | 10 ++++------ tool/ssinstall | 6 +++--- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/tool/ssaudit b/tool/ssaudit index 94f61e9..02b44ae 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -66,7 +66,7 @@ case $(arch) in esac # 帮助函数 function show_help() { - echo "Spark Store audit script. 星火商店审核脚本" + echo "Spark Store Audit script. 星火商店审核脚本" echo "用法: $0 [选项] " echo "选项:" echo " -h, --help 显示帮助信息" @@ -279,8 +279,8 @@ function install_in_ace_env() { local deb_path="$2" local ace_env_pkg="${3#*:}" - if [ "$IS_ACE_ENV" != "" ]; then - echo "无法在ACE中安装ACE包" + if [ "$IS_ACE_ENV" != "" ] || command -v termux-chroot; then + echo "无法在ACE/termux/小小电脑中安装ACE包" return 1 fi if ! ensure_ace_env "$ace_env_pkg"; then @@ -345,7 +345,7 @@ function auto_try_install() { fi # 如果主机安装失败,并非在ACE内运行且不在强制本地模式,尝试ACE环境 - if [ "$FORCE_NATIVE" -eq 0 ] || [ "$IS_ACE_ENV" = "" ]; then + if [ "$FORCE_NATIVE" -eq 0 ] && [ "$IS_ACE_ENV" = "" ] && ! command -v termux-chroot; then for ace_entry in "${ACE_ENVIRONMENTS_FOR_AUTOINSTALL[@]}"; do local ace_cmd=${ace_entry%%:*} local ace_env_pkg=${ace_entry#*:} @@ -444,8 +444,6 @@ function main_install() { DEBPATH=$(realpath "$DEBPATH") lock_file "$DEBPATH" -# hash_check "$DEBPATH" - package_name=$(dpkg-deb -f "$DEBPATH" Package) diff --git a/tool/ssinstall b/tool/ssinstall index 6e0bed9..c2fec21 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -279,8 +279,8 @@ function install_in_ace_env() { local deb_path="$2" local ace_env_pkg="${3#*:}" - if [ "$IS_ACE_ENV" != "" ]; then - echo "无法在ACE中安装ACE包" + if [ "$IS_ACE_ENV" != "" ] || command -v termux-chroot; then + echo "无法在ACE/termux/小小电脑中安装ACE包" return 1 fi if ! ensure_ace_env "$ace_env_pkg"; then @@ -345,7 +345,7 @@ function auto_try_install() { fi # 如果主机安装失败,并非在ACE内运行且不在强制本地模式,尝试ACE环境 - if [ "$FORCE_NATIVE" -eq 0 ] || [ "$IS_ACE_ENV" = "" ]; then + if [ "$FORCE_NATIVE" -eq 0 ] && [ "$IS_ACE_ENV" = "" ] && ! command -v termux-chroot; then for ace_entry in "${ACE_ENVIRONMENTS_FOR_AUTOINSTALL[@]}"; do local ace_cmd=${ace_entry%%:*} local ace_env_pkg=${ace_entry#*:} From ef4b21fb8cf1cfe0fb91504debdc37adf390f8cc Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 12 Jun 2025 00:34:30 +0800 Subject: [PATCH 30/36] 480test1 --- debian/changelog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 1eecaa1..a20fb66 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,8 @@ spark-store (4.8.0~test1) UNRELEASED; urgency=medium - * ssinstall升级,支持安装到ACE和自动安装到ACE + * ssinstall重写,支持安装到ACE和自动安装到ACE,支持只允许安装到本地 * 商店支持展示ACE标识,支持识别 native amber-ce-bookworm amber-ce-trixie + * 投稿器支持新版spec -- shenmo Tue, 24 Sep 2024 11:27:08 +0800 From c5b5b6d3ba50897ba8797ed8f6d217a40fe61fdf Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 12 Jun 2025 00:56:54 +0800 Subject: [PATCH 31/36] =?UTF-8?q?=E5=9C=A8ACE=E4=B8=AD=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E4=BC=9A=E6=B1=87=E6=8A=A5=E4=B8=BB=E6=9C=BA=E7=9A=84=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=EF=BC=8C=E5=9C=A8ACE=E4=B8=AD=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E5=95=86=E5=BA=97=E4=BC=9A=E5=BF=BD=E7=95=A5=E8=A6=81=E6=B1=82?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E5=AE=89=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/DataCollectorAndUploader.cpp | 33 ++++++++++++------------ tool/ssaudit | 6 ++--- tool/ssinstall | 4 +-- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/backend/DataCollectorAndUploader.cpp b/src/backend/DataCollectorAndUploader.cpp index 354b57b..695a1ce 100644 --- a/src/backend/DataCollectorAndUploader.cpp +++ b/src/backend/DataCollectorAndUploader.cpp @@ -8,6 +8,8 @@ #include #include #include +#include +#include DataCollectorAndUploader::DataCollectorAndUploader(QObject *parent) : QObject(parent) { @@ -23,25 +25,26 @@ void DataCollectorAndUploader::collectData() QString distributor_id; QString release; QString architecture; - + QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat); QString version = config.value("build/version").toString(); QString uuid = config.value("info/uuid").toString(); - - // Execute lsb_release --all and capture the output - QProcess lsbProcess; - lsbProcess.start("lsb_release", QStringList() << "--all"); - lsbProcess.waitForFinished(); - QString lsbOutput = lsbProcess.readAllStandardOutput(); - - QStringList lines = lsbOutput.split('\n'); - for (const QString &line : lines) { - if (line.contains("Distributor ID:")) { - distributor_id = line.split(":").last().trimmed(); - } else if (line.contains("Release:")) { - release = line.split(":").last().trimmed(); + // Read /etc/os-release file + QFile osReleaseFile("/etc/os-release"); + if (osReleaseFile.open(QIODevice::ReadOnly | QIODevice::Text)) { + QTextStream in(&osReleaseFile); + while (!in.atEnd()) { + QString line = in.readLine(); + if (line.startsWith("ID=")) { + distributor_id = line.mid(3).remove('"').trimmed(); + } else if (line.startsWith("VERSION_ID=")) { + release = line.mid(11).remove('"').trimmed(); + } } + osReleaseFile.close(); + } else { + qWarning() << "Could not open /etc/os-release file"; } // Execute uname -m to get the architecture @@ -58,8 +61,6 @@ void DataCollectorAndUploader::collectData() json.insert("Store_Version", version); json.insert("UUID", uuid); - - // Convert to byte array QJsonDocument doc(json); QByteArray jsonData = doc.toJson(); diff --git a/tool/ssaudit b/tool/ssaudit index 02b44ae..5cf07ad 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -66,7 +66,7 @@ case $(arch) in esac # 帮助函数 function show_help() { - echo "Spark Store Audit script. 星火商店审核脚本" + echo "Spark Store Anstall script. 星火商店审核脚本" echo "用法: $0 [选项] " echo "选项:" echo " -h, --help 显示帮助信息" @@ -448,7 +448,7 @@ function main_install() { package_name=$(dpkg-deb -f "$DEBPATH" Package) local install_success=1 - if [ "$FORCE_NATIVE" -eq 1 ]; then + if [ "$FORCE_NATIVE" -eq 1 ] || [ "$IS_ACE_ENV" = "1" ]; then # 优先使用主机安装,忽略所有ACE参数 echo "忽略ACE,使用主机安装 $package_name" install_in_host "$DEBPATH" @@ -458,7 +458,7 @@ function main_install() { create_desktop_file fi - elif [ ${#ACE_PARAMS[@]} -gt 0 ]; then + elif [ ${#ACE_PARAMS[@]} -gt 0 ] && [ "$IS_ACE_ENV" != "" ]; then # 用户指定了一个或多个ACE环境,且未要求原生安装 echo "使用ACE环境安装,已指定环境: ${ACE_PARAMS[*]}" diff --git a/tool/ssinstall b/tool/ssinstall index c2fec21..5437e31 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -460,7 +460,7 @@ function main_install() { package_name=$(dpkg-deb -f "$DEBPATH" Package) local install_success=1 - if [ "$FORCE_NATIVE" -eq 1 ]; then + if [ "$FORCE_NATIVE" -eq 1 ] || [ "$IS_ACE_ENV" = "1" ]; then # 优先使用主机安装,忽略所有ACE参数 echo "忽略ACE,使用主机安装 $package_name" install_in_host "$DEBPATH" @@ -470,7 +470,7 @@ function main_install() { create_desktop_file fi - elif [ ${#ACE_PARAMS[@]} -gt 0 ]; then + elif [ ${#ACE_PARAMS[@]} -gt 0 ] && [ "$IS_ACE_ENV" != "" ]; then # 用户指定了一个或多个ACE环境,且未要求原生安装 echo "使用ACE环境安装,已指定环境: ${ACE_PARAMS[*]}" From fd1f13f59d46a067640b91e7437a7f06d3bba2b1 Mon Sep 17 00:00:00 2001 From: zty199 <1282441920@qq.com> Date: Fri, 13 Jun 2025 01:23:25 +0800 Subject: [PATCH 32/36] fix: render error for tag icons in AppInfoPage SVG render error in Qt6, so fallback to use PNG; add CustomLabel for render PNG not blurry with HIDPI Log: add PNG resources for tag icons; add CustomLabel class for PNG rendering --- src/assets/assets.qrc | 8 +- src/assets/tags/a2d.png | Bin 4774 -> 7501 bytes src/assets/tags/amber-ce-bookworm.png | Bin 0 -> 8821 bytes src/assets/tags/amber-ce-sid.png | Bin 0 -> 8049 bytes src/assets/tags/amber-ce-trixie.png | Bin 0 -> 8403 bytes src/assets/tags/community.png | Bin 5880 -> 11243 bytes src/assets/tags/debian.png | Bin 4865 -> 8124 bytes src/assets/tags/deepin.png | Bin 5103 -> 9372 bytes src/assets/tags/dtk.png | Bin 4993 -> 7050 bytes src/assets/tags/dwine2.png | Bin 4792 -> 6448 bytes src/assets/tags/dwine5.png | Bin 4639 -> 6139 bytes src/assets/tags/native.png | Bin 0 -> 6886 bytes src/assets/tags/ubuntu.png | Bin 5092 -> 7899 bytes src/assets/tags/uos.png | Bin 4786 -> 6793 bytes src/pages/appintopage.ui | 231 +++++++++++++++++--------- src/spark-store.pro | 2 + src/widgets/common/customlabel.cpp | 25 +++ src/widgets/common/customlabel.h | 19 +++ 18 files changed, 207 insertions(+), 78 deletions(-) create mode 100644 src/assets/tags/amber-ce-bookworm.png create mode 100644 src/assets/tags/amber-ce-sid.png create mode 100644 src/assets/tags/amber-ce-trixie.png create mode 100644 src/assets/tags/native.png create mode 100644 src/widgets/common/customlabel.cpp create mode 100644 src/widgets/common/customlabel.h diff --git a/src/assets/assets.qrc b/src/assets/assets.qrc index baa3064..742f730 100644 --- a/src/assets/assets.qrc +++ b/src/assets/assets.qrc @@ -44,6 +44,7 @@ icon/light/text.svg icon/light/update.svg icon/logo.svg + icon/sparky.png json/features.json tags/a2d_full.svg tags/a2d.png @@ -72,15 +73,18 @@ tags/uos_full.svg tags/uos.png tags/uos.svg - translations/qtwebengine_zh.qm - icon/sparky.png tags/amber-ce-bookworm_full.svg + tags/amber-ce-bookworm.png tags/amber-ce-bookworm.svg tags/amber-ce-sid_full.svg + tags/amber-ce-sid.png tags/amber-ce-sid.svg tags/amber-ce-trixie_full.svg + tags/amber-ce-trixie.png tags/amber-ce-trixie.svg tags/native_full.svg + tags/native.png tags/native.svg + translations/qtwebengine_zh.qm diff --git a/src/assets/tags/a2d.png b/src/assets/tags/a2d.png index e0bf6d0f3c18963440e77fce350153b576f14ac6..548e7ee0e89c1f6c0195a13c92e3d7a720d0e2d6 100644 GIT binary patch literal 7501 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

    )^%s+b~rn?C!|dvY!cwO|AY-8=(R<{SqZ|= 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 literal 0 HcmV?d00001 diff --git a/src/assets/tags/amber-ce-sid.png b/src/assets/tags/amber-ce-sid.png new file mode 100644 index 0000000000000000000000000000000000000000..79bf6fac3a375b590da9ecd4c6e6fc3d91bd1e53 GIT binary patch literal 8049 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 literal 0 HcmV?d00001 diff --git a/src/assets/tags/amber-ce-trixie.png b/src/assets/tags/amber-ce-trixie.png new file mode 100644 index 0000000000000000000000000000000000000000..d19de919256d288ddc2d5848864e00cd55c9e263 GIT binary patch literal 8403 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 literal 0 HcmV?d00001 diff --git a/src/assets/tags/community.png b/src/assets/tags/community.png index 6250da50187b2eacd00d6b9cfaba62037b56a8cd..7105a111b59994de6edd0a7b02e0bdf7054dec52 100644 GIT binary patch literal 11243 zcmVn4`v3p{8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H1AOJ~3 zK~#90?VWj;9Ywjg-|9a5I{QA!OePaTfCK`_CW~w;C`Le3+}OPeUQiUd>IEYR_lkP& z#S1Emf}&tR1VlhK6P6$W64r!}J+qwIm$Pr(_50(@Ij7GuGbfodS@_-WdGe&Ey87#{ z>OIx<)mPQkLQ2X1$@^E7y=}n%$?S@0ZyPY{vU0g;+sI&ZQi)dz-DU%jN;GQHEu-yK zwLP44eR6M`IGZBgkB{hq=WkjZi3YwO^Y@<;4GegsrhycxlRAI^2|`h^xf}d;cf&Il zv*)_{)4%!l-n4r*V>Z3Jz{rA~h|QC@Bgzb#CHVf})sl*3W;#>Z-e- z`Lu7nzQ>K9C3#-}_Pw^;5g&`(6YydK0zr1HkGCQ*00`{%G@$}&E zj(fr*UA5D}+Euv5{I;q&qn@U=OBzqT`oUQ)(yYjS2iUjzhjU}0!TbDu?;S05y(Cy> zs~cNIGbWo0At4zF5gGB3i2A35D<^&oLMXTz7i_TAwk~TvZ+}@7b7ARYbp#O6oePVDmIY+|Bd8-SqLRel~lhE|2WffPF9AaCj)-TM-)C zI*+uSQ^2*js%cpCVZ1Givw4{sZuUF`e4FW6^9a$gfl1+}{-yM}>e~7pb#3Q1e(bUr zW~BnkAp0cX?w6KVC1Zhm0=|tO(UWm8{m{lr&4LrCJKzL_V#(&Ebhu39le*5(yQ}G2 z`xIItIw@Q+ajcjuxSALI)8U@8tnRGO_Rmg@?7r-CfV*C}?gszBhHH}{e=3YRC0v2G z=@1$YITMS+O9tR>!Zk`F9Hf8UQw+cND(IppT*yKMcQF}U zq(G25w%0a}x$4_4Z8-bF2WC_uWsx9AYxKnMXM)uI9O0ZIvx&HlFj@cXy{=$|ZXb@XD2@ZsqT{ zjrXs=BpHvSrY)y{D};%vwxg&&@HAAj-Joc;;b!&g$vA^=u4Z8EYNVzYhdTjYprBf8 z(mi+HL&=tf=eM17QgqiUs64V)0PlS1dsl@9x858N4%)IohRNZ&YC36L{BdmVIwq_9 z)L*j)*O(R`AH}!kS^QfzP6{`Zt}B?mm2p>V+YQa1`NECU*G_q5j{@#neZ!H#V9$M_ z;VtuWBS^*JS{*es9DF98h6B^)8no>lxIkva7VO?Z--}NZ9T}b!E~L{1j)vxbTXW-i zjc1?t+$2?0cG)9O6<_2-fCK5rHvlfrdW&ZY67k73V=8>fy8=1yF*Z^1RD zhx-TUe|{C=-o8oUip(%eV5zPOIa=rZYt!e>`VF%nWd}U)+KnCl@xDKYhc+&eI!p)G zZ1Ygtc`{XVJ^&)+OqUC;rfCch^$-e-A{2q$QAt&GBW9CzTK&efQsK%>07eqnvW5QV zUn1cTObR!Xj)Jqbd8@6V>J#;!KC`ULhROzb`}XBFr6>5Sz`(}ylksqNwg-yB6~aW# zybn(Fvo?yiI&zP9qvh(lP9QMK*w9Ym!S`^>cd)A?j3wH^`ypEAE=5sIIr@#db{VcA zO^+uSdSxvmYu`d9_2O_1&{eZlIy+jPuvF^j)qd(zLCPRy0o?WScdrf)ZN4!Y8n$I% zP65|bw}^&CXJBzwVSIe15o^=TTWzpQCFga4}pP9}h6F z>Lr3(c24=YP7k%r74EpBz3HZ=3(i>13}r@u`_|pOC^)p`@8QvHEfT?WaBZ$y8V>px zuA0vD?b*|C^RJ7=qxjx?7*FIk#4U%T)?Y?#{k*clOd&6O+tIMy2HgG6?_J~Xd-LXGJfutqS5+O*y%c-z!!@2u zB;xqq`#lc-?Iazipf-Mun%cQVbY!pH6}ag%sq2ity_wT|-RzxRweC70;pV|Iv8aN&m(!$SwiydgXhc9^3iKeNszK3fFA) zQn%oADw+=~0&w4lYs^11umh#*N@V0sr1K=K9sh;PRaHb^q5e|ff|$6kAhfxc!Kc=d z9FG*jP5*5&<36JOoW=`|D|v-y$$+=WG@0XVry*Ob+!1U0oSMeV4i8g;l>YKr_xOs* z;HoA&a}N6=j;gsB@y!NYDJ8wV>xo5H;dQP-)7B&P5H2%dW=e?#1cRYQ;@a^fw9{#A z`5>xlbo$7#1HfXj(YW|O=-#jZ`{)l*wtt!-d0)x_D$5t+{=p9`*oJa(fe7K5Yq5Y`Kuz8x8O}LRrnBLw$ zi>t+q?M@Y=d7%v9uuO{TXjXE#-on%9}lo`NrtIXEl0ElK;3?off@z zaZ|15;$udbMoMbIepB$)VsMerxM}`bd90F5Y?_4x_e&1tUQ3wAH#0GokaN8^ajtt?)n;)c}}6xp=z4{34DqP z>%bMT<1*roKVh+0%MKU7+E_vL=}Q>=>l+1qu@+1!;jp~L0~a%ml=K34BslP~VsM?6 z^QdS(l-YvY)%{QW17~Abeu9um67m8R``@T-TtVl8FVotxxFom$s-j{yJ9)0}X;#a3 zh*`dh*}0OW{6gxyxR*ruRCaXz9Btyw#A4oZWBZvzE58rn*BIIK{aJyVzTUmK1$%3C zwl79x9@(*h;3p_SrhP>Bzxgd^|GTdTi%lG~ec&RT)$_{^HxdakHuPf@`2a##h-zP= zy7nSmPA|nOVmkfCG$|nz4Rc@5ujx~^@fp|URH!x*(Hjx+DF77ZNKCfdsPNY3>C5Ws zd+SOpp}!ES`6VqKXHagq>05<257Ga}wHV>1Tv`>|AxAn|zTOgH3YoSAheqY1VsOn? zH_ob#vcv7^eU;$IIVkdegt`F5{vdPPt|}W`0H@8##T{32uH!5GH25v$h3fko@g%?esol}7p`iY0bD7eYv->pX&0eu-3awKJXQBlThpGS zHzQ>j=N?eEkRLbR$1pyw>^TR`ejEvY3&M#m`%v}I(A&4NsJHBLRT6N04Vf4s+I4f0 z`=;_s34eRp%75OQ$kUN;JH;ROLSUOyl>;}kIwUFPF^x>$2Wv@h#vsGQfz_D~-_0DZ zuIcpbya5aU15!uhOseW`$8L90D%@Bi$w(l`cHc0Ydi&`a8X=KL_oWo%PwTK-?R=;0 zzgR3k$TvsN#wX2a%H0UzM9MH`E}^IQ*&O@R>KZyPLD&w&9Q+f$?lN3Mby*7BiG1ejRG8NY7X-0nvVv)3S}!`O3wyCCKgE=t!<`XaUDEHn9CGRol|Gi`O% zId-IN69T@{_Faes;i{Xk`_92O z`k&DJ$ILlnpW9R;7#NeRSY>6&g8aH+O1J=u&0GK%sh}bpOe52_U{%qTVkrM>}qa)O+t4ZUQ{dj zS=hxLT_Lvg4;R>$_LeW7^F5ZRC-CFg<%|k1(ZtQ9U_~&COBoLg6_l^3^(d0gWe{FP zZ`V4CIaGC?5CG4=?I51W+tg;*N0s*g zkmQpzHGgNKU(bcxKkDa>?NNRct6_b@LX}B!ygtOG)*)_ch3n>+`Q98eKb)iT?TQFz zCI{#=>j;A>Qo_4Q6F(2TcyQYQnx;>rXEP~^%GI?$#VsoMar6o*t3Qe+Kc6bT-bXZi zO>X(p<*NTCpkng>x~RA8b)=$-;TXKVX&~qN>ELGWlMlC`zb`JOZG={A-SUjRX1UeIZTYv_}A2d+Ob zf<^x}NDZM>VRiiklgWe;Zak6To^1ghOjI*hNpPucgezLD9MRU0nYNqGTW+qdyZMTk+_=4`EGaRuE7N|(}+g6vb45YTCM`PDI<0_LKPaj9$g;Z8C4U%H!g^xz$|djGrAX;}RT|;SVxdW+ag)Q{vEy+R`40f%`lYlqAA=F@(0Gtv3|p|vBv;lYS=3xN zseWTxDQl>jsw((mYbDoKYJ9_!;E<;D1Vf?zr7a(z)3k)u`Xdbb2MLD%C8Npf`h6yU zy3Z9t;8#vViT;yBBA$Wf8ysidrffC$k4Q%SK}v@^aV8&bd0TKU+^p;x+(ZXg`t&M`YJdW1__tvGD9N%b4kc6EVVwZ~1Z*E^A~P=7k<e)6cfvw$s!@Z}6i_Ro)vycAC zqy)f9A>7G8Pc!A$-+LFjJ^(@`sVv8A&ORcgl>A`;n)EQAYjYdsX$$om(`IA!V><1m z#xpPr3$NOqz+^Hb#L|g;IwK>`kpBa(s6GgQa3DLKdF&z8Io>=#SAVQ@xOv`l8m>fO zbP*?$(wwX^zzv21I4!>eASpjZQ{y2y=bzp_gh@)yZ*``|eUs=nrp+c?0I$QtLFQw4 zH@=2IB*1v!kW3Db>!kvnl@*N$)sE1zvFU2Bi>7LFWMHgF9Zd>1ohKJ=sV_5?{)kQ+ zVLUDoE(iwtSD@=bgs|hTxIE|l(0Guorb@ohY}qGTu2J8D@X=@_d8hw%G`TQy%A~%Y zrvntl1Zp+tu^hemfXBm@qV^PrJCQFBu7r{x?}C$MxM_MvID;Wm!PRvgk8K42G5Kk{ zo?49ZQc&Sj-WXQ1CFeS$eq-96f(y{0rnY3-6nh(oZ9(R=F1v`vA_kok^`N-WWg<8u-I!k{Q*?bm7Yfx2NlMtRuG~LaV5f1|Ks5p@5eW=clRa_$F41qvT~a znx29alc@;)Jd*49Pb9)L?Xe+#+$ME?*^G|Ei!BcvqYHVkQ~Q4eg~mVn=mi> zogwaBs4smlDPc4`0!ZAVdLn;Tzs2Opxn9$Cgg%B$r%yb-?6As`;bx%b!7bIv zDzOFU!Oa;eO%4|XV`FdNu}YHiWE>86+2Mx6Awut7j4ASRCM~(OiTG;=Aje&xfVtC$ z`Pj7xRfoVo7#iG3ZCzVYed&9pgBaU_8^Ht((N3h4NIg3Q^0?<@u9rYKJdTtxgj$`` zH-{6s)3$D#A(lN2+|&UDa3!FX;6lwH7M*KMF}NU5MQR7vxc-Uqx7=is(8kM93~&?g zv=e*w@DyAC9TFQGNxYeQWmU0tP*K@bRA2gD#t7A0rqqTw^Yx{SjP@X9DhefphsuiP zoW6W~ya%MjVr?+kEEo8pG8*%ZDH`tpc>3oaq3sGgr=d-tG<(JgAOQD+Rdj82xi z+i(FC(L*S42CAx3PPo3Fcd+{J%&{c?dgsLUMH9J9Cd^;Hn40Fa=l-=x^rdv>$CmH! z`z0a9S!_OmDpxhc|G66rFYFshO$7VX)Q_9kvVB=Hx6N#Yrx|WG}mXR52uG)y#FmV zTsebS^z?9bO(JEG+UkP~3p4|`kw_Rz=p&CJo?~O~zp$95_cWvfOxbxY^@f zhYK@|MNjvBuBInJm~gqghJ4Hju9N~_*E*!0I|kJUb61d>=Cx7V+&qQ8lujdDDJ75Z ze2{CyA7fZct@daXaIPg?_>}lV7c=sYe;}N$jJMp=^-rXXP*HzcCaW%C^#)JQ9T(3@ zd*LO*m7o`ao60*qzS097dEv@ZUcOGm6A0|NW6m;!ACuvY1?K7g+@VOIZ7vN{z#R>a z@eBWVSr|MHClz#y_gG{5D?9ZKnLHi=U$=qXaH*m!pxSvlffts;oVJW@_UNMs`%zR? zwxn){VBNbtbPwhBx5pf0Ty8u)+_blx54Y6m!qNaw7K@$&E(nr(A~nNOMz{c~K3HgC z*qZZq++%1tMOyAJN3P>}?JqoU{!2F5Fg&#bS6iXp_|(TtB5@nR$Nq{Mjl$R{A^$id z53Rtn;C@Cbet?H8l*eAlwW*~>uxMUG)~r(D%0jraAB&zSa*pJUb9G%qrrpjmP8QD zH|OjOl(9gFr`OqXu0M6jIAUT|$gaSp2wVvzxzVLh7Z!vo^DZqC#4xEAq)e6-ZpxG* z3;IpD4=h*z;G})-%JIJj>VFlTu-+KRrKQ(5RfUYRRRuF;ZzgMEwao>=OijC z|A(E=K8S0lu>S}ixZu)q4z35$zMdy4p z3MPdMpa_+!nmcpS$}yj7uUHIuJ2@&1Be1D8^S2fZ((}wSw14!YMQ)+4_AXSR61wXS^iUw1K>_OtZy~HYTIIJgWr@WT{PDTmA=~*Ug=uZ9&Z~pc z;2QJh!kyw*X^;}$O-kR)0Jj(b<8hhb?pQm3medNIIz_1XZMoZ12ul+4lHA9q9*q*e z?RJKHdkgL}r};cwo>v$T-a#;O5jtlQPka)8@EZg|EAV*NGNtJ~C zIJFnZ>`Kdt*_+1B3ka=WfsAA;-hA+8lJB-416e0b4h<3i(T~`E#u>Dndk%+VHxo5CH`51CEcQYIFA|K{M-v;Y}c-#IxQx@OgIKO?yOB#dM zDY)^A6060$+i=rm&WBsRVN#J;v?zFWqWq6#|F$SKfcZ@?y$|=%yv&^g!ECk?srnJN z-m{t5Lm#1PSdV|5=o3fhge~=O81n-UF!b~@L>4bb>zI$bxfOR+B_^{4Es-P?2oM|@ zBHGi7W9JSm8{Wnm2o$su^P#<1j#!6Ky+mt&i^rPsjCEb-hxh3OqpAB^&2Z!A!?ZOu z%m{Ao5}n!dqKm=J?|;kP=Z3O?9IG1WvG>w+dPPp2#@55>3towJJi8IA+BA&yL$48A zxfHZqmslGc#q!)Lcy1L*V3b@j?xj``B~mpk$GnSq;Z}s=AXM`Q8fvrav3~i;0Bbg; zVB0Kk=idMTEC3o2H{QjACE*LJF?xB~-hDhNj~(=O2C1$6e2);JWSbd<_jp5euSliXye~$X!>9#&p%%4&+O$PCAgdw z#1{OCu}$B_8vbKW%_)u;mcutn!bz zyZ(cgw$pRU^2aCpxb?42gn$cA4RPtm>QPm->~JTWXehH6T?B3(klA?SpzecC;x9-D z=ML)48(a)LJVe7M-8n%FtHnnBK|iH?>#4Z?|Bj4z=N3hP;tipAL(>=A+>GCH1@-eT z#BH`_$`Xyox#eCze|^PCQtxN=>m&}BgVCe= zaX#BXzSv%j_tLtGkM9naI(lGU> zXB{C$sI;~p3mlu#t7|$SGJUw)V9#W49JEwxeE+i}oODDBCe^)1;p%!JT!}y`V%mm0 zEnvlD4j22ZxgMK%2X+?WruDTRTg&hpVN6@5-q=khz`m{ud0H~HOsJS%Np_c>JbR{k zo#g1nE!k6h5H1L`s9p#c5JF7rOq3Gn@aMxt3S#3U>|N+ zg`2%c>2Qs9?P<6G;lXGDTmZ#n9%mYvek(kyV{@@@)`xn#3?0Pm!A+m5Zm1x1dTF2A zbv;qfz};bXywOWCnVt?a-edoPt80?+ouLA_5(qwrw5Q=*NVVG6NSW zNQT1%dv@SzZa3tf9k}VCP~(YJjBE>HddD@j(GslhxUs(DCgOnD{2>1J5$X=E!sT)0 z*t0Lgl@i9c21$gH1#qPzXs>Z^U>Yguqa2&=_}*}&-&d9M`Ese?Y@AE`CqA2J)a<}b zic`FuZeOvM%QV12`rTVqp+0HsAT+B$$fFG<6Ky6lpkeGsk$Hr%y^@g1QYxH{l! zb_|{T(}Q#O!YCpoje~98+DD`P{a-Y~MJj}Px*6NJo{9qw$|;1=&~m~Bfof8jdqM;K zJ4UFPYh&=(eyopFBDzcIph52vc)LNx_>5Fv*P!K|;dgru2G~8Ju8QCKV47curVsnvZHH~ z;Qbnww+p8mOBORk4-7F@HHz>`OfC~&3aufyJ8p7Q^nq z)e<^AtNQ6(J(OATnGe@iYl+k@sjE5svc{4=ZMRDwr|f(1x91M8f9rl3*D%6Owdhpe zY<9S)J@y#93lD(Ff(Z@xde{_X2i%b;@M zrpC!B=#Hi)>QDS2*4p%9^x1)H3_o_iJV3=O_0Ti@MELHCFbQHEQN|XH(!8X}5EYv+ zZ5QE&d=Yj$(aZRbV8Ku*XL4T%>JO{B`Iu|xeP@^K-JK6acmMIO{~dpK{pC`VMd2bR z_BIwOo`s#%9)A=j$HWBvEWphVV)ShrAn_JdZmUE0kz3olA;JRjwiu%wBh)Oe!Qo1U zOlQ*PCLEBoksWf*SMk+@4qLvcyifozyQ8K z|9N4=*ZWkYyRT(3xW;sAbtSbY9f_kY^)buYhHJdmD2YUp(f%<)0}&GbB)TS1ttuvu zio4#0x4I%V(^O_}*}o;ojwgDE491Gamh<6y+MM0ho!(QHT-y8|yD2jQoR*$@S6m(0 z-gRSq)Nh*%t}&kNnm>oy4=u&yEw(?U;W#b(`NTnNBu3YhK1Sai&q8E!xYi15+%w;O z)3MjgTh0unEPw&FuUu&}@9_O9xTWiSEgV-SZPDqEE2=6LM=YZ9=mSwK6RVNmXK=Nc zhVS_S`d%7BPZpo@OWUjiszsGmo$e>RHI?Tr`f6=i*8G+Ya9Rfb^iW4+DEQ~l_U&NK+yN}p-JOgwxxKe4 z`-mRbMRB-U=!(Te#Zeu2kDHHBm33*kAWjBXF$uh#o_|^^>}MZ- z)!fonFw8*q2;j5~|KXVWUI7fi%9W=64ccvi zO?{VWp`?-n*Z7KRdRQe)xQ}R|;^a1jHTyxzJqcG&XbikKz`*kZXh}IOT-9olo=(?8 z4Z7|8w(HySwuj#{viAT_NdNEGw8#5L{}SCaxJ2qk58K$PvyPeSu;4wR4fj!vg~O`Z zf-7P4jS+lL^%4&z3L;MVa1r2ccW?DHo6kJtiUqlQKkQ-I>wweJch`$&#J7*%9qsnl zOa>RS>DER!m1oSuIw!q1)$G6x_lD_ttea3*D7S@90@u-KA9J@kFFow4`45z#T4pT! z4B)i*e!lvK@W$b5HGj-B8C+vO?Kr5K%8#_6R;1Qsl?!enn4s@jA0umrGb=5of~&es znsR(HQ+p5xplU!C{DELFjb zWuFF|mcE~_y)eEdaBI9T;+hPuB=u;OfNh?K>NDqHskfH|H$EJr_wjDV-}6uWD5i#M zt+7Vjot57@^s4sTX1(w;l>GuQkQ!F4tGF$+Ve}F`nA#($7~C`z6oG3=HJ&4Dv9-7g zLW@X{Ri-bjNQ3mZrB&OFTBxz zw5I7r;pQJJE;H6fC#uVYE+H9666uSOFb;Wu$>5?WxH{Y$YUWlfn>T~W_q`$e9pJS1 zZh!am=uZDV(H)`Mso<6}w3!O7z1cbHn&-OckSjVK+ViEHx$L)q)6)Il8?Fg&9{oXl zIBqQ`T(ifLaCdnAcgeRGd}D8vt6Z|*0|xNj;d4YrhVF@M7+;o*YhosFF$+BNy{p7r z$Ff5&XdBy0MJk)TF94@y`|X&98`|tYR8O)?a4{)3JKV3^E3FqUx~lW_$?mbg z$@>a$T6X?&^P>1zYeV$_6fUa3T5lV-)jFQERx8&nxNPsnjb}sNmw=73 za`{S=H(+VTWUo+7(jEaUNfFV}M+5di?@8C6l$=({ek|{M!2iEXX}it-pX|5t{{TA{ VMNisPaL)h$002ovPDHLkV1l#qOz2w$C43JS+kaPG}de_ z*6fU>gb*V8`cco<`@HY*{qY^&_s4bL_j%sG^LJk7?>evRxQ{!+#8`)o`7|>C0ASP8 z)igV}pFbQxhJ$P59>wk8#^kPhod^IhIvfr<1;3n#o$V*Dg zNXlGPhW*E@!yNw#(DEVaIjSfsIHBcboKTWz6!M~^98yt15{W`xJTMjIW-V^0=I5icSKe&JSeqohihiYLlzl;23{9Warh~ELclhc0zh$ zNl=w3a@uro-sGG3>G+(`zi+Ktb7RhZ|6Zv|5}Lulh_A) z?vL94HU}T1`#;+I0H*Y-E%5{kJRYl}fy8+sA&z(yLQ_r0+2SCzo+}aJNkkJ6mTKCX zGTP=CIVU{Cfq=w0BGeB(x-uFb+G-FI+RYt%(A@}S*ne{Vk9GVm?O@9vY<}3EBjUjL zbI70%GC&CjN63c?>m>l-IH#VbnuXQ<0I3`EuDyCHrNAxJxAw z73QD5XJItdkDtG{t?M8y(##mfM}$tP#9pqWdkX@3V}U9FUQ{GU!1!>Vn{AQQT)E@> zSmDjbqwCZT@$L&FZH7?Uu2$J1NrOI}vFYtIwTZ76H#=!J-nDWN&iBdo_Wz7+Tkn^h zxvwhiKT&up^wY{TYek=mbKcl~X{q}K*#xZ9hd6_{wtiK|tQQ4_fwv~tcPWc>SBuGt z{EPNSU#v$Fx&J3G8_%O!YYu?`r?MXK7n$E;=|J2&nl zdBeKx{r9iB8ZhE$)jPTSytjQW4<=kAudNaEre~&whd!Yrrb{!$FXq-fT}((#JGObh z;u-ZXcH1uNceNW_j`#8Et4%URYdb?x5&cg;AZ<5)p4)nx8asOQVG#H{dg)9Sb^Gi@ zZoi1=gPT|Su4NUsm%yY)=DnTs@Dkq=?4GiL+HY*uTil~|v@lv8QO!B|V(av1fa`Gl zO1I)8{_B9%={$c==Vd2v{LOb1n3rsCAl zoD5~00ZMA%uk@^!K;Cn36QW|_-noa@xbxMzHg$zW!|WnoUGGfyq^28I@IF^)y#1sUKFmCieB3)AL#{ ze{Ab01cC+do3JdYW!7!WkMAl0>A0kOIOw;SdVr&@5EF6H*?I*i57sU%`lSjD*c%<- zvc6D82#d)q--V~1T2DdEmI@u83;uMjd!Z=Fqou6&e)p)&2f2iYKSKj5w=Khs@PwEQvIiIRnd|?oB~;c{7Lfkx<tvCKSl`a?J_PHH6-y*N*78Y-j9~W`Ifb$T^&p6&!ueYoPS_9!56dM z*gVn}!r3Qy_K|9^`MJ7#0=${s#(<2cSDpZoCRb)w%~|7~m_>eAchD>k1H6BDHW3(3 z?pC{lE7k%`FyxKbn4Rc$+X(4LryffTs`jOf?!>PXIObGuBss$Jx#%#*xp$2PsY^25 z781(&lua?YibO-!WPPScZYD9H;S<2a?MbGzB|1cNs+|D#L*pxWYT+P|w*(~PrrtyRyO|!}YclrJ!QoNW*Vk_+WKaVr0bR!Xyof%rp7nw{_c1&imzPXqS1<1e#hruIwC^1Nbn)yHvyVlI_T)4D=uS#K2b*TCkURgV65--%0q&>lxbp zB?j-jC#~A5_m^GTi3u@T$lIo)4*Dm8OmVGyiaSquUV^`ZmlRDqFeZiF69O&Its0O) zMRZVZ1}iN6EU#wjOR#0G7I?;>KI36ShE}x6oF4>y`8^v4JKs|0{xXU-3#}6{v<{;m zE@S|Y7KE?kU46TXUk6{m&}Ts2GtSiv@=l;UuY%MrTSro<(SVoW;~zwiKjrFH8d!HV z%jP>9llrW*b1;&;Y&OQr9h?t*lYhR8{NrWoot%fv?)PLz4ZhB~ZpPZ#;owsM_8f!@9ARfo zAGU}-?s-zXx5M0YkkfLEv9;fQ7R$Xa-w_QW0^nx&x2KP5yjsK_tEhThfm=wyv}4eZ zQ(EY)o``fM79gi`qePdBoLVT$5}?S)yeGy56UtG86*Gz#BfUoCXwMYsnjgaLg=5%E z)7iU;0>B8bFZ47O`tO01jP|>BtNh@ys}2@0MpCwksY>Yd^uTA+uI)1dkv5@l7c)=usxxRtzaeKS7q5Rv;C5Ez`a=APIoE>T3L@>#j$Y zbUy=eos+&ry15N`gq5Xl-u9bKUmfoS@3tOv1w7D8obGmBDD z0F(M1r-Ccm)H*83Qlv^`BZqOTwflqbcD+9qSOL42?aqLGSsSvxb43~_(UjpIe!7eo zxjd7Y+x8N_I_}F~0d=XT=7-Fy-e_&J48T<6(KdYAW;>MT}ri7Z1+<(BZXdjV^=&l=toEjA}Q(4yFMzmw>mq#l)w z&vK0zZT4@PZ+!BDwu1G9^lYSo6_!}Bc*$lL9p3AL>bXhJ<@=u*`m;W?*=LHGWNnCo z3HVf>1r0JC>4A8n0H-!r*it|t0mqxepAGjtT*x%4lBsphlAy-DFIEEn@C((nD~(S2 zcp>|pach)^7Ox)PU4W|Z`=8{Ub@|Cym8X9c*F6RN% zB%c<-lMFstCavs(vUu5n93N1#;;FhH(RXy*PvpnL>t69Ey2F<=L6e$w=d~$0ojP~; z43d4X-(GBenlIIt+^cuzTEE^(Kk(H(K+L{qvu($H3YOUc?&FyuD1WPHo+-smi9t^- zhUa-!BHUfzRNr+XNMT)=GgGiEr8#i0`&C}hJ<#?dD1gLP-rsFMwr6k)ff#swG4i^2 zDj2S8t)26~=RyP> z;V~E|ryc#cz0csHqP?E}QqzOfAE(1-s;P@OVxZZ`dE%=L+QoW{yts4uLWyKvSQ*-j zYrF{?u}3&5J94g02;V{xPiBfdX*d?AGQC?eos+pSPyX(S`Z3R`UFcUI77D@)(~q%* z(3TC%mW`~OVRt?|eFKMqIkhIdl6 zqC{8I)E?(kgDU9l^0&icX!d#8HyjO@)JDKTgO72M>x%ILoY7R$6lxrz5*}#3y|CwacBDAdzYoMb;ncf!A|Egc_}YObMl^M z8ZUXl)1yP~MysB=;P~4C4cJbGgMBaO+q7-C0B^QKtl$up<8!-w_zJEme2v{G0)qXd z@St#mvnP}b!xqGIM$6=qAPH;w!cWh?O7zO6Lts{V@j;H*73ZJinOpU+6O88B zE7|2BFdh2}%TjHf;!}xaT*wM!Dzl^sWVUogfVG`nfUIMqckLd7>J=9H`y6CaGhB_$ zCtj%cJ7~yBkf|dujKD+@XbbO*7t-kc6m6yPbhe+P|Gkx4mP7=Gg=ygf&PiNxD~2Su za(>+jLK|*H`IwxsQKwCABpWGce{^a^+|g?fdshhv84mdYW38`s0M_47eGAT=$P5}jm%m=MQ!UJw<5$$u>({xG9y)KmW?v8qpIb#4 z)}W#^O5w2gHK`X6{1(qKkS?150R`^bk``PSofV33*kDN!5xd8lu09|`H+)y^xmN+{%fcrq zT992$Q2-Ju?oSn}M8kCM^heA7Ow@_J;oV+x`R9CgS(sOOt~V~!uf=%OGC=$SQm*^U zIM3&MqEsC+!3UEeTyC!~lzCN8s7NAw+$qFb%U%5ZV?&LtL`HZ#ullzY>9=iiXx(b0 zWUy(IcK!s(8pu+NYPRYvHr`wKWK1)NyD-B~pEj%H=Da#ws@JwnnTboCp&^?CZ=Zi3 zuqJ!Ko$466P!|l7=U=#c%bbq&Ux%9gN5N*A;Bx_Y~5m!r(4 zEZ-?z=_T&rRME6UAd;?|f3S@*!6+O(mzX58f7EGbrRU>T$b{rjRr4TOg%D_%}G=uLX4VK_@RMJ7VSF5jY|lmN2T z40jh&FHQS2sB-Qd2L{zMZBk9)lh58m8F$w@HywiqB2mPKeqm(Jh_(IT-FW0(2~?n=8+zGvrMIpNrM7`A|xcU!k8C z)OEkH@ofHr5pF2cnJrm9pK!f@jB&e`L!;f&N%TCjui;|cN)k_8!LbvDi2dUwQ~lML z_MA9^_^szQW{h)ZXL?K~0BI)1{Gckfn>Q;B6niN-$Jh*Py2yRPZtZ_nn=aiFa;0hR zS@-=#qg+p2aj8y0SPd@i*4LQ#ZdN4u4!cG8wWA}@D7PqL*2j;r>1*TP7kYGC|O(uPdb;<`xQ zgOU6R=}fum?J&ljpA9Lat>2F!TFWZp0K9RPM^42_VePll-<=dP~AS{zW~fYpf>;j diff --git a/src/assets/tags/debian.png b/src/assets/tags/debian.png index 955942dface68b5d3d25b7df78b3d28417c8cb51..944a253bd30f4f604122f82886a7eb08f0378501 100644 GIT binary patch literal 8124 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 JPj#Kb{sputTX_Hg diff --git a/src/assets/tags/deepin.png b/src/assets/tags/deepin.png index e192bf903642cdbee0bb54da8e24ac0515abb664..bcff425a2614bd64fa5924b52a3c92ec321c6a0c 100644 GIT binary patch literal 9372 zcmV;NBxBo&P)n4`v3p{8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H1AOJ~3 zK~#90?VWjGQ&rmkzc+i*G+olB`@Wa9X(>Ch$snr=sG!ccBX095E~Ab!KN-}~cV?U! z2UlFijX_0Z(F%wnMYckLw$Od2bl=h?ZPRS`_eXk@oBgIqTHu}UA5C)ZJ-N@xr@1-j zInQ|xL6Ri?t7})R$u{7>@~$|OZGgA6XiGjPFp?LcA5{nFbPxaln++9<&r|d^t6Pq2 zUZ|aH8@(ywTD(PXIar$2-ZT8C+RpyPbsd8etxj+AJT{w!#1P+s1exFAFn_^|n^$I) zPOzz7*EI!r%l`80ns&t}1vQ;=wN~d+T|SqM>4~zEl+b{CH?K%9_L7Mcu4@AD`+4U? zCH=bXhb!7v507dHciv0DVPkGu*wNT%!RpNmv-><{<7DZo2mH*gqL+_Vw?EgW7~*>J zeS;-J-JH~rkKVj(+C!dv--*^$3wTRj$qi>4dbgJ}^#ptKI%$!CitK3VhQF+l@Al?( zyrruS@Spcr#ME>tzWk-4eU`n>lcj0O%Q1p{lJ9-2*B{^*Jm8)009f z(!+gMZ(bp<9=Gw6psNP(mi&B9Uzhmp!)2`-`i9g_$L|~#f#o?dxNUXct={?P;49#fb5cY1M)JhBZ@w*EJ?_R#psotQFXWZnce=WBYfW3f zn92Fm6J+?^P1#5Ykr>M?;Tp>TG<6T+jl2?^sA^|qPfW06WM*Q>bFZ(Jzsax(lcp;g z@QdGH%&lnY+j*w8Bc6$wky0@pUzUNznUQAYj^NUDrnVD*|F#&7T?35l%Z!$GWX1*F z`oF8>#~D?a1YMDUxBO5Z*xo(3J-@td*^pZ6bl4;0ad7wiWZbtf1zZl>>=;wHRGChv z$2SFac>kwz45>6uZRK;=n3)n%5ECd_{pXu9I-FLRU|n&5pV?LP@-LNb&$ssvJ9VQH z1n{ejNNie}g)o1SZD=mQrK`JNg%5u&$9IJd&@=dqf_w$KSt+3(g;Y*^Wb-|lD zt{A{u@-D6@Z0P#*LQ`)Llk?Le0`Tlj*^tLb0oZ{yPPkM(5x3}O@ z(v!ds#h38T!Heh}bUw6V5d?A)Wc6ur{wrU-A+yqH1utsS02_xrrL7zKh8YZd*eu*O zD;|$7nF6tZYXsnJxb*7`tF`#@ST(jEt%OGF{4Ol!^T^q$p?md_vO7Os7|U$X?O{y{ z;1_lmZ#q%a@mfRopn%EwGZSTa_Qq_)j}3b!11`P1rALWvKa?WBw3&(d2n+O4PfrSc z`K?=XUSU+hgPKslFCQ$MezB?d%YvGYcqZpZ2Z`~_Dmmt*h8fEy8!r9W+1gILnOBU) zPG-ZZ^k`{EMoiGU*Kf-Fg;50$XhHyQ$*&G-ZtC5YU)i=`RO5UaPsroop83hRe_<-P z9Mj$VN`gy{{n6?4*mJrLA0K8mtm3d)n3fb$5)m1={GUtH+MHH!Q(g!B?5?7h^IaJB ztjvkQlgl$9^%dCt&|y(NS#arP{ljW}`g1wHJzWPKgU({0M4+3Q6#7wkm3N0#UIV=O zy9;*|)ONmG(c0(7zbaOq{kqgw1ZT8Z5!YQQ9fNF?Br(^EnZCPw9hg^c?9qub{9Q; ztfu3Y#%?8}VbAqb!twM9IU=P#0GNMZ)a$DOuCa^++Ioku?O+K`mbZe5LIZr%ImuzK zZo4&m3!@4S#ZRq-;u%Ro``Po2xhy>5wD95bC5M$Z34wwG=d~FBb-Cu$x zhQq3i*x=^$n7}2kuNuEMY}|lf*j@Z=UP;qyOm4@%LM|Ryn2NjRC4s|oJnXqv;Zo0a zdJ>1uHQ^H)||gPJ=uoF1$fiWbMJn4{?fx5Cm}N|g22k0 zXgswt3sN!P43M|sk|YVm&?p)@1~E9IhDxi$s742^Ru6%I3lWzMA0Zb(5)s1uMc|B$ zx4j9M{(Nv)jqOLuk$1WddMBMx4x5EV+0k!*bo;d5Iy}*aTn7C7o}w*Z71Y1ztcRQ% zAB5*`%tlJMKLAV!+!2iqr)xU!@55!N?-&Hrm@PJoKv;keGGl`37|W){VnId(_&k%3#*=W3&q?5P zWgFi6z8IZ-Lw4=rb2(T(J?@sRE<|`T2D~M|QE;TNs;9nlP-N>khehC?`6+n#S7{J% z*;b7nYlqpRy)x>xJ-8%*>Q)6_{pLI>TNO@i=X2Qz@fSfN;(^a)Lph>>azuk(r3xcz z$4iq$d=74$9*=eNlHqUhtv0jY4Y*XIvclk0hf(cGZJvu^=a@CaBa5J9k}%J3k_X( zb;n7&zU>9_=)Ir+X2u%(tu~1f;5YJ%{XaQ+xu;h-YSm*F@j3W-;{v2dn!6Z14fl9u z8(!UW9^C^YPVJ?{X0!0oql=Lk=Eu0VJfza#Xjuym6)W+kZNUYAKdzbTRk$jR z4zKP$ho?S0;SyW`SU)$(CAcI2k${V3xv^M1D*+s~b(4DsRrvE)r}5(UlNcPki+CC? z03<~O;GtDHHrq8YG|E!+4*$*OK?^YgT-!OY%2xS|_+Z?a6KymQ@GRUm#V|H*%g5fr z1}0{jNyO*i*Yi_cf=fMqeWDsKeRNa#sHp$ThXGxz3={viWcXcC|kO1ZW1ISo=b3b zB#Afkit+CL3ydNu+Z982`h$F&C~xsNT&nDr`KdOqUEivZKK1n}p)(tu0`Ar+({1(W zf+Ye>PYCu3+`_s}Jo4c$i~`(jiOXT(mRX4|!PV+X{B8F+>^W8I(zVoD9sc}f0S=sP zu)c=H^<0Gu0NDv4@Dp3R_;q>`tx6)znSD+HYYA4It@7O1VAJ%T2jQNqZpY&vA7>OD zVNZ)PBH=IQTV2ceXaRRrtHb6Ur|`r1#&KOwrzf#>-#HvSXAYTuz45>W0D>Tp9%K79 zt%u%e=#z86I*rW<`&gN;!6*;HEo)Zb_d5z0d!X#;<{9Sgb_91st;GwUoxsToW-~qZ zM3TUp`_AJ`l_?6xUAW{}-N;~Ho7YsUbpFola^A_(6E^SjK75Wx;WqUs@#H7RF+A#C zPLvQo5i)51@s8jQjcW1Sr^j)=uG6h+Qqt*3y!O>;)V20`3@!kO_;%K|vk99{C%T-* zNs%CJ{u8hWf_9GiqrEcfwIy7&R*&EBD1c(feOKfBj0jMsIfAQHY4H4~$5GbAEVKqN z^vwNy_z(+u#xgcRfXiXyVq+HoK&95=wXX{BuSb3bA>aJt9S>Z<;48N!y&X1mxt&JI zUAQEGHxFJ!b*m{I28$pV^Kf$lV4ETY`cdZ;_ri`aDT*y`XM3A zAK_9lg8W2gktdedcz=Hh_MWT(0JQcf@y>VW@${`T%+4JTT-Z3r6}bi26L1S^I`Gxl z2Lk|eQbNJyuyM4k#btYhd=4_A1D)QMpa1Nb72L!ye=MCAi&-gQ2o3OY*+ccfvMe;T z^`WG}@J&8a(u6rvA~8EHeA3_o9>{d(4qS~+kJrB~HXaL-2=T|;rb8Yp9hWUxF+pIl zY4f_49V(3uFMNI+ra&rje&gJIq^ zMkc{aznOzKHZDSToMAk#)01xbmZcIQHm=AvmUk$IaO~n`GaFrnJ89owci|2UtMTFC z3S;@4)G#c{F#LX|M)<>r@A|JtQh0z(xFmp&ek{ZJx=yfJ1nydth8Nb&#Idp#-2IOO z#`FI6O(DKJU58Pci;^i^s%&vijM=#Lo$rc3P3U+WE`wZe9=k=m0v7=G6*gdS#Ne!F z5d?m_Jkxj{o5jMkgb=u@_)tHaaL?6tVCV5_#K*4FMNFIg9-aU*Ti!NbgY*=s;izQrE7MY{@Dt0(bwL7nl~lI$qN z$;MU=j-50sCDbKbBqAQ9zSdzj$`K7-+f@iYkBzMx7a=Jk0L|S>qcbJYS75xRkAREX z_I^YL`QrP+dX&_6+HI#jxFmp-s6b3l4L6o;+h6PzxJ=wZ9_?gNubqY2|i0v9>eG{DfxqP>(xLRHJuLg$St_K0-qWs6$~2iwTmL>It}PC`Z)j z8W_Rq*-6;E{Uqwz`mNgO2rgB2^Xw#J`MIh#Gw<9)d~+#ztdm8(W)dKGu%yZOJTqE~ z7$&W%(efINeis)ofubIFd(dbZEV@gJ|GB?I<&vnUI z)C3cWh2~*20FYN$Z*+ZTjPQ zW%J}F``_MoZo=UL9?JO66fOziOic%CoY?1^&Uqq z8dl)52m*7*91bP*T~H`Z(~!wgfyVRIYJ*+9W5;KwMS#a)qo}q6hl(0qf=dFJn-OX3 zY&CZc!ZMDWDO`6}7kT72*p;C4)3k5zl&C-iiuraM=quu3Q6{5RF-8XmRkyWQiH3H= z@8@+>A`mV$B*{B4Hl+s`{=rhHp%s9hF|b1_4M-R~WAb=IuG5bXTtJ^iSgxaX0)Wil z2hky>$+$Wj(I4J~3wYo+*wqyWbf0rpY>?dsQqNbt`ZDDh5dc z?|xrw7H>R1!*qAhlR#7VfLXgp07((1YacpS52Z@Y7%oWyDYQ0LHT6s=T)@+vEGK1y zBO0^$-dLG+)*M^!apwZtaY=Nw_70i7mrAX}YxmB>%#<*YB=A%5C7h`?B^wn9xVUag zq_IwC-w=jI3{fOP0ms;(ilyCRhex&e;cNqAxFmomnJFRa@Tdk_9XVle0Z(?a7?jb& zaM)~?!Lje;Jpf>CTDZYWYjQqSSnr%Mn}v2=(_dJJvsJ>fm`BF5sz77Lzg(P|=cy1&Ia5iEKx3 zNf?$mZCsiON79odE?nw1)`<)8!;|ml)vVZHv@3?Nub|d=>jex8%br-B3$ci2yhiV!3dQxNu$>s%Z54od zDkl=C9Q!SG2A6t&`W-;0CtZd+d7Ug9ukFDl0kiafLLQqjT&nDeo2P=$wLdOCR@RLE zp;3?|AmDK@Cq3NkI6(jpF3ZB~v2yBtxBpyj>^b|1_z07l@{W@*EDEEmwpGCxE&%Yj zG{9rmnFzRmw>w!DhSPn^YOUTSxFie-za8DGhex&e@|P;(`46vZSOJ9kK)Wj#iqH`^%emD-h>M<2-#t> zy%ZC;0KlfT)G~U~8C*)MXD6bvMS&lSF4?qYUqLOdn-Yn%s6YgW1$gJNB^Xkv;UnOg z)+^I&*t+kWS^U@Xv5;G;O)cGn#xXXf0lIJ630%vza%i48CU7V18%&8QToN$L&oN9} zHOCY#_57JNxtN`1e*2}Q(dzNij+5x>H~5nY0)|eG1>8}M4x2waj!PY;gebX5p-7Gh zG;342ji^f%Z4TKPTmTqSnf@WD1#J@n7w|?W%Yor^uaR;@4V6acGF%ddA=Znx&%y#b zZp_|66`p!OAJt=lb(Zf}*V>0?J~)E1OQy650v-nst<1J+)5$XHjItayi!t00wbpD2 zD38l_8Lm5^#~oGaDqIqPzmI9Sq0^IS>>NN!g#9oZTkl~soWsHk>t`a^PlRtyR9kt~ zI{Sz5DymiUAqfQMIQTMdu8`i60#-a05=U=cp+ z$nLftrI~G15c@>H1w6RDtTVVI45<_ZT()sGslL4*$q@lA!=;`RAh2;+7N$f8;U9a? z8rSPm(&YN4GKtG@Cv`T7ZU7Uw0I>eL6yx*LV;fPq1DBFS#K#ji zPsPViFUR@?sfY}+yOEREP zs?gLq0HsO;k~G9EhfBrq6`H(QmNsg2di;IY8MO7-&IKysbCDbs$Ox`tP=#jNCR>?f zo;X+GPEIFl9B=_c2gO&!H|DfDR^EbWnZ)Y6@xZmL8z2@KQXi4F?XfHy9@XOYuTSG# zmHkBQxhbJw(^pS8u=`Y5v(aWAmyMKY>4d@sytJ~x9$a$l&yzQrqW|*>8;!R@Pr{{N zj|tqmwm$ss{hx8x0bBr>nQoe5ba-tN_=WZxJ~buG=;W9vxPXUx(XPM+VCJOg=o>;| zO*>|$gqfXhR@aMg2S?QS;^%VgKjS=SWU!wIGg8AD!M)Vpk9t}MYkqdDV_RVxuDg&u zx_p!gToQ)(>it zn{nB__SlO($4nW3{e1<-tlp4Yj+~)29oThoe zR?JGWxl0>UxbA><%acVtx(XLCB>M6ZaIKQ9wDk_5t#=5Aiw({R7C}JfFG6IH7!gum zga?V?C*(uo!-K?!4_^@vLLLW0Dh>2w#*C=7=pPzI&)^7Jx|L|`>_=UT!sSG2ln4UY zxN54&k8IHv!2C}0#gC=Ne;!{U4~u6cSf6iE&+hw<%VLw<{sxZ+E~N*TX5x)~=N(={ zPm*X?453{yWENI4ky@A?i}YBFJe;)Sbhzg#TXDA16dkf+ZZd@SyjKk2x&ztc6aL0W z2XLw9E2hOEJdn|*-jk+?AYa_OTn@lF+~H9TKHhJN{R)+ev0`@8q`?I|JmGJAWB`|h zVO9KNtK{P~!Rzu7aPi!obKqlVGfX;Mk_6t{a~9qGrbTu4ubOH;|7%gttPGCJ#w(9S zRT>`|!lg7LB@D}QV?AMpN5x^Y@Z`E#2oLgg3KsyrKUIx06{d*G1v#;p5^stjn+&*s zrx$>`2$y>P=*nzF2b%}FO{TaU7M@x+3)zWwhBg-MEUak7jvp@?k4MQQxM!s)Q>;61 zy?%>k=?Ro2lc6Ml~iQ+<;5Hjtlj}<~wHF%+Wki3JnzF zn4Er^q@HDS z7pJDKL65sb%l1ZE1e@r$d4MLT<6s{l+h%^h&b5FWXMH zNPt!EtbI-aYe`WRn?+bne)kTlaK5e+xns*KJpq?`eqBZ+L;^1U{KYA^lao5qe0enP zS(;_c$LtJlQB6BO$~%v4T7D5BpNpsNn2q!}&wq0Ppsc*=!a8ftakYI$$A2 zn{q7u*WsRuW`)%nPI+7~-q^6fqj2eu&0T|d<%?5{_xfY1sY#(&cYQh%X-h*L!ENnP z;`1L$aNc4nF(O!k$Jft7WU$35Ne{s#0sQrod{keu-ZU#dLfW0bX;HAv2GYdHRT(4m z%d2Qs+-+H2($Iy2=PzOD)ELHwGldHP5y8Ir=R?=y-MnJ_RMg1CRJ&rcS(uR;j+^Er zn?+>UwVO0d`RzSkiGs3btEt3AxpBB_dA3J;%a(PI7dP633jkp<-+eX@Scnneh%n9* zfxd!Y_YSJ876$$6yCTGfNDR@DP7HSiF4ckK^ElYFb{ZCBMd97NBDC5GrLm_-nFI?m zqp>(Q*6LPl>)QQF6;6~k``kYcF=}FS6MtUmw2S zM=E;O=0OWF-WY4c=V$gFy3k~Erw?Bt4}bdgY{=tGcMMO!wX|$htHZvNHP~~!+L$HJ zo}z*!SUW!zGg87JwBu?VQESoGt3+G35|vHeC~xS(<<0?{(}+F-9v-|Y7t_-tjH@JU zwbNmn?3G#6t!(JTJ3CKd*v_^FvofRi?7Vx%TAK$g#2D~>`Hh15!s_mZ&H*1=$Js0b zw_TTl-&~(&x@~z7E=fCYWK@g&XX^0nsTwF4Y}_Ffa3SV%;UnZit0$q+>YyCfm@O%> zCwWpR?pY>Bh*S)MHexWd-$QUmH9CBIv>b;{Rojg&2@RHvtW1}Berr1bcxK;)TfaSB z|FueEzh@gH5#s(EGO$=4V>avnJOh_rrqh!ss_nqx^Nl!L-3GOTO*36ls8oyxR!&7~ zOb|F6mP_A0yXQHnTU_0S9s7&X)9+w&N*;$?I4xn#2Wv7J{r&>u*k1O3cAfuIUSY## zXWPqW#s=Y$mDxxL8{1x%cFYrSEz8sz9m+5Dproz?6;0h}?i_@Y!8a5zgu*6724eNR z6eLGU!R4^6Z1fh~ruII3aj@8KXNnSwMc}%e_}8}Ip7Vn97MV1z4Wb|3dG@VC=bIjL zwmS-oAh1XtjR%)!8P_Fw1FpS=U?Zbi464-7Xmrr(^-yc|U=sug7GW4i^0|rrDFBmB-PVa@YQXNF%NXrb5%vhn?THc^o!wo|A-i^HZH> z+__rej;OWx{#YdrovN`)17S--K9|f)3OyJSc*5BEyc!_*+>jGxje5%xQ(p}{O3S1YVAz% zSt?xSH;#bCYq){8Vr`%oCnW23)O9kDm+cu;)lQM(l*v(8cAj zk&zry5b77OcH7!C$4ePKpa}s?Y14OQ)9YJ$zbvWmh-Y%yaH$ygEtexVIn1p5N`YHe z--#UuiqXPw*pmlo8?Rc%ZhuN?yD?x?_R%9b8 zSaLI9ZLnTwz}>4?tbUPDuOWN%(#15 z7NinGaxzcB?Hg2K&(U%mJ=ef!*yHaj&}Alve)ON)r#maU4))fhu(i3|x=GL|M?YzivSQQc|#vQ-Pz)Z^kblN$N;Fi{RV*CDLw01Ka_9RA0 zJCdRTZ{4;=ew5j zEI~<4JD4aeSTd59Ap6}Xw`9M~tOb*&s{$}!7*;j3i{CD+Y}+t6H0pd<#Ud~#Ga8Gh zCm=C0(3CHlG(FZf_u}x`Iuu-NvYWP$E|Gvo%9BF(l0xzAJ8w&877sMZx@rJZ`t9zD zn6`e!mqk_Wvz&ztQId!Shzs+F#K+)Q=~t@I*xqMzNr)}6Sp?D(LMq}SeOJHb#^n2C z=&A!u>9M^fH&kEh-Cot)<8=9kJBp16R3yg+-~Zw2%)Q>cj<^&kZ=d>cty0{!R(i1|8!-D+pdw+F$ zvGW>Nhps8Wl%CmFp5CHVZfR*BSaP{*z)xqVGsb4K5G9lJhX+dz`2`4HoNT|bH*`$` zrfbobe2z%0kI?aW{yM0H0Kf)&L`U)zT7{HO&A#0_lk+3A&=)F<5oTTEjDlAO@ulxu|F+YlhcFdteNM2x#jdb2u`{6RCoN zXlgL21*lR9ywN0tV1Tz5mZ%z_4mspirQRR7p%5yFfO1o{($oJ9p<3z?4-yHl3WfUn z`^)&t%isv^P&pM96{su>3WG^g5z@p!EC~@HjU@_G8JGkQIrPv(BmsjbVQ^T%15Si1 z&X=SPfiMaFrq(8r2pHEt>{y}<;?U!J5F$e@8j3&>p>i^^2g?!^RQrWj)kYBy%wI{Y z(LRU9FUt#amQ$DL8FE96p=vT-*WoKg zA)#n5v^N?{IuKp%x9BLODhWgKLjNtfwioH&C8ze1suu$5t_}&1MxoshzFs7V#$49z z`G~UF`kV7N@6D!1&(>!O&QW6KA2bU}3!>0yJO=w;>ikWu2K`6Y|3{VhfAsD_cO8z< zL0?fHP)n5mT_V*|)%GQM;0PLKXq>+-2J5bN0Qny$wVw~)!v9HW>cIVx`rpJkm`Ec2JUcbY9mjgpf3?kP`A<6*MsR>V-(zQg02Jv z7NxFp;4y^h`siy5lF;6GFKTP6t3m&h^S{>dt2FAoQzsw#XMdm?e|8u&H3Nh|-9OG+ z+P44ztV~9F+HkvTPi`@g;5NJ+Yo>6Eaz_+H_==~)zJ{EtdIc? z&Wr7fempOcw;6Wdu2k#=Ehf0E->ETLz97wY;UTlH;OX^OB@t6*tjO`!CEZIvE8={= zaGu)dI^JF{qE1|j2oHO(l;JvRv{y70oVWsG$w(`*LLQA^u zi+7qS<6SN79}_|r@~`iDl$+e-{rSyLZTcC@2wO8b{CXyb>xVG)=B0<<=9R<2@0>G! zB*^vLm}>Ke`1*&>%**b*_7M8`g{?4;x=}Vuyb2kx(sZp=-a6ygmQmy3o0nbQ7OOE< z@TNsRx^YQZ^QwK80X8{T%q=+9-Knr`%w(7E48p8jcrRXk?=#(zSn&~8`_RgqX>h{z zthU|P$?=^du0PIIu&h7ZKNen(Ze~py=0mJ^-hbPpoy!%AioAwWZ};CBEn*LJv-K2K zK5rKwv+p*Mol@A_(6-fpyY(z!yjMz~ZTPQkNZfo)9z1w&Rk26Zcv|+RA1qHI}8>w=rlI2Iwp!X)>>A-?9sip3Gj50 zCBywa;E};*T$YN_{9w>F*r-ItvziHNEgcua%sU$;EtfG;IoD(t+_FfClB;-Ih|OD* zp8M`rN$VTg3ga}@bh1W(rY{xxLUGrR6kN2pY;kM%i`GhpXMX4&cS>-49W0(u>BNf^EpRBjpDn{%wI{DO=3OOx-C zTR~qEQpU&sG8y{j z7pGoI*FFv?1*R+l8A}BHqH4R=I>qZ_*}i%dI7*of2c=#fLsHJ~+0W#RYn7Y>CfBto zX-SY3m`9BATOYlg^ZOPNo^frvIym_GYWa81OxoEvuBRPKdp?46WC5ds0fvu3+?Cvo zG9=K2s7O+-+L)B|avp~jXwcp;#by{)Wz+#_$S7WoEo8`G=-b@iJHf$N9EwSQtlSj; z;kHFSKvmk{A7D}GT>wpKTZVR-p zpI_!A?q*y=omtn0i4}O9(}?_7?W=D$SsTxJG%w(TqJ!q->tj=!>e1SE-B-)Ck22(d zZo(tI!TBc4yWQ`Yb70&Imu;aZzuk|enPoegIr>gN*;Ci%{>duwtCvUIi|RBMHZ1W1 zEJJMOYZF9qK8Z(WRv9eG-2gMt4DBHFF@kQQvLx?0UG!xjfeA#JKCWeGe)$Gpuw>b? zg&T{IWS{H4X+7vZ`Up%UhH1ax%$4@ssPDGCkxoB*?kF&wBZ9#|*65gYn#OD-f_Sb& z^UEu53P%=Akv`L8fz}Nd!cAJMoeN?-q}(e_ZvXLTO6D5wbXdZ=40+hXX1(z^5+q zT$S(mDa^A`;h)XamBhUdq@B0fs`qiuqgXSx%d?84xtlkc^^+YKCRU0ivY(DiZ3w)g<_j!PB$gS@o%%3oZ~ZO#^nNeK83YlZ`D zfuk1wH`1D|6wm2!@V#KJ!urB*ST%jSdd*G1RA|3?jqyE`v}(Rd$@<8<1Y3!=(DNwv zrnwuYfhk^AWwd;&nH3y(7*%6Wp1yoXh?zMaeF5_V4Y_X=-^jUzGT3bNotx_XIVG%Dw=&Xt-|voAIr7(v)6P4<~A|__fYp>te+*3=5Gx%J&Z9IuiOn# zyUs9S1V{!=Tzba%={|t}A;6Y$Ta3ZwR?{Hrg=UIPS!0GILS|p(je6}Aw+qd}WO_tb z&bMz5#0YDSe(>Eq;24qjRpOI=1k)Xs%=b<;-KxehEVrXJ1XWtt+xE^(^olT+8p$Y_ z)H!ubxTY4$HiAPPf3xiYMBnGO0cO)Wo1;%pC`9@$)?7ga)w{ zJO^G6B13~Oqj{YC9mv-9Tx{Nu9}X#AF%IBdC}ZB0OfOJi$VJt1NcE)44iM__i5Is- z3XWH{X$nY*3mkpL(LiUVFMi?Nqs5!LGe$Wx(a$3;lP(mY?tQ=#jR|tK@=ovQ#A95* znT{zF(|%g~yfqebzV27GI($LZy6QMWQKjWH#ff}Bb25H8UG^L;SI*butaQ~tykQ_< zma8neDZoD94pWPhxIx|uv#t3RGx}WWleg$RJW?Hp zZ6edI>&N_Htca=`l%f~m$`J@mdaNMg+*UuIqMkp-Ve*#?{cB)g`CMvs%?4J93nV+3 zYuf&Z9POvl0eww?ZcTB8l58w~ZavTN9A_10JJzSr^xW*2GyZ4<$0cQ+2Or}n8uJa! zR!5l#Pr4sW7DvI7?)n=GA359U;^ajT&1LPxhs|o`-tRh7Am!DgeU`3&PPU*Z8kpWC z;z6rqAZea~0ogJ*29J#N0G*?j9R!@i#&%ZLU29DqV{;uxuZPNAQB~MM(DW4CUdlT| zfvuVu6qYJgmQ>FdEY*ZW7B{eI1rE~2ITNZn7ZT)Y874Vxl!p2#9`%OaX}F5xs!aWcSIc+?>9Ls;w`EgUdh^t(CM`owCWsYlQNr4q&Uaqb1cKcxUNr+R9gJ(vQW; z`@XYi#(6L(+l^!jUfk+Ja9n49$zB@{C1+Dc;h z*B$By0zF;QEA>~^J<4}t{M;P(PIreIKMRo)*((6OU(}5M10%{MhF-=X1*AW zSYg=91a&*tSLFOi(wZ7bP~Kj!OcImlZWIcc6qW?#tX7@^5=T$2dYz+LjdW-Hm=w8e z&;lB&a9bOgZrF>i3#Sg)HnV7B)+~m@Jnp#bgu{rC>aua;n4`v3p{8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H18y87L zK~#90?VWjeRMp+bzxUibS%&P(WSMMa0|GHX2q08NP^%Udt+>!?QE|b(ueGJMzWTl* zVqI#jt=87+Llr?l5sDSHq7)E>KoSxV5<(WT?;-o1nfv}Rb7$_%oV(0qCJW~KJUmS9 z*?x0BbI(1$vobu-V^Wu{$XFXNDbI=eMp)_O2;M{}h#d4SvnS3fST)+C!*((Y>Wa6mn zk^ua6-d=5OPt(@y>cSPhLj%l6^77_1$kL}Cnid?nV)g75?e4O1tTf>Pznr~oV@`F^ zZyS5sHSWweMC)&u7c*_s|1J92!|u#?v^8M?zmfOxb!QqXwiY&5hI_J{0(M#R)L zk7wPv+mq#ZN)rz7oB6xrtJ|A*oTx5ZI3&?{vR8<&KaxZB2=tu-0O;uJL1}9(F7|b) zO3xC4IZ-J^X@U9`56-{!yvxRqfhG*#4F?Z$oLBXm$12aR=@{ry^xs)RurzTFmQP!V zX<@P8Vf~)Mr}Hf}*jt>91LgTJ7>$ZH_<8&AS^8;v(!&DpTA8+T(B&^Pikc9BU(5OM zzWlnf*Dtiy`>Bba5tW3sSvMmgI068uaIJsysO@aQJ2{^rr>0nyJu!j0zPb9u-~ML) zPu@`X4aQF68u05UcV?Eg)PIy;SDMH>pm9``e<<#sdp)j5NVi;5f-C;3psoyWo!E=& zjwV(1&Cta)&WcF5{jtoIM^q&k1C2|-n+m@Sscf#{)2rbxiG4@N5NV@LuO3s zCM>F2yB_P6U+ANxaRd1E++8=GX}qwxsJSvsP5hKlJ=V^@8ELu%*drV%TyaQAOD*2c z*^6^c)oRQ_QfPF0dQ{wl>*oFBV^s+}tT6}tm(!n4t!S?KXKwAe3^gs;0BK`7&?z2a*>$}5H)7L%4%ZHz*Pu-Kur>t7NWJ$kb0uN|R z0RQ3m_Q&&TOJA(%Z1Pc#4a|v7!J}C>BQ{7Ux;naW#edg#wqi^E*Z8*LtQzwX=@&dW zJ9_HIrx)G#ys89l)TjdfYtHVh;s*&oDPO zWfQZg+M{lj#{j>PyX)@!x{|+@T&xXLjt!*g;_+zKEl3HAv0R%daK)cXTk5bW_X`v^ z)j*Bnf^*xdrg6$G5M`t1WrHy0cl8+p{QcCLW%*98vzE0OW4?#DyykYv{U&&ADIUM76rn zDxF`@U`BM(3(qWCy+Kt18I1_=8~HoaiW_UcJk?MZqZ}KE4~oDeSvMgwI@NORQim&! zbE>`^@8*1on)VjSbYi7N#MPwgVy+!YZ!$t!RloeoG{y}v0_e$m=D8O55TpXYF#8ZoY_NroJid+Kx(zhS{ZC_c= zBT7?d2*Y4$;#@qOwH$%oQ*6S%k8s7;x(E8P^VA{yyEsqLt>Os5l}YJuZdknLzhom) z!>o3jr^ja8EQ0_KM$dG<@| z7vKLsvJvg%6yQJS?7Z{S;$u4ohKD5MglPkDf94IiCTT7hFq3d)(uvdL)s*7h6JMga zyF;=JFP6g(r_cTI6Iu7Dp5dt)@OuXj`h4Afq_wiWQA-PF3Bk&lOYoD7W$@v=OomUw zRRvej!0-@upFV<53y(`q0*np}=}U{#hpo?iNcja0Csr3;AQwK8g6r?C#VbEtiw81q zn1m}+wo)2zPJ_GVF2U2+-VLpnH#Kct$3@@1Zo>zX2H8o~6Z~Gmo}k_5j<>e;cRTzb zd^O&9_4>6)3DsM_fD>?yJdcLXR+P2XqjR7ay+i#NG8n)x3|NK*VRkD1bVL(8@ z5C$A!K^VsTkAMLKj^#kWgAf9MfDnK%1S~^LaR^MG2?2pAO!&+&EC^!_XTX4A0ERJ@ z#WD;ShJayUo@n4+xc1k|TI%rJzHOkr4gh5s^b2@B2)k|iuyLM%`@OB`ap`K&oDv0P^v z0*(+6o4CZ9ml-6>2;sty#*~lcp9LmBMhPweB!)%fz6C$TTi@<=h}${POIlmnUIFj` zwIGpHRnZsP>zC86&yGyOvZOgyBUQq!?`*}h`!{3T>HThlOGNNog=-0CS<62S;XoJ$ zEFq%?SNQ9yq;yQz#ZvRD?P$4$8ek_yz<)TsWlBkFZ7?ltRmL)_Q7YjUHdWw-Z?>VS zr`_ghlZ4AK<|k|p5<)~p|2g= z=}Qe1NfB^sbAKAm=MC}oM@D3_*$#DZ>$+O-*AxH3pkc_S3Y3K_0y+}7oKOo80*-Ld zu(m%gn`(KSzy*Nxs07QJDzS`49`$`qGpL1%qzHJJ3{It8zbrBlgi-J3_74x>&qsG- z$S^E|qSeq}wZveg_DhJR`~>raT8$H% z*%yvRi9=2|mSMpLrNMm9;Q|07u{z5Do~4IaHR64;l;8ru*``Wr zwLD9gFbS7pq*@z?VNiTPRRESAHBti?0P4G29pJKr!90EHBwQEa0)Sz7*d2iBQVW*{ zkKTa+2e=%=BFaC6nr;%VGF$)vqs(u_JKZV41%M&mV0DF9lN-Vk7T%o3A>AZg`_D4s zrQXg~jR>$BxB$$4EwO>i5ytGwOu}^uE&!v<>r>DO0IP$`15~&yVW9-Kxu*jLqd^g_ zH|GUEZ(nc>D;ck?uM2%c^nFv5KxtSGVN(JyY&4>^r-Pb?BP>Fv1X!-M^mM{#p3-Cs z7YNe&!HeY_%5(-U01%c@jOK>TNaf)Ipu%NE-j~#`{WqWg9j(2cs;nRk!PJllERLUv z8>cORx5joWhqsRH#R-+0tk_E*7=}OH@(5}>n(^yT-;s>-$6Fo(4<5q?10LV=7KRP< zIcsm+x)x!6flk1c;HYB3%Lv^hWw-#Sa5?krO4+K+2^o1K%3AC3{>iWL*r#uzvaN}l zzb7S>Rnk%?2{&YlzkA@SlpK*Jyd254P@={|P51^*41>FPmh2Vj{QxFvp;vTpv<#H=p zEnI*H$FP<$SOG3!h%8*CFZcA)RhSwaiL#4z_~YSS)X8Z8P|@CqX}TCpi-4~PNQTOG1Id6nc2|(zS0L;`S;ACA1HD1?1FL>}+F>{ekzPr9Vg6;VSsA*tKotn+g3-w4s@3Dl6?NobXf}O=#!Be%OrG=s%(Epw=dbhn~2aFt|q z0Tlh`pj=jwjQ=}b7i+Ucg?&k`)?`X@tD7WcFbysz*;VO2xB%dIOFdUrpOq zeJtyk>~*fG#$o=HdbrYMs~M|zV^5a&vz?nnfy)x&@&q|&;t03Z<<_*yC)Y>gg_t1v zaT8try{K((wPxuCxB$Q~qtsO?2iH2_Pt22{*|WE&%gZM~*w;Naf*b+0;0^bnDfb z{N3>s7d40nBhe+74GVf+|`aT%Nb@i?;5MA!oe18e75wH&=VFoV7y^a8YBmrO`*r-)Xoi4#@WG zfWP@84KB+{FHU#%rplcX>gVlC`7x@Kv+qOzNC=Iz>7^5^v%eSh9oEh1Jo)4b^4x&G z=(2|8tUK5c7A(u!jV3wfr}hh0Tx>vYjr6JO(Sf#Ge0dTs0BBei@gWhC;pfcnVYP5& zYdMZ6n&y$^qxPLYrtOHVez5(-cl-R*zz~AO%V?4uTpm0XF0q@R(X zYt?o?y6QbA%XN4(NcqE_>F{yGJ6Ikr04iKsPnNrTv6d!h*jY$1QbMl6XGn)TKQ0xK0l}i{R)zTmfCe{A8-V}5@+NBY(ljl{8ZtjV z6@k85hj@ZaJO4@a=Gjd31?oE5K$DloD1Cy5S&D#tHU6cv>t`A(VB~oRXf%UefeQec zF)2=`Q3DqMq5?w@W!~gd?wu=6R5=Nw!BD6FqSXP@I+ zk`M-Q0s10`0Q-1K5nj3O*F8yLk<`NbAHvom=PRsukLNJPso zFJIY54HQY0n-m`y;dn9xfU^x1_)l4Z*{Dgl?uL7~tPmwl^z9&GfP41+7CrsLju*C4=$etyLF6>j&y0RDA4 z8wbvRr+h#(%i{9Hls8^j{PV|TBU0q@5$`V@-Lmd*<=NkNsyO0Z>*a%6XD!0=w1w2I z8@^9)jYb}a%g2a@v~x6aqqlqp!0V;*XdG(+uYrO5AzNqzq;JPGMd8t0tVBfV_*2) zqDMBUN+2V*00vAagqLed-^r~iS=BYrt5|JoSPsk6=3~XIMexy>50$>e;0_E9;LCsBVx*bFK?@-o_%PqRGl8H=Ut1$u&4qnkJ8))qf`v8PM<5GRJgl}YKiYt9nWBCZJpx1+BYy9>U>(Xt|&=}b}z z^wk>DV-q*|ENWQ09_v-C6Ld`;2MhqO=4}sa?rwiSx2EL!fuSMAvwple4VKSbfE6<@ z2gf>|?J%C;8jMC9C_arnr?Vxy7sb-BEM~<_&5jHRz3r*YpQ?MzN1#ywEa=so533dY$E8H(| za8^v*hUXSO^n$7cZq%3n27nC*4{`>t(l>J}&#&nk=u>p7SVC}3>TImcxWabEB!JO^ zJ2*Uy&kJ+#`I%hFV{^pv_44L3^a*?Xc)wNam#n5wjr6d_46vX-oZd3Ey0P`21@#v) zj4F08_xJY2E$NGJ-Sjzb+a6E}E)O2Z%Fp4WlSk0mr+ie8;P#}3$Np$t=H2wUv!kRj z2Q28t+$}ejG}LY`X{n{}MP#RhkO0vRq|8~JWM^q&k1C49If}TIV`M$!2%Gaygn*G$o zpAi{{pJpvZOi(D)z-{Pk!;aiTI8}Q=l|7LG!F}oagx@@~;QlvNB^X0Z2*7~Jts3$= z|7Lzw>6*@dWw(kD2A3zyz|v_MND7NIuUWEwS0i|ow>02C#ix;7Q3RvZ5r+av7eofhm{-Hrdw@OZe+Y=ugwBqsEtLev>O(0zofCar$ux)l#OXItR^;NS6 zojf;K!?Kte6<-h)7JT1RvsV{*$iz|CB?VZ}i}~-Sb#(V_sA+4xwzj<`P^vM;5rXKz zunv7l*uDsD&@*G*Z|n(Ol7Pj!`rrmGx|h@Yuv`!^GQI#{H1K`H=x?j?L*0QT>)m%m o_&C%h5BU2ow;jqcsqv}*2jk*sS>L+q#{d8T07*qoM6N<$g0bkpApigX literal 4993 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 diff --git a/src/assets/tags/dwine2.png b/src/assets/tags/dwine2.png index fddaf72fb6c44ed430bbd74ae586cd6b911017b9..0de4631723107001405daaea079595b2bcab0309 100644 GIT binary patch literal 6448 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%0A+FPlo2XVNF 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 N002ovPDHLkV1m=c+j9T_ literal 4639 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 C(gVf- diff --git a/src/assets/tags/native.png b/src/assets/tags/native.png new file mode 100644 index 0000000000000000000000000000000000000000..8d617857d48af5714b5559dd0621ca3964c3c25e GIT binary patch literal 6886 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 literal 0 HcmV?d00001 diff --git a/src/assets/tags/ubuntu.png b/src/assets/tags/ubuntu.png index ac173fe222ae751c9d1003ad310e5e49607a2453..f5c29073ace88797f5586deee1757b9f87897d2b 100644 GIT binary patch literal 7899 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 FV1i+RXxab( literal 5092 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 h8Qv7qTqp5^HO+?ev(ML - QFrame::StyledPanel + QFrame::Shape::StyledPanel - QFrame::Raised + QFrame::Shadow::Raised - Qt::Vertical + Qt::Orientation::Vertical @@ -89,7 +89,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -127,7 +127,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -142,10 +142,10 @@ - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Fixed + QSizePolicy::Policy::Fixed @@ -167,7 +167,7 @@ - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter true @@ -180,7 +180,7 @@ - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter true @@ -193,17 +193,17 @@ - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Fixed + QSizePolicy::Policy::Fixed @@ -221,7 +221,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -247,7 +247,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -267,7 +267,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -293,7 +293,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -308,10 +308,10 @@ - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Expanding + QSizePolicy::Policy::Expanding @@ -345,7 +345,7 @@ 0 - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -355,7 +355,7 @@ Download Times - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -366,7 +366,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -381,7 +381,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -392,7 +392,13 @@ - + + + + 40 + 40 + + 40 @@ -411,7 +417,13 @@ - + + + + 40 + 40 + + 40 @@ -430,7 +442,13 @@ - + + + + 40 + 40 + + 40 @@ -449,7 +467,13 @@ - + + + + 40 + 40 + + 40 @@ -468,7 +492,13 @@ - + + + + 40 + 40 + + 40 @@ -482,12 +512,18 @@ <html><head/><body><p>This app can only be installed natively</p></body></html> - :/tags/native.svg + :/tags/native.png - + + + + 40 + 40 + + 40 @@ -501,12 +537,18 @@ <html><head/><body><p>This app will be installed to debian12 ACE</p></body></html> - :/tags/amber-ce-bookworm.svg + :/tags/amber-ce-bookworm.png - + + + + 40 + 40 + + 40 @@ -520,14 +562,14 @@ <html><head/><body><p>This app will be installed to debian13 ACE</p></body></html> - :/tags/amber-ce-trixie.svg + :/tags/amber-ce-trixie.png - Qt::Horizontal + Qt::Orientation::Horizontal @@ -544,7 +586,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -555,7 +597,13 @@ - + + + + 40 + 40 + + 40 @@ -574,7 +622,13 @@ - + + + + 40 + 40 + + 40 @@ -593,7 +647,13 @@ - + + + + 40 + 40 + + 40 @@ -612,7 +672,13 @@ - + + + + 40 + 40 + + 40 @@ -631,7 +697,13 @@ - + + + + 40 + 40 + + 40 @@ -652,7 +724,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -667,7 +739,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -685,7 +757,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -712,7 +784,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -727,10 +799,10 @@ - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Fixed + QSizePolicy::Policy::Fixed @@ -765,7 +837,7 @@ } - QFrame::NoFrame + QFrame::Shape::NoFrame true @@ -804,10 +876,10 @@ - QFrame::StyledPanel + QFrame::Shape::StyledPanel - QFrame::Raised + QFrame::Shadow::Raised @@ -863,7 +935,7 @@ Introduction - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter false @@ -887,7 +959,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -917,13 +989,13 @@ - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop true - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse @@ -941,10 +1013,10 @@ - QFrame::StyledPanel + QFrame::Shape::StyledPanel - QFrame::Raised + QFrame::Shadow::Raised @@ -1000,7 +1072,7 @@ Screen capture - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter false @@ -1024,7 +1096,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1072,13 +1144,13 @@ QListWidget::item::selected } - QFrame::StyledPanel + QFrame::Shape::StyledPanel - Qt::ScrollBarAlwaysOff + Qt::ScrollBarPolicy::ScrollBarAlwaysOff - Qt::ScrollBarAlwaysOn + Qt::ScrollBarPolicy::ScrollBarAlwaysOn true @@ -1087,7 +1159,7 @@ QListWidget::item::selected 5 - QListView::Fixed + QListView::ResizeMode::Fixed @@ -1105,10 +1177,10 @@ QListWidget::item::selected - QFrame::StyledPanel + QFrame::Shape::StyledPanel - QFrame::Raised + QFrame::Shadow::Raised @@ -1164,7 +1236,7 @@ QListWidget::item::selected Description - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter false @@ -1188,7 +1260,7 @@ QListWidget::item::selected - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1218,7 +1290,7 @@ QListWidget::item::selected true - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse @@ -1231,17 +1303,17 @@ QListWidget::item::selected true - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Fixed + QSizePolicy::Policy::Fixed @@ -1316,10 +1388,10 @@ QListWidget::item::selected - Qt::Horizontal + Qt::Orientation::Horizontal - QSizePolicy::Preferred + QSizePolicy::Policy::Preferred @@ -1335,7 +1407,7 @@ QListWidget::item::selected true - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse @@ -1361,10 +1433,10 @@ QListWidget::item::selected - Qt::Horizontal + Qt::Orientation::Horizontal - QSizePolicy::Preferred + QSizePolicy::Policy::Preferred @@ -1406,7 +1478,7 @@ QListWidget::item::selected true - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse @@ -1442,7 +1514,7 @@ QListWidget::item::selected true - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse @@ -1490,7 +1562,7 @@ QListWidget::item::selected - Qt::Vertical + Qt::Orientation::Vertical @@ -1509,6 +1581,13 @@ QListWidget::item::selected + + + CustomLabel + QLabel +
    widgets/common/customlabel.h
    +
    +
    diff --git a/src/spark-store.pro b/src/spark-store.pro index e6ffa3e..db84c7c 100644 --- a/src/spark-store.pro +++ b/src/spark-store.pro @@ -47,6 +47,7 @@ SOURCES += \ utils/utils.cpp \ utils/widgetanimation.cpp \ widgets/base/basewidgetopacity.cpp \ + widgets/common/customlabel.cpp \ widgets/common/downloaditem.cpp \ widgets/common/progressbutton.cpp \ widgets/common/smoothlistwidget.cpp \ @@ -73,6 +74,7 @@ HEADERS += \ utils/utils.h \ utils/widgetanimation.h \ widgets/base/basewidgetopacity.h \ + widgets/common/customlabel.h \ widgets/common/downloaditem.h \ widgets/common/progressbutton.h \ widgets/common/smoothlistwidget.h \ diff --git a/src/widgets/common/customlabel.cpp b/src/widgets/common/customlabel.cpp new file mode 100644 index 0000000..9af89d4 --- /dev/null +++ b/src/widgets/common/customlabel.cpp @@ -0,0 +1,25 @@ +#include "customlabel.h" + +#include + +CustomLabel::CustomLabel(QWidget *parent, + Qt::WindowFlags f) + : QLabel(parent, f) +{ +} + +QPixmap CustomLabel::pixmap() const +{ + return QLabel::pixmap(Qt::ReturnByValue); +} + +void CustomLabel::setPixmap(const QPixmap &pixmap) +{ + QPixmap _pixmap = pixmap; + _pixmap.setDevicePixelRatio(qApp->devicePixelRatio()); + _pixmap = _pixmap.scaled(size() * _pixmap.devicePixelRatio(), + Qt::KeepAspectRatio, + Qt::SmoothTransformation); + + QLabel::setPixmap(_pixmap); +} diff --git a/src/widgets/common/customlabel.h b/src/widgets/common/customlabel.h new file mode 100644 index 0000000..f1d55b4 --- /dev/null +++ b/src/widgets/common/customlabel.h @@ -0,0 +1,19 @@ +#ifndef CUSTOMLABEL_H +#define CUSTOMLABEL_H + +#include + +class CustomLabel : public QLabel +{ + Q_OBJECT + Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap) + +public: + explicit CustomLabel(QWidget *parent = nullptr, + Qt::WindowFlags f = Qt::WindowFlags()); + + virtual QPixmap pixmap() const; + virtual void setPixmap(const QPixmap &pixmap); +}; + +#endif // CUSTOMLABEL_H From 9593ebb813145d1aad6373667cd074bc1a9b3da9 Mon Sep 17 00:00:00 2001 From: zty199 <1282441920@qq.com> Date: Fri, 13 Jun 2025 01:38:08 +0800 Subject: [PATCH 33/36] chore: modify .gitignore ignore obj-* for dpkg-buildpackage Log: as title --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 21d239c..b65abfd 100644 --- a/.gitignore +++ b/.gitignore @@ -53,4 +53,4 @@ debian/*.substvars debian/spark-store .vscode/* -src/spark-store +obj-* From e38d23dba004aa3e27115b7dfd25ff3946c8e861 Mon Sep 17 00:00:00 2001 From: MeowVing Date: Fri, 13 Jun 2025 01:18:00 +0000 Subject: [PATCH 34/36] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20ACE=20=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=E7=8E=AF=E5=A2=83=20deepin=20=E5=AE=B9=E5=99=A8=20Tag?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MeowVing --- src/assets/tags/amber-ce-deepin.svg | 1 + src/assets/tags/amber-ce-deepin_full.svg | 1 + 2 files changed, 2 insertions(+) create mode 100644 src/assets/tags/amber-ce-deepin.svg create mode 100644 src/assets/tags/amber-ce-deepin_full.svg diff --git a/src/assets/tags/amber-ce-deepin.svg b/src/assets/tags/amber-ce-deepin.svg new file mode 100644 index 0000000..90cb44b --- /dev/null +++ b/src/assets/tags/amber-ce-deepin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/tags/amber-ce-deepin_full.svg b/src/assets/tags/amber-ce-deepin_full.svg new file mode 100644 index 0000000..a0faa1b --- /dev/null +++ b/src/assets/tags/amber-ce-deepin_full.svg @@ -0,0 +1 @@ + \ No newline at end of file From 539607553dfbcd765a7d8d440d576f56e9587bd9 Mon Sep 17 00:00:00 2001 From: shenmo Date: Fri, 13 Jun 2025 12:56:13 +0800 Subject: [PATCH 35/36] =?UTF-8?q?=E6=94=AF=E6=8C=81=20amber-ce-sid=20amber?= =?UTF-8?q?-ce-deepin23=20=E7=9A=84tag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/assets.qrc | 3 + src/assets/tags/amber-ce-deepin.png | Bin 0 -> 8331 bytes src/pages/appintopage.cpp | 12 +- src/pages/appintopage.ui | 176 ++++++++++++++++++---------- 4 files changed, 127 insertions(+), 64 deletions(-) create mode 100644 src/assets/tags/amber-ce-deepin.png diff --git a/src/assets/assets.qrc b/src/assets/assets.qrc index 742f730..c46a72f 100644 --- a/src/assets/assets.qrc +++ b/src/assets/assets.qrc @@ -86,5 +86,8 @@ tags/native.png tags/native.svg translations/qtwebengine_zh.qm + tags/amber-ce-deepin_full.svg + tags/amber-ce-deepin.svg + tags/amber-ce-deepin.png diff --git a/src/assets/tags/amber-ce-deepin.png b/src/assets/tags/amber-ce-deepin.png new file mode 100644 index 0000000000000000000000000000000000000000..9b215a7e2ee95a8af5cc1b8b4f56b09ea59ad2ed GIT binary patch literal 8331 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 ui->tag_amber_ce_bookworm->hide(); ui->tag_amber_ce_trixie->hide(); + ui->tag_amber_ce_sid->hide(); + ui->tag_amber_ce_deepin23->hide(); + ui->icon->clear(); ui->title->clear(); ui->version->clear(); @@ -413,13 +416,14 @@ void AppIntoPage::setAppinfoTags(const QStringList &tagList) // First pass: Check if any Amber tags exist foreach (const QString &tag, tagList) { - if (tag == "amber-ce-bookworm" || tag == "amber-ce-trixie") + if (tag.startsWith("amber-ce-")) { hasAmberTag = true; break; // No need to continue checking } } + // Second pass: Apply tags based on whether we have Amber tags foreach (const QString &tag, tagList) { @@ -450,6 +454,12 @@ void AppIntoPage::setAppinfoTags(const QStringList &tagList) else if (tag == "amber-ce-trixie") ui->tag_amber_ce_trixie->show(); + else if (tag == "amber-ce-deepin23") + ui->tag_amber_ce_deepin23->show(); + + else if (tag == "amber-ce-sid") + ui->tag_amber_ce_sid->show(); + // Only process distro tags if there are no Amber tags else if (!hasAmberTag) { diff --git a/src/pages/appintopage.ui b/src/pages/appintopage.ui index f83d787..3c8845a 100644 --- a/src/pages/appintopage.ui +++ b/src/pages/appintopage.ui @@ -65,16 +65,16 @@ - QFrame::Shape::StyledPanel + QFrame::StyledPanel - QFrame::Shadow::Raised + QFrame::Raised - Qt::Orientation::Vertical + Qt::Vertical @@ -89,7 +89,7 @@ - Qt::Orientation::Horizontal + Qt::Horizontal @@ -127,7 +127,7 @@ - Qt::Orientation::Horizontal + Qt::Horizontal @@ -142,10 +142,10 @@ - Qt::Orientation::Vertical + Qt::Vertical - QSizePolicy::Policy::Fixed + QSizePolicy::Fixed @@ -167,7 +167,7 @@ - Qt::AlignmentFlag::AlignCenter + Qt::AlignCenter true @@ -180,7 +180,7 @@ - Qt::AlignmentFlag::AlignCenter + Qt::AlignCenter true @@ -193,17 +193,17 @@ - Qt::AlignmentFlag::AlignCenter + Qt::AlignCenter - Qt::Orientation::Vertical + Qt::Vertical - QSizePolicy::Policy::Fixed + QSizePolicy::Fixed @@ -221,7 +221,7 @@ - Qt::Orientation::Horizontal + Qt::Horizontal @@ -247,7 +247,7 @@ - Qt::Orientation::Horizontal + Qt::Horizontal @@ -267,7 +267,7 @@ - Qt::Orientation::Horizontal + Qt::Horizontal @@ -293,7 +293,7 @@ - Qt::Orientation::Horizontal + Qt::Horizontal @@ -308,10 +308,10 @@ - Qt::Orientation::Vertical + Qt::Vertical - QSizePolicy::Policy::Expanding + QSizePolicy::Expanding @@ -345,7 +345,7 @@ 0 - Qt::AlignmentFlag::AlignCenter + Qt::AlignCenter @@ -355,7 +355,7 @@ Download Times - Qt::AlignmentFlag::AlignCenter + Qt::AlignCenter @@ -366,7 +366,7 @@ - Qt::Orientation::Vertical + Qt::Vertical @@ -381,11 +381,11 @@ - Qt::Orientation::Horizontal + Qt::Horizontal - 20 + 13 37 @@ -566,14 +566,64 @@ + + + + + 40 + 40 + + + + + 40 + 40 + + + + <html><head/><body><p>This app will be installed to debian SID ACE</p></body></html> + + + <html><head/><body><p>This app will be installed to debian SID ACE</p></body></html> + + + :/tags/amber-ce-sid.png + + + + + + + + 40 + 40 + + + + + 40 + 40 + + + + <html><head/><body><p>This app will be installed to deepin23 ACE</p></body></html> + + + <html><head/><body><p>This app will be installed to deepin23 ACE</p></body></html> + + + :/tags/amber-ce-deepin.png + + + - Qt::Orientation::Horizontal + Qt::Horizontal - 20 + 18 37 @@ -586,7 +636,7 @@ - Qt::Orientation::Horizontal + Qt::Horizontal @@ -724,7 +774,7 @@ - Qt::Orientation::Horizontal + Qt::Horizontal @@ -739,7 +789,7 @@ - Qt::Orientation::Vertical + Qt::Vertical @@ -757,7 +807,7 @@ - Qt::Orientation::Horizontal + Qt::Horizontal @@ -784,7 +834,7 @@ - Qt::Orientation::Horizontal + Qt::Horizontal @@ -799,10 +849,10 @@ - Qt::Orientation::Vertical + Qt::Vertical - QSizePolicy::Policy::Fixed + QSizePolicy::Fixed @@ -837,7 +887,7 @@ } - QFrame::Shape::NoFrame + QFrame::NoFrame true @@ -876,10 +926,10 @@ - QFrame::Shape::StyledPanel + QFrame::StyledPanel - QFrame::Shadow::Raised + QFrame::Raised @@ -935,7 +985,7 @@ Introduction - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter false @@ -959,7 +1009,7 @@ - Qt::Orientation::Horizontal + Qt::Horizontal @@ -989,13 +1039,13 @@ - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop true - Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse + Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -1013,10 +1063,10 @@ - QFrame::Shape::StyledPanel + QFrame::StyledPanel - QFrame::Shadow::Raised + QFrame::Raised @@ -1072,7 +1122,7 @@ Screen capture - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter false @@ -1096,7 +1146,7 @@ - Qt::Orientation::Horizontal + Qt::Horizontal @@ -1144,13 +1194,13 @@ QListWidget::item::selected } - QFrame::Shape::StyledPanel + QFrame::StyledPanel - Qt::ScrollBarPolicy::ScrollBarAlwaysOff + Qt::ScrollBarAlwaysOff - Qt::ScrollBarPolicy::ScrollBarAlwaysOn + Qt::ScrollBarAlwaysOn true @@ -1159,7 +1209,7 @@ QListWidget::item::selected 5 - QListView::ResizeMode::Fixed + QListView::Fixed @@ -1177,10 +1227,10 @@ QListWidget::item::selected - QFrame::Shape::StyledPanel + QFrame::StyledPanel - QFrame::Shadow::Raised + QFrame::Raised @@ -1236,7 +1286,7 @@ QListWidget::item::selected Description - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter false @@ -1260,7 +1310,7 @@ QListWidget::item::selected - Qt::Orientation::Horizontal + Qt::Horizontal @@ -1290,7 +1340,7 @@ QListWidget::item::selected true - Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse + Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -1303,17 +1353,17 @@ QListWidget::item::selected true - Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse + Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse - Qt::Orientation::Vertical + Qt::Vertical - QSizePolicy::Policy::Fixed + QSizePolicy::Fixed @@ -1388,10 +1438,10 @@ QListWidget::item::selected - Qt::Orientation::Horizontal + Qt::Horizontal - QSizePolicy::Policy::Preferred + QSizePolicy::Preferred @@ -1407,7 +1457,7 @@ QListWidget::item::selected true - Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse + Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -1433,10 +1483,10 @@ QListWidget::item::selected - Qt::Orientation::Horizontal + Qt::Horizontal - QSizePolicy::Policy::Preferred + QSizePolicy::Preferred @@ -1478,7 +1528,7 @@ QListWidget::item::selected true - Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse + Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -1514,7 +1564,7 @@ QListWidget::item::selected true - Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse + Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -1562,7 +1612,7 @@ QListWidget::item::selected - Qt::Orientation::Vertical + Qt::Vertical From 17c90c5d07f29df48049d92aa53dca30fa1f2fb5 Mon Sep 17 00:00:00 2001 From: shenmo Date: Fri, 13 Jun 2025 14:29:01 +0800 Subject: [PATCH 36/36] 4.8.0 --- debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index a20fb66..84b1509 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,7 @@ -spark-store (4.8.0~test1) UNRELEASED; urgency=medium +spark-store (4.8.0) UNRELEASED; urgency=medium * ssinstall重写,支持安装到ACE和自动安装到ACE,支持只允许安装到本地 - * 商店支持展示ACE标识,支持识别 native amber-ce-bookworm amber-ce-trixie + * 商店支持展示ACE标识,支持识别 native amber-ce-bookworm amber-ce-trixie amber-ce-sid amber-ce-deepin23 * 投稿器支持新版spec -- shenmo Tue, 24 Sep 2024 11:27:08 +0800