From a158966e2d2ebbc77a4635f6e6c721e0219b5297 Mon Sep 17 00:00:00 2001 From: momen Date: Fri, 7 Mar 2025 09:49:54 +0800 Subject: [PATCH 01/11] =?UTF-8?q?docs:=E6=9B=B4=E6=96=B0=E4=BA=A4=E6=B5=81?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FAQ.zh.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.zh.md b/FAQ.zh.md index 0a91f2d..f59c430 100644 --- a/FAQ.zh.md +++ b/FAQ.zh.md @@ -8,7 +8,7 @@ ### 交流与反馈 **Q: 在哪进交流群?** -**A:** 你可以点击[这里](https://www.deepinos.org/)进入星火商店的主交流平台。 +**A:** 你可以点击[这里](https://bbs.spark-app.store/)进入星火商店的主交流平台。 > ⚠️ 如果上面的链接无法使用,你还可以加入我们的 QQ 群作为备选方案,群号是 872690351 和 865927727。我们还提供论坛作为交流平台。 arm64与amd64的区别 -- Gitee From da7e8ea9fc21c604063c0e853a477c427308eb2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=E7=82=B3?= <15163222+cbing2002@user.noreply.gitee.com> Date: Fri, 7 Mar 2025 15:26:53 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E5=BA=94=E7=94=A8=E5=8F=8D=E9=A6=88?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E8=87=B3=E6=B5=8F=E8=A7=88=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/appintopage.cpp | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/pages/appintopage.cpp b/src/pages/appintopage.cpp index 8152db4..ebf2f19 100644 --- a/src/pages/appintopage.cpp +++ b/src/pages/appintopage.cpp @@ -595,16 +595,6 @@ void AppIntoPage::on_shareButton_clicked() void AppIntoPage::on_updateButton_clicked() { - QString feedbackSpk = "spk://store/chat/store.spark-app.feedback"; - QFileInfo actionSubmissionClientStatus("/opt/durapps/store.spark-app.feedback"); - if (actionSubmissionClientStatus.exists() && actionSubmissionClientStatus.isDir()) - { - qDebug() << "反馈器存在"; - QProcess::startDetached("sh", QStringList() << "/opt/durapps/store.spark-app.feedback/launch.sh"); - } - else - { - qDebug() << "反馈器不存在,跳转页面"; - openUrl(feedbackSpk); - } + QString feedbackURL = "https://bbs.spark-app.store/"; + QProcess::startDetached("xdg-open", feedbackURL); } -- Gitee From 9036140ceb754ca913b64d99d79b96d72edabf4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=E7=82=B3?= <15163222+cbing2002@user.noreply.gitee.com> Date: Fri, 7 Mar 2025 15:55:54 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=20docs:=20=E7=BB=A7=E7=BB=AD=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E4=BA=A4=E6=B5=81=E5=B9=B3=E5=8F=B0=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 3ec114b..aa5ae12 100644 --- a/FAQ.md +++ b/FAQ.md @@ -8,7 +8,7 @@ The Spark App Store is an application store aimed at Linux users and supports mu ### Communication and Feedback **Q: Where can I join the community group?** -**A:** You can click [here](https://www.deepinos.org/) to enter the main communication platform of the Spark Store. +**A:** You can click [here](https://bbs.spark-app.store/) to enter the main communication platform of the Spark Store. > ⚠️ If the above link doesn't work, you can also join our QQ groups as an alternative. The group numbers are 872690351 and 865927727. We also offer forums for communication. #### Differences Between arm64 and amd64 -- Gitee From c60399df0b831fb7618fcf2172e81536b1a6aef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=E7=82=B3?= <15163222+cbing2002@user.noreply.gitee.com> Date: Fri, 7 Mar 2025 15:58:53 +0800 Subject: [PATCH 04/11] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E8=BF=87?= =?UTF-8?q?=E6=97=B6=E7=BB=84=E7=BB=87=E5=90=8D=20deepin-community-store?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitee/callback.py | 2 +- .workflow/pipeline-dtk-build-aarch64.yml | 2 +- DOCS/json-api-doc.md | 2 +- ...206\205\347\275\221\351\203\250\347\275\262.md" | 2 +- FAQ.md | 4 ++-- FAQ.zh.md | 4 ++-- debian/changelog | 14 +++++++------- debian/copyright | 2 +- patchs/README.md | 2 +- src/assets/json/features.json | 2 +- 10 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.gitee/callback.py b/.gitee/callback.py index b52d702..6abf80e 100644 --- a/.gitee/callback.py +++ b/.gitee/callback.py @@ -7,7 +7,7 @@ import json sha = os.getenv("GIT_COMMIT") # sha = '48fed26c51a8c42554e45f72f43e49703e04c97f' #get sha from environment -url = "https://gitee.com/api/v5/repos/deepin-community-store/spark-store/commits/{}/comments".format(sha) +url = "https://gitee.com/api/v5/repos/spark-store-project/spark-store/commits/{}/comments".format(sha) token = os.getenv("gitee_token") diff --git a/.workflow/pipeline-dtk-build-aarch64.yml b/.workflow/pipeline-dtk-build-aarch64.yml index 77495d2..1f25618 100644 --- a/.workflow/pipeline-dtk-build-aarch64.yml +++ b/.workflow/pipeline-dtk-build-aarch64.yml @@ -34,7 +34,7 @@ stages: - tar -xf DEBIANARM.tar.xz - mkdir -p DEBIAN/root/build-spark - mv ../spark-store-git DEBIAN/root/build-spark/spark-store - - wget https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/spark-build-aarch64.sh && mv spark-build-aarch64.sh DEBIAN/root + - wget https://gitee.com/spark-store-project/repo_auto_update_script/raw/master/spark-build-aarch64.sh && mv spark-build-aarch64.sh DEBIAN/root - mv /usr/bin/qemu-aarch64-static DEBIAN/ - chroot DEBIAN /qemu-aarch64-static /bin/bash /root/spark-build-aarch64.sh - '' diff --git a/DOCS/json-api-doc.md b/DOCS/json-api-doc.md index 859132d..5af00c2 100644 --- a/DOCS/json-api-doc.md +++ b/DOCS/json-api-doc.md @@ -30,7 +30,7 @@ `{SOURCE_URL}/{ARCH}/{CATOGARY}/applist.json` 说明:SOURCE_URL:线路链接,目前推荐 https://cdn.d.store.deepinos.org.cn,你也可以使用其他的星火线路 ARCH:架构文件夹 x86是store或amd64-store,arm是aarch64-store。特别的,如果你使用非https://cdn.d.store.deepinos.org.cn的线路,你可能会发现amd64-store会返回404,因为不是所有的服务器都支持软连接 -CATOGARY:分类目录。参考 https://gitee.com/deepin-community-store/spark-store/blob/dev/DOCS/spk-doc.md 中 store 直达的对应关系 +CATOGARY:分类目录。参考 https://gitee.com/spark-store-project/spark-store/blob/dev/DOCS/spk-doc.md 中 store 直达的对应关系 例子:https://cdn.d.store.deepinos.org.cn/aarch64-store/tools/applist.json diff --git "a/DOCS/\345\206\205\347\275\221\351\203\250\347\275\262.md" "b/DOCS/\345\206\205\347\275\221\351\203\250\347\275\262.md" index 1686d3d..7fa01ec 100644 --- "a/DOCS/\345\206\205\347\275\221\351\203\250\347\275\262.md" +++ "b/DOCS/\345\206\205\347\275\221\351\203\250\347\275\262.md" @@ -4,4 +4,4 @@ 为方便使用(其实是早期屎山使然),请将仓库放置于 `/home/ftp/spark-store` -仓库管理相关代码请移步 [这里](https://gitee.com/deepin-community-store/repo_auto_update_script),update.sh请联系 @shenmo 获取 \ No newline at end of file +仓库管理相关代码请移步 [这里](https://gitee.com/spark-store-project/repo_auto_update_script),update.sh请联系 @shenmo 获取 \ No newline at end of file diff --git a/FAQ.md b/FAQ.md index aa5ae12..8eb13a8 100644 --- a/FAQ.md +++ b/FAQ.md @@ -79,12 +79,12 @@ Linux: ### Reporting Issues and Removing Apps **Q: Some apps are outdated or inactive, and I want them removed** -**A:** You can report issues [here](https://gitee.com/deepin-community-store/software_-issue). +**A:** You can report issues [here](https://gitee.com/spark-store-project/software_-issue). --- ### Installing Spark App Store -If you wish to install the Spark App Store, please visit the [Release page](https://gitee.com/deepin-community-store/spark-store/releases), find the latest version, and choose the package suitable for your current system. +If you wish to install the Spark App Store, please visit the [Release page](https://gitee.com/spark-store-project/spark-store/releases), find the latest version, and choose the package suitable for your current system. > ⚠️ Special Note: If you are using Debian10/Debian11 or Ubuntu 20.04, you may need to download additional dependency packages. After downloading, unzip multiple times until you see the software user guide. For operating systems later than Ubuntu 22.04, you do not need to install dependency packages. Just follow the steps above to install the main program directly. diff --git a/FAQ.zh.md b/FAQ.zh.md index f59c430..1c45e07 100644 --- a/FAQ.zh.md +++ b/FAQ.zh.md @@ -78,12 +78,12 @@ Linux: ### 报告问题和应用下架 **Q: 有些应用已经过时或者失效了,我想让他下架** -**A:** 你可以前往 [这里](https://gitee.com/deepin-community-store/software_-issue) 报告问题。 +**A:** 你可以前往 [这里](https://gitee.com/spark-store-project/software_-issue) 报告问题。 --- ### 安装星火应用商店 -如果你想安装星火应用商店,请打开[Release页面](https://gitee.com/deepin-community-store/spark-store/releases),找到最新版本,并选择适用于当前系统的安装包下载。 +如果你想安装星火应用商店,请打开[Release页面](https://gitee.com/spark-store-project/spark-store/releases),找到最新版本,并选择适用于当前系统的安装包下载。 > ⚠️ 特别提示: 如果你在使用 Debian10/Debian11 或 Ubuntu 20.04,你可能额外下载依赖补充包。您需要在下载完依赖包后,解压多次一直到看到内部的软件使用说明,对于 Ubuntu22.04 以后的操作系统版本,您无需安装依赖包,您需要按照上面的操作直接安装本体程序。 diff --git a/debian/changelog b/debian/changelog index 836aa31..84350e0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -200,7 +200,7 @@ spark-store (4.2.7.3) stable; urgency=medium * 修复:aptss现在会正确地透传错误码而不是exit 0 * 修复:下载时如果卡0%(无法下载metalink),会在超时后报错中断而不是一直傻等 - * 修复:排队下载时CPU占满单核的bug https://gitee.com/deepin-community-store/spark-store/issues/I7B91V + * 修复:排队下载时CPU占满单核的bug https://gitee.com/spark-store-project/spark-store/issues/I7B91V * 修复:在终端中打开的icon过大导致无法投稿到UOS * 修复:v23下编译出错 * 薪怎:支持崩溃日志收集系统 @@ -437,7 +437,7 @@ spark-store (4.2.3~test2) stable; urgency=medium spark-store (4.2.3~test1) stable; urgency=medium * 修复:因判断安装状态错误创建多个相同任务的bug - * 测试中:尝试修复安装结束的闪退问题 https://gitee.com/deepin-community-store/spark-store/commit/cb093dcc2bb0a193db89aa0ce5f20ea9cc5d56eb + * 测试中:尝试修复安装结束的闪退问题 https://gitee.com/spark-store-project/spark-store/commit/cb093dcc2bb0a193db89aa0ce5f20ea9cc5d56eb * 修复:Deepin 显示开发者模式未开启 * 修复:从托盘打开主窗口时透明度动画不流畅 * 修复:主窗口关闭后,从托盘打开关于窗口会被主窗口遮挡 @@ -519,8 +519,8 @@ spark-store (4.1.2) stable; urgency=medium * chore: 去除安装依赖:g++ * fix: 修复下载列表中进度提示文字显示不完整的问题 * feat: ssinstall支持从单独文件夹中校验软件包 - * feat: 支持分单文件夹下载。具体内容参见:https://gitee.com/deepin-community-store/repo_auto_update_script/blob/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list - * info: 非常感谢 @jwyh 对星火商店代码仓库设计了很多标准,参见 https://deepin-community-store.gitee.io/spark-wiki/#/Dev/Spark-Store-Git-Repo?id=%e6%9b%b4%e6%96%b0%e6%97%a5%e5%bf%97%e8%a7%84%e5%88%99 ,不过shenmo是自由的 + * feat: 支持分单文件夹下载。具体内容参见:https://gitee.com/spark-store-project/repo_auto_update_script/blob/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list + * info: 非常感谢 @jwyh 对星火商店代码仓库设计了很多标准,参见 https://wiki.spark-app.store/#/Dev/Spark-Store-Git-Repo?id=%e6%9b%b4%e6%96%b0%e6%97%a5%e5%bf%97%e8%a7%84%e5%88%99 ,不过shenmo是自由的 * chore: 添加 Application 类,继承 DApplication,将 main 函数中设置属性、关于信息等操作移至 Application 构造函数中进行 @@ -539,8 +539,8 @@ spark-store (4.1.2) stable; urgency=medium spark-store (4.1.2~test2) stable; urgency=medium * feat: ssinstall支持从单独文件夹中校验软件包 - * feat: 支持分单文件夹下载。具体内容参见:https://gitee.com/deepin-community-store/repo_auto_update_script/blob/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list - * info: 非常感谢 @jwyh 对星火商店代码仓库设计了很多标准,参见 https://deepin-community-store.gitee.io/spark-wiki/#/Dev/Spark-Store-Git-Repo ,不过shenmo是自由的 + * feat: 支持分单文件夹下载。具体内容参见:https://gitee.com/spark-store-project/repo_auto_update_script/blob/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list + * info: 非常感谢 @jwyh 对星火商店代码仓库设计了很多标准,参见 https://wiki.spark-app.store/#/Dev/Spark-Store-Git-Repo ,不过shenmo是自由的 -- shenmo Fri, 30 Jan 2022 00:00:00 +0800 @@ -751,7 +751,7 @@ spark-store (3.2.4) stable; urgency=medium spark-store (3.2.4~test4) stable; urgency=medium - * 现在在商店启动后点击spk链接仍会正常启动 https://gitee.com/deepin-community-store/spark-store/commit/dd6780d636042bf12d77414e6f1552cc7d1ed24c + * 现在在商店启动后点击spk链接仍会正常启动 https://gitee.com/spark-store-project/spark-store/commit/dd6780d636042bf12d77414e6f1552cc7d1ed24c -- shenmo Fri, 30 Jan 2022 00:00:00 +0800 diff --git a/debian/copyright b/debian/copyright index e212ce7..ac61728 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,6 +1,6 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: spark-store -Source: https://gitee.com/deepin-community-store/spark-store +Source: https://gitee.com/spark-store-project/spark-store Files: * Copyright: The Spark Project Developers diff --git a/patchs/README.md b/patchs/README.md index 2020a5c..f62895d 100644 --- a/patchs/README.md +++ b/patchs/README.md @@ -5,7 +5,7 @@ > 用于 zinface-community-cmake-build-system.patch 补丁化构建方式 ```shell - git clone https://gitee.com/deepin-community-store/spark-store + git clone https://gitee.com/spark-store-project/spark-store cd spark-store git am < patchs/zinface-community-cmake-build-system.patch make package diff --git a/src/assets/json/features.json b/src/assets/json/features.json index c771916..8c7772b 100644 --- a/src/assets/json/features.json +++ b/src/assets/json/features.json @@ -20,6 +20,6 @@ "description": "Fix 1 detailed description..." } ], - "linkUrl": "https://gitee.com/deepin-community-store/spark-store/releases/", + "linkUrl": "https://gitee.com/spark-store-project/spark-store/releases/", "linkButtonVisible": true } -- Gitee From 4abfc19399376ce55b8a4293e6afa413a8d8d03f Mon Sep 17 00:00:00 2001 From: zty199 <1282441920@qq.com> Date: Sat, 8 Mar 2025 10:47:51 +0800 Subject: [PATCH 05/11] fix: svg tags in AppInfoPage display error Qt6 cannot render svg correctly, fallback to png Log: delete duplicated icon resources; use png instead of svg for tags --- src/assets/assets.qrc | 31 ++++++---- src/assets/tags/a2d-small.png | Bin 4774 -> 0 bytes src/assets/tags/community-small.png | Bin 5880 -> 0 bytes src/assets/tags/debian-small.png | Bin 4865 -> 0 bytes src/assets/tags/deepin-small.png | Bin 5103 -> 0 bytes src/assets/tags/dtk-small.png | Bin 4993 -> 0 bytes src/assets/tags/dwine2-small.png | Bin 4792 -> 0 bytes src/assets/tags/dwine5-small.png | Bin 4639 -> 0 bytes src/assets/tags/logo_icon.svg | 1 - src/assets/tags/ubuntu-small.png | Bin 5092 -> 0 bytes src/assets/tags/uos-authorize.svg | 1 - src/assets/tags/uos-small.png | Bin 4786 -> 0 bytes src/pages/appintopage.ui | 91 +++++++++++++++------------- 13 files changed, 68 insertions(+), 56 deletions(-) delete mode 100644 src/assets/tags/a2d-small.png delete mode 100644 src/assets/tags/community-small.png delete mode 100644 src/assets/tags/debian-small.png delete mode 100644 src/assets/tags/deepin-small.png delete mode 100644 src/assets/tags/dtk-small.png delete mode 100644 src/assets/tags/dwine2-small.png delete mode 100644 src/assets/tags/dwine5-small.png delete mode 100644 src/assets/tags/logo_icon.svg delete mode 100644 src/assets/tags/ubuntu-small.png delete mode 100644 src/assets/tags/uos-authorize.svg delete mode 100644 src/assets/tags/uos-small.png diff --git a/src/assets/assets.qrc b/src/assets/assets.qrc index f2f5df4..348edce 100644 --- a/src/assets/assets.qrc +++ b/src/assets/assets.qrc @@ -45,24 +45,33 @@ icon/light/update.svg icon/logo.svg json/features.json - tags/a2d-small.png + tags/a2d_full.svg tags/a2d.png - tags/community-small.png + tags/a2d.svg + tags/community_full.svg tags/community.png tags/community.svg - tags/deepin-small.png + tags/debian_full.svg + tags/debian.png + tags/debian.svg + tags/deepin_full.svg + tags/deepin.png tags/deepin.svg - tags/dtk-small.png - tags/dwine2-small.png - tags/dwine5-small.png + tags/dtk_full.svg + tags/dtk.png + tags/dtk.svg + tags/dwine2_full.svg + tags/dwine2.png + tags/dwine2.svg + tags/dwine5_full.svg + tags/dwine5.png tags/dwine5.svg - tags/logo_icon.svg - tags/ubuntu-small.png + tags/ubuntu_full.svg tags/ubuntu.png - tags/uos-authorize.svg - tags/uos-small.png + tags/ubuntu.svg + tags/uos_full.svg + tags/uos.png tags/uos.svg translations/qtwebengine_zh.qm - tags/debian.svg diff --git a/src/assets/tags/a2d-small.png b/src/assets/tags/a2d-small.png deleted file mode 100644 index e0bf6d0f3c18963440e77fce350153b576f14ac6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4774 zcmbtYc|4SD+nz~?3W*fOWXU?l&P-!0jb$t$vTtK%FqSc9MvPsdv>;0&LSp1T7y8gJMj4$dOW#wfB002i( zy2wlPyV%}!h>8Atd$-b)eq$l(T9E+&W~aRisN$bI0011kfj6_HSQ;9@FkYV0XsnkL zPTJ3tNJj$za5X<78sm4YN2Q-V@SM!bH(fWlW?Z~7tJvK z?ieUmR1Luj_k+<1JaH5>$j{S*K!*9Lith8m=>PZ95K%gagms2pLTdkp&?8k*R|log$!N(xR&P^Ujc zze@g{#>~qHzy>f#5uFo;U(!&ve<}reiTM3ZCMD``dC256Zt=PM;;12b$obD(VNu;+)Yw9u!f; zswB{4#`US9IuID7A&2}gB7gJ3A^&Lk|By)h$KdXb*8cw4 z8!Gw(x<2{e`sfi%!-wMPMM4bfA72#;8WSeEmjq+W+M+^Vsuz@jR!?YG7aY2daB532I(io$>e-z~L~#G_@{ zv+={p^45V19~K@it4*DsD&LN;AE6fMAY3>%Q(Bl*xMm}5X9wo<4g`H#&-r(e4->tfzJkjk7H7Oa+ z(uisPXlp&)DiPFPDt4It+a~Su(7>WeJU}YAbZ)zWb&+Dn7?kbYYi485QT-}n;_{<0 z-S0}_uFPeMX4Jt=s?6?V(Tiw2Jyv|Rz^6?^{o9kYxud8gX z@;(QTz02JML5?6*P@_12v_iCQQ`5##E#aiha zGwyc|v;KtbG##yB-W-*+j1QM+FU%v-R{e+Wz8n@`vcDX9f^915B@fHj`E{t|T%uJ+ zg6X7?h}lww&g}XTeZ7=1tV~*_G@o$ax!ceMaTQz>Yg}37IsB1Kfh4X{_O>`>RqJy# zZR?Q;&j>#E;G{5`S+!_Azd`%8(j^BUdqyOujIlM8GSx9-dnj$bBX~HQ61nt7U&SaP0R9ApXcxjPj?wf0Ou&9gidrF!-dsbtvT2HYd zyRfh@yV3L|zV|0%UG=&Rq%>qdazrfo=gtR)_d}4m@-LH^Y9A+re;d!$*vepHuuV0T zKZ`*zVU1JV((m~=l;d^vgc9c~T+u(lcSa~TmcTyvcOi<0$36`S%kfLl)ay@gvu_~3 z%F2FHVU;>9e~Eg>86|SCQU7=Yigj|$c$C6Zj-}JQ9~xKd(>en+NtvtEBsI%4Tq4dv zak8On!da*5gECVpgOGwIoMLJT+c&?|#>XTb3WpE9C~Y%{URs}xSSJ63JmX!FcO1Ol z($e7gTDXkSU6tpYl#AK2R_Lm3)`DN&qMtGK>8i&D>~QMLquxRpJC=)gkvGckvt-q8 zeNT~7za$5j#3$sAC}Cwlw3?hX`Jb8t)vJQOSr-!TDa_6iOrACQDv!pAH6E-*;Q$x1 z;}F@$!u4BtcsP?-6Qg31BrMs$42+|ykxoWS?tq7LZ{|f9#jvhH3q@FMQ0)sST7nNy&*rpI`}X&Mb6k zXIV9fN=dKq_dQ;ocFQ=aoPBGSL98*5Db%I$FYAj}Ob4NwNeuA{!+utM$oIk`RT;-a z-vMWiu&8r+!vmA;cl_tQmMtFB3a?oEO+N#~osS7PS&{%01-51yiZo-_xp-VA$}ffU z^yTOot+p6avdDTO3@+|(WS_uuMgarCN}4#En*3CC#0>w=Umu^RN5x`|B7rASz`8uZ zoj5MX-TYbLLhXszruK<&i)&-q-V=&Ul!Zm1!Hck6$FrMkS8|_p#R51LA;%1jZSJw; z07`{s!Zu*`Gk%_v>xIjvv8Woi`(nqpws zyHM1pFqT)TgX!B*uZ3s$@|EL)X+e6pCHSZn(@OqqWmDeJd(F!OdV@Ekf z&bx#h1er5QH`>};VrJTaZRN!rQ3;DNPMXK_HTA_rO*8SV6D#-6I=9B>ama%L=Dgoy zYO}mGPnootzkGUTTGFt-_yKUd7<;-{fC-e^WR)Ctd18*t-D7jgqROfM^V@Q_#FNDW z%v^HH@59}3?4N_a+a{bo|DdP8z1LJh-NgN+e+Pfz&wRrOl~V^Cr``gh`SO9rp@+Pi zGT9iL+ec!3Z+Fg$J91sQnXn@H)LVCIbfbJz_XgA52A}PIt|Lj=!=F_E%v_*=l5Zn` zIelOxft7>N8oUEQI#`q{XY}HvWlingo0W>LQuFTcvNKN|f2@ex#iaG5eaz8|T5s>= zV-Q5o)ENMoP7&86MzsOOThi);OzpStkkO~YfvBNa)ztsXV?XyJk=0xv13&Ew0eraZ3CWh^nghACr8@RoFEbTd`6mR5G&iigN&#{3hh;{lQxW{E&N_M9 zP6C;pm!`bEC!aVD<-uC{vGq3y2P#6;Mpc(Xn*hkBDCzsJQ_gi7^e48styOdy_+E88 zW`2=_&3m&K##_Sv;3314uIscf{6cE9%A@5nB7qa0E!XdaOKT0?I-avQ%O>Ak#M0d# zoWa}<$YnpXHQ~Z(txEAi$$IQ8JOjaeKL)M$763=}ReboFG63%7;WdaFj~#R+ zRX4w~>2%T}Qh6}<(Wk1k|SUOPL3V17%o z1l~XNM)#)POnVI99G-H%R#AX4m=I8HZ)+Vk{q9+*1_&r6DjsU z>PBoa)Kdy5vt;a*cI8MbL89&svhb<8nhm(PzLD1uDwgFfNXx(jrtMPXioIp>m}Ou2 zxb?W4NpPK3EWYMObZ~wuWxMct)LwYh5N$W5_oZgkd2FkQ{fKz#+xuJZqrnx{C;hh5 zTBwZ^Am@eN{5os|Ka zFkhvDBKC^I5c3G&v+*AeXC^$jTli_#dP>x8fS8PbaQkGJJ0XmpKxpb(ircvFn-RV+ zyEZ_)`-0lM9jq^T)YZUN&jamX7F^dN5c2iuIbN(`A*f1NAkesslGeQ2Pr zNTX!9L?TG-Q;2{|Qi9OjMU%)9Otvnh-%^NeIK2f%1-V!yCdn@d!yf##9@tjt+3fiA z+4|>+ChZ9&hq#~4&Mt{O8S4W6AR{gf?ZBtq$||XZu!AqCC46VD^VnF$++zrNQ$Ai7 z*MGqNi|sXSL4@*C%a7HGivhcAA$+0l-hf9FKYXrFCxbT&3cxzS`QTA^_BXV~sFHA6 zz(&g(!<8&0^vJhrhWcu1`vJ)YsR#W?2dmol-G>WT5Z61j3hwd4xsScGGZb{8elTKJ z@g1+h@^IVCM9kam@>~NCRg~Lf5$00x^a?4d!BKm&%1r0GQ}OpAI&(|L;D{Vjfst9= f7t@c!bBh91<~qw>pN%Z{z9gZvE+UIH9k2ciyf#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-small.png b/src/assets/tags/debian-small.png deleted file mode 100644 index 955942dface68b5d3d25b7df78b3d28417c8cb51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4865 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 JPj#Kb{sputTX_Hg diff --git a/src/assets/tags/deepin-small.png b/src/assets/tags/deepin-small.png deleted file mode 100644 index e192bf903642cdbee0bb54da8e24ac0515abb664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5103 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 diff --git a/src/assets/tags/dwine2-small.png b/src/assets/tags/dwine2-small.png deleted file mode 100644 index fddaf72fb6c44ed430bbd74ae586cd6b911017b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4792 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 C(gVf- diff --git a/src/assets/tags/logo_icon.svg b/src/assets/tags/logo_icon.svg deleted file mode 100644 index 215d31a..0000000 --- a/src/assets/tags/logo_icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/tags/ubuntu-small.png b/src/assets/tags/ubuntu-small.png deleted file mode 100644 index ac173fe222ae751c9d1003ad310e5e49607a2453..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5092 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 \ No newline at end of file diff --git a/src/assets/tags/uos-small.png b/src/assets/tags/uos-small.png deleted file mode 100644 index be8add4749ead0c618308b0131c1d14f3d737454..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4786 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 h8Qv7qTqp5^HO+?ev(ML + + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -383,7 +396,7 @@ 40 - 16777215 + 40 @@ -392,8 +405,8 @@ <html><head/><body><p>Capable to Ubuntu 22.04</p></body></html> - - <html><head/><body><p><img src=":/tags/ubuntu.png" height=40 width=40 /></p></body></html> + + :/tags/ubuntu.png @@ -402,7 +415,7 @@ 40 - 16777215 + 40 @@ -411,8 +424,8 @@ <html><head/><body><p>Capable to UOS home 20</p></body></html> - - <html><head/><body><p><img src=":/tags/uos-authorize.svg" height=40 width=40 /></p></body></html> + + :/tags/uos.png @@ -421,7 +434,7 @@ 40 - 16777215 + 40 @@ -430,21 +443,27 @@ <html><head/><body><p>Capable to deepin 23</p></body></html> - - <html><head/><body><p><img src=":/tags/deepin.svg" height=40 width=40 /></p></body></html> + + :/tags/deepin.png + + + 40 + 40 + + <html><head/><body><p>Capable to Debian Stable</p></body></html> <html><head/><body><p>Capable to Debian Stable</p></body></html> - - <html><head/><body><p><img src=":/tags/debian.svg" height=40 width=40 /></p></body></html> + + :/tags/debian.png @@ -463,22 +482,6 @@ - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 20 - - - - @@ -499,7 +502,7 @@ 40 - 16777215 + 40 @@ -508,8 +511,8 @@ <html><head/><body><p>An Appimage to deb app.</p></body></html> - - <html><head/><body><p><img src=":/tags/a2d.png"height=40 width=40 /></p></body></html> + + :/tags/a2d.png @@ -518,7 +521,7 @@ 40 - 16777215 + 40 @@ -527,8 +530,8 @@ <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><img src=":/tags/community.svg" height=40 width=40 /></p></body></html> + + :/tags/community.png @@ -537,7 +540,7 @@ 40 - 16777215 + 40 @@ -546,8 +549,8 @@ <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><img src=":/tags/logo_icon.svg" height=40 width=40 /></p></body></html> + + :/tags/dtk.png @@ -556,7 +559,7 @@ 40 - 16777215 + 40 @@ -565,8 +568,8 @@ <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" height=40 width=40 ></p></body></html> + + :/tags/dwine2.png @@ -575,7 +578,7 @@ 40 - 16777215 + 40 @@ -584,8 +587,8 @@ <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=40 width=40 /></p></body></html> + + :/tags/dwine5.png @@ -1449,6 +1452,8 @@ QListWidget::item::selected - + + + -- Gitee From 244f58eccecc3024c1ac3e9460d5169f2bcff1d7 Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 13 Mar 2025 12:59:26 +0800 Subject: [PATCH 06/11] AUTO_USE_ACE --- tool/ssaudit | 131 +++++++++++++++++++++++++++++++++++++++++-------- tool/ssinstall | 72 ++++++++++++++++++++++++--- 2 files changed, 176 insertions(+), 27 deletions(-) diff --git a/tool/ssaudit b/tool/ssaudit index 711fd4e..06897c9 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -4,6 +4,7 @@ source /opt/durapps/spark-store/bin/bashimport/transhell.amber load_transhell_debug export DEBIAN_FRONTEND=noninteractive +trap 'unlock_file $DEBPATH' EXIT case $(arch) in x86_64) STORE_URL="store" @@ -11,9 +12,13 @@ case $(arch) in aarch64) STORE_URL="aarch64-store" ;; + loongarch64) + STORE_URL="loong64-store" + STORE_LIST_URL="-loong64" + ;; esac -echo "Spark Store Install script. 星火商店审核脚本" +echo "Spark Store Audit script. 星火商店审核脚本" function pkexec_as_current_user() { local user=$(who | awk '{print $1}' | head -n 1) @@ -47,6 +52,7 @@ function exec_create_desktop_file() { } + function zenity() { local user=$(who | awk '{print $1}' | head -n 1) local uid=$(id -u "$user") @@ -54,19 +60,19 @@ function zenity() { } function hash_check() { - if [ ! -e "/var/lib/aptss/lists/cdn.d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && \ + 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-repository_${STORE_URL}_Packages" ]; then + [ ! -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/cdn.d.store.deepinos.org.cn_${STORE_URL}_Packages" ]; then - PACKAGES_DATA_PATH="/var/lib/aptss/lists/cdn.d.store.deepinos.org.cn_${STORE_URL}_Packages" - echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置" + 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,是星火域名单目录仓库配置" + 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镜像仓库配置" @@ -76,11 +82,47 @@ function hash_check() { 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") } +function lock_file(){ +chattr +i "$1" +} + +function unlock_file(){ +chattr -i "$1" +} + +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" + return 1 + fi + rm -f "$deb_file" + # Verify installation + if ! command -v aptss &>/dev/null; then + echo "成功安装但未找到 aptss 命令" >&2 + return 1 + fi + fi +} +export -f ensure_aptss_exist #################################### if [ $# -eq 0 ]; then @@ -90,11 +132,7 @@ if [ $# -eq 0 ]; then exit fi -if [ ! -f "$1" ]; then - echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST}" - echo "OMG-IT-GOES-WRONG" - exit 1 -fi + if [ "$(id -u)" != "0" ]; then echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}" @@ -102,28 +140,80 @@ if [ "$(id -u)" != "0" ]; then exit 1 fi -DEBPATH=$(realpath "$1") +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") + fi + else + DEBPATH=$(realpath "$1") +fi +lock_file "$DEBPATH" +IS_SHA512SUM_CHECKED=skipped +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 update 刷新,随后尝试安装 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里面则不进入分支 + if command -v bookworm-run ;then + echo "----------------------------------------" + echo "Attention: USING ACE BOOKWORM TO INSTALL" + echo "----------------------------------------" + bookworm-run ensure_aptss_exist + try_run_output=$(bookworm-run aptss install --dry-run "$DEBPATH") + try_run_ret="$?" + if [ "$try_run_ret" -ne 0 ]; then + bookworm-run aptss update + try_run_output=$(bookworm-run aptss install --dry-run "$DEBPATH") + try_run_ret="$?" + fi + if [ "$try_run_ret" -ne 0 ]; then + echo "OMG-IT-GOES-WRONG" + echo -e "${try_run_output}" + echo "----------------------------------------" + echo "Attention: USING ACE BOOKWORM TO INSTALL" + echo "----------------------------------------" + exit "$try_run_ret" + fi + bookworm-run dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yf + fi - if [ "$try_run_ret" -ne 0 ]; then - echo "OMG-IT-GOES-WRONG" - echo -e "${try_run_output}" - exit "$try_run_ret" - fi + else + + echo "OMG-IT-GOES-WRONG" + echo -e "${try_run_output}" + exit "$try_run_ret" + fi + else - dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yf + dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yf + fi +### 退出阶段 if [ "$?" = "0" ] && [ "$2" = "--delete-after-install" ]; then if dpkg -s "$package_name" >/dev/null 2>&1; then @@ -147,3 +237,4 @@ DEBPATH=$(realpath "$1") echo "OMG-IT-GOES-WRONG" fi fi +fi diff --git a/tool/ssinstall b/tool/ssinstall index 45fcc1e..3f82677 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -1,6 +1,7 @@ #!/bin/bash source /opt/durapps/spark-store/bin/bashimport/transhell.amber + load_transhell_debug export DEBIAN_FRONTEND=noninteractive @@ -94,6 +95,35 @@ function unlock_file(){ chattr -i "$1" } +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" + return 1 + fi + rm -f "$deb_file" + + # Verify installation + if ! command -v aptss &>/dev/null; then + echo "成功安装但未找到 aptss 命令" >&2 + return 1 + fi + fi +} +export -f ensure_aptss_exist #################################### if [ $# -eq 0 ]; then @@ -153,7 +183,7 @@ if [ ! -z "$IS_SHA512SUM_CHECKED" ]; then 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 update 刷新,随后尝试安装 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") @@ -161,14 +191,42 @@ if [ ! -z "$IS_SHA512SUM_CHECKED" ]; then fi if [ "$try_run_ret" -ne 0 ]; then - echo "OMG-IT-GOES-WRONG" - echo -e "${try_run_output}" - exit "$try_run_ret" - fi - dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yf + if [[ "$IS_ACE_ENV" == "" ]];then ## 如果已经在ACE里面则不进入分支 + if command -v bookworm-run ;then + echo "----------------------------------------" + echo "Attention: USING ACE BOOKWORM TO INSTALL" + echo "----------------------------------------" + bookworm-run ensure_aptss_exist + try_run_output=$(bookworm-run aptss install --dry-run "$DEBPATH") + try_run_ret="$?" + if [ "$try_run_ret" -ne 0 ]; then + bookworm-run aptss update + try_run_output=$(bookworm-run aptss install --dry-run "$DEBPATH") + try_run_ret="$?" + fi + if [ "$try_run_ret" -ne 0 ]; then + echo "OMG-IT-GOES-WRONG" + echo -e "${try_run_output}" + echo "----------------------------------------" + echo "Attention: USING ACE BOOKWORM TO INSTALL" + echo "----------------------------------------" + exit "$try_run_ret" + fi + bookworm-run dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yf + fi + + else + + echo "OMG-IT-GOES-WRONG" + echo -e "${try_run_output}" + exit "$try_run_ret" + fi + else -unlock_file "$DEBPATH" + dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yf + fi +### 退出阶段 if [ "$?" = "0" ] && [ "$2" = "--delete-after-install" ]; then if dpkg -s "$package_name" >/dev/null 2>&1; then -- Gitee From 832b53dfc9bb781b06023a137dc6b7a377117925 Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 13 Mar 2025 13:14:43 +0800 Subject: [PATCH 07/11] update: check is installed --- tool/store-helper/check-is-installed | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tool/store-helper/check-is-installed b/tool/store-helper/check-is-installed index febb4ce..ef4d447 100755 --- a/tool/store-helper/check-is-installed +++ b/tool/store-helper/check-is-installed @@ -1,2 +1,10 @@ #!/bin/bash dpkg -l | grep "^ii $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 +exit "$RET" -- Gitee From b114db583b0d770a358775f92a020b4ab614a373 Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 13 Mar 2025 13:27:41 +0800 Subject: [PATCH 08/11] unsintaller support --- src/pages/appintopage.cpp | 2 +- tool/store-helper/uninstaller | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100755 tool/store-helper/uninstaller diff --git a/src/pages/appintopage.cpp b/src/pages/appintopage.cpp index ebf2f19..6a63207 100644 --- a/src/pages/appintopage.cpp +++ b/src/pages/appintopage.cpp @@ -562,7 +562,7 @@ void AppIntoPage::on_pushButton_3_clicked() ui->pushButton_3->setEnabled(false); QProcess uninstall; - uninstall.start("pkexec", QStringList() << "apt" << "autopurge" << "-y" << info["Pkgname"].toString().toLower()); + uninstall.start("pkexec", QStringList() << "/opt/durapps/spark-store/bin/store-helper/uninstaller" << info["Pkgname"].toString().toLower()); uninstall.waitForFinished(-1); uninstall.close(); diff --git a/tool/store-helper/uninstaller b/tool/store-helper/uninstaller new file mode 100755 index 0000000..86cee57 --- /dev/null +++ b/tool/store-helper/uninstaller @@ -0,0 +1,14 @@ +#!/bin/bash +dpkg -l | grep "^ii $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 + +fi +fi +exit "$RET" -- Gitee From 264b0ba8da49213b2728febaa4af2e5ba037b39f Mon Sep 17 00:00:00 2001 From: shenmo Date: Thu, 13 Mar 2025 06:01:11 +0000 Subject: [PATCH 09/11] fix: QString List Signed-off-by: shenmo --- src/pages/appintopage.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/appintopage.cpp b/src/pages/appintopage.cpp index 6a63207..4e22bd8 100644 --- a/src/pages/appintopage.cpp +++ b/src/pages/appintopage.cpp @@ -596,5 +596,5 @@ void AppIntoPage::on_shareButton_clicked() void AppIntoPage::on_updateButton_clicked() { QString feedbackURL = "https://bbs.spark-app.store/"; - QProcess::startDetached("xdg-open", feedbackURL); -} + QProcess::startDetached("xdg-open", QStringList{feedbackURL}); +} \ No newline at end of file -- Gitee From 8218080f40146f2e6ee4e3e7c8842edb08014d16 Mon Sep 17 00:00:00 2001 From: shenmo Date: Fri, 14 Mar 2025 21:57:03 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E6=8F=90=E7=A4=BA=20=E5=AE=89=E8=A3=85?= =?UTF-8?q?=20ACE=20=E5=90=8E=E9=87=8D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/ssinstall | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tool/ssinstall b/tool/ssinstall index 3f82677..2efbc87 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -183,17 +183,18 @@ if [ ! -z "$IS_SHA512SUM_CHECKED" ]; then 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 update 刷新,随后尝试安装 +# 安装失败后进行 aptss update 刷新,随后尝试在主机安装 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 [ "$try_run_ret" -ne 0 ]; then ## 若安装检测仍然失败 if [[ "$IS_ACE_ENV" == "" ]];then ## 如果已经在ACE里面则不进入分支 - if command -v bookworm-run ;then + + if command -v bookworm-run ;then ## 如果 bookworm-run 可用则进行安装 echo "----------------------------------------" echo "Attention: USING ACE BOOKWORM TO INSTALL" echo "----------------------------------------" @@ -216,13 +217,14 @@ if [ ! -z "$IS_SHA512SUM_CHECKED" ]; then bookworm-run dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yf fi - else + else # 如果在主机安装失败且未安装ACE,报错退出并推荐安装 ACE echo "OMG-IT-GOES-WRONG" echo -e "${try_run_output}" + echo "您可在商店安装 ACE Bookworm 兼容环境后重试安装" exit "$try_run_ret" - fi - else + fi + else ## 如果主机安装检测成功了,进入主机安装分支 dpkg -i "$DEBPATH" || aptss install "$DEBPATH" -yf fi -- Gitee From 73f84a2861dc6d9ed413c5b186d71991843cc661 Mon Sep 17 00:00:00 2001 From: shenmo Date: Sat, 15 Mar 2025 04:35:19 +0000 Subject: [PATCH 11/11] update debian/changelog. Signed-off-by: shenmo --- debian/changelog | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 84350e0..d01ac56 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,10 @@ -spark-store (4.5.1) UNRELEASED; urgency=medium +spark-store (4.5.2) UNRELEASED; urgency=medium + + * 支持安装到 ACE Bookworm + + -- shenmo Tue, 24 Sep 2024 11:27:08 +0800 + + spark-store (4.5.1) UNRELEASED; urgency=medium * 修复 aptss 部分报错 * 重新设计了 Tag 区的展示方式 -- Gitee