Compare commits

...

1655 Commits

Author SHA1 Message Date
5a790abb27 fix: Use svg icon to fix https://gitee.com/spark-store-project/spark-store/issues/IDAWEQ 2025-12-05 15:44:22 +08:00
1f4803561c 修复:在存在空格时无法正确创建desktop
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-11-28 14:00:38 +00:00
4909ddf220 修复 发送过多的desktop文件
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-11-27 07:14:36 +00:00
4023822a61 4.8.3 release
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-11-21 00:39:23 +00:00
cf6fabbdf9 修改路径到 /etc/spark-store
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-11-20 05:53:07 +00:00
0fbe661048 chore: 修改已忽略的APP列表到 /etc/
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-11-20 05:50:04 +00:00
1fbda676b9 自动更新支持忽略应用 2025-11-19 16:34:00 +08:00
537e7da565 把shaxiang换成sandbox 2025-11-18 10:30:17 +08:00
f0bb57f1b3 support qt 5.11 2025-11-18 10:26:34 +08:00
4708086e36 sync with Thunder 2025-11-18 10:10:27 +08:00
deac84fe14 修复:适应新版 aptss list 地址
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-11-13 05:25:16 +00:00
d3b251e4be 确保正确上传版本号,避免升级改变UUID 2025-11-10 20:33:37 +08:00
54e219b37a 清除过度清理的内容
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-11-10 08:48:03 +00:00
472d22f5f6 删除旧的list,符合新的aptss需求 2025-11-10 08:08:13 +00:00
17b6ef7be3 尝试清理/tmp
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-11-10 04:26:26 +00:00
a1fc514919 4.8.3-1
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-10-22 10:53:14 +00:00
20cae0a807 aptss 支持reinstall 指令 2025-10-21 01:59:21 +00:00
1dc0f90d01 同步 aptss 4.8.3 2025-10-20 20:25:11 +08:00
3ec3d09781 !370 更新规范化 Transhell 文本
* update tool/update-upgrade/transhell/ss-do-upgrade.sh_en_US.transhell.
* update tool/update-upgrade/transhell/ss-do-upgrade.sh_zh_TW.transhell.
* update tool/update-upgrade/transhell/ss-do-upgrade.sh_zh_CN.transhell.
* update tool/update-upgrade/transhell/ss-update-controler.sh_en_US.transhell.
* update tool/update-upgrade/transhell/ss-update-controler.sh_zh_TW.transhell.
* update tool/update-upgrade/transhell/ss-update-controler.sh_zh_CN.transhell.
* update tool/update-upgrade/transhell/ss-update-notifier.sh_en_US.transhell.
* update tool/update-upgrade/transhell/ss-update-notifier.sh_zh_TW.transhell.
* update tool/update-upgrade/transhell/ss-update-notifier.sh_zh_CN.transhell.
* update pkg/usr/share/aptss/transhell/aptss_en_US.transhell.
* update pkg/usr/share/aptss/transhell/aptss_zh_CN.transhell.
* update pkg/usr/share/ssinstall-local/transhell/ssinstall-local_en_US.transhell.
* update pkg/usr/share/ssinstall/transhell/ssinstall_en_US.transhell.
* update pkg/usr/share/ssinstall-local/transhell/ssinstall-local_zh_CN.transhell.
* update pkg/usr/share/ssinstall/transhell/ssinstall_zh_CN.transhell.
2025-10-13 13:38:50 +00:00
9936b10d37 修改 pass-auth.sh ,可直接替换pkexec使用 2025-10-10 14:06:18 +08:00
831008dcbe 4.8.2
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-09-28 13:00:35 +00:00
301dfb9bf9 fix: Can't do app upgrade in mint
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-09-26 10:00:54 +00:00
632cb6249b !366 更新软件主图标
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store_64px.svg
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store_512px.svg
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store_32px.svg
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store_256px.svg
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store_16px.svg
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store_128px.svg
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store.svg
* 更新软件主图标
2025-09-24 13:04:21 +00:00
b67348ab04 !363 尝试修复图标边缘被裁切问题
* 尝试修复图标边缘被裁切问题
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store_64px.svg
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store_512px.svg
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store_32px.svg
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store_256px.svg
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store_16px.svg
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store_128px.svg
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store.svg
* 更新图标
* 删除文件 src/assets/icon/spark-store.svg
2025-09-23 12:31:49 +00:00
70ef6b8963 安装后删除软件包
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-09-20 03:57:23 +00:00
2926a82ee4 修复:部分情况下无法正确配置aptss的问题
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-09-17 14:49:29 +00:00
1e5321834d 修复:使用aptss后在/tmp下留下垃圾的问题
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-09-17 12:48:23 +00:00
1198e96128 !361 优化图标设计与尺寸
Merge pull request !361 from MeowVing/dev
2025-09-09 02:10:27 +00:00
6c40b26684 4.8.1-1
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-09-06 14:56:31 +00:00
31fbdc6574 修复在qt 5.11 的编译问题
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-09-05 13:55:10 +00:00
1b68ec3622 aptss支持在安装软件的同时使用download功能
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-09-05 13:48:52 +00:00
3dc2c3ab42 Release 4.8.1
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-09-05 13:26:30 +00:00
85564bf8ac !353 update:更新版本号为4.8.1~test2,修复更新器安装软件完成后仍然显示下载完成的问题
Merge pull request !353 from momen/dev
2025-08-28 13:32:11 +00:00
37ef14e975 修复每次都提示首次安装ACE的问题
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-08-27 11:20:58 +00:00
fb9385fccd 修复部分情况下无法正常安装ACE环境的情况
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-08-23 07:05:45 +00:00
b69dca63e3 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-07-25 05:32:02 +00:00
f5ef22b64d !351 update:替换为新更新器
Merge pull request !351 from momen/dev
2025-07-25 05:31:31 +00:00
b704ee0093 chore:更新readme关于更新器的部分 2025-07-17 21:29:52 +08:00
4c93f0e389 chore:更新版本号 2025-07-16 14:45:26 +08:00
30acad7516 chore:使用pkexec调用更新器 2025-07-15 00:45:42 +08:00
1f6e68ca3f chore:删除旧安装器policy 2025-07-14 23:52:34 +08:00
9bf8ff8c50 chore:添加更新器的policy 2025-07-14 23:39:23 +08:00
0c3151948c update:构建软链接,将更新器放入/usr/bin/目录 2025-07-13 16:27:02 +08:00
a20e96c63f chore:更新readme对deepin用户使用更新器的叙述 2025-07-12 12:17:11 +08:00
59588c90d5 chore:点击更新时,调用更新器 2025-07-11 00:31:18 +08:00
5a66c86b54 Merge branch 'dev' of https://gitee.com/momen_official/spark-store into dev 2025-07-11 00:25:42 +08:00
e603dc3fce chore:添加spark-update-tool代码进入pro文件 2025-07-10 00:00:52 +08:00
fec28e76e8 Add 'src/spark-update-tool/' from commit 'a54c8970ee51e2a5881a68703e92aa2ec6c1f477'
git-subtree-dir: src/spark-update-tool
git-subtree-mainline: 8e40670f55
git-subtree-split: a54c8970ee
2025-07-09 15:00:25 +08:00
momen
a54c8970ee Merge pull request #1 from vmomenv/qt5-dev
Qt5 dev
2025-07-08 12:58:55 +08:00
8e40670f55 修改上游链接
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-07-07 10:56:38 +00:00
b693c27adf fix:搜索框没有提示字的问题 2025-07-07 05:29:46 +08:00
1be6e62d55 update:完善搜索功能 2025-07-06 20:14:51 +08:00
7b6df76276 chore:更新搜索框的名称为searchPlainTextEdit 2025-07-05 20:26:05 +08:00
e69deb4b95 将更新器合入到星火商店中 2025-07-04 04:08:09 +08:00
286a8bc2cf Merge branch 'qt5-dev' of https://gitee.com/spark-store-project/Spark-Update-Tool into qt5-dev 2025-07-04 03:19:27 +08:00
934062aa3b chore:更新搜索框名称 2025-07-04 03:18:54 +08:00
ce9aa95eac add LICENSE.
Signed-off-by: momen <vmomenv@gmail.com>
2025-07-03 19:00:11 +00:00
8f708aa8b2 cdn-d.spark-app.store 2025-07-03 15:17:14 +08:00
ca71fe2787 update svg 2025-07-03 14:36:58 +08:00
f09abddda0 aptss support riscv 2025-07-03 14:35:34 +08:00
9bf218cfee chore:更新readme 2025-07-03 14:31:57 +08:00
2d53e655f7 update:更新为aptss ssupdate来更新源 2025-07-02 15:32:03 +08:00
2a88c99607 fix:deb包丢失图标问题 2025-07-02 11:48:35 +08:00
38a3b4ee4f fix:修复任务栏没有正确显示logo的问题 2025-07-02 11:20:12 +08:00
7cad4937c1 chore:加入128*128 logo 2025-07-02 11:14:42 +08:00
5a84a4d3de chore:更新readme 2025-06-30 10:33:02 +08:00
4acd2332bf chore:更新readme 2025-06-29 10:15:05 +08:00
6bb3e8dfbf chore:更新readme 2025-06-28 21:45:22 +08:00
63910b6491 update:设置应用图标 2025-06-27 21:01:36 +08:00
ea78b37d86 docs:更新文档 2025-06-25 22:06:05 +08:00
d5ad1d0204 fix:解决滚动条不生效 2025-06-24 11:23:47 +08:00
6f89f8b694 !348 更新软件图标;更新并优化中英文 README 与 FAQ 文档的语言表述
* 更新图标
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/open-me-in-terminal.png
* 更新图标
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store.svg
* 更新图标
* 删除文件 pkg/usr/share/icons/hicolor/scalable/apps/spark-store.svg
* update README.md.
* update README.zh.md.
* update FAQ.md.
* update FAQ.md.
* update FAQ.zh.md.
* update FAQ.zh.md.
* update FAQ.zh.md.
* update FAQ.zh.md.
* update FAQ.zh.md.
* update README.md.
* update README.md.
* update README.zh.md.
* update README.zh.md.
* update README.zh.md.
* update README.zh.md.
2025-06-23 15:34:37 +00:00
27e41f35f0 chore:设置应用图标 2025-06-23 21:56:59 +08:00
c36492cd0b update:更新control描述信息 2025-06-23 14:09:06 +08:00
cc087030fd chore:去除全选按钮 2025-06-23 14:09:06 +08:00
6d5e526834 !4 添加 LOGO 图标
Merge pull request !4 from MeowVing/qt5-dev
2025-06-23 06:08:37 +00:00
c1923ad6af 更新图标
Signed-off-by: MeowVing <meowving@foxmail.com>
2025-06-23 05:24:38 +00:00
f300dd1f4d chore:移动资源文件到根目录 2025-06-23 12:33:01 +08:00
35d1e8b198 update:更新debian信息文件 2025-06-23 12:21:58 +08:00
68d7f42751 fix:提权后30s错误显示提权失败 2025-06-23 10:43:30 +08:00
9fdf0051a1 chore:cmakelist.txt使用qt5,以此来支持旧版系统 2025-06-22 10:33:14 +08:00
875e8770a3 Merge branch 'dev' into qt5-dev 2025-06-22 09:39:49 +08:00
f37d73708b update:更新提权方法 2025-06-21 23:01:13 +08:00
1e8fcf9bb0 update:更新readme信息 2025-06-20 23:48:21 +08:00
b261d6433a docs:更新readme 2025-06-19 21:37:59 +08:00
196ae84eb5 chore:更新debian信息 2025-06-19 00:35:38 +08:00
b68029f5db chore:异步更新 2025-06-18 22:17:56 +08:00
b5e0b709cc fix:删除多余内容 2025-06-18 22:04:40 +08:00
8e617ceda4 chore:使用aptss update更新列表 2025-06-18 21:27:24 +08:00
0607df0967 fix:更正更新完成后再次点击按钮时重新下载的问题 2025-06-18 21:14:23 +08:00
f925ac7242 update:保存日志到/tmp 2025-06-18 20:47:48 +08:00
a9d9f035de chore:完成ssinstall更新 2025-06-17 22:21:53 +08:00
8177556e5d chore:完成“更新全部”下载按钮逻辑 2025-06-16 22:39:34 +08:00
03c53c3977 chore:提权运行 2025-06-16 21:16:13 +08:00
567a24a6ec chore:下载完成后改为“下载完成”样式 2025-06-16 20:39:33 +08:00
7fb697f56e !2 rename READE.md to README.md. update README.md.
Merge pull request !2 from MeowVing/N/A
2025-06-16 07:26:01 +00:00
5211bbb951 chore:更新进度条位置 2025-06-15 16:54:21 +08:00
525a90f441 chore:更新取消按钮样式 2025-06-15 16:47:23 +08:00
e539fb5912 chore:强制使用自定义按钮样式 2025-06-15 16:44:28 +08:00
703713a706 rename READE.md to README.md. update README.md.
Signed-off-by: MeowVing <meowving@foxmail.com>
2025-06-15 07:40:34 +00:00
b6de24e098 chore:更新‘‘更新’’按钮颜色 2025-06-14 22:34:23 +08:00
88a157dd45 修复弹不出来ace提示的问题 2025-06-14 16:41:26 +08:00
34b8670a40 Revert "修复无法弹出ACE提示的问题"
This reverts commit d5b2d4ddf4.
2025-06-14 08:36:58 +00:00
d5b2d4ddf4 修复无法弹出ACE提示的问题
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-06-14 08:20:10 +00:00
01bb90879b 修复ACE指定失败
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-06-14 07:58:01 +00:00
1c64278723 支持在 5.11 下编译
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-06-14 07:50:28 +00:00
17c90c5d07 4.8.0 2025-06-13 14:29:01 +08:00
539607553d 支持 amber-ce-sid amber-ce-deepin23 的tag 2025-06-13 12:56:13 +08:00
85daec6428 !337 添加 ACE 兼容环境 deepin 容器 Tags
Merge pull request !337 from MeowVing/dev
2025-06-13 04:39:24 +00:00
e38d23dba0 添加 ACE 兼容环境 deepin 容器 Tags
Signed-off-by: MeowVing <meowving@foxmail.com>
2025-06-13 01:18:00 +00:00
7da6689e6d chore:增加取消按钮样式 2025-06-13 09:07:25 +08:00
73a3733bc1 update:运行多文件同时下载 2025-06-13 09:04:25 +08:00
9593ebb813 chore: modify .gitignore
ignore obj-* for dpkg-buildpackage

Log: as title
2025-06-13 01:38:08 +08:00
fd1f13f59d 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
2025-06-13 01:34:24 +08:00
50c916a8cc update:显示进度条 2025-06-12 22:44:20 +08:00
f7baf015c0 chore:更新代码 2025-06-12 17:31:06 +08:00
90b21d40cf chore:更新下载进度条显示 2025-06-12 09:23:28 +08:00
c5b5b6d3ba 在ACE中安装会汇报主机的信息,在ACE中安装商店会忽略要求直接安装 2025-06-12 00:56:54 +08:00
ef4b21fb8c 480test1 2025-06-12 00:34:30 +08:00
72e3d54f8d 修复在ACE中的判定条件,支持判定小小电脑 2025-06-12 00:32:19 +08:00
50fd18fbe4 重新加回安装后创建快捷方式 2025-06-12 00:19:01 +08:00
e98def4839 修复 ss-launcher 无法启动应用的问题 2025-06-12 00:14:12 +08:00
da65d3b90e 修复部分环境下仍然会弹出tag的问题 2025-06-12 00:12:55 +08:00
e416ffdbff chore:显示下载百分比 2025-06-11 23:31:10 +08:00
33c892b39d 修改ssinstall 2025-06-11 23:14:44 +08:00
f071fcb00d chore:aria2下载包 2025-06-11 23:11:29 +08:00
a2aadf44e3 chore:下载metalink 2025-06-11 23:08:35 +08:00
c0e670f6c1 update:显示包大小时统一换算为MiB 2025-06-11 22:49:00 +08:00
59f506c8e6 update:使用apt download <packagename> --print-uris 获取包大小,下载链接、sha512等并返回json 2025-06-11 22:36:36 +08:00
ca6e47e9a3 4.8.0~test1 2025-06-11 22:20:28 +08:00
0ca73a2a28 完成V4.8.0支持 2025-06-11 22:14:51 +08:00
9493f0738a add assets 2025-06-11 21:41:49 +08:00
688ed679b5 !336 为软件安装平台的支持情况补充新的 Tags
Merge pull request !336 from MeowVing/dev
2025-06-11 13:38:07 +00:00
233b5e8c76 添加本机安装、ACE 兼容环境安装 Tags
Signed-off-by: MeowVing <meowving@foxmail.com>
2025-06-11 13:30:14 +00:00
4fc8ef3f48 初步给用户指引,指导用户使用ACE 2025-06-11 20:41:51 +08:00
cd4f104e1a 完成uninstaller的ACE支持 2025-06-11 15:44:48 +08:00
9b92894e4f 添加ssinstall tips,方便后续更新 2025-06-11 15:33:00 +08:00
05a5b89464 fix: 现在安装到ACE的软件包不会再报错了 2025-06-11 15:10:09 +08:00
d5af9c2cf1 chore:qdebug输出显示下载进度 2025-06-11 11:18:44 +08:00
fb6446292c add: Sparky 星小火 2025-06-10 14:51:00 +08:00
616453ed7d update:更新listview样式,美化滚动条 2025-06-10 14:26:41 +08:00
3ef8f4da7f chore:删除无关内容 2025-06-10 11:09:55 +08:00
a743002b12 chore:调整widget_4固定高度大小 2025-06-10 11:08:26 +08:00
7ab203c86a chore:取消appwidget固定大小 2025-06-10 11:03:31 +08:00
5bc65827b2 在执行安装前,自动配置ACE的依赖,以防止部分应用依赖写的不全 2025-06-09 23:25:33 +08:00
8b408d42d3 chore:增加下载超时报错 2025-06-09 21:40:59 +08:00
ef2a0027c1 fix:修正下载错误问题 2025-06-09 21:38:25 +08:00
9ae6e00d71 fix:修正使用软件名获取下载的问题 2025-06-09 21:10:37 +08:00
c0b2edf1b0 check_is_installed 列表同步ssinstall , ssinstall 拒绝在 ACE 内部安装到 ACE 2025-06-09 13:34:14 +08:00
2cb69c72f3 chore:更新下载骨架 2025-06-08 10:44:51 +08:00
705478fdf0 chore:取消更新信息的显示 2025-06-08 10:33:34 +08:00
75ac14a8b8 feat:显示包信息 2025-06-08 01:16:21 +08:00
a779a3532b chore:显示包大小数据 2025-06-08 00:57:43 +08:00
50adf55762 chore:将信息显示在主界面上 2025-06-07 23:34:38 +08:00
f08366a3d5 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
2025-06-07 13:43:34 +08:00
8cb92d9972 支持 ACE 相关参数Tag 2025-06-07 11:18:06 +08:00
9e15e701c2 update:更新运行逻辑 2025-06-06 14:34:24 +08:00
3ba3364fb9 chore:绘制包列表骨架 2025-06-06 13:29:35 +08:00
064b068135 feat:获取到包json信息 2025-06-06 11:05:31 +08:00
051b04bf0b chore:输出包信息 2025-06-06 09:03:15 +08:00
f72ab76e2c feat:拿到应用对应的图标 2025-06-06 08:35:26 +08:00
6640dc9bba 在主机或者 ACE 安装之前,使用 aptss install --dry-run 方式测试能否安装成功来替代直接尝试安装,如果测试失败了,则aptss update 后再次尝试,如果失败了就直接退出,不再尝试安装 2025-06-05 17:08:03 +08:00
4e1b04bf6e chore:添加无图标应用的默认应用图标 2025-06-05 15:19:37 +08:00
3c2a6ac635 支持多个ACE参数 2025-06-05 14:51:32 +08:00
0d12df77cc chore:增加获取包图标函数 2025-06-05 14:44:57 +08:00
86b57ecdc1 fix:getUpdateablePackages()被多次调用的问题 2025-06-05 14:36:32 +08:00
4a846b825c feat:获取包大小 2025-06-05 14:25:31 +08:00
ea6e7a19bd 4.7.1~test1 2025-06-05 14:21:14 +08:00
930111f2df 不再每次都 update 2025-06-05 14:20:11 +08:00
b708b63113 升级完毕ssinstall 2025-06-05 12:13:30 +08:00
42b25b33dc feat:应用版本号相同时则忽略更新 2025-06-05 10:41:04 +08:00
d454a58671 fix:修正了无软件名时,软件名内容为空的问题 2025-06-05 10:17:06 +08:00
34d2ef715e fix:一包多desktop只对应最后一个 2025-06-05 09:09:57 +08:00
8ff21d81c4 feat:新增读取软件名功能 2025-06-05 08:56:45 +08:00
0d1f23e017 update:更新markdown 2025-06-04 21:09:38 +08:00
89b366d35f update:将查询到待更新的内容放到/tmp下临时存储 2025-06-04 14:55:52 +08:00
74cc0fbce9 feat: 完全重构 ssinstall 2025-06-04 11:49:36 +08:00
93dfdbc57c update:使用商店源来显示更新,而非直接aptss 2025-06-04 09:59:47 +08:00
24f3be1373 update:更新软件标题栏显示 2025-06-04 08:58:43 +08:00
f7fcf5ef11 fix:删除CmakeLists.txt.user的同步 2025-06-04 08:51:36 +08:00
b35ac593cb fix:搜索框改为placeholdertext显示默认文本 2025-06-03 15:03:48 +08:00
a9c137110c update:更新背景颜色 2025-06-03 14:56:05 +08:00
48257722fb update:更新"更新全部"按钮样式 2025-06-03 14:50:47 +08:00
623db2ea76 update:更新下拉框样式 2025-06-03 14:20:29 +08:00
059ac5b270 update:添加下拉按钮svg文件 2025-06-03 14:17:22 +08:00
c54785224c update:更新gitignore 2025-06-03 14:13:58 +08:00
aa0bcff076 update:更改下拉框样式 2025-06-03 14:07:09 +08:00
e62451ff89 update:更新按钮类名 2025-06-03 13:58:17 +08:00
6d67571545 update:提升代码可读性 2025-06-03 13:56:42 +08:00
8e9528dfa8 update:更新字体样式 2025-06-03 13:54:52 +08:00
e331f8d580 update:更新输入框样式 2025-06-02 13:40:47 +08:00
3dde50ce27 update:创建初始化样式函数 2025-06-01 13:11:16 +08:00
7a1eeb8d4d update:更新readme 2025-05-31 13:01:56 +08:00
bbc4d27d7a 新增 ssinstall-local 以准备后续的ACE支持 2025-05-31 00:34:08 +08:00
fdd5fcaef1 docs:添加readme 2025-05-30 21:31:12 +08:00
782066cf57 fix:修复版本号显示错误问题 2025-05-29 20:29:12 +08:00
ddf1f7396b update:从desktop文件中提取应用名 2025-05-28 22:22:23 +08:00
17b5c9afce update:输出软件包大小 2025-05-28 21:05:04 +08:00
65172300be update:更新终端调用aptss命令展示可更新列表 2025-05-28 20:40:40 +08:00
b8846eb9b6 update:更新主界面显示 2025-05-28 20:18:01 +08:00
e602dd8823 update:更新主界面。 2025-05-28 20:12:55 +08:00
b0c688a6c8 update:初始化项目 2025-05-27 20:23:19 +08:00
dc28c2e9d1 gitcode star
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-05-25 03:14:39 +00:00
b4935edf0a 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
2025-04-28 14:11:35 +08:00
4f294cee8f 进一步适配ACE 2025-04-16 22:53:43 +08:00
45c52d7755 yfq
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-04-16 07:29:49 +00:00
90ad08a6f9 4.7.0 2025-04-13 19:55:27 +08:00
819e680222 aptss 4.7.0 2025-04-13 19:13:08 +08:00
6697bd04f1 unlock before rm
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-04-12 18:12:26 +00:00
2a6e9046e7 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-04-10 07:29:44 +00:00
460d965ac1 fix: Some apps can't launch
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-04-10 07:27:45 +00:00
2b929f8a06 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-03-28 17:32:41 +00:00
f2cafe0567 Sync:674f871cec
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-03-28 17:29:29 +00:00
564966daef update tool/apt-fast/ss-apt-fast.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-03-17 15:59:29 +00:00
668e5dc28d * Perf: merge patches from Rongronggg9
https://github.com/ilikenwf/apt-fast/pull/253

Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-03-17 14:17:14 +00:00
7ae592776d 给出教程
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-03-16 05:03:00 +00:00
6f3980e6cb update tool/ssaudit.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-03-15 15:40:33 +00:00
e2a0079c6e update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-03-15 15:38:20 +00:00
73f84a2861 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-03-15 04:35:19 +00:00
8218080f40 提示 安装 ACE 后重试 2025-03-14 21:57:03 +08:00
264b0ba8da fix: QString List
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-03-13 06:01:11 +00:00
b114db583b unsintaller support 2025-03-13 13:27:41 +08:00
832b53dfc9 update: check is installed 2025-03-13 13:14:43 +08:00
244f58ecce AUTO_USE_ACE 2025-03-13 12:59:26 +08:00
470666cf41 !329 应用反馈跳转至浏览器
Merge pull request !329 from C炳/dev
2025-03-08 11:58:12 +00:00
4abfc19399 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
2025-03-08 10:59:31 +08:00
e3e8684f18 !330 docs: 更新交流平台地址和过时组织名
Merge pull request !330 from C炳/docs
2025-03-07 11:35:31 +00:00
C炳
c60399df0b docs: 更新过时组织名 deepin-community-store 2025-03-07 16:07:41 +08:00
C炳
9036140ceb docs: 继续更新交流平台地址 2025-03-07 15:55:54 +08:00
C炳
da7e8ea9fc 应用反馈跳转至浏览器 2025-03-07 15:26:53 +08:00
a158966e2d docs:更新交流平台地址 2025-03-07 09:49:54 +08:00
105c7f3751 update debian/changelog. 2025-03-02 11:51:32 +00:00
MeowVing
aa3f2fbce4 !326 MeowVing 为星火应用商店制作全新 Tags 图标
* 删除文件 src/assets/tags/.keep
* 优化 Tags 图标显示
* 优化 Tags 图标显示
* 新建 tags
* 删除文件 src/assets/tags
* !1 update src/pages/appintopage.ui.
* update src/pages/appintopage.ui.
* 删除文件 src/assets/tags/.keep
* 修复 Tags 大小以解决缩放问题
* 新建 tags
* 删除文件 src/assets/tags
* 删除文件 src/assets/tags/.keep
* 为星火应用商店制作全新 Tags 图标
* 新建 tags
* 删除文件 src/assets/tags
2025-03-02 11:49:50 +00:00
1ab8da0e1a add: * no root
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-02-28 17:20:26 +00:00
072be29804 update tool/apt-fast/ss-apt-fast.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-02-25 16:46:31 +00:00
8e7aa445cf fix: fish completions failed to install 2025-02-25 17:24:35 +08:00
f5faebe91e update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-02-25 05:03:33 +00:00
5bcf2ce4f5 Remove Gitee
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-02-25 04:20:59 +00:00
992d1e7023 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-02-24 13:15:36 +00:00
86f8a3b501 translate 2025-02-24 21:12:54 +08:00
46a1daeafc 支持 Debian / GXDE 系统识别 2025-02-24 21:11:51 +08:00
0566d546df update: 新增更新进度条 2025-02-24 12:10:05 +00:00
b3eb13ada5 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-02-24 12:09:21 +00:00
19bfd4031c update: Translate 2025-02-24 19:51:48 +08:00
d2844b8b8a update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-02-24 11:48:50 +00:00
f02c279c8a Sync aptss 4.5.0
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-02-24 11:47:44 +00:00
zty199
6fa0e11927 fix: wrong app name displayed when checking app upgrade
grep Name[$locale] from .desktop directly might return
from other sections like [Desktop Action xxx] instead of
[Desktop entry] section only

Log: modify awk params in ss-do-upgrade.sh and format the script
2025-02-17 14:18:49 +08:00
f0830822c7 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-02-16 17:49:57 +00:00
7c9b503b0e !321 fix: ssinstall hash check failed in container
Merge pull request !321 from C炳/dev
2025-02-16 17:47:36 +00:00
C炳
5a248859ec fix: ssinstall hash check failed in container 2025-02-16 19:38:53 +08:00
f03e032a1b update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-02-13 07:20:36 +00:00
9657c13106 !320 添加了对于fish的支持喵
Merge pull request !320 from 新毛宝贝/dev
2025-02-13 07:16:54 +00:00
a3355516cf add: "autopurge"
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-02-09 13:35:32 +00:00
新毛宝贝
eb88fc85c5 update pkg/usr/share/fish/completions/aptss.fish.
添加了获取软件包信息(虽然卡卡的,问了shenmo也没有开销比较小的获取软件包简介的方式喵

Signed-off-by: 新毛宝贝 <530060699@qq.com>
2025-02-09 12:26:36 +00:00
新毛宝贝
5dc0d52530 添加了fish的补全脚本 2025-02-09 19:21:16 +08:00
c8cbaa9c8b Upload: Spark Store Logo XCF
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-02-08 14:47:30 +00:00
11d7073905 下载时不再指定版本以避免转义
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-02-07 13:32:47 +00:00
5e55607dbf update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-01-26 05:16:09 +00:00
汐光
761f67f02c !316 将重新安装改为启动软件
* 将可启动应用的重新安装改为启动应用
* 将重新安装改为启动软件
2025-01-26 04:49:16 +00:00
97755980bc fix: Can't launch some apps with space in Exec
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-01-26 04:48:51 +00:00
beaa19e9e5 fix: Can't recognize UOS spec debs
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-01-26 04:44:54 +00:00
8cfd219d67 !317 fix: Can not trigger aptss download when firstly installed
Merge pull request !317 from shenmo/N/A
2025-01-26 04:36:25 +00:00
b153edf8dc fix: Can not trigger aptss download when firstly installed
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-01-26 02:48:46 +00:00
90ed903197 修复: 无限等待
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-01-15 06:33:13 +00:00
4c59762086 update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-01-09 07:25:35 +00:00
a49c35dbcb update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2025-01-08 08:23:03 +00:00
b6f57c727b update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-12-16 15:45:41 +00:00
d0dec1b3b0 update debian/spark-store.prerm.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-12-11 04:52:01 +00:00
b125993336 update tool/update-upgrade/ss-update-notifier.sh.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-12-02 14:38:44 +00:00
5a37f24145 try fix always retry 2024-12-01 23:22:14 +08:00
a7b32db9b5 update tool/bashimport/log.amber.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-11-30 11:02:58 +00:00
b7d9ea9358 add: binary to git 2024-11-29 00:00:34 +08:00
e2118a471f feat: aptss logger
feat: Now we only popup window for once
2024-11-28 23:47:03 +08:00
8d06c37e96 feat: aptss log enhance && upgrade-experience-enhance 2024-11-28 21:43:29 +08:00
0d3431b616 chore: adjust user experience of upgrading 2024-11-28 20:55:42 +08:00
b2fc02d145 fix: crash when upgrade
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-11-28 10:32:01 +00:00
102c0831af update debian/control.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-11-19 13:43:31 +00:00
8dc1854f2e update tool/update-upgrade/ss-do-upgrade.sh.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-11-14 11:54:33 +00:00
b778e351b3 update tool/update-upgrade/ss-do-upgrade.sh.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-11-14 11:47:32 +00:00
85a7790932 !313 try fix: Can not show window on pkexec
Merge pull request !313 from shenmo/N/A
2024-11-14 10:04:54 +00:00
09bc7f2867 try fix: Can not show window on pkexec
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-11-14 10:02:45 +00:00
81aa00ff01 update dtk-build-release-tag-20220425.yml 2024-11-12 11:40:17 +00:00
4b72d091e5 update .workflow/dtk-build-release-tag-20220425.yml.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-11-12 11:33:36 +00:00
a159a11807 spark-store (4.3.3.1) UNRELEASED; urgency=medium
* 修复点击更新需要输入密码的问题
  * 修复安装速度下降的问题
  * 修复闪退问题
  * 修复错误地展示已安装

 -- shenmo <shenmo@spark-app.store>  Tue, 24 Sep 2024 11:27:08 +0800

Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-11-12 11:25:41 +00:00
d86efc642a update dtk-build-release-tag-20220425.yml 2024-11-12 10:38:54 +00:00
4c05c18198 update dtk-build-release-tag-20220425.yml 2024-11-12 10:32:37 +00:00
09c1d50bd2 update dtk-build-release-tag-20220425.yml 2024-11-12 10:25:47 +00:00
ef36a92c7c update dtk-build-release-tag-20220425.yml 2024-11-12 10:16:22 +00:00
8a93d4dd06 update dtk-build-release-tag-20220425.yml 2024-11-12 10:04:42 +00:00
zty199
29ddef300f fix: crash when installation complete if MainWindow is closed
Installation finished signal is triggered in child thread, which may cause crash when handling in AppInfoPage slot

Log: use Qt::ConnectionType::QueuedConnection when connecting with installation finished signal
2024-11-12 17:43:54 +08:00
5bd6ad9399 fix: 包名部分匹配仍然展示为已安装
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-11-10 03:43:10 +00:00
32c74bc5a0 fix: can not install depends 2024-11-05 18:26:21 +08:00
ce34fc763f fix: 安装速度降低 2024-11-05 15:24:53 +08:00
85823fdc23 update tool/apt-fast/ss-apt-fast.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-10-29 12:08:59 +00:00
5f12494b95 update debian/source/format.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-10-29 09:15:26 +00:00
8be23ff5f4 bumpversion 2024-10-29 17:10:04 +08:00
b060000028 fix: Update require password 2024-10-29 17:09:05 +08:00
ed3db29806 add: GXDE Builder 2024-10-28 22:04:40 +08:00
81ab122d6b fix: now we don't need root to policy/search 2024-10-28 21:59:25 +08:00
bab1b1cb0a fix: In ACE you can't use updater 2024-10-25 13:10:25 +08:00
15e826898b Merge branch 'Reason' of gitee.com:spark-store-project/spark-store into dev
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-10-22 11:46:44 +00:00
7c1e44010c export DEBIAN_FRONTEND=noninteractive
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-10-22 11:43:59 +00:00
4bb389e378 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-10-22 11:43:15 +00:00
22ea57c263 update tool/update-upgrade/ss-do-upgrade-worker.sh.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-10-22 09:58:18 +00:00
zty199
019f20dcba fix: wrong back button position
mistakenly use setSpacing in layout

Log: delete setSpacing operation; adjust layout margin
2024-10-21 22:35:33 +08:00
zty199
f4fa07d589 fix: incorrect download water drop animation start position
use rect().center() instead of event->rect().center() in WaterDrop::paintEvent;
all coordinate calculation should use float instead of int

Log: fix incorrect download water drop animation start position
2024-10-21 21:41:18 +08:00
44d04c5bcb !298 fix: abandon dpkg
Merge pull request !298 from shenmo/auto-4915358-Reason-22474d88-1
2024-10-20 18:45:27 +00:00
e7d15f903d fix: abandon dpkg 2024-10-21 02:45:13 +08:00
fb01686527 fix: Now only use apt but not dpkg
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-10-20 18:41:27 +00:00
7ad606bbd4 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-10-20 18:29:42 +00:00
723475ca9c !296 432
Merge pull request !296 from shenmo/dev
2024-10-20 18:29:38 +00:00
6fee032bd1 fix:quotes 2024-10-21 02:06:34 +08:00
f3a690d9ae try fix install won't fix dependencies 2024-10-21 01:57:34 +08:00
120793dbcc bump version to 4.3.2 2024-10-21 01:47:53 +08:00
39a2f74f2e update aptss 4.3.2 2024-10-21 01:47:00 +08:00
zty199
b49ea2c71f fix: compatible with deepin V23 compact mode
modify titlebar layout, widget size and animation;
modify whole window layout, allow titlebar to resize automatically

Log: compatible with deepin V23 compact mode
2024-10-21 00:12:10 +08:00
3647d80037 !294 431
Merge pull request !294 from shenmo/dev
2024-10-14 06:24:32 +00:00
b292c6cbf2 feat: 提升aptss稳定性 2024-10-13 22:37:52 +08:00
267eae076e Revert "Merge branch 'Thunder' of gitee.com:spark-store-project/spark-store into dev"
This reverts commit 5b018a4696.
2024-10-07 15:17:47 +00:00
adbb2f2b11 update tool/update-upgrade/ss-update-notifier.sh.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-09-25 07:31:07 +00:00
568bfe3417 add pkg/lib/systemd/system/spark-update-notifier.timer.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-09-25 07:01:55 +00:00
e67c4b435b fix: English notify
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-09-25 06:44:55 +00:00
5b018a4696 Merge branch 'Thunder' of gitee.com:spark-store-project/spark-store into dev
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-09-24 03:40:30 +00:00
8113eaf1e7 add-policy-file-install
忘了*
2024-09-24 11:35:39 +08:00
9e7e957f4f 修复自提权更新问题 2024-09-24 11:27:53 +08:00
94f555bfa6 !291 43f5
Merge pull request !291 from shenmo/dev
2024-09-23 05:04:29 +00:00
0380bc4a05 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-09-23 04:59:01 +00:00
0ac6c90629 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-09-23 04:58:48 +00:00
84d8ac7c9f update src/pages/appintopage.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-09-23 04:57:31 +00:00
7b228cf100 update src/pages/appintopage.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-09-23 04:56:39 +00:00
b8c1914406 update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-09-23 04:51:49 +00:00
abb8f4ee54 update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-09-23 04:51:31 +00:00
61455a67be update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-09-23 04:50:47 +00:00
5a8e57a56f 重命名 LICENSE-GPL3 为 LICENSE 2024-09-11 12:24:25 +00:00
da32087a72 重命名 LICENSE 为 EULA 2024-09-11 12:24:16 +00:00
1087ad6dd3 changelog 2024-09-08 11:31:13 +08:00
c2a9bb8207 fix:exit unlock not trapped 2024-09-08 11:30:35 +08:00
a3c4066d61 !289 新增GXDE支持
Merge pull request !289 from gfdgd xi/dev
2024-09-07 13:45:48 +00:00
87b206ffc0 新增GXDE支持 2024-09-07 21:43:53 +08:00
0b0bbefd88 update debian/control.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-09-02 13:00:59 +00:00
5e051794dd !288 fix: add qtwayland5 for wayland dependency
Merge pull request !288 from AAA Elysia 猫猫侠 ⁧~喵/N/A
2024-09-02 13:00:29 +00:00
AAA Elysia 猫猫侠 ⁧~喵
e2c55a0861 fix: add qtwayland5 for wayland dependency
Signed-off-by: AAA Elysia 猫猫侠 ⁧~喵 <c.elysia@foxmail.com>
2024-09-02 12:59:33 +00:00
63b39a9fe3 update tool/store-helper/ss-launcher.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-29 00:52:40 +00:00
798fd4ba27 update tool/store-helper/ss-launcher.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-29 00:52:23 +00:00
e01510e92c fix: On some system always pop info
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-28 08:37:06 +00:00
358df6d852 fix: On some system always pop info
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-28 08:36:51 +00:00
28f3931436 修改: tool/store-helper/ss-launcher 2024-08-26 01:57:44 +08:00
64cd2a074f update 2024-08-26 01:57:04 +08:00
76e969714d 修改: tool/open-in-terminal/open-in-terminal
修改:     tool/ssinstall
	新文件:   tool/store-helper/ss-launcher
2024-08-26 00:06:56 +08:00
58cd3d6b96 新文件: tool/store-helper/ss-launcher 2024-08-26 00:05:47 +08:00
031ef20d8c update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-24 17:08:58 +00:00
466ad7f782 update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-24 17:08:43 +00:00
75f69703ef update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-24 16:57:34 +00:00
4f8e91b971 update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-24 16:56:50 +00:00
d8e7883137 update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-24 16:54:41 +00:00
43528f4533 we strip again
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-23 18:24:53 +00:00
a6da148d3a fix: no args pass 2024-08-24 01:51:25 +08:00
f956aaaf2d fix: no args pass 2024-08-24 01:51:00 +08:00
1176978dbe remove-dh-strip 2024-08-24 01:28:45 +08:00
14e87c9141 remove trigger 2024-08-24 01:24:31 +08:00
768222f6b7 update 2024-08-24 01:23:48 +08:00
5f3ca00671 修改: debian/changelog
修改:     debian/spark-store.triggers
2024-08-24 01:23:15 +08:00
d0f32387b5 修改: tool/apt-fast/ss-apt-fast 2024-08-24 00:56:45 +08:00
dee1850337 修改: tool/apt-fast/ss-apt-fast 2024-08-24 00:56:21 +08:00
5d63f7a3b7 feat: rewrite feedback, add encrypt and uuid auth 2024-08-23 00:17:40 +08:00
65f9c8be9b adjust:rewrite feedback, add encrypt and uuid auth 2024-08-23 00:16:35 +08:00
3843d6c5b6 aptss 支持dist-upgrade
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-21 08:04:01 +00:00
1238d0d5b7 aptss 支持dist-upgrade
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-21 08:03:48 +00:00
8bc93fda5d 修改: debian/changelog 2024-08-20 08:57:47 +08:00
33d0d71feb Merge remote-tracking branch 'refs/remotes/origin/Thunder' into Thunder 2024-08-20 08:56:22 +08:00
962d20e7bf adjust: change upstream url 2024-08-20 08:55:34 +08:00
f6885e9792 update 2024-08-20 08:54:19 +08:00
c8759e8284 !285 430
Merge pull request !285 from shenmo/dev
2024-08-19 08:33:42 +00:00
85ce641fef !284 全平台软件渲染Webkit
Merge pull request !284 from Pluto/qt6
2024-08-19 08:30:19 +00:00
d56300fc51 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-19 08:29:59 +00:00
d85f93b923 !283 全平台软件渲染Webkit
Merge pull request !283 from Pluto/dev
2024-08-19 08:29:16 +00:00
863bb61c6f update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-19 06:18:41 +00:00
Zhiyuan Li
2688b8b418 FIX: 渲染不上屏 2024-08-19 14:12:34 +10:00
Zhiyuan Li
b2883e4fec FIX: 渲染不上屏 2024-08-19 14:10:43 +10:00
8f3fb38485 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-17 14:56:50 +00:00
07fa8d3a83 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-17 14:33:21 +00:00
28bd302506 remove aptss cmake config
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-17 07:20:35 +00:00
8aa1a40b41 !282 回退 'Pull Request !278 : enhance: Internal requests follow 301 redirects'
Merge pull request !282 from shenmo/revert-merge-278-Thunder
2024-08-17 07:03:45 +00:00
6f4fe1a823 回退 'Pull Request !278 : enhance: Internal requests follow 301 redirects' 2024-08-17 07:03:21 +00:00
506ead11f9 !280 4.3
Merge pull request !280 from shenmo/dev
2024-08-17 06:16:49 +00:00
21a5636a07 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-17 06:14:48 +00:00
4fd1458471 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-08-17 06:14:20 +00:00
5592f90cf8 !278 enhance: Internal requests follow 301 redirects
Merge pull request !278 from Pluto/qt6
2024-08-17 04:39:40 +00:00
92c351494c !277 enhance: Internal requests follow 301 redirects
Merge pull request !277 from Pluto/dev
2024-08-17 04:38:44 +00:00
Zhiyuan Li
8125cc627e enhance: Internal requests follow 301 redirects 2024-08-17 14:21:53 +10:00
Zhiyuan Li
a26d1d8ffd enhance: Internal requests follow 301 redirects 2024-08-17 14:20:58 +10:00
zty199
5c11af9ce6 Merge branch 'dev' into Thunder 2024-08-15 21:37:29 +08:00
zty199
b7bc8008f3 fix: #IAEC2O developmode status judgment error in part of UOS 1060 iso
after entering developmode, /var/lib/deepin/developer-mode/enabled is not created or its content is not '1'

Log: remove developmode judgment temporarily
2024-08-15 21:32:28 +08:00
zty199
874ffd5822 feat: #IAJDMD restore window size when last closed on startup
record window size in ~MainWindow() to config.ini; in MainWindow::initUI restore window size

Log: restore window size when last closed on startup
2024-08-15 21:32:16 +08:00
AAA Elysia 猫猫侠 ⁧~喵
8d8783502c !276 修复:Debian 13上的依赖问题
Merge pull request !276 from AAA Elysia 猫猫侠 ⁧~喵/dev
2024-08-15 21:31:23 +08:00
zty199
bc410f33d7 fix: #IAEC2O developmode status judgment error in part of UOS 1060 iso
after entering developmode, /var/lib/deepin/developer-mode/enabled is not created or its content is not '1'

Log: remove developmode judgment temporarily
2024-08-13 23:39:05 +08:00
zty199
92fa8e552d feat: #IAJDMD restore window size when last closed on startup
record window size in ~MainWindow() to config.ini; in MainWindow::initUI restore window size

Log: restore window size when last closed on startup
2024-08-13 15:33:58 +08:00
zty199
fa488c0a9d chore: delete unused dependencies in debian/control
delete unused dependencies in debian/control

Log: delete unused dependencies in debian/control
2024-08-13 14:16:37 +08:00
AAA Elysia 猫猫侠 ⁧~喵
d03b047492 !276 修复:Debian 13上的依赖问题
Merge pull request !276 from AAA Elysia 猫猫侠 ⁧~喵/dev
2024-07-16 09:36:15 +00:00
c5e2ea040d Adjust: Lock the deb file before the install begin to secure
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-07-16 06:34:20 +00:00
38d592d7e3 Adjust: Lock the deb file before the install begin to secure 2024-07-16 14:32:46 +08:00
a92c22f205 fix: broken link fix
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-07-05 11:10:26 +00:00
249b0c7a02 adjust:remove link 2024-06-26 15:28:39 +08:00
2ffd360df7 adjust:remove link 2024-06-26 15:27:58 +08:00
883476827b adjust:v23 does not this patch anymore
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-06-25 07:43:14 +00:00
ddcac0cf18 adjust:v23 does not this patch anymore
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-06-25 07:42:52 +00:00
1fe6980a80 删除文件 pkg/etc/aptss/sources.list.d/sparkstore.list 2024-06-24 09:51:23 +00:00
8777d9d3c4 删除文件 pkg/etc/apt/sources.list.d/sparkstore.list 2024-06-24 09:51:15 +00:00
0387b6f20f update-ssinstall 2024-06-24 12:23:22 +08:00
e701f5e18c adjust: Now we do not want weak source to enforce service. 2024-06-21 12:58:14 +08:00
5d29af4dc8 adjust: Now we do not want to enforce weak source to serve. 2024-06-21 12:57:24 +08:00
1d8cca19c0 !273 loong qt6
Merge pull request !273 from shenmo/develop/qt6
2024-06-21 02:45:22 +00:00
zty199
bf8eaf5680 fix: 修复安装失败判断条件错误问题
原始判断条件将 QString 和 bool 类型函数返回值进行比较,可能存在问题
Qt5 中比较结果始终为 false,不会认为安装失败

Log: 判断输出包含 "OMG-IT-GOES-WRONG" 关键词则认为安装失败
2024-06-21 09:07:16 +08:00
zty199
2d1ca2463e feat: adapt to Qt6
adapt to Qt6; fix a few bugs

Log: adapt to Qt6; bump version to 4.2.14
2024-06-21 01:55:09 +08:00
d6bc2a96a7 update readme
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-06-20 04:05:50 +00:00
ff0e893726 !271 loong
Merge pull request !271 from shenmo/dev
2024-06-20 04:04:13 +00:00
facbaa0f40 update changelog
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-06-20 04:02:48 +00:00
30cd9c0181 update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-06-20 03:59:51 +00:00
b4386d35bd update-readme
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-06-20 03:58:05 +00:00
94c0ca9f6d adjust: increase timeout limit to adjust worse network environment
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-06-13 04:18:00 +00:00
fcba7d93c9 update bbs link
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-06-12 15:20:11 +00:00
486d9912b8 fix: Can not activate update when interrupted 2024-06-02 12:41:02 +08:00
ecc6da2533 update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-06-01 04:54:03 +00:00
e04f770aa6 update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-05-31 15:53:10 +00:00
1b97df0071 add depends dpkg-dev
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-05-20 08:35:17 +00:00
91977c8892 * 修改:文案修改--不兼容提示 2024-05-16 22:19:31 +08:00
c160dc6300 borderless svg
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-05-06 04:02:03 +00:00
a62f180da6 !267 loongpush
Merge pull request !267 from shenmo/dev
2024-04-29 09:34:57 +00:00
a05c01b382 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-29 09:34:07 +00:00
d103225d92 adjust: loong64 auto no sandbox 2024-04-29 17:27:21 +08:00
35b4cdabd0 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-28 15:25:18 +00:00
b38c040029 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-28 15:24:57 +00:00
dceb796ce9 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-28 15:24:27 +00:00
07cdeb1e40 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-28 15:24:03 +00:00
96f22384e2 update LICENSE.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-28 15:09:01 +00:00
1447e9eb16 update LICENSE.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-28 15:06:06 +00:00
1c6302d01c update src/application.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-28 14:29:44 +00:00
91d64dc9ed !264 adjust: remove easter egg
Merge pull request !264 from shenmo/N/A
2024-04-28 03:41:57 +00:00
bc11d6a514 adjust: remove easter egg 2024-04-28 03:40:55 +00:00
zty199
463b8a7c0d fix: missing semicolon after setting --max-tries
add missing semicolon after setting --max-tries in downloadworker.cpp

Log: add missing semicolon after setting --max-tries in downloadworker.cpp
2024-04-28 10:42:26 +08:00
61b56346b8 update src/backend/downloadworker.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-27 16:19:21 +00:00
a20454b92c !262 4212
Merge pull request !262 from shenmo/dev
2024-04-27 11:12:55 +00:00
6426a3c12a update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-27 10:37:11 +00:00
42fa1b5340 !258 修复 aria2c 下载永不超时
Merge pull request !258 from 麻本法/fix-aria2c-download-never-timeout
2024-04-27 10:34:59 +00:00
10320e99eb !2 update src/backend/downloadworker.cpp.
Merge pull request !2 from shenmo/N/A

"--connect-timeout=5" 实际应该是 25s 切线
2024-04-27 10:34:22 +00:00
b2120411e5 update src/backend/downloadworker.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-27 10:30:57 +00:00
9c219e5e89 !259 fix: hide error
Merge pull request !259 from shenmo/N/A
2024-04-27 05:57:08 +00:00
021283e240 fix: hide error
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-27 05:56:57 +00:00
74513723e9 aria2c: Fixed aria2c download never timed out 2024-04-26 13:53:59 +08:00
3664a80c55 De-Magic Operation: Delete arm64 magic
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-25 17:45:57 +00:00
0bd8bab7eb sync: retryfix: Phytium can not use gles makes white screen
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-25 17:35:03 +00:00
4c565cda6c update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-25 17:26:28 +00:00
7484ee8438 sync: fix: Phytium can not use gles makes white screen
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-25 17:23:22 +00:00
c22f13a271 update debian/spark-store.postinst.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-18 07:29:40 +00:00
e0a62a88d9 adjust: modify dstore patch 2024-04-17 16:47:30 +08:00
804db2e623 fix: icon break on v23 2024-04-17 16:36:48 +08:00
zty199
89f7696704 build: 获取编译打包实际时间
https://www.debian.org/doc/manuals/debmake-doc/ch05.en.html#reproducible
修改 debian/rules,覆盖环境变量 SOURCE_DATE_EPOCH 为 $(date +%s),使关于窗口中版本号显示编译时间为实际编译时间,而不是 changelog 最新时间(将导致相同版本代码每次编译结果不同,不推荐)

Log: 修改 debian/rules:覆盖环境变量 SOURCE_DATE_EPOCH 为 $(date +%s);修改 qmake 参数为 CONFIG+=force_debug_info 以生成 dbgsym 包;编译生成临时文件夹名称添加架构后缀
2024-04-10 23:31:43 +08:00
zty199
18e13e4525 fix: 修复应用信息页面安装再卸载应用后,重新进入页面,应用仍然为已安装状态问题
下载管理中存在已卸载应用的下载记录,判断应用状态时认为应用安装完成

Log: 根据下载记录判断应用状态时,若下载管理显示安装完成,额外判断应用是否已安装
2024-04-10 21:58:48 +08:00
230b208fcb update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-10 08:22:49 +00:00
c9354e6d27 update tool/aptss.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-10 03:33:39 +00:00
bad522e40a 哦我的上帝啊这东西是什么时候加的我都不记得了这个坑啊
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-10 03:01:40 +00:00
ffac75eab7 update src/mainwindow-dtk.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-09 15:03:27 +00:00
e2497116bf update tool/aptss.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-09 04:14:38 +00:00
99fae1bb3f update tool/aptss.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-09 04:09:53 +00:00
59e4da7b40 update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-09 04:04:11 +00:00
609a301ecc update 2024-04-09 11:39:22 +08:00
f0a8b141b4 fix: no usr bin 2024-04-09 11:33:27 +08:00
4d35438bf0 update debian/spark-store.postinst.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-04-07 11:57:34 +00:00
4863850195 !255 更新readme文件。
Merge pull request !255 from 花雨落逝/dev
2024-04-01 10:35:24 +00:00
花雨落逝
d379f2ad63 update README.zh.md.
Signed-off-by: 花雨落逝 <12135927+hylshi@user.noreply.gitee.com>
2024-03-31 07:14:01 +00:00
0ac0f97688 修改: debian/changelog 2024-03-29 23:07:01 +08:00
zty199
6c606806a1 fix: 修复软件包安装状态判断异常问题
check-is-installed 脚本判断软件包是否安装,仅根据执行结果返回;原始逻辑根据返回错误输出进行判断,错误输出为空会造成误判

Log: 修改 QProcess 执行结果判断逻辑,根据 QProcess::exitCode 和 QProcess::exitStatus 判断
2024-03-29 22:13:35 +08:00
363c38cb8f update tool/aptss.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-26 09:16:02 +00:00
c039fd52a7 fix:卸载后仍显示可重新安装 2024-03-25 11:29:13 +08:00
83540e1c55 update src/pages/appintopage.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-25 03:27:13 +00:00
b54c797ce5 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-24 05:30:25 +00:00
f60d125920 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-24 05:29:25 +00:00
fa00f9aaf7 update tool/aptss.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-22 03:55:22 +00:00
76808cc2f5 update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-22 03:53:24 +00:00
eaa335cc04 修改: src/pages/applistpage.cpp
修改:     tool/ss-feedback/sender-d
2024-03-22 02:11:32 +08:00
6768058358 fix: loongarch bad applist 2024-03-22 00:34:42 +08:00
09c2d41118 Merge remote-tracking branch 'refs/remotes/origin/dev' into dev 2024-03-21 17:34:33 +08:00
c9e7ef20ec 修改: src/backend/sparkapi.cpp 2024-03-21 17:34:22 +08:00
6e55244776 update tool/aptss.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-03-21 08:40:09 +00:00
b7e2571789 准备修改aptss以支持loongarch 2024-03-21 15:56:55 +08:00
zty199
e9a52da098 fix: 修改 treeland 环境判断条件
修改读取的环境变量名称为 DDE_CURRENT_COMPOSITOR,避免后续修改造成的不兼容问题

Log: 修改 treeland 环境判断条件;去除 dwayland 平台插件调用
2024-02-03 20:25:51 +08:00
37057306bb !254 cmake-patch: 更新补丁用于处理 v4.2.10 时期的变动构建与全量更新
Merge pull request !254 from 麻本法/auto-2067698-dev-59460c87
2024-02-03 01:51:54 +00:00
fe3a2b2e3b * 修复:ACE下无法安装,支持ACE下软件更新 2024-01-11 23:28:55 +08:00
zty199
0c4f5dacca fix: 修复退出时崩溃问题
AppIntoPage 析构函数中使用 free 释放 rawHeaders 指针存在问题

Log: 使用 QByteArray 全局变量存储 User-Agent 字符串,无需使用指针,避免析构问题
2023-12-30 00:41:06 +08:00
zty199
62e23facfb fix: 修复使用 TreeLand 混合器时启动崩溃问题
适配麒麟 CPU Wayland 环境时,强制设置环境变量 QT_WAYLAND_SHELL_INTEGRATION 为 kwayland-shell,在 TreeLand 混合器下崩溃

Log: 添加环境变量判断,DDE_CURRENT_COMPOSITER=TreeLand 或 DESKTOP_SESSION=treeland 时不执行上述设置环境变量操作
2023-12-30 00:17:01 +08:00
a9264b8cb9 d. 允许
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-12-12 11:20:44 +00:00
78f81e0498 若安装失败,尝试一次aptss update 2023-12-12 12:21:20 +08:00
c055e9bbb4 update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-12-11 15:28:02 +00:00
080cd44229 update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-12-11 15:15:23 +00:00
52f42447b4 update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-12-11 14:32:04 +00:00
5947d7124e provides 2023-12-11 17:07:57 +08:00
f8d4f2f51a update debian/control.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-12-11 08:41:10 +00:00
3c923f33b3 changelog 2023-12-11 16:35:57 +08:00
6b27c5d7b1 Fix: Unable to install when installed in ACE 2023-12-11 16:34:28 +08:00
78810b1a22 fix: New issue link
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-12-11 08:28:58 +00:00
0bc0d13036 !251 修复ARM64的渲染问题
* fixup! update debian/changelog.
* fix: ARM64设备渲染
2023-12-09 14:22:11 +00:00
406e4d5400 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-12-06 14:57:30 +00:00
60daeae2f5 update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-12-06 14:56:35 +00:00
08d9c12793 now chmod +x
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-12-06 14:55:47 +00:00
7d81ba5be7 now chmod +x
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-12-06 14:55:27 +00:00
6df9804f02 fixup! enhance: 微小的改进 2023-12-03 11:10:16 +08:00
a93dd6ec6f enhance: 更改介绍条款 2023-11-29 16:51:24 +08:00
6b83cc48a9 enhance: 微小的改进 2023-11-29 16:16:23 +08:00
9ebc6eb3d3 fix: bad link CN
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-11-28 09:44:51 +00:00
d47fdea23f fix: bad link
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-11-28 09:44:25 +00:00
8b4ae51459 enhance: 更新文档 2023-11-28 12:18:10 +08:00
6563221947 enahnce: 更新 LICENSE 2023-11-28 12:10:18 +08:00
7ac6cb4072 fix: 修复数据回传接口 2023-11-26 12:55:55 +08:00
6b154c3aad update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-11-25 03:10:00 +00:00
fa3270e401 修复:无法正确获取更新名 2023-11-15 21:25:07 +08:00
63e6b0e6f6 更新过程中提示更改 2023-11-15 17:53:55 +08:00
c2daaad86c 新增:更新界面支持显示软件名称 2023-11-15 17:47:26 +08:00
c5d3dadbbb !248 对应用信息下的截图预览优化 - 高分屏版
* feat: 应用信息截图预览优化高分屏显示(#I8FLJ1)
2023-11-13 13:16:48 +00:00
397d941f2f Feat: support ACE 2023-11-12 22:12:35 +08:00
0f7b79f49e update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-11-09 10:07:44 +00:00
1d7fb7b0d0 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-11-09 10:07:23 +00:00
73e4bb1685 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-11-07 08:54:54 +00:00
7f23300b9e !247 fix: 软件详情图片排序调整为服务器排序,而不是按加载顺序排序
Merge pull request !247 from Cloud/fix/image-order
2023-11-07 08:54:04 +00:00
Cloud
99bdb1f958 fix: 软件详情图片排序调整为服务器排序,而不是按加载顺序排序 2023-11-07 16:01:48 +08:00
3ffaaee174 !246 fix: build error on Deepin V23
Merge pull request !246 from Cloud/fix/v23-build
2023-11-07 06:14:03 +00:00
Cloud
9c977dfc5d fix: build error on Deepin V23
fix build error on Deepin V23
check search edit width
2023-11-06 14:52:45 +08:00
2efd9dc170 修复:A2D应用释放无效的Desktop到桌面上 2023-11-02 22:39:45 +08:00
321e6b3dfe update tool/ssaudit.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-10-31 15:08:58 +00:00
9f1f21c2b6 update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-10-31 15:08:36 +00:00
5136984343 我真蠢,真的 2023-10-31 22:31:30 +08:00
a8d82480e7 我真蠢 2023-10-31 22:30:40 +08:00
efac507fed 修复校验失败 2023-10-31 22:29:10 +08:00
22532e0436 修复安装失效 2023-10-31 22:25:46 +08:00
4de6b167da feat: ssaudit功能同步
feat: 修复翻译问题和缺fi
2023-10-31 22:17:52 +08:00
7bde95a65c feat: aptss支持等待解锁而不是直接退出
feat: 支持自动创建desktop文件
2023-10-31 22:07:21 +08:00
9a47b5515c update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-10-29 08:00:19 +00:00
0db7fad640 !241 chore: 优化 KDE 深色模式支持实现方式
* chore: 优化 KDE 深色模式支持实现方式
2023-10-28 12:15:45 +00:00
1a98dae4f8 Merge branch 'darkmodeenhanced' into dev 2023-10-26 12:21:22 +08:00
5cb1cff0ca feat: 使用dbus支持kde的暗色模式 2023-10-26 12:15:51 +08:00
8d4874d553 feat: 使用dbus支持kde的暗色模式 2023-10-24 23:40:09 +08:00
c00d62c010 feat: 匿名数据搜集 2023-10-24 15:36:26 +08:00
831bef8233 enhance: 同步文档更改到英文 2023-10-22 17:19:35 +08:00
20e1763929 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-10-22 07:11:52 +00:00
35218a917b update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-10-22 07:11:23 +00:00
e5a2fd2d94 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-10-22 07:10:54 +00:00
6946f20d64 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-10-22 07:09:59 +00:00
3f9200bf01 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-10-22 07:03:39 +00:00
b2fc80215d enhance: 文档改进 2023-10-22 10:56:33 +08:00
74d4cc05d9 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-10-10 08:40:55 +00:00
zty199
a7d86d9120 i18n: 更新部分文案及翻译文件
修改详情页“下载”按钮为“下载并安装”;修正部分文案中错误使用全角标点符号导致翻译文件中无法正常显示;修正部分文案翻译错误;尝试补充 QWebEngineView 右键菜单项翻译

Log: 修改详情页“下载”按钮为“下载并安装”;修正部分文案及翻译;补充 QWebEngineView 部分右键菜单项翻译
2023-10-10 16:30:00 +08:00
fb21620880 !240 enhace: 加强崩溃日志信息
Merge pull request !240 from Pluto/dev
2023-09-22 10:09:51 +00:00
985e7d829e enhance: 更新文档 2023-09-21 20:14:16 +08:00
5ceb8d78cb fixup! enhance: 更详细的日志 2023-09-21 19:59:47 +08:00
dfce427891 enhance: 更详细的日志 2023-09-21 19:55:28 +08:00
c72885ff55 update dtk-build-release-tag-20220425.yml 2023-09-17 00:47:45 +00:00
beba54925c update pipeline-dtk-build-aarch64.yml 2023-09-17 00:43:22 +00:00
aba67f19b4 update pipeline-dtk-build-aarch64.yml 2023-09-17 00:41:12 +00:00
9708db56d6 fix ci
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-17 00:37:26 +00:00
1ee5b412b8 try fix ci
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-17 00:36:54 +00:00
a14613018b update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-17 00:33:27 +00:00
086c490bb7 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-17 00:32:44 +00:00
3db4cd8a62 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-17 00:29:11 +00:00
104f8b798f !237 优化下载错误和规范程序代码
Merge pull request !237 from Pluto/dev
2023-09-17 00:25:47 +00:00
5ede18a8d3 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-17 00:24:53 +00:00
375a520a14 enhance: 完善日志内容 2023-09-16 21:11:53 +08:00
d41364c063 Merge branch 'dev' of gitee.com:uniartisan2018/spark-store into dev 2023-09-16 20:27:58 +08:00
a6cd981a51 enhance: 打印崩溃堆栈 2023-09-16 20:26:58 +08:00
9660eaafd3 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-16 12:17:05 +00:00
1cc9d3bdd6 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-16 12:16:08 +00:00
6790283ace changelog fix v23 2023-09-16 19:55:20 +08:00
735e99d891 Merge branch 'dev' of gitee.com:uniartisan2018/spark-store into dev 2023-09-16 19:49:19 +08:00
9b4dae382d fixup: 修复编译错误 2023-09-16 19:49:07 +08:00
c1ccf51258 fixup! Enhance: 规范性提升 2023-09-16 19:47:54 +08:00
61a28b1d73 changelog 2023-09-16 19:13:43 +08:00
2a5e1280f9 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-16 10:39:59 +00:00
72d1374503 Merge branch 'dev' of gitee.com:uniartisan2018/spark-store into dev 2023-09-16 18:33:36 +08:00
c791ad4afb fixup! bugfix: 修复CPU占用高、修复下载失败等问题 2023-09-16 18:33:19 +08:00
1037330324 update src/backend/downloadworker.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-16 10:31:25 +00:00
7acd2edbcc fix: 修正错误消息 2023-09-16 18:28:30 +08:00
8392fbb64e bugfix: 修复CPU占用高、修复下载失败等问题 2023-09-16 18:22:15 +08:00
24dbed8864 Enhance: 规范性提升 2023-09-16 18:21:45 +08:00
4330abdf0b update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-14 06:22:25 +00:00
72d8bf883b update tool/aptss.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-14 06:21:20 +00:00
d33c85b5e6 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-13 10:23:10 +00:00
f557a0d341 * 新增:内置在终端打开功能
* 调整:散列验证更改为使用sha256
2023-09-11 09:08:21 +08:00
56692bbdc3 add DOCS/json-api-doc.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-09 05:56:59 +00:00
def03de995 update DOCS/spk-doc.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-09-09 05:52:02 +00:00
ebef968a65 !234 合并翻译
Merge pull request !234 from depend/dev
2023-09-08 14:08:39 +00:00
d832df6efd update 西班牙语翻译 2023-09-04 11:32:59 +08:00
cc3561777e update 法语翻译 2023-09-04 11:26:07 +08:00
d085f3de73 fix: now wont inform aptss everytime 2023-09-01 22:56:44 +08:00
407ec6b573 update debian/spark-store.postinst.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-08-31 11:30:17 +00:00
2803d4b8da update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-08-31 09:26:59 +00:00
48028076a8 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-08-31 09:14:16 +00:00
e435cf66dc 降低提示等级为 信息 2023-08-28 23:48:58 +08:00
766b7cd178 调整:因为apt-fast返回值都是1,只好暂时全部提示 2023-08-28 23:45:23 +08:00
5d4ac6f523 * 修复:aptss加锁失败现在会正常报错
* 新增:在aptss的特定操作时添加了提示

  * 新增:在aptss提示加粗
2023-08-28 23:42:25 +08:00
29869dbb9d fix: Do not report error when aptss stuck
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-08-27 01:48:13 +00:00
d07f2a5fa4 fix-变量 2023-08-14 12:11:06 +08:00
708d8866ac feat:new-download-backend 2023-08-14 11:52:33 +08:00
2115b1fb11 fix-path-error 2023-08-13 21:55:24 +08:00
0e810cea87 modify: 加入了配置系统,不再用瞳孔地震的方式处理升级 2023-08-13 21:44:53 +08:00
zty199
9f32a02f35 feat: #I6OTLZ 设置中可开关平台不兼容提示
设置界面增加选项,控制进入详情页时是否发送“应用不兼容系统”通知

Log: 设置界面添加“其他设置”部分,新增单选框控制是否开启应用不兼容系统提示;SettingsPage 添加静态属性 needUncompatibleNotification,启动时从配置文件中同步开关状态,单选框点击修改时写入配置文件;详情页加载标签时,判断 needUncompatibleNotification 为 false 则不发送通知;更新翻译文件
2023-08-12 01:35:37 +08:00
zty199
9f23c2b381 feat: #I7R2L5 更新星火商店时不再自动打开更新提示服务
prerm 脚本中添加判断,upgrade 时将更新提示 service 文件改名添加 bak,以此作为升级判断依据;postinst 脚本中判断 bak 文件存在时,优先判断更新提示服务是否为 enable 状态,若被 disable 则不再自启(若为 inactive 状态则同理不再重启服务)

Log: 修改 prerm 和 postinst 实现更新时判断更新提示服务是否需要重新设置自启;修改 debian/changelog,消除编译打包警告
2023-08-11 23:29:05 +08:00
1f98c8df7c bump-4266 2023-08-02 11:40:56 +08:00
da9f84d78a 调整:文案修改:安装失败后引导查看详情而不是重新安装 2023-08-02 11:35:59 +08:00
88cc3eb921 如果dpkg阻塞会出现漏掉的安装失败,在安装后检测 2023-08-02 11:30:12 +08:00
f04130f902 修复:UOS专业版上安装成功仍然显示失败的问题:方式:忽略E:等消息,仅检查脚本报错
调整:卸载应用时采用autopurge以一并卸载依赖
2023-08-02 11:16:06 +08:00
e7e810ea2b update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-07-24 08:02:03 +00:00
1de46a8296 update tool/ssaudit.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-07-24 04:27:05 +00:00
5ece2b2034 调整:4264版本发布
修复:过于老旧的联系方式入口
2023-07-13 10:58:07 +08:00
460dcfebed 修复:依赖 desktop-file-utils 添加
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-07-08 07:28:56 +00:00
fb257212b6 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-07-05 04:10:10 +00:00
1436e35a49 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-07-05 04:09:55 +00:00
a16248f8a4 修复:部分下载量线路失效 2023-07-05 11:58:38 +08:00
7b49732405 fix mail 8
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-07-05 03:57:14 +00:00
1b6e02c5bf mail 10 fix
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-07-05 03:53:41 +00:00
4d228fd331 mail 2 fix
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-07-05 03:51:16 +00:00
f6ac9752d1 重命名 LICENCE 为 LICENSE 2023-06-30 10:52:44 +00:00
716344cf68 重命名 LICENCE-Additional 为 LICENCE 2023-06-30 10:50:42 +00:00
79e0ef2b7b 重命名 LICENSE 为 LICENSE-GPL3 2023-06-30 10:50:34 +00:00
779b62a12f update LICENCE-Additional.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-06-30 10:47:47 +00:00
6427a32c31 add LICENCE-Additional.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-06-30 10:46:37 +00:00
1f8d237d40 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-06-14 06:39:55 +00:00
04732f61c0 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-06-14 06:39:17 +00:00
63147b2ca3 update tool/update-upgrade/transhell/ss-do-upgrade.sh_en_US.transhell.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-06-14 06:37:27 +00:00
d1d1e54022 文案同步
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-06-14 06:34:51 +00:00
d175fc497e 文案同步
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-06-14 06:34:13 +00:00
e073764a80 !219 回退 'Pull Request !218 : 添加对LingmoOS的支持'
Merge pull request !219 from shenmo/revert-merge-218-dev
2023-06-08 12:01:00 +00:00
5cf8b587ee 回退 'Pull Request !218 : 添加对LingmoOS的支持' 2023-06-08 12:00:47 +00:00
b715f1c54b !218 添加对LingmoOS的支持
Merge pull request !218 from Floating dream/beta
2023-06-08 11:59:15 +00:00
Floating dream
7513667c6e 添加LingmoOS适配 2023-06-08 11:22:21 +08:00
Floating dream
0edf87c95c Add detection for LingmoOS 2023-06-08 01:30:17 +08:00
22a54cd0ed 幸亏一直没用到这个函数
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-05-24 05:09:00 +00:00
d4fbd1b386 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-05-07 02:15:15 +00:00
87a71fe3b3 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-05-07 02:14:43 +00:00
c7e48ae01d 支持zunyun01
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-26 10:20:51 +00:00
cb66f5e903 arm架构applist支持 2023-04-25 19:29:11 +08:00
842f0893b3 支持arm搜索 2023-04-25 18:41:38 +08:00
f5a35a332a update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-22 09:18:46 +00:00
0ba0587e17 fix I6XTK0
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-22 09:17:14 +00:00
c65eea12a6 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-22 05:43:27 +00:00
d6e01a5803 fix: 快读切换应用页面可能出现ux重叠 2023-04-21 12:37:48 +08:00
04aeac62f8 fix: 截图加载失败 2023-04-21 12:37:26 +08:00
9b1b432e7c update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-20 10:46:36 +00:00
cfafc04628 update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-20 08:43:26 +00:00
8450e6afa6 update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-20 08:35:36 +00:00
2a4d33e73f update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-20 08:23:53 +00:00
8c2a10ebbc update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-20 08:13:01 +00:00
2bec2de456 update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-20 08:09:48 +00:00
90dea4ed2e update tool/spark-dstore-patch.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-20 08:06:48 +00:00
06ca1b7a97 update debian/control.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-14 09:21:30 +00:00
f9e2cea98e * 调整:重写了spark-dstore-patch,速度提升,尤其对机械硬盘下
* 调整:优化了aptss源文件同步策略
2023-04-14 16:34:26 +08:00
1bbf7027d3 用更优雅的方式同步source
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-14 07:51:44 +00:00
90ec030f8b update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-12 05:17:32 +00:00
347c8ed093 update debian/spark-store.postinst.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-09 14:03:31 +00:00
d987c840c7 update debian/spark-store.postinst.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-09 14:03:19 +00:00
88a28c5658 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-09 02:31:28 +00:00
484a82b00b update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-09 02:30:26 +00:00
1506b74b01 调整:删除libc6-dev依赖
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-04-09 02:06:05 +00:00
09b880fff8 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-03-31 09:04:39 +00:00
c6d3742daa update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-03-31 09:04:18 +00:00
917527cbe6 fix: 更改文案描述 2023-03-31 14:32:55 +08:00
faad17470a feat: 统一到同一个url配置 2023-03-27 15:20:26 +08:00
9f53c2eaa6 424 changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-03-23 06:20:49 +00:00
6d1d4e9f23 ts 2023-03-22 14:40:38 +08:00
753945228e fixup! feat: 进入应用前检测平台并提示 2023-03-14 14:33:35 +08:00
2f409c7082 * 修复:ssinstall校验失败的时候仍然提示安装成功
* 新增:ssinstall可以自动刷新ssupdate以防止仓库更新中导致的安装校验失败
2023-03-14 13:43:42 +08:00
728fc5866c failed 2023-03-13 09:36:54 +00:00
ace24914f4 update pipeline-dtk-build-aarch64.yml 2023-03-13 09:33:46 +00:00
8b9bf53e4e update pipeline-dtk-build-aarch64.yml 2023-03-13 09:29:42 +00:00
453d3963dd update pipeline-dtk-build-aarch64.yml 2023-03-13 09:24:04 +00:00
dff869cec8 update pipeline-dtk-build-aarch64.yml 2023-03-13 09:11:59 +00:00
17a6b22e55 update pipeline-dtk-build-aarch64.yml 2023-03-13 09:00:30 +00:00
cb66e8a0bd update pipeline-dtk-build-aarch64.yml 2023-03-13 08:56:17 +00:00
001ce7e4e8 update pipeline-dtk-build-aarch64.yml 2023-03-13 08:51:55 +00:00
351bbc0fc1 update pipeline-dtk-build-aarch64.yml 2023-03-13 08:50:33 +00:00
824ffbca2b update pipeline-dtk-build-aarch64.yml 2023-03-13 06:37:03 +00:00
d6082be71f update pipeline-dtk-build-aarch64.yml 2023-03-13 06:14:53 +00:00
6b807b24e2 create pipeline-dtk-build-aarch64.yml 2023-03-13 06:10:48 +00:00
3679e8d6eb Merge: merge reason to dev 2023-03-13 14:03:08 +08:00
335996b7d0 OMG-IT-GOES-WRONG 2023-03-13 11:32:10 +08:00
aa3b102fdd Merge branch 'dev' into Reason 2023-03-13 00:41:57 +08:00
5394e5cc57 fix: 跟进 dryrun 的错误信息 2023-03-13 00:41:33 +08:00
d2544795f5 Merge branch 'dev' into Reason 2023-03-13 00:39:22 +08:00
06c7664a37 --squash=2e807c36e76437798f48519cd5e7eb2cc2dbff86 2023-03-13 00:38:16 +08:00
2d09b549af Merge branch 'dev' into Reason 2023-03-13 00:35:43 +08:00
2e807c36e7 fix: 跟进 dryrun 的错误信息 2023-03-13 00:33:01 +08:00
0a1a6e73f0 Merge branch 'dev' into Reason 2023-03-13 00:17:59 +08:00
fea69319de --fixup=e8f13693be24559110b709a1778f58a71fabc37e 2023-03-13 00:14:46 +08:00
6519053648 update: update translate 2023-03-12 22:34:15 +08:00
ef41110632 fixup! I6JSL5 2023-03-12 22:26:22 +08:00
30cdeb89b1 https://gitee.com/deepin-community-store/spark-store/issues/I6JSL5 2023-03-12 22:25:38 +08:00
512df973f9 fixup! https://gitee.com/deepin-community-store/spark-store/issues/I6JSL5 2023-03-12 22:24:10 +08:00
d3b71fbacc Merge branch 'dev' into Reason 2023-03-12 22:05:44 +08:00
e8f13693be feat: 进入应用前检测平台并提示 2023-03-12 22:00:49 +08:00
6bd05655d6 feat: 检查 /tmp/spark-store 目录权限 2023-03-12 21:20:47 +08:00
ebe78f0937 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-03-12 02:02:04 +00:00
abae11a30e update debian/control.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-03-11 03:55:38 +00:00
f8ea89a069 Merge branch 'dev' into Reason 2023-03-11 00:41:31 +08:00
496d20d536 fix: Readme 文件描述中缺少依赖 2023-03-11 00:41:04 +08:00
369a7801ab fix: 使用cpu核心数目构建,防止小内存机器OOM 2023-03-11 00:38:55 +08:00
0478df3b49 安装失败时输出 2023-03-10 20:17:33 +08:00
d8909b1424 ssinstall解析绝对路径 2023-03-09 23:21:43 +08:00
ab707c8c2b 参数传错了 2023-03-09 22:58:05 +08:00
13d6965558 Merge remote-tracking branch 'refs/remotes/origin/Reason' into Reason 2023-03-09 17:54:41 +08:00
22cb1f6058 检验是否安装转到worker 2023-03-09 17:54:31 +08:00
8e560805b2 Merge branch 'dev' into Reason 2023-03-09 14:46:04 +08:00
8475623135 feat: 改进HIDPI支持 2023-03-09 14:45:24 +08:00
e865431411 9 2023-03-09 10:51:51 +08:00
ab8faa487e Merge remote-tracking branch 'refs/remotes/origin/Reason' into Reason 2023-03-09 10:32:06 +08:00
f0e3b6b687 放弃sender-d 2023-03-09 10:31:54 +08:00
5de20aa19d Merge branch 'dev' into Reason 2023-03-09 00:38:16 +08:00
b5ae73fbeb fix: 先使图像居中再显示图像界面 2023-03-09 00:37:07 +08:00
28326b37c7 !208 fix: 多显示器大图显示居中 2023-03-08 16:18:59 +00:00
12a114450c Merge branch 'dev' into Reason 2023-03-09 00:17:39 +08:00
768ed38ace fix: add vscode files to .gitignore 2023-03-09 00:17:23 +08:00
19f7e3fa0e Merge branch 'dev' into Reason 2023-03-09 00:15:56 +08:00
6d65b445dd fix: 多显示器大图显示居中 2023-03-09 00:15:28 +08:00
2867cf0500 绕过dh_strip 2023-03-08 18:55:02 +08:00
07eaebf483 sender-d用cpp 2023-03-08 18:43:31 +08:00
2d116ae6c1 sender-d用cpp 2023-03-08 18:42:39 +08:00
ceb43da10b regenerate sender-d_aarch64.sh.c,not sure it work everywhere 2023-03-08 14:00:19 +08:00
710cd9fa5c logo更新 2023-03-08 09:21:30 +08:00
c6688e47fb ssaudit也加上aptssupdate 2023-03-08 08:14:36 +08:00
e04b2545a9 修复一些去除bwrap带来的问题,真是的,跑的好好的就不要动啊kora 2023-03-08 01:04:43 +08:00
9b4c3aa2ce 不再使用cp-r同步系统lists,防止把未更新的也带过来 2023-03-08 00:44:21 +08:00
e6561e0a07 reason6 2023-03-08 00:35:57 +08:00
9616deb4b6 * ssinstall发现无法验证时尝试update而不是ssupdate
* 启动每日aptss update
2023-03-08 00:26:14 +08:00
96d2ea6669 红豆泥私密马赛,现在好了 2023-03-07 19:09:56 +08:00
d57c43a2b7 私密马赛,忘记空格了 2023-03-07 19:04:56 +08:00
40eadaca35 https://gitee.com/deepin-community-store/spark-store/issues/I6JSL5 2023-03-07 19:00:51 +08:00
21bcb67a73 update src/assets/json/features.json.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-03-07 09:21:53 +00:00
890718fdbb changelog 2023-03-07 17:14:53 +08:00
1613825b7c 自动读取分支名 2023-03-07 17:12:22 +08:00
bcb399dc30 aptss支持非root模式启动,添加transhell支持 2023-03-07 16:53:30 +08:00
cd581d4de9 若sources.list.d为空则终止清理 2023-03-06 23:19:58 +08:00
41ef63ec4a 修复:apt-fast仍然会在旧的archieve复制,指定到旧的archieve 2023-03-06 22:47:37 +08:00
02419bfdcb 修复:无法访问系统源 2023-03-06 22:29:51 +08:00
b67fd11fd5 修复:aptss无法找到新标准的list 2023-03-06 21:51:14 +08:00
9a7a80223a feat: 彻底抛弃bwrap,提升aptss响应速度。现已可将aptss当apt用 2023-03-06 21:45:12 +08:00
aa85ee53a8 好啊,来啊
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-03-05 15:49:40 +00:00
ac45f5eec9 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-03-05 15:42:52 +00:00
84cc4a9208 fix: 修复在x86下的编译问题 2023-03-05 23:42:07 +08:00
795a6ca709 fix: 新后端多架构 2023-03-05 23:29:07 +08:00
dab4606e9b Merge branch 'Reason' of gitee.com:deepin-community-store/spark-store into Reason 2023-03-05 23:22:47 +08:00
1954196ba1 feat: 多架构编译支持 2023-03-05 23:21:36 +08:00
fc0edab44c feat:aarch64-shc-sender 2023-03-05 23:10:12 +08:00
a04cf4e6d9 Merge branch 'Reason' of https://gitee.com/deepin-community-store/spark-store into Reason 2023-03-05 23:03:26 +08:00
e85576e5f0 fix:sender.sh 2023-03-05 23:03:16 +08:00
efba72002a Merge branch 'dev' of gitee.com:deepin-community-store/spark-store into Reason 2023-03-05 22:57:18 +08:00
4bdcb2cf3c Merge branch 'dev' of gitee.com:uniartisan2018/spark-store into dev 2023-03-05 22:52:16 +08:00
8ff46e554f Merge branch 'Reason' of gitee.com:deepin-community-store/spark-store into Reason 2023-03-05 22:51:47 +08:00
57db01aeaf Merge remote-tracking branch 'refs/remotes/origin/Reason' into Reason 2023-03-05 22:46:25 +08:00
0ceb99e121 补充依赖pkexec 2023-03-05 22:46:12 +08:00
83b539e7da update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-03-05 11:56:52 +00:00
ce6c0a4613 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-03-05 11:53:45 +00:00
cf59aeb4eb 使用hardcode的方式修改了url
请在后续版本改善
仅用于测试!!!!
web请求方式被改回旧版了,请在柚子发布新web后改回
2023-03-05 19:11:21 +08:00
17ca13cf00 !207 fix: 修复安装不成功时,关闭主窗口会直接退出,且重启后没有记录的问题
Merge pull request !207 from zty199/auto-7392693-dev-034d32be
2023-03-05 02:26:20 +00:00
zty199
b99225bd3c fix: 修复安装不成功时,关闭主窗口会直接退出,且重启后没有记录的问题
由于安装操作在线程中异步执行,原始逻辑中仅判断下载完成后就检测是否还有后续任务,存在安装未结束就退出的情况

Log: 调整判断后续下载任务位置到槽函数中,每个任务安装完成结果信号触发后优先判断安装是否成功,再判断是否需要退出
2023-03-04 22:42:08 +08:00
8f39710cdb postinst增加判断arch 2023-03-04 21:09:05 +08:00
7ec6be1969 aa64+x86 2023-03-04 21:01:54 +08:00
d9ee17c9b1 Merge branch 'Reason' into dev 2023-03-04 18:21:01 +08:00
1543d75339 !206 去除无用的重复获取
Merge pull request !206 from shenmo/auto-4915358-dev-bc4479a1
2023-03-03 14:12:10 +00:00
77eb0d84c7 ss-feedback 2023-03-03 22:11:48 +08:00
68ddb3ffcc 去除无用的重复获取 2023-03-03 22:03:32 +08:00
58ea0249d8 调整效果 2023-03-03 21:29:33 +08:00
eb01bf253e !205 薪炎
Merge pull request !205 from shenmo/auto-4915358-dev-f2477c82
2023-03-03 13:28:58 +00:00
c22ce6290b 薪炎 2023-03-03 21:28:47 +08:00
1f7608bf77 2023-03-03 21:26:11 +08:00
16115a455b !204 4.2.3.1
Merge pull request !204 from shenmo/dev
2023-03-03 13:04:39 +00:00
ce680d54f9 !203 4231
Merge pull request !203 from shenmo/auto-4915358-dev-f244898b
2023-03-03 13:04:07 +00:00
a90699163f 4231 2023-03-03 21:02:31 +08:00
3edf39b4ef Merge branch 'Reason' of gitee.com:deepin-community-store/spark-store into Reason 2023-03-02 23:58:53 +08:00
f5c879b369 feat: aarch64 下x11时使用软件渲染 2023-03-02 23:49:08 +08:00
2bd9c4a440 !198 4.2.3
Merge pull request !198 from shenmo/dev
2023-03-02 15:34:05 +00:00
f494f15922 !202 Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
Merge pull request !202 from shenmo/auto-4915358-dev-47465fb4
2023-03-02 15:33:49 +00:00
d5df4057e9 Merge remote-tracking branch 'refs/remotes/origin/dev' into dev 2023-03-02 23:33:27 +08:00
dc07b7cb02 changelog 2023-03-02 23:33:16 +08:00
1bb0bf7d71 !201 Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
Merge pull request !201 from shenmo/auto-4915358-dev-844840b2
2023-03-02 15:32:32 +00:00
cf00d54355 Merge remote-tracking branch 'refs/remotes/origin/dev' into dev 2023-03-02 23:32:04 +08:00
1ea7067379 ci构建线程是2 2023-03-02 23:31:31 +08:00
29ad3cc72d !200 完全修复prerm崩溃
Merge pull request !200 from shenmo/auto-4915358-dev-8846a8bc
2023-03-02 15:27:29 +00:00
dfe57bf2c3 !199 fix: 修复软件构建依赖缺失
Merge pull request !199 from Pluto/auto-5304420-dev-2c49bfa9
2023-03-02 15:26:13 +00:00
b37f8d7f7e 完全修复prerm崩溃 2023-03-02 23:25:49 +08:00
b51b248566 fix: 修复软件构建依赖缺失 2023-03-02 23:13:49 +08:00
21baf598d7 修复prerm崩溃 2023-03-02 23:09:00 +08:00
2c6d706c58 423 2023-03-02 22:40:08 +08:00
1b1f7578d0 changelog 2023-02-24 22:13:40 +08:00
9275425bdf feat: 一键编译并安装脚本 2023-02-24 01:07:09 +08:00
22b1d66c07 fix: 删除不应该删除的指针造成闪退 2023-02-24 00:10:19 +08:00
a3e1d19ac3 !197 feat: 后台安装结束后退出任务栏驻留
* fix: 没有下载的时候直接退出客户端
* feat: 后台安装结束后退出任务栏驻留
* feat: 更新的时候关闭旧实例
2023-02-23 12:50:44 +00:00
762caae49f !196 fix: QtWebEngine
* fix: QtWebEngine
2023-02-23 08:41:14 +00:00
4e4ee205de !195 aptss加入对sdu镜像package文件识别;修改版本号到323t4
Merge pull request !195 from shenmo/auto-4915358-dev-a949fd8a
2023-02-21 07:49:06 +00:00
9d4e19e606 aptss加入对sdu镜像package文件识别;修改版本号到323t4 2023-02-21 15:48:12 +08:00
4d142ec614 !194 fix: ssinstall 失去作用
Merge pull request !194 from Pluto/auto-5304420-dev-cf41f4bd
2023-02-21 06:45:29 +00:00
80cf746f90 fix: ssinstall 失去作用 2023-02-21 14:38:38 +08:00
3b83b335be !193 aptss 获取线路信息 转到从 d. 服务器获取 顺便改了下changelog
Merge pull request !193 from shenmo/auto-4915358-dev-3747efbc
2023-02-20 01:47:48 +00:00
1f0a0e48ff 特性链接修改 2023-02-20 09:46:39 +08:00
432215e040 aptss 获取线路信息 转到从 d. 服务器获取
顺便改了下changelog
2023-02-20 09:32:41 +08:00
1a65386c6b !192 feat: 支持打包时从 debian/changelog 自动获取构建版本号并写入关于窗口
feat: 支持打包时从 debian/changelog 自动获取构建版本号并写入关于窗口
2023-02-18 23:12:26 +00:00
zty199
757dced302 fix: 修复 debian/control 中错误字段
Standards-Version 被错误修改为 Standard-Version

Log: 修复 debian/control 中错误字段,改为 Standards-Version
2023-02-19 07:06:12 +08:00
zty199
854caafd6b feat: 支持打包时从 debian/changelog 自动获取构建版本号并写入关于窗口
修改 debian/rules 文件,configure 时 qmake 添加环境变量 BUILD_VERSION,用于 .pro 文件中获取构建版本号并设置宏定义,在关于窗口中显示

Log: 修改并整理 debian 构建文件夹;修改 .pro 文件,支持打包时自动获取构建版本号;添加 usr/share/dsg/org.deepin.dtkwidget.feature-display.json,用于控制版本特性窗口显示提醒
2023-02-19 06:51:29 +08:00
1332107642 !191 fix: 修复下载列表对话框中,点击某个 item 取消下载按钮后下载列表无法再次显示的问题
fix: 修复下载列表对话框中,点击某个 item 取消下载按钮后下载列表无法再次显示的问题
2023-02-18 17:14:50 +00:00
zty199
4825417de8 fix: 修复下载列表对话框中,点击某个 item 取消下载按钮后下载列表无法再次显示的问题
MainWindow::notify 中焦点判断异常,未去除 QStyleSheetStyle 导致错误认为需要隐藏下载管理对话框

Log: 判断 focusIn 事件前排除 QStyleSheetStyle 对象
2023-02-19 01:08:41 +08:00
0001df153b !190 fix: downloadController 修改为懒汉式单例
fix: downloadController 修改为懒汉式单例
2023-02-18 16:56:12 +00:00
f88b38dd39 Merge branch 'dev' of gitee.com:deepin-community-store/spark-store into dev 2023-02-19 00:48:53 +08:00
3f2404ec1c fix: downloadController 修改为懒汉式单例 2023-02-19 00:45:17 +08:00
5b822194fa !188 fix: 多个应用安装可能会出现某一个应用没有安装
Merge pull request !188 from Pluto/auto-5304420-dev-f9438ba2
2023-02-18 12:21:51 +00:00
33ea9ee065 fix: 多个应用安装可能会出现某一个应用没有安装 2023-02-18 20:06:36 +08:00
d742e85332 !187 fix: 修复下载按钮点击/双击/拖动时,主窗口动作与下载管理对话框动作同时触发问题
Merge pull request !187 from zty199/auto-7392693-dev-bd4133a2
2023-02-17 08:18:26 +00:00
zty199
8dfb1fbe2f fix: 修复下载按钮点击/双击/拖动时,主窗口动作与下载管理对话框动作同时触发问题
下载按钮未屏蔽双击事件,导致触发主窗口最大化动作,同时下载对话框显示在原始位置;拖动时触发下载对话框显示,移动时又隐藏下载对话框,造成闪烁现象;重复点击下载按钮,对话框闪烁

Log: 修改下载按钮和下载对话框焦点策略对象,保证对话框焦点状态与下载按钮同步;对话框显示操作移入下载按钮鼠标事件中处理,隐藏操作移入主窗口事件循环中判断,当主窗口/下载对话框均不是活动窗口时隐藏对话框

* 可能修复 ISSUE #I6FNOW,目前修改后,连续点击下载按钮,对话框将按顺序显示/隐藏
2023-02-17 02:15:14 +08:00
4114b51d87 !186 feat: 支持 DTK 5.6.4 关于对话框“版本特性”显示功能
Merge pull request !186 from zty199/auto-7392693-dev-f4457187
2023-02-16 00:09:05 +00:00
zty199
deec70f14b feat: 支持 DTK 5.6.4 关于对话框“版本特性”显示功能
将版本特性信息写入 json,运行时解析文件信息并初始化版本特性对话框

Log: 添加版本特性 json 文件以及解析文件相关函数,用于构造版本特性对话框;版本号维护放入 src/assets/json/features.json 中统一管理,不再修改 main 函数,运行时从 json 文件读取并显示

* 该提交需要在低版本 DTK 验证能否正常编译运行
2023-02-16 01:18:11 +08:00
ee0d3f87ec !185 4.2.3test2
Merge pull request !185 from shenmo/dev
2023-02-13 07:37:43 +00:00
80adfd5dc1 !184 翻译
Merge pull request !184 from shenmo/auto-4915358-dev-be4c6d8e
2023-02-13 07:37:00 +00:00
e81c846432 加入zh_TW配置 2023-02-13 15:35:28 +08:00
03d60d74f1 翻译 2023-02-13 15:31:29 +08:00
4f2c5f1bdc fix: 内存安全加固 2023-02-12 23:56:25 +08:00
zty199
da03261cbb fix: ISSUE #I6CU7C 下载完成时,即使主窗口被遮挡,下载列表按钮动画效果仍显示在最上层
动画效果 WaterDrop widget 未设置父对象,使用全局坐标映射显示在按钮位置

Log: 对 WaterDrop 添加父对象,与下载列表按钮同级,为标题栏布局子控件,以此限制动画显示范围仅在标题栏内
2023-02-11 19:19:09 +08:00
zty199
48d551424a chore: 更新 debian/changelog
更新 debian/changelog;修正部分格式问题,更新日期

Log: 更新 debian/changelog;修正部分格式问题,更新日期
2023-02-05 22:53:27 +08:00
zty199
ab6c3d37d2 fix: 修复 Deepin 系统上显示“开发者模式未开启”的问题
没有区分 Deepin 和 UOS,在 Deepin 上对开发者模式状态文件进行判断,可能造成错误

Log: 添加判断区分 Deepin 和 UOS,仅在 UOS 判断开发者模式状态文件;优化 main 函数长度,将环境变量设置和 config.ini 读写放入 Utils 独立静态函数中调用;修复从托盘打开主界面时透明度动画不流畅的问题;优化关闭窗口动画代码,与打开窗口动画代码合并;修复主窗口关闭时,从托盘打开关于对话框后,调起主窗口会遮挡关于对话框的问题
2023-02-05 22:44:19 +08:00
de2db98324 cmake-patch: 更新补丁用于处理 v4.2.3~test1 时期版本号截取字符数过短问题 2023-02-05 16:12:21 +08:00
zty199
66d1aacbbe chore: 托盘图标添加鼠标悬浮提示
鼠标悬浮在托盘图标上时,显示气泡“星火应用商店”

Log: trayIcon 设置 toolTip;遗留问题:仅在后台运行时,系统监视器无法正确展示名称(仅显示 spark-store)
2023-02-04 21:41:43 +08:00
57f1b69663 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-02-03 03:03:34 +00:00
zty199
cb093dcc2b fix: 尝试修复 ISSUE #I68I8W 安装结束时随机崩溃问题
暂时未知,目前怀疑安装结束后,DownloadItem 触发 finished() 信号,在详情页槽函数中执行 disconnect 操作时导致崩溃

Log: 去除 disconnect 操作;修改可能造成问题的控件指针获取方式;修复多线程执行下载安装操作时跨线程相关警告

* 该提交可能存在严重问题,建议多进行测试;如果存在问题,及时 revert 该提交
2023-02-03 02:04:18 +08:00
eaf268a10d 423-changelog 2023-02-01 12:45:55 +08:00
zty199
1074e941a6 fix: ISSUE #I6B4CS 重复安装应用的bug
应用安装过程中,重新进入应用详情页,仅通过 `dpkg-query -s $pkgName` 判断本地是否已安装,未判断当前安装任务执行状态

Log: 判断本地安装状态后,执行 isDownloading 函数判断安装任务状态,更新按钮显示状态;整理应用详情页代码
2023-02-01 11:59:16 +08:00
zty199
05cb318737 fix: 修复客户端已经在后台运行时,双击 desktop 图标无法调出主窗口的问题
处理 DTK 单例启动信号时,仅处理了启动参数 >1 的情况;仅执行 spark-store 未处理

Log: 第二个启动参数为空时,仍然调用 onGetUrl 函数,函数中屏蔽了非 spk:// 链接格式的字符串,但仍然执行调出主窗口操作
2023-01-31 16:57:43 +08:00
4ce19e25e5 !182 4.2.2
Merge pull request !182 from shenmo/dev
2023-01-31 04:31:43 +00:00
17c152ce8b update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-31 04:30:03 +00:00
zty199
9275074e10 fix: 修复窗口关闭后台运行时,调用 spk 链接窗口不会自动显示的问题
链接调用时仅执行了窗口 activateWindow() 操作,在窗口隐藏时无效

Log: 添加 setWindowState(Qt::WindowActive) 操作和 show() 操作
2023-01-31 12:12:04 +08:00
e69eaa6296 update tool/apt-fast-conf/apt-fast.conf.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-31 02:50:11 +00:00
35bc1efbad 转oyo
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-31 02:33:59 +00:00
9420959023 cmake-patch: 更新补丁用于处理 v4.2.2 时期的变动部分变动与其它问题
1. v4.2.2 时期的新增的安装文件
2. Makefile 的默认触发的目标异常
3. 以及 SPARK_QM_TRANSLATIONS 文件输出的部分
    其与 SPARK_OVERRIDE_VERSION 的文件输出相同
2023-01-30 23:24:44 +08:00
7a16b5c52f patchs-doc: 补充一些注意事项 2023-01-30 22:21:19 +08:00
24519e6560 patchs-doc: 增加补丁操作说明文档 2023-01-30 22:05:08 +08:00
2104b99208 cmake-patch: 更新补丁用于支持 debian/changelog 版本覆盖构建 2023-01-30 22:03:27 +08:00
zty199
cf549c540d feat: ISSUE #I69IJI 自动关闭到托盘以防止下载和安装中断
添加托盘图标,主窗口关闭后仍然在后台运行;左键单机托盘图标显示主窗口

Log: 添加托盘图标;重构 MainWindow 构造函数,拆分 UI 初始化代码至单独函数;修改启动时窗口渐变动画初始化位置至 showEvent 中
2023-01-30 18:30:43 +08:00
zty199
4b40e3caca feat: ISSUE #I67K8Y 新增 spk://search/keyword 链接格式解析
支持打开该链接跳转搜索页面(禁止直接搜索 %,搜索结果过多会导致搜索页面 QtWebEngine 进程崩溃,无法继续搜索)

Log: 支持链接跳转搜索结果页面;暂不支持直接跳转到应用详情页
2023-01-30 16:19:48 +08:00
1a89c2a1a6 修改: debian/changelog 2023-01-30 15:53:35 +08:00
b1fd1a3c3c fix:zenity-fail-on-wayland 2023-01-30 15:51:35 +08:00
50e895938b transhell改为用source引入 2023-01-30 13:19:07 +08:00
18d2b1edbb update tool/apt-fast-conf/apt-fast.conf.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-30 03:30:45 +00:00
柚子
f91ee56d97 判断oyo是否存在
Signed-off-by: 柚子 <chowhound_xb@163.com>
2023-01-28 16:44:12 +00:00
41a6a3fc04 !181 4.2.1
Merge pull request !181 from shenmo/dev
2023-01-27 09:51:15 +00:00
1266b16d83 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-27 09:50:18 +00:00
4359a9c58d 正确获取语言代码
将load transhell的变量改为local
2023-01-27 16:31:10 +08:00
c243a30dec 修复:安装翻译文件位置错误 2023-01-27 12:31:20 +08:00
f629dca03c 更改到usr/share来加载 2023-01-27 12:26:51 +08:00
f2e1219a83 更新翻译 2023-01-27 12:22:32 +08:00
e2f27c7746 transhell update 1 2023-01-27 11:24:20 +08:00
72ba481180 update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-26 17:05:35 +00:00
8d41966d67 奇怪的符号残留 2023-01-20 09:30:33 +08:00
f2a4ce3b25 文案修改:Ubuntu tag现在指的是22.04 2023-01-20 09:24:50 +08:00
0b2290344b 移除ssinstall的安装测试 2023-01-20 00:18:20 +08:00
a7cb44348d 修改以符合用法 2023-01-20 00:17:35 +08:00
384d4b300d 支持在安装前进行测试(ss-do-upgrade-worker)
用法:pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh test-install-app pkgname
2023-01-20 00:15:24 +08:00
19a1ba4289 修复: linux mint下无法统计下载量
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-19 10:24:30 +00:00
c160f4105d update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-16 09:13:42 +00:00
682a6e38d6 !180 4.2 正式
Merge pull request !180 from shenmo/dev
2023-01-16 09:11:11 +00:00
e4a3a974b5 dWine5标签现在意味着是Wine应用而不是Dwine5应用 2023-01-16 17:00:09 +08:00
eb38f2af05 修复:wayland下无法提示
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-16 08:52:06 +00:00
7163f8ee80 更新时显示正在安装的应用 2023-01-16 15:04:04 +08:00
a934373f1e * 调整:UOS开发者模式提示现在不会那么挤了 2023-01-15 23:05:25 +08:00
ce6ded25f2 fix: mint下无法正常调用aptss
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-15 13:59:49 +00:00
f707fef65b 4.3 2023-01-07 22:30:39 +08:00
721e6580c9 aptss修复一直重复 2023-01-07 22:24:22 +08:00
e20572b28d update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-07 02:50:56 +00:00
05a6af8f86 修改: debian/changelog 2023-01-07 10:39:53 +08:00
d4e84344c3 * 修复: 420t1版本中ssinstall有时会重新下载软件包的问题
* 新增: 安装前会对软件包安装进行dry run以判断是否能正确安装

  * 调整: aptss在进行任何操作前均检测是否存在包文件

  * 调整: 修改apt-fast源代码以指定conf位置为/tmp/apt-fast,这部分不再使用bwrap模拟
2023-01-07 10:34:59 +08:00
f856060d3d 为了避免重复下载,暂时让ssinstall和ssaudit重新使用dpkg 2023-01-07 00:57:54 +08:00
49829f8d3c 统一将获取uri的改成apt-get 2023-01-06 23:53:43 +08:00
4cd3ca56e0 Merge remote-tracking branch 'refs/remotes/origin/dev' into dev 2023-01-06 23:45:31 +08:00
0538777ceb 准备test2 2023-01-06 23:44:37 +08:00
d3b303c66c update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-06 15:39:10 +00:00
98c4e8a699 更多的汉化 2023-01-06 23:37:34 +08:00
69b7cbe472 apt-fast相关改动:支持显示报错等
* feat: aptss支持显示报错

  * feat: aptss部分提示汉化

  * fix: 修复部分情况下ssinstall实际未安装但是错误显示
2023-01-06 23:30:05 +08:00
539a21ccec update DOCS/spk-doc.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-06 11:11:16 +00:00
eb40a32cc2 add DOCS/内网部署.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-06 10:01:47 +00:00
440b7ea88d update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-06 09:49:41 +00:00
36d273dd5e !179 4.1.2 正式版
Merge pull request !179 from shenmo/dev
2023-01-06 09:43:45 +00:00
6bdc1ee51c update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-06 09:29:18 +00:00
ecfa9a166d update src/main.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-06 09:24:19 +00:00
199700495c update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-06 09:23:57 +00:00
0bafab7f94 update DOCS/spk-doc.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-06 09:14:07 +00:00
dd4deff19d update DOCS/spk-doc.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-06 09:12:58 +00:00
8b88573283 在ssinstall输出中指出根目录或者单目录 2023-01-05 14:54:57 +08:00
2717cf695c ssinstall不允许安装验证失败的软件包 2023-01-05 14:53:15 +08:00
385803754f 区分版本号,新改动转给412t2 2023-01-05 14:49:23 +08:00
8ba377cf0b changelog 2023-01-05 14:47:29 +08:00
c21d4dac96 支持store分类单独安装 2023-01-05 14:45:53 +08:00
a85200338c 删除apt-fast推荐
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-04 06:43:06 +00:00
5d34dd6413 update src/main.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-04 04:36:19 +00:00
bd3daeba75 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-04 04:35:06 +00:00
zty199
8b2a61e4b2 fix: 修复下载列表中进度提示文字显示不完整的问题
QLabel 未处理文字过长的问题

Log: 控件提升为 DLabel,设置文字过长时右侧显示省略号;添加鼠标悬浮提示;固定 item 中应用名称宽度未 120px,保证进度条显示位置对齐
2023-01-03 21:42:46 +08:00
116f14845e 修复control无法识别 2023-01-03 21:42:24 +08:00
77bf544c59 删成安装依赖了
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-03 13:34:09 +00:00
f809d7c15d update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-03 13:33:37 +00:00
1f7f3edbba 删除多余的g++依赖
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2023-01-03 13:20:50 +00:00
90f6b6a574 update: translate 2023-01-03 21:18:26 +08:00
3e51ce8381 Merge branch 'dev' of gitee.com:deepin-community-store/spark-store into dev 2023-01-03 21:10:37 +08:00
b7df4a5801 fix: issue I68566 2023-01-03 21:10:28 +08:00
980e4a17d9 * feat: aptss 除ssupdate外的操作时候如果检测到存在源文件存在则不再重复获取
* fix: 修复在apt list锁被锁定的时候异常弹出有更新可用
2023-01-03 13:16:24 +08:00
d5248f4c1b Merge branch 'dev' of gitee.com:deepin-community-store/spark-store into dev 2023-01-01 11:02:04 +08:00
zty199
c169622806 fix: 修复应用详情页“应用反馈”按钮点击后无法调起交流平台问题
QProcess::startDetached 函数调用入参错误

Log: 修改调用方式,拆开 sh 和启动脚本地址分别用于 program 和 arguments
2023-01-01 00:27:04 +08:00
zty199
cc54014b29 fix: 修复应用详情页卸载应用后点击“安装”按钮后客户端崩溃问题
应用卸载后,按钮文字被设置为“安装”,导致点击按钮时判断要从下载列表中找到对应 DownloadItem 并触发安装;此时列表中并不存在此应用,list 访问下标越界导致崩溃

Log: 卸载后将按钮文字设置为“下载”避免该问题
2022-12-31 23:53:06 +08:00
zty199
c636e0882b fix: ISSUE #I68566 下载列表错位,图标错误
DownloadItem 原始定义高度为 54px,上下边距各 4px;然而图片 label 高度定义为 48,且宽度未定义,明显放不下;DownloadListWidget 中添加 item 时,设置每个 item sizeHint 高度只有 50px,与 item 高度不一致

Log: 固定 DownloadItem 高度为 56px;修改 DownloadListWidget 添加 item 时每个 item 的 sizeHint 高度;使用 DLabel 替换 QLabel 用于单个 item 中应用名称显示,使用 setElideMode 保证名称过长时右边显示省略号,并添加鼠标悬浮提示
2022-12-31 23:13:28 +08:00
zty199
4120af7e24 fix: 修复 Deepin/UOS 上始终认为开发者模式未打开的问题
读取 /var/lib/deepin/developer-mode/enabled 文件之前,QFile 未 open

Log: 判断条件中添加 QFile::open 操作;去除没啥意义的 QTextStream,直接使用 QIODevice::readLine 读取文件第一行
2022-12-31 22:08:26 +08:00
09a5789c26 Merge branch 'dev' of gitee.com:uniartisan2018/spark-store into dev 2022-12-29 12:16:00 +08:00
fc658f324d fix: 检测UOS开发者模式 2022-12-29 12:15:04 +08:00
2861b0573b fix: 检测UOS开发者模式 2022-12-29 12:07:30 +08:00
2ab4ebc0e3 fix: 安装结束的错误判断 2022-12-28 12:31:15 +08:00
e344b16aa0 fix: 校验 serverlist 有效性 2022-12-27 10:54:30 +08:00
30b65350ca fix: 规范代码 2022-12-27 10:24:15 +08:00
0db8c8b1bb 更改文案:星火计划开发者
更改链接:GPL 3的链接更改到主仓库的LICENSE文件而不是GNU官网链接
2022-12-27 01:34:22 +08:00
9e25584bdc 更新翻译:去除“联盟” 2022-12-27 01:31:06 +08:00
ee6d6f145f 最后还是简单的等10s会比较容易 2022-12-27 01:15:07 +08:00
347f6e918f update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-26 15:52:40 +00:00
0fcbd15ab4 update: 4.1.2's changelog 2022-12-26 22:13:11 +08:00
6bdac50059 chore: 默认域名修改为cdn域名 2022-12-26 22:09:34 +08:00
f45b2af260 update: 更新翻译文件 2022-12-26 20:54:47 +08:00
d744c1d978 fix: e645c5e5 参数错误 2022-12-26 20:05:17 +08:00
0544761094 fix: 修复api重复申请内存的泄漏 2022-12-26 19:05:07 +08:00
e645c5e526 fix: 消除qt警告 2022-12-26 19:05:02 +08:00
d75fdd9f80 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-26 08:49:08 +00:00
30f74db0dc Merge branch 'dev' of https://gitee.com/deepin-community-store/spark-store into dev 2022-12-25 22:10:25 +08:00
2d0069ce18 更名为ssaudit 2022-12-25 22:09:42 +08:00
48b91d1887 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-25 14:06:21 +00:00
32cb3d7453 ssinstall禁止安装验证失败的包,审核转到使用ssinstall-audit 2022-12-25 22:00:19 +08:00
zty199
ba3071d62b chore: 去除关于窗口中文描述信息中多余引号
修改翻译文件

Log: 修改翻译文件;修正 debian/changelog 中格式错误(line 8)
2022-12-25 18:10:11 +08:00
zty199
dca80a3fbb fix: 修复配置文件写入位置异常问题
main.cpp 中通过 QStandardPaths 获取配置文件路径,此时未设置组织名称和程序名称,导致路径异常

Log:
1. main.cpp 中提前设置组织名称和程序名称,再读写配置文件
2. main.cpp 中提前检查配置文件所在文件夹是否存在,不存在则创建,再读写配置文件
3. 修复 main.cpp 中修改配置文件后没有写入的问题
4. 去除版本号中重复的 Version 字样(由关于窗口提供)
5. 修复关于窗口中组织图标显示为 deepin 的问题(已去除)
6. 修复 wayland 下窗口设置透明度相关警告(wayland 下禁用透明度动画)
7. 下载列表 wayland 下窗口标题添加翻译
2022-12-25 17:58:00 +08:00
f99c0839dd !178 fix: 修复主窗口关闭后,关于窗口没有自动关闭的问题
* 添加 Application 类,继承 DApplication,将 main 函数中设置属性、关于信息等操作移至 Application 构造函数中进行
* 1.1. 添加 setOrganizationName 操作,设置组织名称为 spark-union,与 SWRT 保持一致
* 1.2. 设置组织名称后,QStandardPaths::AppConfigLocation 等路径相应改变,修改所有配置文件和缓存文件路径(server.list/config.ini 等)
* 1.3. 关于对话框设置父对象后,对话框背景色受主窗口样式表影响,移动部分控件样式表设置方式与位置
* 修复关于窗口不显示组织 Logo 的问题,补充丢失的资源文件,整理资源文件
* 去除 .pro 文件中无效的更新翻译文件脚本调用,整理 .pro 文件,添加编译时更新 ts 文件脚本调用
* 继续修复偶现关闭客户端时崩溃问题(疑似 aria2c 进程未启动,pid 未初始化为随机值,执行 kill 操作时未判断导致)
* 修复进入详情页时焦点默认在分享链接按钮上的问题
* 暂时去除没有意义的 DBus 接口,使用 DGuiApplicationHelper::newProcessInstance 获取新进程的启动参数
* 更新翻译文件,去除已经不存在的翻译
2022-12-25 08:28:05 +00:00
8850cfd4a3 update dtk-build-release-tag-20220425.yml 2022-12-25 07:45:19 +00:00
bec8a14baf !177 将默认的README改为英文
Merge pull request !177 from shenmo/dev
2022-12-25 04:46:51 +00:00
1b9c925183 把默认的README改成英文 2022-12-25 12:43:51 +08:00
09221bc2e9 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-25 03:21:04 +00:00
98da0c22fc enhance: 规范代码行为 2022-12-24 10:29:55 +08:00
cadbb351fb enhance: 限制循环变量的作用范围 2022-12-24 10:04:40 +08:00
2de237ce83 fix: aptss ssupdate出错时不再锁死
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-24 10:04:40 +08:00
511fbaa0b0 update src/main.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-23 13:55:58 +00:00
a6d85b6ade update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-23 13:55:40 +00:00
5889ac3045 enhance: 下载列表新增 wayland 窗口标题 2022-12-23 18:42:19 +08:00
c1ba14bbd0 fix: 安装依赖缺失 2022-12-23 18:28:38 +08:00
7bdccc7783 Merge branch 'dev' of gitee.com:deepin-community-store/spark-store into dev 2022-12-23 18:12:36 +08:00
momen
3a54cba3e5 !176 让浏览器获取中文页面
* !1 enhanced: 判断系统语言,中文则修改请求头,请求中文网页
2022-12-23 10:12:18 +00:00
79463246fb fix: 修复编译依赖 2022-12-23 18:11:44 +08:00
cc8ff5eff2 enhance: 消除 c11 标准警告 2022-12-23 16:46:32 +08:00
613327b2cc fix: 修复非deepin的wayland环境下ui显示 2022-12-23 16:30:36 +08:00
8b31db843c fix: Wayland 在某些环境下错误识别为 dde 2022-12-23 16:30:36 +08:00
fd4fdbe970 format: 代码格式化 2022-12-23 12:13:48 +08:00
89a3ab0b4c feat: support wayland 2022-12-22 21:50:27 +08:00
0179c2f04f feat: wayland 2022-12-22 00:49:11 +08:00
8918e63484 !171 4.1.1-real
Merge pull request !171 from shenmo/dev
2022-12-21 16:18:05 +00:00
6d1fb80f0f update src/main.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-21 16:17:32 +00:00
4add78c6d7 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-21 16:17:19 +00:00
zty199
89c32013bf fix: 修复应用更新失败问题
zenity 处理多选框时,返回结果取值错误导致,获取值实际为已安装版本号,而不是包名

Log: 修改 zenity 参数为 --print-column=2 获取包名
2022-12-21 23:57:06 +08:00
zty199
8f7ce54584 fix: 修复检查到应用更新没有系统通知的问题
错误地把 sudo 改为了 su(su $USER -c xxxxxx)

Log: 还原为 sudo -u $USER xxxxxx
2022-12-21 05:59:10 +00:00
65f3114078 !168 4.1.0
Merge pull request !168 from shenmo/dev
2022-12-21 05:31:36 +00:00
00386c7aeb 修复文案 2022-12-21 13:22:41 +08:00
zty199
3a89394838 fix: 修复可更新应用列表为空时仍然弹出选择应用更新对话框的问题
获取可更新应用列表后直接赋值给 zenity 处理,未对列表为空进行处理

Log: 获取可更新应用列表后,若列表为空则退出;不为空再交给 zenity 处理
2022-12-21 12:09:59 +08:00
a3f3a9153a 仍然有点小问题的更新检测 2022-12-21 09:24:59 +08:00
cc582da96b !167 4.0.1 优化Ubuntu
Merge pull request !167 from shenmo/dev
2022-12-20 02:18:57 +00:00
d5877ffe00 ubuntu 优化显示 2022-12-20 10:17:53 +08:00
58f590560e !166 4.0 代号:Flamescion
Merge pull request !166 from shenmo/dev
2022-12-19 11:04:38 +00:00
f636b82f02 4.0Flamescion 2022-12-19 18:54:36 +08:00
877c3aafd1 正式版 2022-12-19 18:52:37 +08:00
zty199
65c26f035b fix: ISSUE #I66334 安装结束后仍显示 Installing
DownloadItem::install 中 finished 信号发送时间错误:安装操作被放入 QtConcurrent::run 中异步执行,发送信号在主线程中,安装未结束就发送了信号

Log: 调整信号发送位置至子线程中;AppIntoPage::isDownloading 中,若安装任务正在执行,需要 return,否则会出现安装后卸载再重新安装时,直接显示卸载按钮的问题
2022-12-19 17:38:41 +08:00
zty199
ba331cb3fb fix: ISSUE #I66N4Y 关闭动画播放时快速按Alt+F4可反复关闭动画而关不掉商店
动画执行标志位仅在动画结束后被置为不再执行,需要提前

Log: 修改 BaseWidgetOpacity::closeEvent,动画开始执行就修改标志位
2022-12-19 10:55:03 +08:00
zty199
27c95991c5 fix: 修复窗口关闭时崩溃问题
DownloadListWidget 析构时未对 downloadController 指针判空,直接调用 downloadController->stopDownload() 空指针导致崩溃

Log: DownloadListWidget 析构时对 downloadController 指针添加判断
2022-12-19 10:49:53 +08:00
ffd31445b9 !165 4.0.0.3
Merge pull request !165 from shenmo/Framescion
2022-12-19 02:11:26 +00:00
02fd887116 cmake-patch: 更新补丁用于支持 BaseWidgetOpacity 基础类的构建内容
此补丁包含以下内容:
 .gitignore                           |   34 ++++
 CMakeLists.txt                       |   93 ++++++++++
 Makefile                             |   60 ++++++
 assets/spark.png                     |  Bin
 cmake/DebPackageConfig.cmake         |  327 ++++++++++++++++++++++++++++++++++
 cmake/SparkAppimageConfig.cmake      |  133 ++++++++++++++
 cmake/SparkBuildGraphviz.cmake       |    8 +
 cmake/SparkDesktopMacros.cmake       |   35 ++++
 cmake/SparkEnvConfig.cmake           |    8 +
 cmake/SparkFindDtkConfig.cmake       |   11 +
 cmake/SparkFindLibraries.cmake       |    7 +
 cmake/SparkFindQt5Config.cmake       |  154 ++++++++++++++++
 cmake/SparkFindQt6Config.cmake       |   24 ++
 cmake/SparkInstallMacrosConfig.cmake |  132 ++++++++++++++
 cmake/SparkMacrosConfig.cmake        |  129 +++++++++++++
 cmake/SparkMacrosExtendConfig.cmake  |  197 ++++++++++++++++++++
 cmake/SparkTranslatorConfig.cmake    |   27 +++
 cmake/linuxdeployqt-help             |   48 +++++
 cmake/package-deb.descript           |   45 +++++
 cmake/spark-appimage.desktop.in      |    9 +
 cmake/spark-desktop.desktop.in       |   11 +
 Makefile                             |   16 ++
 cmake/DebPackageConfig.cmake         |    8 -
 DOCS/spark-cmake-build-system.md     |  301 +++++++++++++++++++++++++++++++
 CMakeLists.txt                       |    1
 cmake/SparkFindQt5Config.cmake       |    4
 CMakeLists.txt                       |    4
 27 files changed, 1818 insertions(+), 8 deletions(-)
2022-12-19 03:00:25 +08:00
fd3df91017 docs: 添加有关 src 下内容的改进,与"描述主体结构预览"文档的编写规范说明 2022-12-19 02:49:36 +08:00
c9d0c8b751 repo: 添加 BaseWidgetOpacity 基础类来实现继承者的淡出动画来代替主窗口的实现
BaseWidgetOpacity 是一个提供了淡出/淡入动画的基础类

1. closeEvent 窗口关闭时进行淡出动画
    此前在 MainWindow 中实现的淡出动画将由 BaseWidgetOpacity 来实现。

    此前 MainWindow 原有的 DBlurEffectWidget 父类将移交至 BaseWidgetOpacity 继承。

注意:
    如果 MainWindow 在未来重写 closeEvent 事件时将可能丢失 BaseWidgetOpacity 中的淡出效果
2022-12-19 02:47:38 +08:00
adf9032897 fix:商店点击刷新线路之后未默认选中首位 2022-12-18 13:46:55 +08:00
2c1679d0af fix:商店点击刷新线路之后未默认选中首位 2022-12-18 13:03:54 +08:00
95f9806c1c update .workflow/dtk-build-commit-20220425.yml.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-17 01:24:39 +00:00
252d2f491d 更新链接 2022-12-16 21:28:33 +08:00
e2f6d97f94 改为使用全新Web接口 2022-12-16 14:01:12 +08:00
48fd79e9be fix:商店更换线路的选项无效,点击刷新线路之后未默认选中首位 2022-12-15 22:31:00 +08:00
07eb9493cb cmake-patch: 更新补丁用于支持 Qt5 Svg 依赖的构建内容
此补丁包含以下内容:
 .gitignore                           |   34 ++++
 CMakeLists.txt                       |   93 ++++++++++
 Makefile                             |   60 ++++++
 assets/spark.png                     |  Bin
 cmake/DebPackageConfig.cmake         |  327 ++++++++++++++++++++++++++++++++++
 cmake/SparkAppimageConfig.cmake      |  133 ++++++++++++++
 cmake/SparkBuildGraphviz.cmake       |    8 +
 cmake/SparkDesktopMacros.cmake       |   35 ++++
 cmake/SparkEnvConfig.cmake           |    8 +
 cmake/SparkFindDtkConfig.cmake       |   11 +
 cmake/SparkFindLibraries.cmake       |    7 +
 cmake/SparkFindQt5Config.cmake       |  154 ++++++++++++++++
 cmake/SparkFindQt6Config.cmake       |   24 ++
 cmake/SparkInstallMacrosConfig.cmake |  132 ++++++++++++++
 cmake/SparkMacrosConfig.cmake        |  129 +++++++++++++
 cmake/SparkMacrosExtendConfig.cmake  |  197 ++++++++++++++++++++
 cmake/SparkTranslatorConfig.cmake    |   27 +++
 cmake/linuxdeployqt-help             |   48 +++++
 cmake/package-deb.descript           |   45 +++++
 cmake/spark-appimage.desktop.in      |    9 +
 cmake/spark-desktop.desktop.in       |   11 +
 Makefile                             |   16 ++
 cmake/DebPackageConfig.cmake         |    8 -
 DOCS/spark-cmake-build-system.md     |  301 +++++++++++++++++++++++++++++++
 CMakeLists.txt                       |    1
 cmake/SparkFindQt5Config.cmake       |    4
 26 files changed, 1815 insertions(+), 7 deletions(-)
2022-12-15 20:10:34 +08:00
217b299a67 update tool/ssinstall.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-15 12:04:37 +00:00
9738c41bb9 patch: 为星火商店提交一个基础的 cmake 构建补丁
此补丁包含以下内容:
 .gitignore                           |   34 ++++
 CMakeLists.txt                       |   93 ++++++++++
 Makefile                             |   60 ++++++
 assets/spark.png                     |  Bin
 cmake/DebPackageConfig.cmake         |  327 ++++++++++++++++++++++++++++++++++
 cmake/SparkAppimageConfig.cmake      |  133 ++++++++++++++
 cmake/SparkBuildGraphviz.cmake       |    8 +
 cmake/SparkDesktopMacros.cmake       |   35 ++++
 cmake/SparkEnvConfig.cmake           |    8 +
 cmake/SparkFindDtkConfig.cmake       |   11 +
 cmake/SparkFindLibraries.cmake       |    7 +
 cmake/SparkFindQt5Config.cmake       |  154 ++++++++++++++++
 cmake/SparkFindQt6Config.cmake       |   24 ++
 cmake/SparkInstallMacrosConfig.cmake |  132 ++++++++++++++
 cmake/SparkMacrosConfig.cmake        |  129 +++++++++++++
 cmake/SparkMacrosExtendConfig.cmake  |  197 ++++++++++++++++++++
 cmake/SparkTranslatorConfig.cmake    |   27 +++
 cmake/linuxdeployqt-help             |   48 +++++
 cmake/package-deb.descript           |   45 +++++
 cmake/spark-appimage.desktop.in      |    9 +
 cmake/spark-desktop.desktop.in       |   11 +
 Makefile                             |   16 ++
 cmake/DebPackageConfig.cmake         |    8 -
 DOCS/spark-cmake-build-system.md     |  301 +++++++++++++++++++++++++++++++
 24 files changed, 1812 insertions(+), 5 deletions(-)
2022-12-15 15:35:19 +08:00
e17c50d396 fix:安装结束后仍显示Installing 2022-12-15 14:55:46 +08:00
795c3308d3 修改翻译 2022-12-15 14:47:56 +08:00
f026844dba 更新部分翻译 2022-12-14 08:56:25 +08:00
1a05ad05aa update dtk-build-release-tag-20220425.yml 2022-12-13 14:21:46 +00:00
9c91d0a5a0 400t2 公测准备 2022-12-13 21:47:09 +08:00
a27c8b9ace fix:下载取消后下载进度仍然在widget中显示 2022-12-13 21:37:40 +08:00
68d91f71ba 应用详情页添加版本号 2022-12-13 21:30:30 +08:00
fca2086d9f 修复取消下载导致闪退 2022-12-13 21:17:51 +08:00
83ee212484 重写下载按钮逻辑 2022-12-13 20:32:39 +08:00
922cb6a34f fix:应用商店退出时,aria2c仍然在运行 2022-12-13 19:37:46 +08:00
eb00159691 fix:Appinfo界面信息无法复制 2022-12-13 19:25:52 +08:00
3b18fc94b5 将下载按钮更新为自绘按钮 2022-12-13 19:00:36 +08:00
375243503f Merge remote-tracking branch 'refs/remotes/origin/dev' into dev 2022-12-13 18:28:48 +08:00
9b31040efd ssinstall支持相对路径 2022-12-13 18:28:24 +08:00
ac5d86db92 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-13 09:53:50 +00:00
86f270eca9 修复进度条过长 2022-12-13 17:23:34 +08:00
f5bb95da12 修复左侧边栏样式错误 2022-12-13 17:18:10 +08:00
eadc8dd875 修改: translations/spark-store_zh_CN.ts 2022-12-13 17:13:25 +08:00
91b628e7a6 installation complete 翻译
现在使用AppName来提示
2022-12-13 17:12:41 +08:00
6bd8fc7a1e 修改限制单例运行,再次启动时拉起现有实例 2022-12-13 14:54:59 +08:00
c2e665ecb6 修复英文状态下左侧边栏文字不对齐 2022-12-13 14:52:07 +08:00
50cf537e1d 安装完成通知加上应用名 2022-12-13 14:40:55 +08:00
0f0a5795af Merge remote-tracking branch 'upstream/dev' into dev 2022-12-13 12:53:15 +08:00
09f96d596a fix: 超时时间错误 2022-12-13 12:52:45 +08:00
a2cb7ef112 需求:在安装结束后将安装状态发送系统通知 2022-12-13 12:43:58 +08:00
2ed2512d6c fix:设置界面点击链接仍无效,邮箱文案附近出现未被解析的html标签 2022-12-13 12:40:20 +08:00
d720d0670d fix:下载的进度条仍然过长 2022-12-13 12:36:28 +08:00
da2c019da0 fix:点击取消下载 仍然会有系统通知提示下载完毕 2022-12-13 12:34:48 +08:00
ce8c058265 更新翻译 2022-12-13 10:23:37 +08:00
7f3eadf3a7 更新文案 2022-12-12 21:47:52 +08:00
44ea6755f9 fix:4.0 bug 在设置界面意义不明的文案 2022-12-12 21:37:29 +08:00
9df0e3a3b3 去除安装按钮的子菜单 2022-12-12 21:33:41 +08:00
13550ebbec 修复由于翻译不正确引起的关于页面bug 2022-12-12 21:30:40 +08:00
077034b1d6 fix:4.0 开始自动安装时安装按钮仍然存在 2022-12-12 21:13:28 +08:00
ac21f67030 fix:4.0 安装结束后的Info按钮的中文翻译应当为:详情,而不是信息 2022-12-12 21:10:55 +08:00
292d4aa5c9 fix: 清除网页缓存未生效 2022-12-12 17:36:12 +08:00
fb4d78ce1d 修复下载量统计超时 2022-12-12 16:23:41 +08:00
ad25606ef9 新增文案提示用户发生了什么 2022-12-12 16:20:01 +08:00
6ace772a09 修改发送邮件的等待时间 2022-12-12 16:08:30 +08:00
bfc68fbf6f 修复下载按钮状态未重置 2022-12-12 15:49:41 +08:00
e2c9f1100d 修改: debian/spark-store.postinst 2022-12-12 15:43:23 +08:00
77c2e2ebc8 changelog-400t1 2022-12-12 15:30:03 +08:00
eb06f33269 修复 2022-12-12 15:28:12 +08:00
e2c8eb79a0 添加下载完成后自动安装 2022-12-12 15:26:15 +08:00
c825e4b39c 修改文案 2022-12-12 15:23:48 +08:00
79d12f2409 安全的免密码安装 2022-12-12 15:11:48 +08:00
382b2de5ca 更新翻译 2022-12-12 14:36:33 +08:00
0fea4c13ef 添加多个通知,修复下载进度条过长问题 2022-12-12 14:34:29 +08:00
ff84576aab 更改文案 2022-12-12 12:19:38 +08:00
2b2ebc111e 更新翻译 2022-12-12 12:15:55 +08:00
20fc6f5a77 update src/main.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-12 04:00:46 +00:00
83bfb8dfd5 解决依赖没有删除完全导致构建失败问题 2022-12-12 11:52:46 +08:00
db5b85db7d 去除无用依赖 2022-12-11 20:53:35 +08:00
271a7e33f4 添加chatGPT帮忙写的通知推送 2022-12-11 20:40:01 +08:00
478db77d36 点击侧边栏按钮时清空搜索框 2022-12-11 19:28:25 +08:00
a787745752 设置中添加QQ群号,链接改为可点击,搜索后关键词不清空 2022-12-11 19:21:45 +08:00
758b752d6e 修复重新安装按钮文案错误 2022-12-11 18:54:00 +08:00
60ed4c5aff 添加重新安装按钮 2022-12-11 18:41:19 +08:00
2d3366990a feat: 增加主程序退出动画 2022-12-11 18:25:30 +08:00
b63ae13a3e fix shebang 2022-12-11 18:13:03 +08:00
6ff58adffa 左侧边栏加入更新按钮 2022-12-11 18:10:36 +08:00
f948c8905a 添加浏览器GPU支持,编译时间获取,关于窗口修改,启动时窗口居中显示 2022-12-11 17:55:27 +08:00
a31f724b65 修复翻译异常与应用详细页文字过长时显示不完整的问题 2022-12-11 17:47:31 +08:00
8c9c2fcf11 修复非DDE环境下透明度过高的问题 2022-12-11 17:31:10 +08:00
e251616129 update .workflow/dtk-build-commit-20220425.yml.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-11 09:27:16 +00:00
6655e14b6c 构建同步到master
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-11 09:26:37 +00:00
柚子
b3aa2036f8 删除文件 Makefile 2022-12-11 09:22:45 +00:00
8ad1156e3c 修复返回键出现错误问题 2022-12-11 12:02:26 +08:00
b5495fa66e !4 make: 添加快速构建脚本,对 VSCode 用户友好
Merge pull request !4 from zinface/makefile-script
2022-12-11 02:11:09 +00:00
333a1168d4 添加应用详情页下载量显示 2022-12-11 02:05:34 +08:00
8a54dd92a3 添加dbus功能 2022-12-11 01:19:59 +08:00
ae1c50893d 菜单中添加投稿器,更新等 2022-12-11 01:06:52 +08:00
dd0605d0ba 应用详情页添加分享和请求更新按钮,设置页面添加更新客户端和清理缓存、读取缓存大小功能 2022-12-11 01:03:13 +08:00
0817901a59 添加下载列表为空时的提示 2022-12-11 00:29:51 +08:00
e171904a34 抽象出控件动画类 2022-12-11 00:17:09 +08:00
abd0e47c69 make: 添加快速构建脚本,对 VSCode 用户友好
此部分对 VSCode 用户友好,并提供一些可扩展的操作
1. make 时将创建 build 目录并使用 qmake 构建(核心数为机器最大核心数)
2. make run 时将运行此程序(程序构建位置将在: build/src/spark-store)
3. make package 用来提供产出包功能?
2022-12-10 23:16:22 +08:00
1c24079406 添加按下下载按钮时标题栏下载列表按钮抖动 2022-12-10 19:18:23 +08:00
67c0cbf27b fix: 修复一些bug 2022-12-10 13:22:54 +08:00
5cc34e7e3d 修复页面索引错位bug 2022-12-09 22:19:20 +08:00
98cf333386 添加服务器url配置功能 2022-12-09 21:27:01 +08:00
562b582f72 添加设置页面 2022-12-09 19:07:22 +08:00
73917eeeb1 fix: 打包依赖增加g++ 2022-12-09 15:29:17 +08:00
c5913b4198 !1 feat: 增加主程序进入动画
* !1 update src/mainwindow-dtk.cpp.
* update src/mainwindow-dtk.cpp.
* feat: 增加主程序进入动画
2022-12-09 07:26:55 +00:00
c0e9815d9d 修复深色模式下顶栏的按钮未更新的bug 2022-12-09 15:15:48 +08:00
050fe964dd 深色主題寫好啦! 2022-12-09 15:13:41 +08:00
6981a4f476 更改应用详情页UI细节 2022-12-09 14:38:08 +08:00
e72d123a40 更新中文翻译 2022-12-09 13:49:28 +08:00
a10390a6e3 update changelog 2022-12-09 12:01:26 +08:00
3fecd41c4f 下载完成后自动更改按钮文案 2022-12-09 11:59:19 +08:00
f0604afcfc 同步3.5版本的更改 2022-12-09 11:59:04 +08:00
2ec4b1f4d4 4.0 2022-12-09 11:16:11 +08:00
fbffe12501 feat:搜索从网页加载 2022-12-08 22:44:34 +08:00
df7b49dbe2 fix: aria2指定dns,指定最大并发下载数 2022-12-08 17:51:18 +08:00
9d93966124 Merge remote-tracking branch 'upstream/dev' into dev 2022-12-08 17:46:20 +08:00
977b2ebdc9 update src/main.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-12-04 07:09:26 +00:00
28ed452bb0 * feat: aptss不再尝试安装apt-fast,转而自带
* chore:  删除password-check模块
2022-12-04 15:07:44 +08:00
512d86feac update: 更新aria2下载参数 2022-11-27 12:21:15 +08:00
8e1e0cea7a fix: minor updates 2022-11-26 19:33:20 +08:00
d2214114fb Merge remote-tracking branch 'upstream/dev' into dev 2022-11-26 19:27:41 +08:00
c90232022e update src/main.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-11-26 09:27:43 +00:00
84a1554b4b !149 333 feat feat: 首页链接调用浏览器打开
Merge pull request !149 from shenmo/master
2022-11-26 09:27:04 +00:00
71dbf9b958 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-11-26 09:22:56 +00:00
9d12086f09 !148 feat: 首页链接调用浏览器打开
Merge pull request !148 from zty199/auto-7392693-master-b04b4cba
2022-11-26 09:20:37 +00:00
zty199
54a55e15a9 feat: 首页链接调用浏览器打开
首页链接调用浏览器打开

Log: 使用自定义 WebEngineView 和 WebEnginePage 替代 QWebEngineView,重写 createWindow 方法,当页面存在新建窗口或标签页动作时调用浏览器打开网址;修改 Widget UI 布局,在 page1 添加 QVBoxLayout,保证 WebEngineView 自动撑满布局,去除 webFoot 填充控件;更新翻译文件,添加“请勿频繁搜索”翻译文案,去除残留翻译
2022-11-26 17:14:48 +08:00
5385e2d1b1 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-11-26 08:50:41 +00:00
1e468ba774 fix: 邮件超时 2022-11-26 14:30:00 +08:00
25efce0017 !147 dev--->master:流水线准备优化,先行同步
Merge pull request !147 from shenmo/dev
2022-11-26 02:07:44 +00:00
707a2b5e4c !146 修正一些问题
Merge pull request !146 from Pluto/dev
2022-11-26 02:06:19 +00:00
b9121c13ab feat: 改进搜索动画 2022-11-26 02:20:17 +08:00
9c80179493 feat: 版本号新增编译时间 2022-11-25 22:29:23 +08:00
2a89135d1a fix: 指针未释放 2022-11-25 22:05:29 +08:00
b91e0142f4 bigimage: 对应用信息下的截图预览优化(#I62F4X) 2022-11-22 11:58:09 +08:00
55897e3cb9 update: 更新介绍 2022-11-20 20:23:45 +08:00
f17fcdfe85 feat: 跳转到反馈器 2022-11-20 20:00:14 +08:00
9046a3a965 fix: 只允许一个更新进程 2022-11-18 01:11:20 +08:00
1e72fcb7f2 !145 文案:修复换行
Merge pull request !145 from shenmo/dev
2022-11-17 14:48:33 +00:00
9007bdf3d3 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-11-17 14:48:13 +00:00
afd926ae4a update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-11-17 14:47:46 +00:00
4949d67852 !144 文案:添加RC入口
Merge pull request !144 from shenmo/dev
2022-11-17 14:46:44 +00:00
5f5d71fbd0 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-11-17 14:46:16 +00:00
9fd8f64195 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-11-17 14:45:25 +00:00
c32ffb7cd2 update .workflow/dtk-build-release-tag-20220425.yml.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-11-10 11:34:28 +00:00
af9217b1dc !143 333t4
Merge pull request !143 from shenmo/dev
2022-11-10 11:30:47 +00:00
93e218dd53 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-11-10 11:28:20 +00:00
4de32fa8a6 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-11-10 11:27:19 +00:00
2d59a61796 修改: debian/changelog
修改:     debian/spark-store.postinst
	修改:     src/main.cpp
2022-11-09 20:06:50 +08:00
7abdd90215 文案修改 update tool/update-upgrade/ss-do-upgrade.sh.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-11-08 13:45:24 +00:00
cbd594e217 !142 333t3
Merge pull request !142 from shenmo/dev
2022-10-28 13:45:08 +00:00
42b6a20c97 fix 菜单中进入更新列表失效 2022-10-28 21:43:57 +08:00
110adc995d 文案修改 2022-10-28 10:20:23 +08:00
cd6d0ac133 cmmit 2022-10-28 10:19:17 +08:00
568e73de07 文案修改 2022-10-28 09:58:17 +08:00
62c8841c50 aptss的download也使用ss-apt-fast 2022-10-28 09:55:48 +08:00
6fd611919b Now use ss-apt-fast as aptss backend 2022-10-28 09:08:21 +08:00
77a84785de !141 333t2
Merge pull request !141 from shenmo/dev
2022-10-27 16:58:38 +00:00
9969f4f2fc just in case有些用户没有找到QQ群.... 2022-10-28 00:57:02 +08:00
833a8ec14b version 2022-10-28 00:52:25 +08:00
dd679f3f26 333t2推仓库 2022-10-28 00:50:31 +08:00
5411a832dc fix:更新和检查更新出错时不报错 2022-10-28 00:48:53 +08:00
0aeadb5526 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-27 13:14:10 +00:00
91fd97b878 修改文案:检查更新 2022-10-27 10:37:51 +08:00
f2cf344f62 polkit文件 2022-10-26 16:01:55 +08:00
8d84e433a6 zenity 不再以root启动 2022-10-26 15:43:43 +08:00
a6e9dac2f9 没啥用,又加回来了 2022-10-24 09:22:07 +08:00
495ef3292e 更新提示超时时间增加到15 2022-10-24 09:15:04 +08:00
5900b3cdf3 feat:安装时不再需要网络
modify: 为了CI的构建速度,在构建依赖中不再依赖语言工具
2022-10-24 09:12:37 +08:00
e644214263 !140 3304 策略调整 选中的应用作为整体更新,降低服务器压力
Merge pull request !140 from shenmo/dev
2022-10-23 15:52:04 +00:00
2b76f5e202 3304 2022-10-23 23:50:16 +08:00
6fe06667eb !139 3303-real
Merge pull request !139 from shenmo/dev
2022-10-23 06:06:22 +00:00
f61e3a6ede 引号故障 2022-10-23 14:04:58 +08:00
bddbbcc2e8 !138 3303 暂时关闭实时输出,未找到禁止取消或关闭的方法
Merge pull request !138 from shenmo/dev
2022-10-23 05:58:42 +00:00
8310a59df8 微调样式 2022-10-23 13:58:32 +08:00
05cfdbb318 支持分应用显示正在更新 2022-10-23 13:42:32 +08:00
b5488b6c32 3303 2022-10-23 13:27:14 +08:00
6cec12be9d 3302 修复pkexec未执行 2022-10-23 13:06:03 +08:00
53f9746ebf 3301 推送 2022-10-23 10:21:59 +08:00
b68ef5aab1 !137 3301 sudo去除
Merge pull request !137 from shenmo/dev
2022-10-23 02:20:29 +00:00
c6daf5159c 去除sudo 2022-10-23 10:19:49 +08:00
b0453c7a8a !136 3101重大事故:更新系统修复
Merge pull request !136 from shenmo/dev
2022-10-23 02:15:44 +00:00
c7ee32a452 pkexec 修复 2022-10-23 10:10:55 +08:00
e1d25e401f update debian/spark-store.preinst.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-22 08:19:33 +00:00
6b78dce87e !135 体验优化:更新时添加进度条
Merge pull request !135 from shenmo/dev
2022-10-21 09:47:49 +00:00
e5a198e1d8 添加升级应用时的进度条 2022-10-21 17:46:20 +08:00
1780110e33 !134 330
Merge pull request !134 from shenmo/dev
2022-10-21 09:28:29 +00:00
19901b0d7d update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-21 09:28:06 +00:00
d24af0461b update src/main.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-21 09:27:05 +00:00
31a574ec8b !133 feat: 侧边栏更新管理器
Merge pull request !133 from Pluto/dev
2022-10-21 09:26:27 +00:00
3feae61b1b feat: 更新管理器
change: 翻译
2022-10-21 17:20:57 +08:00
eaf65a326c update tool/update-upgrade/ss-do-upgrade.sh.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-21 08:49:18 +00:00
13da2bc441 update tool/update-upgrade/ss-do-upgrade.sh.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-21 08:47:41 +00:00
5420bad0ee 默认免密码查看可更新应用 2022-10-21 14:56:31 +08:00
8465c9ad2d 全部改为zenity 2022-10-21 14:43:15 +08:00
5562e2b5d1 fix:不正确地跳过unhold 2022-10-21 13:59:43 +08:00
a09425f361 符号错误修正 2022-10-21 13:46:23 +08:00
18db530c0d zenity依赖加入 2022-10-21 13:30:21 +08:00
03263edf8c 更新系统zenity,适配apt-mark hold 2022-10-21 13:28:34 +08:00
cd13a1ce08 !132 merge and start develop zenity
Merge pull request !132 from shenmo/dev
2022-10-21 03:03:18 +00:00
1c5f31da6f fix: 左侧菜单字体大小变化 2022-10-20 21:13:59 +08:00
cafb4d1dfe !131 版本号 GUI
Merge pull request !131 from shenmo/dev
2022-10-19 15:15:00 +00:00
828f1a0f05 update src/main.cpp.
版本号

Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-19 15:14:38 +00:00
b03795e364 !130 324正式
Merge pull request !130 from shenmo/dev
2022-10-19 14:54:19 +00:00
c54c13d822 modified: debian/changelog 2022-10-17 18:33:49 +08:00
fdc9550100 tag相关文案修改 2022-10-17 18:31:46 +08:00
458cc49302 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-15 14:26:04 +00:00
e11afad89b !129 反向同步进度
Merge pull request !129 from shenmo/master
2022-10-15 14:25:37 +00:00
43ae031131 !128 增加dbus
Merge pull request !128 from depend/dev
2022-10-15 12:03:18 +00:00
dd6780d636 增加dbus文件,再次启动的时候会唤起第一个进程
并且处理spark打开
2022-10-15 19:55:19 +08:00
42368a0245 !127 转扁平化为正常合入,添加依赖libssl-dev
Merge pull request !127 from shenmo/dev
2022-10-13 16:04:52 +00:00
8ca0035107 根据 https://www.deepinos.org/d/1076-ubuntu2204/3 修改
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-13 16:03:40 +00:00
10332c59e0 !126 324t3发版
* 3.2.4~test3
* 	修改:     debian/changelog
* !125 fix: 对oss进行URL转译
* Merge remote-tracking branch 'upstream/dev' into dev
* fix: 对oss进行URL转译
* !124 fix: 安装时可能出现的超时错误
* update debian/changelog.
* update src/widget.cpp.
* Merge remote-tracking branch 'upstream/dev' into dev
* update debian/changelog.
* Merge remote-tracking branch 'upstream/dev' into dev
* fix: 超时错误
* update README.zh.md.
* update README.md.
* update README.zh.md.
* update debian/changelog.
* !123 feat: 投稿器
* feat: 投稿器
* !122 fix:gpu 参数
* fix: chrome GPU 参数
* Merge remote-tracking branch 'upstream/dev' into dev
* 修复错误的配置文件
* 改为读取/etc
* update debian/changelog.
* UOS 走普通的aptss,aptss支持UOS源
* 更新时不再清除免密码安装设置
* !121 反向同步
* fix
* Merge remote-tracking branch 'upstream/dev' into dev
* fix: high CPU usage because futex is still waiting for queue after illegal exit
* Merge remote-tracking branch 'upstream/master' into dev
* Merge remote-tracking branch 'upstream/dev' into dev
* feat: enable GPU
* Merge remote-tracking branch 'upstream/dev' into dev
* Merge branch 'dev' of gitee.com:uniartisan2018/spark-store into dev
* feat: 清除网页缓存
* 文案修改
* update src/widget.ui.
* feat: 星火应用商店检测更新
2022-10-12 14:08:21 +00:00
09a1c9f710 3.2.4~test3 2022-10-12 22:08:08 +08:00
ba29c4171c 修改: debian/changelog
修改:     translations/spark-store_en.ts
	修改:     translations/spark-store_fr.ts
	修改:     translations/spark-store_zh_CN.ts
2022-10-12 22:06:30 +08:00
3b9dde23e7 !125 fix: 对oss进行URL转译
Merge pull request !125 from Pluto/dev
2022-10-12 10:59:23 +00:00
746e9bd3d6 Merge remote-tracking branch 'upstream/dev' into dev 2022-10-12 09:31:38 +08:00
d7f0ee983b fix: 对oss进行URL转译 2022-10-12 09:31:23 +08:00
3feec88f7b !124 fix: 安装时可能出现的超时错误
Merge pull request !124 from Pluto/dev
2022-10-09 11:11:25 +00:00
c0ffb64a86 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-09 11:01:55 +00:00
8c08b7e995 update src/widget.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-09 10:41:48 +00:00
4d7e766d75 Merge remote-tracking branch 'upstream/dev' into dev 2022-10-09 18:37:01 +08:00
09115c3961 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-09 10:36:31 +00:00
63998bbce4 Merge remote-tracking branch 'upstream/dev' into dev 2022-10-09 18:36:31 +08:00
967f62f825 fix: 超时错误 2022-10-09 18:36:22 +08:00
e8ae0325e0 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-08 16:13:33 +00:00
66a4563b51 update README.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-08 16:12:59 +00:00
330ae3eeb8 update README.zh.md.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-08 16:12:00 +00:00
0534c39ee5 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-08 15:45:37 +00:00
04047c1e44 !123 feat: 投稿器
* feat: 投稿器
2022-10-08 15:38:55 +00:00
5e501b9d17 feat: 投稿器 2022-10-08 23:27:35 +08:00
5a434a9b7d !122 fix:gpu 参数
Merge pull request !122 from Pluto/dev
2022-10-08 14:41:43 +00:00
e554aec98d fix: chrome GPU 参数 2022-10-08 22:24:16 +08:00
ab0f5e6613 Merge remote-tracking branch 'upstream/dev' into dev 2022-10-08 22:20:46 +08:00
59607f6b34 修复错误的配置文件
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-08 14:08:30 +00:00
a13f0ddcb7 改为读取/etc
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-08 13:47:00 +00:00
fec604b481 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-10-08 03:22:12 +00:00
085eddd66f UOS 走普通的aptss,aptss支持UOS源 2022-10-07 22:31:24 +08:00
30860802dd 更新时不再清除免密码安装设置 2022-09-30 11:27:22 +08:00
30f36ff35d !121 反向同步
Merge pull request !121 from shenmo/master
2022-09-27 12:15:32 +00:00
lisuke
81993625ba !120 添加编译依赖 fakeroot
* 添加 fakeroot 依赖
2022-09-27 12:14:48 +00:00
87b68aca1e !119 323版本 降低dtk版本
Merge pull request !119 from shenmo/dev
2022-09-27 01:53:24 +00:00
10125c5816 update src/main.cpp.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-09-27 01:49:01 +00:00
21d33ec347 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-09-27 01:48:34 +00:00
ad57aa26ff 降低dtk需求版本
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-09-27 01:34:48 +00:00
8902c81b9e !118 fix: high CPU usage because futex is still waiting for queue after illegal exit
* fix
* Merge remote-tracking branch 'upstream/dev' into dev
* fix: high CPU usage because futex is still waiting for queue after illegal exit
* Merge remote-tracking branch 'upstream/master' into dev
* Merge remote-tracking branch 'upstream/dev' into dev
* feat: enable GPU
* !113 3.2.1 merge
* !112 Now stop use mail to collect info
* Merge remote-tracking branch 'upstream/dev' into dev
* Merge branch 'dev' of gitee.com:uniartisan2018/spark-store into dev
* feat: 清除网页缓存
* 文案修改
* update src/widget.ui.
* feat: 星火应用商店检测更新
2022-09-27 01:34:18 +00:00
0ad4b6c82c fix 2022-09-26 23:53:28 +08:00
189a0b4939 Merge remote-tracking branch 'upstream/dev' into dev 2022-09-26 23:46:34 +08:00
c65d7b86df fix: high CPU usage because futex is still waiting for queue after illegal exit 2022-09-26 23:46:25 +08:00
e269e6ca57 !116 3.2.2 合并
Merge pull request !116 from shenmo/dev
2022-09-21 18:37:02 +00:00
aff593eba8 !115 3.2.2 启动
* update debian/changelog.
* download可无root运行,相应的,不会自动到最新
* !114 feat: GPU enable
* aptss will now refresh the system source before doing install, downloa…
2022-09-20 04:12:29 +00:00
beaeac60a3 update debian/changelog.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-09-20 04:11:58 +00:00
11d68fb4b5 download可无root运行,相应的,不会自动到最新
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-09-20 04:05:25 +00:00
e7680fe2a0 !114 feat: GPU enable
* Merge remote-tracking branch 'upstream/master' into dev
* Merge remote-tracking branch 'upstream/dev' into dev
* feat: enable GPU
* !113 3.2.1 merge
* !112 Now stop use mail to collect info
* Merge remote-tracking branch 'upstream/dev' into dev
* Merge branch 'dev' of gitee.com:uniartisan2018/spark-store into dev
* feat: 清除网页缓存
* 文案修改
* update src/widget.ui.
* feat: 星火应用商店检测更新
2022-09-20 04:03:09 +00:00
19dff7fb56 Merge remote-tracking branch 'upstream/master' into dev 2022-09-20 11:55:54 +08:00
67b314d0d2 Merge remote-tracking branch 'upstream/dev' into dev 2022-09-20 11:55:40 +08:00
63b28adaf8 feat: enable GPU 2022-09-20 11:55:36 +08:00
8741973cca aptss will now refresh the system source before doing install, download, policy....etc 2022-09-19 17:58:00 +08:00
8e3787ab07 !113 3.2.1 merge
Merge pull request !113 from shenmo/dev
2022-09-18 13:17:11 +00:00
f7d07e0bf9 !112 Now stop use mail to collect info
* Now abandon mail info collect method and delete the outdated info
2022-09-11 12:24:26 +00:00
9e4df5c5c2 !111 feat: 清除QtWebCore的缓存
* Merge remote-tracking branch 'upstream/dev' into dev
* Merge branch 'dev' of gitee.com:uniartisan2018/spark-store into dev
* feat: 清除网页缓存
* 文案修改
* update src/widget.ui.
* feat: 星火应用商店检测更新
2022-09-03 09:25:19 +00:00
829a08d40a Merge remote-tracking branch 'upstream/dev' into dev 2022-09-02 19:28:05 +08:00
411bbe5935 Merge branch 'dev' of gitee.com:uniartisan2018/spark-store into dev 2022-09-02 19:25:27 +08:00
5d5fbfbad4 feat: 清除网页缓存 2022-09-02 19:24:45 +08:00
af89e64478 !110 检测更新
* 文案修改
* update src/widget.ui.
* feat: 星火应用商店检测更新
2022-08-31 17:50:24 +00:00
c93c221cf1 文案修改 2022-09-01 01:47:38 +08:00
afee0966c8 update src/widget.ui.
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2022-08-31 17:44:46 +00:00
2df5363c2c feat: 星火应用商店检测更新 2022-09-01 01:39:09 +08:00
971a5dcc63 安装时删除已有的源 2022-09-01 00:40:16 +08:00
a252e7b724 3.2.1 更新源服务器改为aptss 2022-09-01 00:29:37 +08:00
d3987a20ec !108 在检测更新时临时降低优先级到100,防止系统中有且版本一致的包被反复来回更新
* changelog更新
* 修复界面中显示的更新检测服务是否启动不正确
* 在检测更新时临时降低优先级到100,防止系统中有且版本一致的包被反复来回更新
2022-08-29 17:58:39 +00:00
932e754b88 !107 修改: debian/changelog
* 	修改:     debian/changelog
* ssupdate不再更新cache,防止ssinstall出错率
2022-08-29 17:32:05 +00:00
72a771b0f1 !106 界面细节修改,提升下载量的瞩目 补充changelog 准备发320测试
Merge pull request !106 from shenmo/auto-4915358-master-984782a5
2022-08-29 17:01:12 +00:00
b75fbe5674 界面细节修改,提升下载量的瞩目
补充changelog
准备发320测试
2022-08-30 01:00:06 +08:00
6617522a7c !105 cdn
Merge pull request !105 from Pluto/dev
2022-08-29 16:06:31 +00:00
1733d9853d feat: cdn 2022-08-29 23:57:08 +08:00
55c6c13e50 fix: 图片服务器逻辑 2022-08-29 22:50:03 +08:00
9c2f326268 !104 修复错别字 修复spk
* 修复错别字
2022-08-29 14:08:26 +00:00
b1a6f79961 fix: 拼写错误 2022-08-29 21:06:17 +08:00
1561d511d1 Merge remote-tracking branch 'upstream/master' into dev 2022-08-29 21:05:45 +08:00
2d2b431df7 !103 feat: 下载量统计
* Merge remote-tracking branch 'upstream/master' into dev
* feat: 下载量
* fix: spk 搜索问题
* fix: 修复依赖问题
* feat: 统计下载量
* Merge remote-tracking branch 'upstream/master' into dev
* feat: sender-d
* Merge remote-tracking branch 'upstream/master' into dev
* Merge remote-tracking branch 'upstream/master' into dev
* fix: enhance download speed
* feat: 从所有镜像源中选取最快镜像源高速下载
* Merge remote-tracking branch 'upstream/master' into dev
* fix: 不再使用http头请求文件大小
* Merge remote-tracking branch 'upstream/master' into dev
* feature: metalink backhend
* Merge remote-tracking branch 'upstream/master' into dev
* Merge remote-tracking branch 'upstream/master' into dev
* fix: 忽略系统原有aria2配置文件
* fix: waitforfinished
2022-08-29 12:53:49 +00:00
c87272b463 Merge remote-tracking branch 'upstream/master' into dev 2022-08-29 20:28:59 +08:00
da632d41e7 feat: 下载量 2022-08-29 20:20:10 +08:00
96b0f0f2be fix: spk 搜索问题 2022-08-29 20:19:42 +08:00
8a7d09b716 fix: 修复依赖问题 2022-08-29 17:26:27 +08:00
fcdcd84462 !101 feat: 统计下载量
* feat: 统计下载量
* Merge remote-tracking branch 'upstream/master' into dev
* feat: sender-d
* Merge remote-tracking branch 'upstream/master' into dev
* Merge remote-tracking branch 'upstream/master' into dev
* fix: enhance download speed
* feat: 从所有镜像源中选取最快镜像源高速下载
* Merge remote-tracking branch 'upstream/master' into dev
* fix: 不再使用http头请求文件大小
* Merge remote-tracking branch 'upstream/master' into dev
* feature: metalink backhend
* Merge remote-tracking branch 'upstream/master' into dev
* Merge remote-tracking branch 'upstream/master' into dev
* fix: 忽略系统原有aria2配置文件
* fix: waitforfinished
2022-08-29 08:32:02 +00:00
8f63b58062 feat: 统计下载量 2022-08-29 16:12:37 +08:00
2c8d38a0da Merge remote-tracking branch 'upstream/master' into dev 2022-08-29 15:48:17 +08:00
807777e3dc 3.2
混淆过的.c文件
2022-08-29 15:44:22 +08:00
86a9e66e29 feat: sender-d 2022-08-29 15:40:15 +08:00
15938d0da4 Merge remote-tracking branch 'upstream/master' into dev 2022-08-29 14:50:15 +08:00
1331c369ad update dtk-build-release-tag-20220425.yml 2022-08-29 03:03:23 +00:00
d5182c760b update dtk-build-release-tag-20220425.yml 2022-08-25 15:34:27 +00:00
f9dc1cd09d !100 测试 tag
* update .workflow/dtk-build-release-tag-20220425.yml.
2022-08-25 15:22:17 +00:00
230c860d91 !99 3160 版本推送
* 	修改:     debian/changelog
2022-08-24 23:20:48 +00:00
69f2d6e626 !98 fix: enhance download speed
* Merge remote-tracking branch 'upstream/master' into dev
* fix: enhance download speed
* feat: 从所有镜像源中选取最快镜像源高速下载
* Merge remote-tracking branch 'upstream/master' into dev
* fix: 不再使用http头请求文件大小
* Merge remote-tracking branch 'upstream/master' into dev
* feature: metalink backhend
* Merge remote-tracking branch 'upstream/master' into dev
* Merge remote-tracking branch 'upstream/master' into dev
* fix: 忽略系统原有aria2配置文件
* fix: waitforfinished
2022-08-24 23:08:05 +00:00
6b560492e8 Merge remote-tracking branch 'upstream/master' into dev 2022-08-24 18:39:38 +08:00
8886016357 fix: enhance download speed 2022-08-24 18:37:08 +08:00
9a74368ef5 !97 3.1.5-5 版本号确认
* 3155
* update debian/changelog.
2022-08-24 08:41:17 +00:00
cf5e1cae76 !96 feat: 从所有镜像源中选取最快镜像源高速下载
* feat: 从所有镜像源中选取最快镜像源高速下载
* Merge remote-tracking branch 'upstream/master' into dev
* fix: 不再使用http头请求文件大小
* Merge remote-tracking branch 'upstream/master' into dev
* feature: metalink backhend
* Merge remote-tracking branch 'upstream/master' into dev
* Merge remote-tracking branch 'upstream/master' into dev
* fix: 忽略系统原有aria2配置文件
* fix: waitforfinished
2022-08-24 06:43:40 +00:00
6d23aaa07c feat: 从所有镜像源中选取最快镜像源高速下载 2022-08-24 14:02:55 +08:00
3740b551ef Merge remote-tracking branch 'upstream/master' into dev 2022-08-24 13:37:27 +08:00
4c7d50d117 !95 改为commit自动构建为Pr自动构建测试/更新readme中的依赖包下载地址
* update dtk-build-commit-20220425.yml
* update README.md.
* 更新依赖包链接
2022-08-23 05:26:12 +00:00
6318b5f51d 删除文件 .workflow/dtk-build-release-tag.yml 2022-08-22 09:05:27 +00:00
2f94e78c32 !94 发tag自动触发构建
* update dtk-build-release-tag-20220425.yml
* create dtk-build-commit-20220425.yml
2022-08-22 09:03:45 +00:00
fecda52294 !93 重新以commit为触发条件走ci,gitee go无法从pr获取
* create dtk-build-commit-20220425.yml
2022-08-22 08:57:58 +00:00
8cefdbaca0 !92 ci release
* 	new file:   .workflow/dtk-build-release-tag.yml
2022-08-22 08:48:55 +00:00
0da714b35a !90 modified: .workflow/dtk-build-commit-20220425.yml
* 	modified:   .workflow/dtk-build-commit-20220425.yml
2022-08-22 08:43:47 +00:00
379c5a857d !88 修改ci策略:自动触发
* update dtk-build-commit-20220425.yml
2022-08-22 03:08:46 +00:00
3b349d43ad !87 流水线
* update dtk-build-commit-20220425.yml
* update dtk-build-commit-20220425.yml
* update dtk-build-commit-20220425.yml
* update dtk-build-commit-20220425.yml
* update dtk-build-commit-20220425.yml
* update dtk-build-commit-20220425.yml
* update dtk-build-commit-20220425.yml
* update dtk-build-commit-20220425.yml
* create dtk-build-commit-20220425.yml
* 删除文件 .workflow/master-pipeline.yml
* 删除文件 .workflow/dtk-build-commit-20220425.yml
* update .workflow/dtk-build-commit-20220425.yml.
* update dtk-build-commit-20220425.yml
* update dtk-build-commit-20220425.yml
* update dtk-build-commit-20220425.yml
* update dtk-build-commit-20220425.yml
2022-08-22 02:38:28 +00:00
b856734843 !86 修改文案 tool/update-upgrade/ss-do-upgrade.sh
* 	修改文案     tool/update-upgrade/ss-do-upgrade.sh
2022-08-19 11:41:10 +00:00
238c43b79e !85 修改: debian/spark-store.postinst 重命名: tool/ss-apt-fast -> tool/aptss
* 删除文件 spark-wine7-devel_7.14~spark-1_amd64.deb
* final
* 	修改:     debian/spark-store.postinst
* 	修改:     tool/update-upgrade/ss-update-controler.sh
* 	修改:     debian/spark-store.postinst
* 只额外生成一份给aptss
* 	修改:     debian/spark-store.postinst
*  要提交的变更:
* 	修改:     tool/aptss
* 	修改:     debian/changelog
* 	修改:     pkg/usr/share/bash-completion/completions/aptss
* 	修改:     pkg/usr/share/bash-completion/completions/aptss
* 	修改:     debian/spark-store.postinst
* aa
* Merge branch 'master' of https://gitee.com/deepin-community-store/spark-store
* 	修改:     src/main.cpp
* Merge branch 'master' of https://gitee.com/deepin-community-store/spark-store
* 	修改:     debian/spark-store.postinst
2022-08-19 07:28:10 +00:00
855b18cfa6 !84 修改: src/main.cpp
* 	修改:     src/main.cpp
* Merge branch 'master' of https://gitee.com/deepin-community-store/spark-store
* 	修改:     debian/spark-store.postinst
2022-08-18 09:41:14 +00:00
bc897969f8 !83 修改: debian/spark-store.postinst
* 	修改:     debian/spark-store.postinst
2022-08-18 09:37:11 +00:00
52af8a8229 !82 modified: debian/changelog modified: debian/spark-store.postinst new file: tool/spark-store.asc
* 	modified:   debian/changelog
2022-08-18 09:31:33 +00:00
5220b886de !81 重新发布3152
* update debian/changelog.
* update debian/spark-store.postinst.
2022-08-18 08:44:13 +00:00
5be7923e60 !80 http2下curl容易报错导致pubkey错误
* update debian/spark-store.postinst.
2022-08-18 08:39:36 +00:00
6ca6f63b1f !79 changelog和版本号
Merge pull request !79 from shenmo/auto-4915358-master-ca4f1682
2022-08-18 01:12:49 +00:00
bda0426a3b changelog和版本号 2022-08-18 09:12:10 +08:00
a75b7b1e57 Merge branch 'master' of https://gitee.com/deepin-community-store/spark-store 2022-08-18 09:10:51 +08:00
8054f85ada !78 fix: 不再使用http头请求文件大小
Merge pull request !78 from Pluto/dev
2022-08-17 15:15:19 +00:00
6f23d07929 fix: 不再使用http头请求文件大小 2022-08-17 23:07:14 +08:00
b73d97d65d Merge remote-tracking branch 'upstream/master' into dev 2022-08-17 22:12:10 +08:00
bc6584eacc Merge branch 'master' of https://gitee.com/deepin-community-store/spark-store 2022-08-17 19:41:50 +08:00
c9e01d10fe !77 修改uos的更新策略,先下载到/var/cache/apt/archives再更新
* 修改uos的更新策略,先下载到/var/cache/apt/archives再更新
2022-08-17 02:59:05 +00:00
c3b9763aa8 Merge branch 'master' of https://gitee.com/deepin-community-store/spark-store 2022-08-15 22:59:12 +08:00
398cd512d7 !76 * 改变更新策略,现在支持应用在更新时引入新依赖 * ss-apt-fast现在默认允许降级,以与apt使用体验一致
*   * 改变更新策略,现在支持应用在更新时引入新依赖
2022-08-15 14:54:03 +00:00
0c0ff452ae !74 修改: debian/spark-store.prerm 新文件: tool/apt-fast-conf/sources.list.d/.keep 删除: tool/apt-fast-conf/sources.list.d/sparkstore.list
* 	修改:     debian/spark-store.prerm
2022-08-09 11:27:38 +00:00
e6d3b035db 修改: debian/spark-store.prerm
新文件:   tool/apt-fast-conf/sources.list.d/.keep
	删除:     tool/apt-fast-conf/sources.list.d/sparkstore.list
2022-08-09 19:26:59 +08:00
5e88f7c1eb !73 3142版本号
* 3142版本号
2022-08-09 11:08:02 +00:00
b639a9d726 !72 * 修复使用更新和安装设置更新商店本体时出错
* * 修复使用更新和安装设置更新商店本体时出错
2022-08-09 10:35:33 +00:00
e2f6a2b3c2 !71 3142准备测试
* 3142版本
2022-08-08 04:50:47 +00:00
c826a3927c !69 metalink 功能
* feature: metalink backhend
* Merge remote-tracking branch 'upstream/master' into dev
* Merge remote-tracking branch 'upstream/master' into dev
* fix: 忽略系统原有aria2配置文件
* fix: waitforfinished
2022-08-08 04:49:17 +00:00
0c367799b7 !70 修复:ssinstall在没有安装apt-fast的情况下首次安装需要依赖的软件时安装失败
* 	修改:     debian/changelog
* 修复:ssinstall在没有安装apt-fast的情况下首次安装需要依赖的软件时安装失败
2022-08-08 04:35:58 +00:00
0e351a667a feature: metalink backhend 2022-08-08 12:21:20 +08:00
e8612f304a Merge remote-tracking branch 'upstream/master' into dev 2022-08-07 23:34:33 +08:00
114b5cdfe5 !68 安装脚本和检测更新脚本检查网络时间超时时间延长至5s
* 安装脚本和检测更新脚本检查网络时间超时时间延长至5s
* ss-update-notify-placer.sh. 更新服务验证网络的超时时间增加到5s
* update debian/changelog.
* update debian/changelog.
* 版本号更新 3141
2022-08-07 02:50:40 +00:00
a563d99bc4 !67 修复: ss-apt-fast full-upgrade未用apt-fast加速
* 修复: ss-apt-fast full-upgrade未用apt-fast加速
2022-08-06 04:50:14 +00:00
b1cb765b6e !66 * 屏蔽了ssinstall之外的安装方式
* 屏蔽了ssinstall之外的安装方式
* 调整了报错框的形式 
* 修复pkexec下ssinstall不处理依赖
2022-08-06 03:13:57 +00:00
49c5583ea9 !65 修复安装时使用wget的问题
修复安装时使用wget但是依赖未写明的问题(改用curl)
准备发布3.1.4
2022-08-06 02:24:00 +00:00
b0dfd6a3da !63 修复UOS未处理模拟软件源,新增ss-apt-fast ssupdate,杂项调整
修复UOS未处理模拟软件源
    删除ssinstall的apt-fast安装功能(转移到ss-apt-fast,并且不会再对UOS安装apt-fast)
    ss-apt-fast除了下载,安装和更新,全部走apt;
    ss-apt-fast现在只会在安装/下载/更新时检测是否有apt-fast并处理
    ss-apt-fast ssupdate 从服务器获取源链接后只更新星火源;
    和 ss-apt-fast ssupdate 功能重复的内容转为调用
2022-08-05 01:34:27 +00:00
a63c1202bd !62 除自动外,手动检查更新前也重新获取list和update
* update tool/update-upgrade/ss-update-controler.sh.
* update tool/update-upgrade/ss-upgrade-list.sh.
* update tool/update-upgrade/ss-upgrade-list.sh.
2022-08-04 02:09:44 +00:00
dfe30f9d6d !59 * 调整 现在与系统更新分开,不再导致更新失败 * 支持直接更新软件源文件,不再让d.吃全部更新流量 * ss-apt-fast不再强制root权限
* !61 $1为policy时,apt-fast换成apt
* 手动更新时也重新获取源文件
* 	修改:     tool/ss-apt-fast
*   * 调整 现在与系统更新分开,不再导致更新失败
2022-08-04 02:00:38 +00:00
b00f3fa501 !58 Change version number
Merge pull request !58 from shenmo/auto-4915358-master-1658494943452
2022-07-22 13:02:38 +00:00
03f35782c6 Change version number 2022-07-22 21:02:10 +08:00
8f192d17ec !57 fix: aria2 配置文件错误
* Merge remote-tracking branch 'upstream/master' into dev
* fix: 忽略系统原有aria2配置文件
* fix: waitforfinished
2022-07-22 13:01:05 +00:00
57bbc9536a Merge remote-tracking branch 'upstream/master' into dev 2022-07-21 18:29:58 +08:00
9f7b46b600 fix: 忽略系统原有aria2配置文件
fix

fix
2022-07-21 18:21:06 +08:00
0dc594b3f1 !56 修复下载提前退出
* 	修改:     src/main.cpp
* 	修改:     debian/changelog
* fix: waitforfinished
2022-07-08 09:37:36 +00:00
cdb4fc05a1 fix: waitforfinished 2022-07-08 17:19:13 +08:00
198384c552 !46 fix !44
* readme: 修正 ubuntu 的编译说明
* download: 检查软件源的有效性
2022-07-02 23:25:35 +08:00
958988d93c !54 download: 在有cdn工作前提下,不使用主域名
* download: 在有cdn工作前提下,不使用主域名
* merge: upstream
* README: 英文修正 ubuntu22 的依赖问题
* Merge remote-tracking branch 'upstream/master'
* widget: 检查cdn状况在下载开始前检测,不堵塞ui线程
* Merge remote-tracking branch 'upstream/master'
* readme: 修正 ubuntu 的编译说明
* download: 检查软件源的有效性
2022-07-02 23:25:35 +08:00
5f9599c47d !52 使用aria2替换原本的多线程下载
* update debian/control.
* fix: readme
* change: 切换到 aria2
* Download: 初步完成对 axel 的适配工作
* README: 英文修正 ubuntu22 的依赖问题
* Merge remote-tracking branch 'upstream/master'
* widget: 检查cdn状况在下载开始前检测,不堵塞ui线程
* Merge remote-tracking branch 'upstream/master'
* readme: 修正 ubuntu 的编译说明
* download: 检查软件源的有效性
2022-07-02 23:25:35 +08:00
766dc8b88a !51 read -e
* update tool/update-upgrade/ss-update-controler.sh.
* update tool/ussinstall.
* update tool/ssinstall.
2022-07-02 23:25:35 +08:00
20d34a7369 !49 ss-apt-fast需要加入sudo
* update tool/ssinstall.
2022-07-02 23:25:35 +08:00
a0c14e7397 !48 widget: 检查cdn状况在下载开始前检测,不堵塞ui线程
* widget: 检查cdn状况在下载开始前检测,不堵塞ui线程
* Merge remote-tracking branch 'upstream/master'
* readme: 修正 ubuntu 的编译说明
* download: 检查软件源的有效性
2022-07-02 23:25:35 +08:00
f24565804d !47 文案和显示效果修改
* update tool/ss-apt-fast.
* update tool/ss-apt-fast.
2022-07-02 23:25:35 +08:00
244176098c !46 fix !44
* readme: 修正 ubuntu 的编译说明
* download: 检查软件源的有效性
2022-07-02 23:25:35 +08:00
ac0a38e670 !44 多线程下载前验证源的有效性
* readme: 修正 ubuntu 的编译说明
* download: 检查软件源的有效性/异步
* download: 检查软件源的有效性
2022-06-26 12:09:16 +00:00
af7990e069 !43 ss-apt-fast相关改动:先行获取mirror和自动安装apt-fast
* 修复 多位数无法显示
* 	modified:   tool/update-upgrade/ss-do-upgrade.sh
* 	modified:   tool/update-upgrade/ss-do-upgrade.sh
* 更改依赖判断方法
* 	modified:   debian/changelog
* * 新增:ssinstall现在会在没有apt-fast的时候自动安装
2022-06-26 06:21:19 +00:00
f8dbca8f6f !42 3.1.2
Merge pull request !42 from shenmo/master
2022-06-21 14:58:37 +00:00
a064b7b534 修改: debian/changelog
修改:     debian/control
	修改:     debian/spark-store.postinst
	修改:     debian/spark-store.prerm
	修改:     spark-store-project.pro
	修改:     src/main.cpp
	新文件:   tool/apt-fast-conf/apt-fast.conf
	新文件:   tool/ss-apt-fast
	修改:     tool/ssinstall
	修改:     tool/update-upgrade/ss-do-upgrade.sh
	修改:     tool/update-upgrade/ss-update-controler.sh
2022-06-21 22:37:39 +08:00
289f3020fe !41 不再case yoyo
Merge pull request !41 from shenmo/master
2022-06-16 05:31:51 +00:00
9cd974fed9 不再case yoyo 2022-06-16 05:31:05 +00:00
4d97a1e87b !40 检测yoyo-daemon
Merge pull request !40 from 柚子/N/A
2022-06-10 10:33:15 +00:00
柚子
d326e8919f 检测yoyo-daemon 2022-06-10 10:32:33 +00:00
Jerry
1828a60ff1 !39 update img url
* fix: update img url
2022-06-07 10:54:26 +00:00
865322c85f !37 修改controler的文案
Merge pull request !37 from shenmo/master
2022-05-15 02:46:38 +00:00
c22c76efc2 update tool/update-upgrade/ss-update-controler.sh. 2022-05-15 02:45:19 +00:00
415dd1a63c !36 update tool/update-upgrade/ss-upgrade-list.sh.
Merge pull request !36 from lv36/N/A
2022-05-15 02:40:01 +00:00
lv36
7e105b59b0 update tool/update-upgrade/ss-upgrade-list.sh.
接对ss-update-controler.sh的修改,
微调了输出的显示,个人认为这样可加强字符显示的对比,增强显示的对比、提醒(自己看着更舒服)
2022-05-14 15:06:41 +00:00
84b3340687 update README.md. 2022-05-11 14:43:24 +00:00
2da576aeab update README.zh.md. 2022-05-11 14:38:51 +00:00
fb94448692 update README.zh.md. 2022-05-11 14:38:29 +00:00
6ba7601efa update README.zh.md. 2022-05-11 14:37:49 +00:00
4ea6c90e78 update README.md. 2022-05-11 14:37:03 +00:00
f3633bb19d add README.md. 2022-05-11 14:36:14 +00:00
090b9a279f 重命名 README.md 为 README.zh.md 2022-05-11 14:25:08 +00:00
1bf8a57802 3.1.1 2022-05-10 12:19:16 +00:00
01f2610e0a update debian/changelog. 2022-05-10 12:18:36 +00:00
3e3c3140d0 update tool/update-upgrade/ss-update-controler.sh. 2022-05-10 12:16:34 +00:00
6ca024b6f3 清理policy和update number文件 2022-05-09 16:42:13 +00:00
c0ea5824b1 修改: debian/changelog 2022-05-09 18:37:08 +08:00
ee60b2e7f6 修改: debian/changelog 2022-05-09 18:36:49 +08:00
53ae863823 修改: tool/password-check/ss-certificate-passwd 2022-05-09 01:00:11 +08:00
3dae7db89a 修复UOS且apt-fast下的提权错误 2022-05-08 15:40:15 +00:00
3b3bf8f0de 修改: src/downloadlist.cpp
修改:     src/widget.cpp
	重命名:   pkg/usr/share/polkit-1/actions/store.spark-app.ssinstall.policy -> tool/auto-install-policy/store.spark-app.ssinstall.policy
	修改:     tool/update-upgrade/ss-update-controler.sh
	修改:     translations/spark-store_en.ts
	修改:     translations/spark-store_fr.ts
	修改:     translations/spark-store_zh_CN.ts
2022-05-08 23:11:42 +08:00
00f9b62b80 修改: debian/changelog 2022-05-08 22:24:03 +08:00
0916a0a97e !34 修改control/修改logo
* 	删除:     assets/Logo-Spark.png
* update src/main.cpp.
* The font used for new logo
* new logo file
* update debian/control.
2022-05-08 14:21:50 +00:00
Jerry
c6505c1c14 update readme 2022-05-03 09:13:29 +00:00
4f600f3ec7 update .workflow/master-pipeline.yml. 2022-04-28 14:35:45 +00:00
bf5d0cb75f update master-pipeline.yml for Gitee Go updated_at:2022-04-28 11:03:54 2022-04-28 11:03:54 +00:00
4ca292bd34 删除文件 target 2022-04-28 10:57:30 +00:00
12cf0a3515 新建 deb 2022-04-27 15:05:16 +00:00
18279ec00d 新建 build 2022-04-27 15:05:06 +00:00
e415798ee0 新建 target 2022-04-27 15:04:58 +00:00
89740ad953 update master-pipeline.yml for Gitee Go updated_at:2022-04-27 15:00:34 2022-04-27 15:00:35 +00:00
3eddb4ce71 update master-pipeline.yml for Gitee Go updated_at:2022-04-27 15:00:31 2022-04-27 15:00:31 +00:00
239a788019 update tool/update-upgrade/ss-update-controler.sh. 2022-04-26 10:23:17 +00:00
dc6210b545 update tool/update-upgrade/ss-update-controler.sh. 2022-04-26 10:19:31 +00:00
94d6a566ca update tool/update-upgrade/ss-do-upgrade.sh. 2022-04-26 10:17:19 +00:00
c66c5c6ca3 114514. 2022-04-26 07:58:07 +00:00
c974349c9f update tool/update-upgrade/ss-do-upgrade.sh. 2022-04-26 06:08:30 +00:00
42362fd0ca update .gitee/Dockerfile. 2022-04-26 06:06:59 +00:00
63bc01c43d update .gitee/Dockerfile. 2022-04-26 05:02:00 +00:00
280cd983cb update master-pipeline.yml for Gitee Go updated_at:2022-04-26 04:23:16 2022-04-26 04:23:17 +00:00
05e95b42e0 update .workflow/master-pipeline.yml. 2022-04-26 04:18:05 +00:00
2614b4ae05 update .gitee/Dockerfile. 2022-04-26 03:37:17 +00:00
e8d55cadb6 update master-pipeline.yml for Gitee Go updated_at:2022-04-26 03:14:38 2022-04-26 03:14:38 +00:00
3534b815cc update master-pipeline.yml for Gitee Go updated_at:2022-04-26 03:11:57 2022-04-26 03:11:58 +00:00
ef75e89916 update master-pipeline.yml for Gitee Go updated_at:2022-04-26 03:11:55 2022-04-26 03:11:55 +00:00
e4daffd052 update master-pipeline.yml for Gitee Go updated_at:2022-04-26 03:11:16 2022-04-26 03:11:16 +00:00
9c29ca2e38 update master-pipeline.yml for Gitee Go updated_at:2022-04-26 02:55:13 2022-04-26 02:55:13 +00:00
733751db8e 干完这一票咱就3.1了 2022-04-26 02:53:26 +00:00
db739181f2 update master-pipeline.yml for Gitee Go updated_at:2022-04-26 02:51:49 2022-04-26 02:51:49 +00:00
0bd87eb100 update master-pipeline.yml for Gitee Go updated_at:2022-04-26 02:51:00 2022-04-26 02:51:01 +00:00
8b690e8dea update master-pipeline.yml for Gitee Go updated_at:2022-04-26 02:50:58 2022-04-26 02:50:58 +00:00
9329c939d7 update .gitee/Dockerfile. 2022-04-26 02:38:36 +00:00
232fe777e5 新文件: tool/password-check/ss-certificate-passwd
修改:     tool/ssinstall
2022-04-26 10:33:37 +08:00
000fcf8c9d update spark-store-project.pro. 2022-04-25 14:17:24 +00:00
30bc12a8b6 update master-pipeline.yml for Gitee Go updated_at:2022-04-25 12:51:44 2022-04-25 12:51:44 +00:00
a7385aff1e update master-pipeline.yml for Gitee Go updated_at:2022-04-25 12:07:43 2022-04-25 12:07:43 +00:00
c5b786d9e6 update master-pipeline.yml for Gitee Go updated_at:2022-04-25 12:06:39 2022-04-25 12:06:39 +00:00
55d254e147 update master-pipeline.yml for Gitee Go updated_at:2022-04-25 11:58:00 2022-04-25 11:58:00 +00:00
cccad380a4 update master-pipeline.yml for Gitee Go updated_at:2022-04-25 11:51:03 2022-04-25 11:51:03 +00:00
afe5c00af7 update master-pipeline.yml for Gitee Go updated_at:2022-04-25 11:44:09 2022-04-25 11:44:09 +00:00
55e7fd836c update .workflow/master-pipeline.yml. 2022-04-25 11:35:47 +00:00
2959d72d1c update .workflow/master-pipeline.yml. 2022-04-25 11:31:33 +00:00
95b4608e82 update .workflow/master-pipeline.yml. 2022-04-25 11:30:00 +00:00
edef44eea8 update master-pipeline.yml for Gitee Go updated_at:2022-04-25 11:10:01 2022-04-25 11:10:02 +00:00
a4b9bd6a17 update master-pipeline.yml for Gitee Go updated_at:2022-04-25 11:09:59 2022-04-25 11:09:59 +00:00
a165cd7d67 update master-pipeline.yml for Gitee Go updated_at:2022-04-25 11:08:06 2022-04-25 11:08:06 +00:00
387d21b29f update master-pipeline.yml for Gitee Go updated_at:2022-04-25 11:08:02 2022-04-25 11:08:02 +00:00
63b8ae5ae7 update master-pipeline.yml for Gitee Go updated_at:2022-04-25 11:03:59 2022-04-25 11:04:00 +00:00
9ae4fa8372 update master-pipeline.yml for Gitee Go updated_at:2022-04-25 11:03:56 2022-04-25 11:03:56 +00:00
1eb2f8df91 update master-pipeline.yml for Gitee Go updated_at:2022-04-25 11:02:40 2022-04-25 11:02:40 +00:00
ce1de9c367 update .gitee/Dockerfile. 2022-04-25 11:00:44 +00:00
80284b22cb update master-pipeline.yml for Gitee Go updated_at:2022-04-25 09:37:09 2022-04-25 09:37:09 +00:00
ad1b69493a add master-pipeline.yml for Gitee Go created_at:2022-04-25 08:58:29 2022-04-25 08:58:29 +00:00
7ca5e9b0d0 修改: spark-store-project.pro 2022-04-25 13:35:57 +08:00
873a83e6b9 修改: debian/changelog
新文件:   pkg/usr/share/polkit-1/actions/store.spark-app.ssinstall.policy
	修改:     spark-store-project.pro
	修改:     src/main.cpp
	修改:     tool/ssinstall
2022-04-25 13:34:25 +08:00
da8ee30fbd update README.md. 2022-04-25 03:33:33 +00:00
6d84fa0fe5 add DOCS/code-analyze.md. 2022-04-25 03:22:03 +00:00
41d6272526 删除文件 code-analyze.md 2022-04-25 03:21:46 +00:00
0f7bdf484f update README.md. 2022-04-25 03:21:09 +00:00
bc67bcb6f0 update code-analyze.md. 2022-04-25 03:18:07 +00:00
134586b580 add DOCS/spk-doc.md. 2022-04-25 03:17:36 +00:00
d645b26c62 新建 DOCS 2022-04-25 03:17:02 +00:00
fdc818cdb4 update code-analyze.md. 2022-04-25 03:16:55 +00:00
1f493a8aca add code-analyze.md. 2022-04-25 03:16:11 +00:00
463a8d0c04 update README.md. 2022-04-25 03:15:17 +00:00
932bbd7995 update debian/changelog. 2022-04-24 08:17:12 +00:00
5f45abc484 update tool/ssinstall. 2022-04-24 08:12:34 +00:00
820ad08bf4 修改: debian/changelog
修改:     添加了Recommends
	修改:     更新版本号,使用自定义DAboutDialog
	修改:     translations/spark-store_en.ts
	修改:     translations/spark-store_fr.ts
	修改:     translations/spark-store_zh_CN.ts
2022-04-24 16:00:37 +08:00
2ddfb3f192 !31 兼容改动改变文案+ssinstall临时提升优先级
* update tool/ssinstall.
* update tool/ssinstall.
* update tool/ssinstall.
* update tool/ssinstall.
* update tool/ssinstall.
* update tool/ssinstall.
* update translations/spark-store_zh_CN.ts.
* update src/widget.ui.
2022-04-24 07:33:47 +00:00
b3ca6878ec update debian/control. 2022-04-23 02:44:50 +00:00
ae6f2354bb update debian/control. 2022-04-23 02:41:15 +00:00
591556a7c8 update debian/changelog. 2022-04-22 09:06:12 +00:00
0bcf8a1ee9 版本号到30312 2022-04-22 09:05:00 +00:00
15b6a22f49 !30 标题栏处理
Merge pull request !30 from shenmo/master
2022-04-22 09:03:47 +00:00
7f1f5528ef update src/main.cpp. 2022-04-22 09:02:46 +00:00
158ba884b1 update debian/control. 2022-04-14 12:57:48 +00:00
d9a50e7b44 修改: 多了单引号 2022-04-14 17:31:56 +08:00
72019f7cce 修改: 现在只检测星火源的更新,避免出现问题
新文件:   检测网络环境,没网就退出
2022-04-14 17:26:54 +08:00
c4b26045d9 update tool/update-upgrade/ss-update-controler.sh. 2022-04-11 08:19:27 +00:00
e14b1baaab 修改: debian/spark-store.postinst
修改:     debian/spark-store.prerm
	修改:     pkg/usr/lib/systemd/system/spark-update-notifier.service
2022-04-11 11:04:56 +08:00
0bfa7c9136 修改: debian/spark-store.prerm
修改:     tool/update-upgrade/ss-update-notify-placer.sh
2022-04-11 09:40:28 +08:00
6d38c0bf70 修改: tool/update-upgrade/ss-update-notify-placer.sh 2022-04-11 01:49:05 +08:00
a932966795 修改: tool/update-upgrade/ss-update-notify-placer.sh
修改:     tool/update-upgrade/ss-update-notify.sh
2022-04-11 01:05:28 +08:00
a63c7ec750 修改: tool/update-upgrade/ss-update-controler.sh 2022-04-11 00:44:42 +08:00
ad53669098 修改: tool/update-upgrade/ss-update-controler.sh
修改:     tool/update-upgrade/ss-update-notify.sh
2022-04-11 00:40:28 +08:00
69b42f2afe 修改: tool/update-upgrade/ss-update-notify-placer.sh
修改:     tool/update-upgrade/ss-update-notify.sh
2022-04-11 00:12:56 +08:00
c4f4465e87 新文件: debian/source/format
修改:     debian/spark-store.postinst
	修改:     debian/spark-store.postrm
	修改:     debian/spark-store.prerm
	修改:     pkg/usr/lib/systemd/system/spark-update-notifier.service
	修改:     spark-store-project.pro
	修改:     tool/update-upgrade/ss-update-controler.sh
2022-04-11 00:01:50 +08:00
f292f954f7 修改: debian/changelog
新文件:   pkg/usr/lib/systemd/system/spark-update-notifier.service
	修改:     src/main.cpp
	修改:     src/widget.cpp
	新文件:   tool/update-upgrade/autostart/spark-update-notifier.desktop
	新文件:   tool/update-upgrade/ss-do-upgrade.sh
	新文件:   tool/update-upgrade/ss-update-controler.sh
	新文件:   tool/update-upgrade/ss-update-notify-placer.sh
	新文件:   tool/update-upgrade/ss-update-notify.sh
	新文件:   tool/update-upgrade/ss-upgrade-list.sh
2022-04-10 23:22:35 +08:00
161c9e320b update src/main.cpp.
注释掉已经废弃的函数,否则可能会对wayland适配造成影响
2022-04-07 17:03:30 +00:00
f33386ee5c 修改: debian/control 2022-04-07 14:31:43 +08:00
RigoLigo
61c10944c9 根据DTK的int& argc,fakeArgc改用一个变量保存而不是使用右值 2022-04-07 05:51:42 +00:00
RigoLigo
6db6fe6060 订正上次提交的参数错位的问题 2022-04-07 05:41:34 +00:00
RigoLigo
14506b18b2 尝试通过在main函数强行加入参数修复一些样式问题 2022-04-07 05:37:09 +00:00
44d1041087 删除文件 src/spark-dstore-patch/.qmake.stash 2022-04-02 14:28:47 +00:00
dd941bcf8e 修改版本号 2022-04-02 22:26:56 +08:00
75fc22d2a2 修改: debian/changelog
删除:     debian/source/format
	修改:     spark-store-project.pro
	新文件:   src/spark-dstore-patch/spark-dstore-patch.pro
	新文件:   src/spark-dstore-patch/spark-dstore-tool.cpp
	修改:     src/spark-store.pro
	删除:     tool/spark-dstore-patch
2022-04-02 22:24:11 +08:00
ee549b91f1 update tool/ussremove. 2022-03-07 12:04:56 +00:00
38209d0efb update tool/ussinstall. 2022-03-07 12:03:31 +00:00
b7dcca35b5 update src/main.cpp. 2022-02-26 11:34:58 +00:00
bb39fe386b update debian/control. 2022-02-26 11:32:00 +00:00
ut003880
3d02922751 chore: 去除 postinst 中 apt update 并行操作
避免输出 log 混乱

Log: 去除 postinst 中 apt update 并行操作
2022-02-21 17:17:51 +08:00
e5ea3c3477 update debian/spark-store.prerm. 2022-02-20 05:18:47 +00:00
0b00cd2f4d update debian/spark-store.postinst. 2022-02-20 05:18:08 +00:00
7f6b8c1f5e update debian/copyright. 2022-02-20 05:17:21 +00:00
zty199
3bfc183c89 chore: 修改 postinst / prerm 脚本
隐藏 asc key 文件下载过程;asc 文件转为 gpg 文件直接放入 /etc/apt/trusted.gpg.d 文件夹生效;隐藏 apt update 输出日志

Log: 修改 postinst / prerm 脚本;修改 copyright 文件
2022-02-04 21:11:47 +08:00
45e1970186 apt update 2022-02-01 15:38:52 +00:00
c8e8560584 如果安装了dstore不再瞎jb刷存在感 2022-02-01 15:35:03 +00:00
5bdf9c69ea source是主仓库 2022-02-01 15:29:13 +00:00
zty199
e48438b5a6 feat: Support dpkg-buildpackage
Support dpkg-buildpackage

Log: Support dpkg-buildpackage
2022-01-16 21:58:36 +08:00
00cb5d2442 update debian/DEBIAN/postinst. 不再需要新的key了 2022-01-14 07:17:50 +00:00
9a84dfffd0 修改: debian/opt/durapps/spark-store/bin/spark-store
修改:     src/main.cpp
2022-01-14 00:36:57 +08:00
45a2b0b8c8 修改: debian/DEBIAN/postinst 2022-01-14 00:30:25 +08:00
a947963fc1 修改: debian/DEBIAN/control
删除:     spark-store_3.0.3-7_amd64.deb
2022-01-13 23:43:39 +08:00
6982a97d22 修改: src/downloadlist.cpp 2021-12-13 20:12:21 +08:00
1ba01588f0 修改: debian/DEBIAN/control
新文件:   debian/opt/durapps/spark-store/bin/spark-dstore-patch
2021-12-13 20:07:33 +08:00
4a7f9f7500 修改: build.sh
新文件:   spark-dstore-patch
2021-12-11 23:28:58 +08:00
47690ee666 修改: debian/DEBIAN/triggers
修改:     debian/opt/durapps/spark-store/bin/spark-store
2021-12-11 23:23:33 +08:00
3477d50689 修改: debian/DEBIAN/control
修改:     debian/opt/durapps/spark-store/bin/spark-store
	修改:     debian/usr/share/spark-store/translations/spark-store_zh_CN.qm
	修改:     src/main.cpp
	修改:     src/widget.cpp
2021-12-11 23:18:40 +08:00
abf1e0df71 add debian/DEBIAN/triggers. 2021-12-11 09:52:54 +00:00
1ac033e850 update debian/DEBIAN/postrm. 2021-12-11 09:52:30 +00:00
c2d9b0324a update debian/DEBIAN/postinst. 2021-12-11 09:52:17 +00:00
5727b54c3f update debian/DEBIAN/control. 2021-12-11 09:52:04 +00:00
d796d296c0 update build.sh. 2021-11-24 20:37:42 +00:00
31ecde133e update debian/DEBIAN/control. 2021-10-26 12:02:41 +00:00
d6d40d2b78 修改: debian/usr/share/spark-store/translations/spark-store_zh_CN.qm
修改:     src/widget.ui
	修改:     translations/spark-store_zh_CN.qm
	修改:     translations/spark-store_zh_CN.ts
2021-10-24 23:46:36 +08:00
ed220702b3 修改: debian/DEBIAN/control
修改:     debian/opt/durapps/spark-store/bin/spark-store
	修改:     debian/usr/share/spark-store/translations/spark-store_zh_CN.qm
	修改:     translations/spark-store_zh_CN.qm
	修改:     translations/spark-store_zh_CN.ts
2021-10-24 22:55:00 +08:00
RigoLigoRLC
bdef388b2e 去除翻译功能,改为催更 2021-10-24 00:46:50 +08:00
a31a36dbd8 chore: 允许应用详情页复制文字 2021-07-15 16:39:27 +08:00
f23809b28e fix: 修复软件包卸载问题
fix: 修复软件包卸载失败以及取消卸载后显示成功的问题
fix: 修复下载列表不显示应用缩略图的问题
chore: 优化部分代码
2021-07-15 16:07:14 +08:00
7d4944279f !24 更新了投稿链接
Merge pull request !24 from momen/master
2021-07-01 03:46:58 +00:00
3dfca9a17d 更新打包文件以及 README.md 2021-06-30 14:37:38 +08:00
9b189f276e chore: 尝试开启 Hidpi 支持 2021-06-30 14:24:22 +08:00
51518e4e88 chore: 支持从源列表文件动态获取镜像源
支持从源列表文件动态获取镜像源,获取失败时默认只使用 d.store.deepinos.org.cn 该地址;

修复之前版本中设置界面“更新源”按钮无效的问题。
2021-06-30 14:14:06 +08:00
zty199
961d174bf7 chore: 尝试添加打包脚本
尝试添加了自动编译打包脚本,由于不会使用 dh_make 故每次需要手动更新打包信息。
2021-06-29 21:52:41 +08:00
10b758d8f3 fix: 尝试修复详情页经常加载失败的问题
关闭传输超时上限,未下载完成则持续等待;可能存在严重问题......
2021-06-29 14:05:01 +08:00
78c5d31a29 Update Translations 2021-06-29 13:50:07 +08:00
adf8b478a8 chore: 修复投递链接;新增应用升级判断
fix: 修复投递链接;
chore: 应用详情页支持判断是否需要升级。
2021-06-29 13:46:26 +08:00
momen
1c748219f8 update README.md.
更新了投稿页面
2021-06-26 10:04:48 +00:00
shenmo
9def55a2c2 roll back: src/downloadlist.cpp 2021-06-21 16:27:07 +08:00
shenmo
cd1892fd66 修改: src/downloadlist.cpp
修改:     src/downloadlist.h
2021-06-21 16:22:23 +08:00
Jerry
83e2302cf8 !23 改 jenkinsfile
Merge pull request !23 from Jerry/N/A
2021-06-21 15:56:35 +08:00
Jerry
4deaf28659 改 jenkinsfile 2021-06-21 15:56:21 +08:00
shenmo
04d6174875 . 2021-06-21 14:13:22 +08:00
shenmo
0d64bff7fa 改版本号,传统艺能 2021-06-18 14:58:52 +08:00
0ab9f4dda6 !22 合并 multiple 分支修复的 BUG
Merge pull request !22 from zty199/multiple
2021-06-13 14:36:48 +08:00
5a97f6caef Merge branch 'master' of gitee.com:deepin-community-store/spark-store into multiple 2021-06-13 14:36:05 +08:00
3da25b0904 Fix bugs about server address in widget.cpp 2021-06-13 14:30:31 +08:00
RigoLigo
116c824365 更正错误的服务URL 2021-06-09 20:40:45 +08:00
zty199
44edb08518 Fix issues about TitleBar
Fix a issue about titlebar display on Ubuntu.
2021-04-24 21:17:51 +08:00
zty199
9a3d32ee11 Improve Features
Support save current theme setting when exit;
Use QScreen::primaryScreen() instead of QDesktopWidget to get desktop size;
Ensure only one instance will be running at the same time.
2021-04-20 18:49:17 +08:00
Jerry
e5fe80cb76 add jenkins from master 2021-04-20 16:04:42 +08:00
Jerry
9314acd7e1 !21 Jenkins自动构建并在commit下评论
* debug
* update
* debug
* debug
* debug
* debug
* debug
* update
* update
* debug
* Merge branch 'jenkins' of gitee.com:deepin-community-store/spark-store…
* up
* Added Jenkinsfile
* debug
* debug
* debug
* up
* up
* debug
* up
* debug
* Merge branch 'jenkins' of gitee.com:deepin-community-store/spark-store…
* debug
* Added Jenkinsfile
* Added Jenkinsfile
* up
* 1
* update
* Added Jenkinsfile
* Merge branch 'jenkins' of gitee.com:deepin-community-store/spark-store…
* update
* Added Jenkinsfile
* Added Jenkinsfile
* Added Jenkinsfile
* Added Jenkinsfile
* 不使用 make -j
* 修改字体
* Added Jenkinsfile
* Added Jenkinsfile
2021-04-20 15:50:44 +08:00
zty199
e64e7fcae2 Reorganize codes
Reorganize all parts of codes;
Fix a bug that index page color is not correct when initialized.
2021-04-17 15:43:11 +08:00
536efeedfa !19 检查 UI 中的 BUG
* 整理部分代码
* 修改下载线程上限 4 线程为 5 线程
2021-04-17 04:37:30 +08:00
zty199
6fd3c40e97 Reorganize part of codes
Reorganize spark-store.pro, widget.h and widget.cpp.
2021-04-17 04:30:28 +08:00
Jerry
90513a8925 !18 4线程到5线程
Merge pull request !18 from Jerry/4to5
2021-04-17 03:23:01 +08:00
Jerry
ed3d869b99 4线程切换到5线程 2021-04-17 03:22:03 +08:00
Jerry
c80737a458 Merge branch 'multiple' of gitee.com:deepin-community-store/spark-store into multiple 2021-04-17 03:19:44 +08:00
Jerry
ebf30e67f9 4线程到5线程 2021-04-17 03:19:38 +08:00
Jerry
90b684af87 Merge branch 'master' of gitee.com:deepin-community-store/spark-store into multiple 2021-04-17 03:18:40 +08:00
Jerry
3ff363d7b1 4线程切到5线程 2021-04-17 03:16:22 +08:00
Jerry
f7ced7739c !17 多线程下载合并
* Update README.md
* Improve Features
* 修改获取线路的域名
* 修改默认源
* 修改多线程下载域名和图片服务器
* 修正取消下载的闪退问题
* 将图片下载由 curl 转为 QtNetworkService
* 切换多域名下载,提高下载速度
* 完成并发请求下载
2021-04-17 01:35:51 +08:00
zty199
e12f617f59 Update README.md 2021-04-17 01:16:01 +08:00
zty199
d164aec86d Improve Features
Fix a bug that annotations in server list can be chosen in combobox;
Fix a bug that index page don't follow system theme;
Disable qDebug/qWarning output in Release version;
Update default server list.
2021-04-17 00:53:26 +08:00
Jerry
96cd1b9918 修改获取线路的域名 2021-04-16 19:05:30 +08:00
Jerry
393c8220f5 修改默认源 2021-04-16 18:48:01 +08:00
Jerry
01d1543cc4 修改多线程下载域名和图片服务器 2021-04-16 12:19:22 +08:00
metanoia1989
4ccc8c0dae 修正取消下载的闪退问题 2021-03-06 17:00:55 +08:00
metanoia1989
815036e28f 将图片下载由 curl 转为 QtNetworkService 2021-03-06 15:18:31 +08:00
metanoia1989
9cc68fac86 切换多域名下载,提高下载速度 2021-02-20 06:47:57 +08:00
metanoia1989
2f8c11a30b 完成并发请求下载 2021-02-16 23:00:27 +08:00
1a4b1176fb !16 Improve Features
* Improce Features
* History Backup for Version 3.0-stable
2021-01-30 21:12:20 +08:00
3101f1fe70 Restore Patches 2020-12-17 00:18:10 +08:00
58f32c119a Bump version to 3.0 2020-12-16 23:49:54 +08:00
ccdcf407cc 调整安装选项顺序
调整安装选项顺序;
更新服务器源优先级;
重新打包。
2020-12-15 00:30:26 +08:00
1a18a51d3c !15 修正搜索功能的几个BUG
Merge pull request !15 from 枯叶蚊/search
2020-12-12 14:48:02 +08:00
metanoia1989
ab88af006b 修正搜索列表应用重复点击进入失败的问题 2020-12-10 22:46:55 +08:00
metanoia1989
d02900cb10 Merge branch 'search' of gitee.com:deepin-community-store/spark-store into search
合并主分支的搜索图标
2020-12-10 21:32:15 +08:00
metanoia1989
3e473c091a 解决从详情页返回列表页的进度恢复问题 2020-12-10 21:31:53 +08:00
shenmo
84541d0c22 修改: translations/spark-store_zh_CN.ts 2020-12-10 16:41:25 +08:00
shenmo
51f84bed1b 修改: src/downloadlist.cpp
修改:     src/spark-store.pro
	删除:     trans/spark-store_en.qm
	删除:     trans/spark-store_fr.qm
	删除:     trans/spark-store_zh_CN.qm
	重命名:   trans/spark-store_en.ts -> translations/spark-store_en.ts
	重命名:   trans/spark-store_fr.ts -> translations/spark-store_fr.ts
	重命名:   trans/spark-store_zh_CN.ts -> translations/spark-store_zh_CN.ts
2020-12-10 16:40:42 +08:00
4a0acf0575 修改: assets/icons/category_active.svg
新文件:   assets/icons/category_active.svg.bak
	修改:     assets/icons/category_active_dark.svg
	新文件:   assets/icons/category_active_dark.svg.bak
2020-12-10 12:35:14 +08:00
metanoia1989
e28d1c39ac 返回列表不重新加载 2020-12-08 23:31:40 +08:00
metanoia1989
f58201a612 合并来自主干的分支 2020-12-08 22:48:27 +08:00
405d3b6986 Try to fix bugs
尝试修复多屏幕下截图全屏预览的偏移问题。
2020-12-06 12:32:09 +08:00
b619d3cc7b Fix Bugs
修复了搜索结果页存在页边距的问题;
修复了多次搜索同时触发导致的崩溃问题。
2020-12-05 18:45:47 +08:00
枯叶蚊
14e3e7f9a2 !14 星火商店搜索功能
* 更换搜索服务器域名为星火的域名
* 更新搜索服务器为线上服务器
* 完成搜索功能
* 解决搜索结果图标锯齿问题
* 更新appitem的样式
* 完成应用搜索列表的滚动问题
* 合并master分支
* 添加一些文件到忽略列表
* 更新项目结构
* 更新搜索列表UI
* 添加 QtNetworkService库
2020-12-05 16:06:52 +08:00
metanoia1989
1d0e0cc65c 更换搜索服务器域名为星火的域名 2020-12-05 13:53:13 +08:00
metanoia1989
7a5b982dea 更新搜索服务器为线上服务器 2020-12-02 22:22:59 +08:00
metanoia1989
91fcab56df 完成搜索功能 2020-12-01 22:10:52 +08:00
metanoia1989
4315f04023 解决搜索结果图标锯齿问题 2020-11-30 22:44:25 +08:00
metanoia1989
736ede0742 更新appitem的样式 2020-11-29 22:25:20 +08:00
metanoia1989
a73a4416fc 完成应用搜索列表的滚动问题 2020-11-29 20:28:59 +08:00
shenmo
62f0dd097c update README.md. 2020-11-29 12:11:42 +08:00
metanoia1989
6f3e4398df 合并master分支 2020-11-28 20:59:22 +08:00
metanoia1989
3cca0d87fe 添加一些文件到忽略列表 2020-11-21 11:18:20 +08:00
b7e038bd88 Fix Bugs
Fix a bug that dirname in ~/.local/share/spark-union/ is translated into
Chinese.
2020-11-19 14:16:16 +08:00
shenmo
4f0e00ad76 修改了一个图标的名字 2020-11-18 15:17:36 +08:00
shenmo
579008e8b2 !13 更新部分语言翻译
Merge pull request !13 from 枯叶蚊/master
2020-11-14 12:17:36 +08:00
metanoia1989
ccb405c983 更新部分语言翻译 2020-11-14 11:02:50 +08:00
metanoia1989
66ef37c1ca 更新项目结构 2020-11-13 22:57:37 +08:00
metanoia1989
8972425c7c 更新搜索列表UI 2020-11-08 22:35:31 +08:00
metanoia1989
2ae6e80785 添加 QtNetworkService库 2020-11-08 20:41:18 +08:00
f5788efb47 update README.md. 2020-10-27 17:26:56 +08:00
32bc272791 update README.md. 2020-10-27 17:26:12 +08:00
c5f04b5675 update README.md. 2020-10-27 17:24:50 +08:00
cf208d0736 Roll back to old version of DAboutDialog
Roll back to old version of DAboutDialog for compability with Ubuntu.
2020-10-27 17:15:08 +08:00
fdc7cb4cb6 修改: README.md 2020-10-27 16:55:56 +08:00
8e89ce3ae3 keep old version AboutDialog
Keep old version AboutDialog to be compatible with ubuntu.
2020-10-26 23:29:41 +08:00
ee51f59874 Bump version to 2.0.2.5
Bump version to 2.0.2.5.
2020-10-26 22:50:21 +08:00
3d09a28794 main.coo改回定制,2.0.2.5版本号,改了logo配色 2020-10-26 17:47:24 +08:00
4b05758479 main.coo改回定制,2.0.2.5版本号,改了logo配色 2020-10-26 17:47:14 +08:00
74d9d0b563 main.coo改回定制,2.0.2.5版本号,改了logo配色 2020-10-26 17:44:19 +08:00
123456
f1a4f7acb5 main.cpp改回spark定制 2020-10-26 17:41:46 +08:00
93be66e871 Improve menu list on the left
Set StyleSheet of menu list on the left to
"text-align:left;padding-left:15px;" when system locale is not "zh_CN";

Update part of names in menu list and corresponding translation.
2020-10-24 20:24:31 +08:00
7b46cca1d4 Fix Bugs
Fix a Bug in updateUI(), everytime calling this method will set fonts to
system default display font and delete custom font settings, have to set
custom fonts again here.
2020-10-23 15:15:53 +08:00
c529367998 !12 卸载安装包时,将pkg转换为小写,让dpkg能够识别
Merge pull request !12 from 枯叶蚊/master
2020-10-20 09:02:27 +08:00
metanoia1989
beae3e3efa 应用下载后面换行 2020-10-19 22:44:44 +08:00
metanoia1989
9706480931 添加.vscode和build为忽略目录 2020-10-19 22:17:22 +08:00
metanoia1989
ed64eb6f5b 卸载安装包时,将pkg-name转换为小写 2020-10-19 22:16:59 +08:00
8f6e5408ae 修改: main.cpp,使用了旧式的DAboutDialog,放弃了定制,可以在ubuntu上运行了。仍然无法打开关于 2020-10-19 15:16:54 +08:00
d5783458fc update README.md. 2020-10-19 00:14:10 +08:00
6e05066dd9 update README.md. 2020-10-19 00:11:33 +08:00
58aa5a3787 update README.md. 2020-10-19 00:10:21 +08:00
6087c8a5c8 update README.md. 2020-10-18 10:13:06 +08:00
ff758946be update README.md. 2020-10-18 10:12:30 +08:00
d1cbf95447 update README.md. 2020-10-18 10:11:18 +08:00
Jerry
187ce7e277 编译说明增加一个组件 2020-10-16 15:07:18 +08:00
d3e4f75254 !11 修复中文环境无法显示通知的问题
Merge pull request !11 from lidanger/master
2020-10-15 15:12:53 +08:00
lidanger
949eb33511 修复中文环境通知,上次少加两行初始化代码 2020-10-14 22:20:55 +08:00
lidanger
3f65002dc9 修复中文环境无法显示通知的问题 2020-10-14 20:57:32 +08:00
RigoLigoRLC
cfd4c7689a RigoLigo合并随机崩溃的修复 2020-10-09 02:08:01 +08:00
RigoLigoRLC
367c8d857c 修复 加载应用程序信息时随机崩溃
这个问题就是因为在异步操作时直接修改GUI,导致事件发生时GUI与异步加载线程不同步导致程序崩溃。将所有加载操作已移至
SpkAppInfoLoaderThread,在其需要操作GUI时阻塞该工作线程并发射信号让主线程操作GUI,以解决该问题。
2020-10-09 02:06:28 +08:00
b41f846ea4 2.0.2.3,修复depend 2020-10-07 22:08:13 +08:00
1dcd7d1c5c fr 2020-10-06 19:48:14 +08:00
01ac388f50 更改qm名字适配dtk 2020-10-06 17:25:25 +08:00
cfbbd34695 !9 add trans/lang_French.ts.
Merge pull request !9 from App4Deepin/N/A
2020-10-06 09:33:16 +08:00
App4Deepin
b7afc5ec8a add trans/lang_French.ts. 2020-10-05 23:34:27 +08:00
b911158274 修改: trans/spark-store_en.ts
修改:     trans/spark-store_zh_CN.qm,支持了贡献翻译
	修改:     trans/spark-store_zh_CN.ts,支持贡献翻译
	修改:     widget.cpp,微调原文,天加两个tips
2020-10-05 22:11:38 +08:00
67c28d0224 删除构建文件 2020-10-05 22:04:13 +08:00
1d65bfc66d 版本号不再翻译,贡献翻译按钮翻译。to-do:翻译按界面翻译 2020-10-05 19:49:37 +08:00
0e595db328 logo 2020-10-05 10:44:20 +08:00
7a16028e38 logo 2020-10-05 10:44:08 +08:00
RigoLigoRLC
1b56d3ad52 更改贡献翻译按钮提示框为DDialog,并修复遗留翻译问题 2020-10-04 00:13:06 +08:00
431e7b555f dwine5-dwine2-tags 2020-10-03 11:26:21 +08:00
RigoLigoRLC
1cbabe7cc5 详情页面添加翻译按钮 2020-10-03 01:30:05 +08:00
d027d513a3 微调界面 2020-10-02 21:33:03 +08:00
RigoLigoRLC
eff8878e8b 修复下载软件失败导致的崩溃,更改APT源更新逻辑
下载失败会导致发射的progress信号已接受数和总数均为0,导致计算进度时被零除;
APT源更新逻辑代码重构,将需要复用的值单独创建变量,重新格式化代码,以及加入了已经废弃的星火源降低优先级代码
2020-10-02 12:03:40 +08:00
f0bf0e5aec 微调翻译,增添翻译 2020-10-01 10:12:13 +08:00
RigoLigoRLC
678a4229f7 将通知移至专用函数,并更新中文翻译ts文件 2020-10-01 02:53:10 +08:00
e89c14b5ca QObject::tr---update-ubuntu-tag 2020-09-30 15:39:30 +08:00
RigoLigoRLC
d4c734627a 添加了用户端QtCreator配置缓存的忽略 2020-09-30 01:07:42 +08:00
8830b14e10 translate#4 2020-09-29 19:49:35 +08:00
8c9f5b8ba6 尝试添加tag.Trying to add tags 2020-09-29 17:44:55 +08:00
badc3aa089 translate-to-English 2020-09-29 17:18:43 +08:00
9c9317dea0 更多的翻译 2020-09-29 12:37:49 +08:00
594f71f98a 英文 2020-09-28 19:50:39 +08:00
c45bf8ffaf !8 菜单新增“软件投稿”选项,添加刷新按钮
Merge pull request !8 from RigoLigo/master
2020-09-28 11:04:35 +08:00
RigoLigoRLC
c9c0357646 新增刷新按钮(和WebEngineView的右键菜单并存) 2020-09-27 15:02:41 +08:00
RigoLigoRLC
bd8f660fe9 菜单中加入投稿按钮,拉起默认浏览器进入投稿
https://gitee.com/deepin-community-store/spark-store/issues/I1VD2Q
2020-09-27 02:06:40 +08:00
538c742303 !7 新增了下载app.json或图标失败将给用户发送提醒
Merge pull request !7 from RigoLigo/master
2020-09-26 10:36:42 +08:00
RigoLigoRLC
c23e816017 新增 下载app.json或图标失败将给用户发送提醒
这里改变了widget这个类里面loadappinfo的返回值,使处理异常返回状态可以实现
2020-09-26 01:19:57 +08:00
2be0e1b523 2.0+1发布 2020-09-23 17:32:26 +08:00
eacc56eaf3 完全改好了 2020-09-23 17:30:46 +08:00
9458bbf2c9 更新DAboutDialog 2020-09-23 16:08:44 +08:00
moshengren
e472ba76f1 !6 Update of english translations
Merge pull request !6 from alvarosamudio/master
2020-09-19 10:20:37 +08:00
alvarosamudio
74bd3ae018 update trans/lang_English.ts. 2020-09-18 23:57:40 +08:00
Jerry
ccc2bb8898 更新README 2020-09-18 15:46:43 +08:00
a59e2e0527 fanyi 2020-09-18 12:36:42 +08:00
2c205bf5db 翻译 2020-09-17 16:49:23 +08:00
efc6c50f88 微调DAboutDialogue内容 2020-09-12 13:36:37 +08:00
ce263c3cb4 更新翻译 2020-09-12 13:29:34 +08:00
78ac339629 翻译更新 2020-09-11 13:36:29 +08:00
58359aa63a !5 更新了图片服务器 线路说明转移到服务端上
Merge pull request !5 from Jerry/master
2020-09-08 17:20:58 +08:00
jerry
e839f7836f 不在客户端现实线路说明, 线路说明写到server.list中 2020-09-08 15:31:55 +08:00
jerry
b34c50d2e0 图片服务器使用jsdelivr cdn 2020-09-08 14:19:47 +08:00
jerry
4d4e3e3e3a 更新图片服务器 2020-09-05 18:20:14 +08:00
jerry
10741a1d92 更新了线路说明, 更具有普适性 2020-09-03 18:40:04 +08:00
maicss
b78ca0e103 新增 软件标签 2020-09-03 10:05:48 +08:00
maicss
3a0ed16a21 Merge branch 'master' of https://gitee.com/deepin-community-store/spark-store 2020-09-02 14:28:52 +08:00
maicss
0a3d583d76 优化UI细节 2020-09-02 14:28:09 +08:00
张天怿
f5121a0405 Delete .pro.user files
Delete useless .pro.user files.
2020-09-01 11:03:20 +08:00
Maicss
e568ddafba 更新 文档
Merge pull request !2 from Jerry/master
2020-08-29 07:42:02 +08:00
jerry
111174a46f update 2020-08-29 00:43:36 +08:00
jerry
6de25a299f update readme 2020-08-29 00:41:23 +08:00
jerry
cbd57a3e25 增加线路说明, 如何编译的说明 2020-08-29 00:27:02 +08:00
maicss
6e083f295b 新增 深度安装器安装选项 2020-08-28 15:03:10 +08:00
maicss
b82a821d01 修复UI细节问题 2020-08-28 14:45:39 +08:00
Maicss
6578af935e 优化UI 2020-08-26 19:58:42 +08:00
Maicss
fe4143a3f7 修改 web控件 2020-08-26 09:39:55 +08:00
Maicss
8952be33c4 修改 web控件 2020-08-26 09:27:34 +08:00
Maicss
4e4f55995e 修改 web控件 2020-08-26 09:26:59 +08:00
张天怿
7af2af64d8 Update image server
Change image server.
2020-08-24 12:44:03 +08:00
张天怿
e7276662f4 Add new server
Change default serverURL for better usage exxperience.
2020-08-23 20:11:02 +08:00
4138c5d634 bug 2020-08-22 09:38:49 +08:00
2bb4feec43 7+2——更改源服务器 2020-08-21 17:29:05 +08:00
Maicss
18c3965742 追加 上一条 2020-08-10 12:36:00 +08:00
Maicss
647fb20f1e 删除 标题栏分割线
修复 下载列表间隙问题
2020-08-10 12:34:51 +08:00
Maicss
a75ecd3a9a 增强 稳定性 2020-08-10 09:27:07 +08:00
Maicss
f9b8faa638 优化 UI细节 2020-08-09 09:08:39 +08:00
Maicss
f39890240f 添加 返回列表按钮 2020-08-08 09:12:46 +08:00
Maicss
3ca8fac6f9 新增 列表ui图标 2020-08-07 10:32:38 +08:00
Maicss
9fbe0032b7 优化 截图的缓存机制 2020-08-06 20:03:17 +08:00
Maicss
3ba66f8f8e update 2020-08-06 16:55:06 +08:00
Maicss
cf1322bab4 删除 无用文件 2020-08-05 20:03:48 +08:00
Maicss
135d16d068 修改 版本号到beta7 2020-08-05 20:00:13 +08:00
Maicss
44201a8bed 修复 低分辨率下默认只显示1列 2020-08-05 19:58:23 +08:00
Maicss
8fafd7b3ee 大幅修改UI设计 2020-08-05 19:49:39 +08:00
Maicss
070788d50d 新增 黑色模式 2020-08-05 10:35:50 +08:00
294 changed files with 29147 additions and 3546 deletions

4
.gitee/Dockerfile Normal file
View File

@@ -0,0 +1,4 @@
FROM shenmo7192/uos-21-dtk5.4:1.0
ADD . /root/workdir
WORKDIR /root/workdir
RUN dpkg-buildpackage

31
.gitee/callback.py Normal file
View File

@@ -0,0 +1,31 @@
import os
import requests
import json
# sha=os.system("git rev-parse HEAD")
sha = os.getenv("GIT_COMMIT")
# sha = '48fed26c51a8c42554e45f72f43e49703e04c97f'
#get sha from environment
url = "https://gitee.com/api/v5/repos/spark-store-project/spark-store/commits/{}/comments".format(sha)
token = os.getenv("gitee_token")
# process = os.popen("git symbolic-ref --short -q HEAD")
body = "构建详情请见" + os.getenv("JENKINS_URL") + "blue/organizations/jenkins/" + os.getenv("JOB_NAME").replace("/", "/detail/") + "/" + str(os.getenv("BUILD_ID"))
# process.close()
d = {
'access_token': token,
"body": body
}
h = {
"Content-Type": "application/json;charset=UTF-8"
}
res = requests.post(url,headers=h, data=json.dumps(d))
# print(res.status_code)
# print(res.content)

13
.github/workflows/program-builder.yml vendored Normal file
View File

@@ -0,0 +1,13 @@
name: Building Program
run-name: Building ${{ GITHUB.REPOSITORY }}
on:
workflow_dispatch:
push:
tags:
- "*"
jobs:
call:
uses: GXDE-OS/GXDE/.github/workflows/building-deb.yml@master
secrets: inherit

56
.gitignore vendored Normal file
View File

@@ -0,0 +1,56 @@
# C++ objects and libs
*.slo
*.lo
*.o
*.a
*.la
*.lai
*.so
*.dll
*.dylib
# Qt-es
object_script.*.Release
object_script.*.Debug
*_plugin_import.cpp
/.qmake.cache
/.qmake.stash
*.pro.user
*.pro.user.*
*.qbs.user
*.qbs.user.*
*.moc
moc_*.cpp
moc_*.h
qrc_*.cpp
ui_*.h
*.qmlc
*.jsc
Makefile*
*build-*
# Qt unit tests
target_wrapper.*
# Qt qm files
translations/*.qm
# QtCreator
*.autosave
# QtCreator Qml
*.qmlproject.user
*.qmlproject.user.*
# QtCreator CMake
CMakeLists.txt.user*
build
# Debian dpkg-buildpackage
debian/*.debhelper*
debian/files
debian/*.substvars
debian/spark-store
.vscode/*
obj-*

View File

@@ -0,0 +1,39 @@
version: '1.0'
name: dtk-build-commit-20220425
displayName: dtk-build-commit
triggers:
trigger: auto
pr:
branches:
prefix:
- ''
stages:
- name: stage-4e566164
displayName: build
strategy: naturally
trigger: auto
executor: []
steps:
- step: execute@docker
name: execute_by_docker
displayName: 基于镜像的脚本执行
certificate: ''
image: docker.io/debian:buster
command:
- sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
- '# 换源'
- apt update
- export DEBIAN_FRONTEND=noninteractive
- echo "安装git devscripts equivs ..."
- apt install git devscripts equivs curl -y >/dev/null 2>&1
- git clone https://gitlink.org.cn/shenmo7192/dtk-old-bundle.git
- cd dtk-old-bundle
- apt install ./*.deb -y
- cd ..
- rm -rf dtk-old-bundle
- 'mk-build-deps --install --tool "apt-get -o Debug::pkgProblemResolver=yes -y" '
- dpkg-buildpackage -j2 -b -us -uc
- cd ..
- ls -all
- pwd
strategy: {}

View File

@@ -0,0 +1,72 @@
version: '1.0'
name: dtk-build-release-tag-20220425
displayName: dtk-build-release-tag
triggers:
trigger: manual
push:
tags:
prefix:
- ''
stages:
- name: stage-4e566164
displayName: build
strategy: naturally
trigger: auto
executor: []
steps:
- step: execute@docker
name: execute_by_docker
displayName: 基于镜像的DTK构建
certificate: ''
image: docker.jianmuhub.com/library/debian:buster
command:
- sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
- '# 换源'
- apt update
- export DEBIAN_FRONTEND=noninteractive
- echo "安装依赖..."
- 'apt install libgsettings-qt-dev -y '
- 'apt install debhelper git curl fakeroot qtbase5-dev zlib1g-dev qt5-default -y '
- git clone https://gitlink.org.cn/shenmo7192/dtk-old-bundle.git
- cd dtk-old-bundle
- apt install ./*.deb -y
- cd ..
- rm -rf dtk-old-bundle
- ''
- '#mk-build-deps --install --tool "apt-get -o Debug::pkgProblemResolver=yes -y" '
- apt build-dep . -y
- strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
- uname -a
- sed -i 's/dh \$@ --parallel/dh \$@/' debian/rules
- '# Gitee的配置太低了'
- dpkg-buildpackage -b -us -uc
- cd ..
- ls -all
- pwd
- ''
- 'mkdir target '
- for f in $(find . -type f -name "*.deb")
- do
- ' mv $f target'
- done
artifacts:
- name: BUILD_ARTIFACT
path:
- ../target
notify: []
strategy:
retry: '0'
- name: stage-29f3ffbb
displayName: 上传
strategy: naturally
trigger: auto
executor: []
steps:
- step: publish@general_artifacts
name: publish_general_artifacts
displayName: 上传制品
dependArtifact: BUILD_ARTIFACT
artifactName: output
notify: []
strategy:
retry: '0'

View File

@@ -0,0 +1,48 @@
version: '1.0'
name: pipeline-dtk-build-aarch64
displayName: dtk-build-aarch64
triggers:
trigger: manual
push:
tags:
prefix:
- ''
stages:
- name: stage-2c12cce1
displayName: 编译
strategy: naturally
trigger: auto
executor: []
steps:
- step: execute@docker
name: execute_by_docker
displayName: 基于镜像的脚本执行
certificate: ''
image: docker.io/debian:buster
command:
- '# 请在此输入您想执行的脚本'
- sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
- apt update
- export DEBIAN_FRONTEND=noninteractive
- echo "安装wget qemu-user-static"
- apt install git wget qemu-user-static xz-utils binfmt-support -y
- mkdir ../spark-store-git
- mv * ../spark-store-git
- git clone https://gitlink.org.cn/shenmo7192/debian-container-aarch64.git
- mv debian-container-aarch64/DEBIANARM.tar.xz .
- rm -rf debian-container-aarch64
- 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/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
- ''
- ''
artifacts:
- name: BUILD_ARTIFACT
path:
- ./DEBIAN/root/build-spark/target
notify: []
strategy:
retry: '0'

0
DOCS/.keep Normal file
View File

48
DOCS/json-api-doc.md Normal file
View File

@@ -0,0 +1,48 @@
# 基本格式
0. 应用信息
例子https://cdn.d.store.deepinos.org.cn/store/tools/spark-store/app.json
```json
{
"Name": "星火应用商店",
"Version": "4.2.7.1",
"Filename": "spark-store_4.2.7.1_amd64.deb",
"Torrent_address": "spark-store_4.2.7.1_amd64.deb.torrent",
"Pkgname": "spark-store",
"Author": "shenmo <shenmo@spark-app.store>",
"Contributor": "shenmo <jifengshenmo@outlook.com>",
"Website": "https://www.spark-app.store/",
"Update": "2023-09-01 23:22:23",
"Size": "590.5 KB",
"More": "* 修复aptss加锁失败现在会正常报错\n * 新增在aptss的特定操作时添加了提示\n * 新增在aptss提示加粗\n * 调整ssinstall验证支持使用cdn.d.获取",
"Tags": "community;ubuntu;deepin;uos;dtk5",
"img_urls": "[\"https://examine-spark.oss-cn-shanghai.aliyuncs.com/images/2023/09/01/411c32fd691544bb985ecba87d151ea0.png\",\"https://examine-spark.oss-cn-shanghai.aliyuncs.com/images/2023/09/01/f44b3c2242c045e28f1161980d805e0d.png\",\"https://examine-spark.oss-cn-shanghai.aliyuncs.com/images/2023/09/01/00263ba857894667bd99240558bec69c.png\",\"https://examine-spark.oss-cn-shanghai.aliyuncs.com/images/2023/09/01/6fd248ad9eea4ef18c9c4acc2a9d372d.png\"]",
"icons": "https://examine-spark.oss-cn-shanghai.aliyuncs.com/icons/2023/09/01/a88dd18cc1734396a02e7e3c6be59718.png"
}
```
*注意img_urls和icons的信息不保证有效大部分是有效的少部分app.json可能缺失此项目*
**对于icon和截图的获取需求请参考第三点**
1. 对于某分类下的所有应用信息
`{SOURCE_URL}/{ARCH}/{CATOGARY}/applist.json`
说明SOURCE_URL线路链接目前推荐 https://cdn.d.store.deepinos.org.cn你也可以使用其他的星火线路
ARCH架构文件夹 x86是store或amd64-storearm是aarch64-store。特别的如果你使用非https://cdn.d.store.deepinos.org.cn的线路你可能会发现amd64-store会返回404因为不是所有的服务器都支持软连接
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
2. 对于单个应用的应用信息
`{SOURCE_URL}/{ARCH}/{CATOGARY}/{Package Name}/app.json`
Package Name是包名。可从上级的applist.json读取
例子https://cdn.d.store.deepinos.org.cn/store/tools/spark-store/app.json
3. 对应用截图和icon的获取
`{SOURCE_URL}/{ARCH}/{CATOGARY}/{Package Name}/icon.png`
`{SOURCE_URL}/{ARCH}/{CATOGARY}/{Package Name}/screen_n.png`(n=1-5)(至少为1不是所有的都有到5. 404是正常的

34
DOCS/spk-doc.md Normal file
View File

@@ -0,0 +1,34 @@
#### 调用参数(spk规则)
* store直达
该url应当遵循这种格式`spk://store/web分类/包名`
例如:
[spk://store/games/store.spark-app.hmcl](spk://store/games/store.spark-app.hmcl)
可选的web分类
| 分类名称 | web分类   |
| -------- | -------------- |
| 网络 | network |
| 社交 | chat |
| 音乐 | music |
| 视频 | video |
| 图像 | image_graphics |
| 游戏 | games |
| 办公 | office |
| 阅读 | reading |
| 开发 | development |
| 工具 | tools |
| 主题 | themes |
| 其他 | others |
* search搜索
spk://search/pkgname

View File

@@ -0,0 +1,82 @@
# 关于编写 "描述主体结构预览说明" 的规范
1. 主体结构预览
一般以 `tree` 命令进行获取目录结构进行展示所需要描述的预览内容。
2. 对主体结构中的内容单独说明
并使用所用语言进行非侵入式独立描述,而不是在代码中填充说明与注释。
在单行描述中,尽量不超过您认为最大的字符数量宽度,可以收缩内容的重要性。
在此种说明文档中,尽量使用您所描述的对象支持的代码注释,而不是以白底黑字进行描述。
对于规范的全部:主体结构 + 单独内容中进行简单(而不是简少)的说明。
一个简单的例子,例如: 有关项目源代码结构的预览说明
- 项目结构预览
```
.
├── assets
├── debian
├── DOCS
├── patchs
├── src
├── tool
└── translations
10 directories, 9 files
```
- 来自 debian 目录的说明
```shell
# 将此项目进行 debian 的标志,基于 debian 系列的发行版可对包含
# 此种目录的开源项目进行构建 deb 软件包。
# 1. 构建软件包(打包)
# 执行 dpkg-buildpackage 命令以尝试构建此软件包
dpkg-buildpackage
# 如果构建将会在上级目录中产生一个 deb而源代码目录不会有任何变化。
# 如果出现以下内容可忽视,仅需要查看是否已成功构建软件包:
# gpg: 已跳过 "" 无效的用户ID
# gpg: ...: clear-sign failed: 无效的用户ID
# dpkg-buildpackage: error: failed to sign .dsc file
```
- 来自 patchs 目录的说明
```shell
# 一种用于可扩展的补丁,主要目的是为项目提供可选的应用方案,而不是直接堆砌到
# 当前项目的分支中。您可以认为所有分支都是主线分支。
# 例如:
# 主线稳定分支: master
# 主线开发分支: dev
# 主线其它: ...
# 注意:
# 当您认为您所提交的内容并不会为主线带来 bug fix 之类的内容,请使用补丁。
# 当您所提交的内容会带来不可预知的问题的时候,或会改变目前主线的开发模式时,
# 此种方式可确保您提交的方案可被任意时间被弃用,而不是由其它维护者耗费精力
# 去试图移除您提交的内容,而不是等待由提交者进行新的维护。
```
- 来自其它的内容...可随时由任何人进行补充
- 一些在关此种预览描述的文档
```shell
# 此种描述还将出现在 `src/README.md` 的描述中。
# 当然,我预期会由其它维护者进行移动到 `DOCS` 之下。
# 另外在 `patchs/zinface-community-cmake-build-system.patch` 补丁文件中,
# 也随附过一个简要的文档内容,而它是记录了 `Spark` 为名的构建模式。
# 在未应用此补丁时,将不会出现在任何地方。
```

7
DOCS/内网部署.md Normal file
View File

@@ -0,0 +1,7 @@
需要修改的内容商店默认源位置aptss获取apt-fast.conf和sparkstore.list的地址ssinstall做安装检查的源位置
服务器使用update.sh进行同步。
为方便使用(其实是早期屎山使然),请将仓库放置于 `/home/ftp/spark-store`
仓库管理相关代码请移步 [这里](https://gitee.com/spark-store-project/repo_auto_update_script)update.sh请联系 @shenmo 获取

41
EULA Normal file
View File

@@ -0,0 +1,41 @@
星火开源软件协议Spark Opensource LICENSE
版权所有 (C) 2023 星火社区
根据 GNU 通用公共许可证第三版GPL v3本软件是自由软件您可以修改和再发布它。但是为了维护原作者的权益并保护社区用户的权益请遵守以下条款
1. 对本仓库下的所有文件生效:本许可证适用于本仓库(或项目)下的所有文件。任何使用、修改或再发布本软件的个人或组织都必须遵守本许可证。
2. 版权声明和许可证文件:您不得移除、隐藏或更改本软件中包含的原作者的版权声明和许可证文件。保留原作者的权益信息对于维护开源软件生态系统至关重要。
3. 版本标注: 如果您对本软件做出修改并再发布,您必须在醒目位置标注此版本并非星火社区官方提供。这样可以避免误导使用者认为该软件为星火社区官方提供的版本。此软件仅授权用于个人非盈利用途,任何将其用于商业目的或在盈利性组织中使用的行为均需事先获得星火社区的书面许可。
4. 商标使用您不得在再发布版本中使用“星火应用商店”、“Spark Store”或星火应用商店的Logo等可能误导使用者此软件由星火社区官方提供的信息。
5. 服务条款:您使用星火商店软件的行为将被视为您同意星火在不侵犯您隐私的前提下搜集版本、日志等信息,以便于星火社区更好地为您提供服务。
6. 仓库版权条款:为了更好的提供持续性服务,星火仅对个人用户免费开放服务仓库,如您或您的组织需要提供商业服务或者您的组织为盈利性组织,请联系星火社区获取商业授权。
7. 禁止恶意行为和批量爬取: 用户或组织在使用本软件时,严禁进行任何形式的恶意行为,包括但不限于恶意攻击、滥用、破坏、批量爬取软件仓库等。恶意行为的定义由星火社区自行判断,违反者将被追究法律责任。
8. 分发与再分发权利: 星火社区保留对其制作的软件包的分发权利。未经明确授权,禁止任何个人或组织将星火社区软件包用于商业目的或在未获得星火社区许可的情况下进行再分发。此条款旨在确保开源精神的同时,维护星火社区的知识产权。
9. 商业应用限制:您不得使用本软件的代码开发商业应用,也不得在商业应用中使用本软件的代码,除非获得星火社区和火穗(沈阳)计算机软件开发有限公司的书面许可。
10. 其他条款:除上述约定外,若您使用了星火商店的主程序或其部分代码,您应遵守 GPL v3 的所有其他条款和要求。若本协议条款的内容与GPL V3中的内容不同的以本协议条款为准
11. 其他约定:本许可以简体中文版本为最准确释义
GPLV3许可证的完整文本可以在以下链接找到https://www.gnu.org/licenses/gpl-3.0.html
---------------------------------------------------------------------------------------------------------------------------------
Spark Opensource LICENSE
Copyright (C) 2023 The Spark Community
This software is free software; you can modify and redistribute it under the terms of the GNU General Public License version 3 (GPL v3). However, to protect the rights of the original authors and the interests of the community users, please adhere to the following terms:
1. Applicability to all files in this repository: This license applies to all files in this repository (or project). Any individuals or organizations that use, modify, or redistribute this software must comply with this license.
2. Copyright notice and license files: You must not remove, hide, or modify the copyright notice and license files of the original authors included in this software. Preserving the rights information of the original authors is essential for maintaining the open-source software ecosystem.
3. Version annotation: If you modify and redistribute this software, you must mark in a prominent position that this version is not officially provided by the Spark community. This avoids misleading users into thinking that the software is an official version provided by the Spark community. This software is licensed for personal, non-profit use only, and any use of it for commercial purposes or in for-profit organizations requires the prior written permission of the Spark Community.
4. Trademark usage: You are not allowed to use terms such as "Spark App Store," "Spark Store," or the logo of Spark App Store in redistributed versions, as they may mislead users into believing that the software is provided by the official Spark community.
5. Terms of Service: Your use of the software of Spark Store will be deemed as your consent to collect version, log and other information on the premise of not violating your privacy, so as to facilitate the Spark community to provide you with better services.
6. Warehouse copyright terms: In order to better provide continuous services, Spark is only free for individual users to open the service warehouse, if you or your organization needs to provide commercial services or your organization is a for-profit organization, please contact Spark community to obtain commercial authorization.
7. Prohibited malicious behavior and mass crawling: Users or organizations are strictly prohibited to engage in any form of malicious behavior when using the software, including but not limited to malicious attacks, abuse, destruction, and mass crawling of software warehouses. The definition of malicious behavior is judged by the Spark community, and violators will be held legally responsible.
8. Distribution and redistribution rights: Spark Community reserves the right to distribute the software packages it produces. Any person or organization is prohibited from using the Spark Community software package for commercial purposes or redistributing it without the express authorization of the Spark Community. This clause is intended to ensure the spirit of open source while safeguarding the intellectual property rights of the Spark community.
9. Business Application Restriction: You are not permitted to utilize the code of this software for developing commercial applications, nor are you allowed to integrate the code of this software into commercial applications without obtaining written consent from both the Spark Community and Flamescion (Shenyang) Computer Software Development Co., Ltd.
10. Other Terms: In addition to the above provisions, if you use the main program or any part of the code of Spark Store, you must comply with all other terms and requirements of GPL v3. In case of any inconsistency between the terms of this agreement and those of GPL v3, the terms of this agreement shall prevail.
11. Additional Agreements: This license shall be interpreted most accurately in its Simplified Chinese version.
You can find the full text of GPLV3 license at: https://www.gnu.org/licenses/gpl-3.0.html

91
FAQ.md Normal file
View File

@@ -0,0 +1,91 @@
# FAQ
## Spark Store FAQ and Support Guide
### Introduction
The Spark Store is an application store designed for Linux users, supporting various Linux distributions. Below are some frequently asked questions and their solutions. Please note that this document primarily targets ordinary users unfamiliar with Linux and the `apt` package management system.
---
### Communication and Feedback
**Q: How can I participate in discussions?**
**A:** You can click [this link](https://bbs.spark-app.store/) to enter the Spark Forum for communication.
> 📣 You can also join our QQ Discussion Groups: 872690351 and 865927727.
---
### Difference Between arm64 and amd64
#### arm64
* Full Name: Advanced RISC Machine 64-bit
* Primary Use: Mainly applied to mobile devices, embedded systems, and some new servers and desktop computers
* Advantages: Low power consumption, high efficiency, suitable for battery-powered and heat-sensitive devices
* Major Manufacturers: Apple, Qualcomm, HiSilicon, Phytium, etc.
#### amd64
* Full Name: AMD 64-bit, also known as x86_64
* Primary Use: Mainly applied to desktop computers, laptops, and servers
* Advantages: High performance, suitable for compute-intensive applications
* Major Manufacturers: Intel and AMD
The main difference between the two lies in their instruction sets and application scenarios. amd64 is typically used for high-performance computers and servers, while arm64 is more commonly used in environments with strict power consumption requirements.
#### How to Check:
- Open the Linux terminal
- Enter the command `uname -m` or `arch` and press `Enter`
- You will see your computer's processor architecture (e.g., x86_64, aarch64)
---
### Domestic Architecture Support
**Q: My computer uses a domestic architecture. How can I obtain the Spark Store?**
**A:** Currently, the Spark Store supports **ARM** architecture and **LoongArch New World** architecture. You can download deb packages (software installation packages) for arm64 and loong64 architectures.
> ⚠️ Please note that this support is experimental. If you encounter issues, please report them to us via the Spark Forum or QQ Discussion Group.
---
### Dependency Installation Issues
**Q: What if dependency package installation fails?**
**A:** If you are using UOS or deepin, do not install dependencies. Only some Linux distributions require dependency packages. For unsupported distributions, you may need to compile manually. See the [Spark Store Introduction](https://gitee.com/spark-store-project/spark-store/blob/dev/README.md).
> 💡 When errors occur, run `sudo apt update` first and try again. If the issue persists, refer to the above and seek help via communication platforms.
---
### Software Submission and Updates
**Q: Where can I submit software?**
**A:** You can find the "Submit Application" option in the top-right menu of the app store interface. We provide two submission methods: **Submission Tools** and **Online Platform**.
---
### Support for Non-deepin/UOS Users
**Q: Can I use Spark Store if I am not a deepin/UOS user?**
**A:** It can be installed normally on Debian-based distributions. For example, if you use Ubuntu 22.04, install directly. For Ubuntu 20.04 / Debian 10 / Debian 11, install dependencies first. Additionally, experience may not be guaranteed if installed on non-Debian Linux distributions.
---
### Installation Methods
**Q: Can I install using `dpkg -i`?**
**A:** We **strongly advise against this**. In the directory where the package is saved, use `sudo apt install ./spark-store*.deb` or a graphical installer like Gdebi.
> ⚠️ Direct use of `dpkg` generally does not handle software dependencies, potentially causing installation failures or damaging the system's dependency environment.
---
### System Updates
**Q: Will Spark Store affect normal system updates?**
**A:** No. The current version of Spark Store has decoupled its application sources from system sources and will not affect normal system updates.
---
### Reporting Issues and Application Removal
**Q: Some applications are outdated or invalid. I want them removed.**
**A:** You can [report issues here](https://gitee.com/spark-store-project/software_-issue).
---
### Installing Spark Store
If you need to install Spark Store, visit the [Release Page](https://gitee.com/spark-store-project/spark-store/releases), find the latest version, and download the installer suitable for your system.
> ⚠️ Special Note: If you are using Debian 10 / Debian 11 or Ubuntu 20.04, you need to download the dependency supplementary package additionally. After downloading, extract multiple times until dependency instructions are visible, then follow steps to install dependencies. For Ubuntu 22.04 and later, no dependency package is required. Follow the above instructions to install the main program directly.
---

91
FAQ.zh.md Normal file
View File

@@ -0,0 +1,91 @@
# FAQ
## 星火应用商店 FAQ 与支持指南
### 简介
星火应用商店是一个面向 Linux 用户的应用商店,支持多种不同的 Linux 发行版。以下是一些常见问题及解决方案。请注意,该文档主要面向对 Linux 和 `apt` 软件包管理系统不熟悉的普通用户。
---
### 交流与反馈
**Q: 如何参与交流讨论?**
**A:** 您可以点击[此链接](https://bbs.spark-app.store/)进入星火社区论坛进行交流。
> 📣 您还可以加入我们的 QQ 交流群,群号是 872690351 和 865927727。
---
### arm64 与 amd64 的区别
#### arm64
* 全称: Advanced RISC Machine 64-bit
* 主要用途: 主要应用于移动设备、嵌入式系统以及一些新型的服务器和桌面计算机;
* 优势: 低功耗、高效率,适合用在电池驱动和热敏感的设备;
* 主要生产商: 苹果、高通、海思、飞腾等。
#### amd64
* 全称: AMD 64-bit, 也被称为 x86_64
* 主要用途: 主要应用于桌面计算机、笔记本以及服务器;
* 优势: 高性能,适用于计算密集型应用;
* 主要生产商: Intel 和 AMD。
两者最主要的不同在于指令集和应用场景。amd64 通常用于高性能需求的计算机和服务器而arm64则更多应用于功耗要求更严格的场合。
#### 查看方法:
- 打开 Linux 终端;
- 输入命令 `uname -m``arch` 并按 `Enter` 键执行;
- 您将看到您计算机的处理器架构(可能是 x86_64, aarch64 等)。
---
### 国产架构支持
**Q: 我的计算机属于国产架构,如何获取星火应用商店?**
**A:** 目前,星火商店支持 **ARM** 架构和**龙芯·新世界**架构的国产芯片。您可以下载适用于 arm64 架构和 loong64 架构的 deb 包(软件安装包)。
> ⚠️ 请注意,这项支持是实验性的。若遇到问题,请在星火社区论坛或 QQ 交流群向我们反馈。
---
### 安装依赖问题
**Q: 安装依赖包出现错误,怎么办?**
**A:** 如果您使用 UOS 或 deepin请不要安装依赖包。仅有部分 Linux 发行版需要安装依赖包,此外对于不在支持列表中的发行版可能需要您自行编译安装,详见[星火应用商店简介](https://gitee.com/spark-store-project/spark-store/blob/dev/README.zh.md)。
> 💡 出现错误时,请运行 `sudo apt update` 后再尝试安装。如果问题仍然存在,请参考上文,进入交流平台寻求帮助。
---
### 投稿与应用更新
**Q: 在哪里可以投稿软件?**
**A:** 您可以在应用商店界面的右上角菜单找到“投递应用”的选项,我们提供了**投递工具**和**在线平台**两种投稿方案。
---
### 非 deepin/UOS 用户支持
**Q: 我不是 deepin/UOS 用户,可以使用星火应用商店吗?**
**A:** 在 Debian 系发行版可正常安装使用。例如,如果您使用 Ubuntu 22.04,请直接安装;对于 Ubuntu 20.04 / Debian 10 / Debian 11请先安装依赖包。此外如果您在非 Debian 系 Linux 发行版安装使用星火应用商店,软件的体验可能无法得到保证。
---
### 安装方法
**Q: 我可以用 `dpkg -i` 安装吗?**
**A:** 我们**极不建议您这样做**。请在安装包保存目录下,使用 `sudo apt install ./spark-store*.deb` 安装,或使用 Gdebi 等图形化安装器。
> ⚠️ 直接使用 `dpkg` 一般不会处理软件依赖,可能致使安装失败、破坏系统依赖环境。
---
### 系统更新
**Q: 星火应用商店会影响系统正常更新吗?**
**A:** 不会,当前版本的星火应用商店已将应用源与系统源解耦合,不会影响系统的正常更新。
---
### 报告问题和应用下架
**Q: 有些应用已经过时或者失效了,我想让它下架。**
**A:** 您可以[前往这里](https://gitee.com/spark-store-project/software_-issue)报告问题。
---
### 安装星火应用商店
如果您需要安装星火应用商店,请打开 [Release 页面](https://gitee.com/spark-store-project/spark-store/releases),找到最新版本,并选择适用于当前系统的安装包下载。
> ⚠️ 特别提示: 如果您在使用 Debian 10 / Debian 11 或 Ubuntu 20.04,则需要额外下载依赖补充包;您需要在下载完依赖包后,解压多次直至内部的依赖包使用说明可见,按照步骤安装依赖。对于 Ubuntu 22.04 以后的操作系统版本,您无需安装依赖包,按照上面的操作直接安装本体程序即可。
---

33
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,33 @@
pipeline {
agent any
stages {
stage('build') {
agent {
docker {
image 'jerry979/dtke:5.11.1'
}
}
steps {
sh 'mkdir build && cd build && qmake .. && make '
archiveArtifacts(artifacts: 'build/src/spark-store', allowEmptyArchive: true, defaultExcludes: true)
}
}
stage('send') {
agent {
dockerfile {
filename '.gitee/Dockerfile'
}
}
environment {
gitee_token = credentials('1')
}
steps {
sh "python3 .gitee/callback.py"
}
}
}
}

1348
LICENSE

File diff suppressed because it is too large Load Diff

198
README.md
View File

@@ -1,53 +1,179 @@
# 星火商店
# Spark Store
[![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)
#### 介绍
星火商店商店,由深度社区爱好者维护
web页面部分正在开发当中详情请见[web仓库](https://gitee.com/deepin-community-store/DCSAPP_WEB)
#### 说明
## Introduction
当前服务器线路列表(项目中包含):
Welcome to the **Spark Store**! This is an application store designed for Linux platform users, aiming to address the issues of fragmented and difficult-to-obtain software within the Linux ecosystem. Regardless of your Linux distribution, you may find suitable software packages here.
```
http://dcstore.shenmo.tech/
http://store.jerrywang.top/
```
The number of Linux applications is relatively limited, and obtaining Wine software can also be challenging. Excellent development kits and tool resources are scattered across various communities and forums, making it difficult for the entire ecosystem to achieve comprehensive improvement.
#### 参数
Ecosystem construction does not rely on isolated individual efforts but requires full community participation. Only when everyone's "spark" gathers in one place can it ignite a prairie fire.
参数只有一个Url该url应当遵循这种格式`spk://<任意合法字符>/web分类/包名`
To improve this situation, we have launched the Spark Store. The Spark Community extensively collects software packages for various user needs, aggregates high-quality small tools, and proactively adapts Wine applications. All resources are stored in our repository, allowing users to conveniently access these applications.
例如:
**Currently supported Linux distributions include (but are not limited to):**
[spk://abcdefg/network/firefox-zh](spk://abcdefg/network/firefox-zh)
- **amd64 Architecture:** deepin 20 / deepin 23 / Ubuntu 20.04 / Ubuntu 22.04 / UOS Home Edition 20 / Debian 11+
- **arm64 Architecture:** UOS Professional Edition 1060 / Ubuntu 22.04 / deepin 23
- **loong64 Architecture:** deepin 23
[spk://higklmn/network/firefox-zh](spk://higklmn/network/firefox-zh)
> Special Note: Spark Store also supports all Ubuntu OS versions newer than Ubuntu 22.04, such as Ubuntu 22.10, 23.04, 23.10, etc. Additionally, Spark Store may adapt to other Linux distributions beyond the listed platforms; you may conduct installation tests accordingly.
可选的web分类
**Important Notice:** This software cannot guarantee continuous availability, uninterrupted operation, or meeting specific performance requirements. The Spark community makes no commitment to the functional completeness, stability, or error-free operation of this software. For example, if you plan to use it on UOS Professional Edition (or other similar specific platforms), please ensure you understand and enable the "Developer Mode" features. Basic troubleshooting capabilities are required. It is important to note that the Spark community cannot conduct extensive testing on some special platforms. Therefore, using the Spark Store client on these platforms may lead to various issues such as system update failures or data loss. Using this software indicates your understanding and acceptance that all risks must be borne by the user.
| 分类名称 | web分类 |
| -------- | -------------- |
| 网络应用 | network |
| 社交沟通 | chat |
| 音乐欣赏 | music |
| 视频播放 | video |
| 图形图像 | image_graphics |
| 游戏娱乐 | games |
| 办公学习 | office |
| 阅读翻译 | reading |
| 编程开发 | development |
| 系统工具 | tools |
| 主题美化 | themes |
| 其他应用 | others |
## About Team Collaboration
#### 目录结构
Organization Repository Links:
安装软件过程中产生的包,图标,截图等被储存到`/tmp/deepin-community-store/`中。
https://gitee.com/spark-store-project/spark-store
配置文件被储存到`~/.config/deepin-community-store/`中。
https://gitcode.com/spark-store-project/spark-store
线路文件:新版的线路文件被放置于源服务器中,可随时刷新更新源列表
https://github.com/spark-store-project/spark-store
#### 参与贡献
Refer to [this link](https://wiki.spark-app.store/#/Dev/Spark-Store-Git-Repo) for detailed documentation on branch management.
1. Fork 本仓库
We warmly welcome you to join our development team. Whether you wish to participate in development or plan to submit applications, you can find your place here to jointly promote the development of the Linux application ecosystem.
You can track our Issue processing status in real-time via the [Issue Board](https://gitee.com/spark-store-project/spark-store/board).
If you have software packages to submit, please [click here to contribute](https://wiki.spark-app.store/#/Submit/Submit).
## Table of Contents
- [Read the Copyright Notice](#read-the-copyright-notice)
- [Determine Your System Architecture](#determine-your-system-architecture)
- [System Support and Installation Instructions](#system-support-and-installation-instructions)
- [For deepin Users](#for-deepin-users)
- [For Ubuntu Users](#for-ubuntu-users)
- [For Debian Users](#for-debian-users)
- [Frequently Asked Questions (FAQ)](#frequently-asked-questions-faq)
- [Contact and Feedback](#contact-and-feedback)
---
## Read the [Copyright Notice](LICENSE)
## Determine Your System Architecture
Before installing any software, you need to know which architecture your computer is running on (e.g., x86_64/amd64 or aarch64/arm64), which also applies to the Spark Store.
**How to Check:**
1. Open the Linux terminal.
2. Enter the command `uname -m` or `arch` and press `Enter`.
You will see the terminal output result, which helps determine your system architecture. Examples:
- If you see `x86_64`, your system is amd64 architecture.
- If you see `aarch64`, your system is arm64 architecture.
Based on this result, you need to download the corresponding version of the Spark Store installer to use it properly.
---
## System Support and Installation Instructions
Based on your Linux distribution and system architecture, here are detailed steps to install Spark Store.
### For deepin Users
#### For deepin Users
1. **Download and Install**
You can directly search for `Spark Store` in the deepin App Store for installation, or copy this link to your browser address bar to jump to the deepin App Store installation page.
> appstore://deepin-home-appstore-client?app_detail_info/spark-store
Versions published in the deepin App Store may not be the latest. To use the latest version, visit the Spark Store [Gitee Release Page](https://gitee.com/spark-store-project/spark-store/releases) or [Gitcode Release Page](https://gitcode.com/spark-store-project/spark-store/releases) and download the latest version for deepin, then install it.
Assuming you downloaded the installer to the Downloads folder under your home directory, we recommend using the `apt` tool for installation to avoid potential dependency issues:
```shell
cd ~/Downloads
sudo apt install ./spark-store*.deb
```
### For Ubuntu Users
#### For Ubuntu 20.04 Users
1. **Download Dependencies**
* Visit the [Spark Store Dependency Package Download Page](https://gitee.com/spark-store-project/spark-store-dependencies/releases) to download the latest dependency package;
* Extract the dependency package multiple times until you see numerous `.deb` installation packages;
* Follow the instructions inside the dependency package to install all dependencies at once.
2. **Download and Install**
Visit the Spark Store [Gitee Release Page](https://gitee.com/spark-store-project/spark-store/releases) or [Gitcode Release Page](https://gitcode.com/spark-store-project/spark-store/releases) to download and install the installer matching your computer's architecture.
Assuming you downloaded the installer to the Downloads folder under your home directory, we recommend using the `apt` tool for installation to avoid potential dependency issues:
```shell
cd ~/Downloads
sudo apt install ./spark-store*.deb
```
#### For Ubuntu 22.04 and Newer Ubuntu Versions
1. **No Dependency Package Required**
2. **Download and Install**
Visit the Spark Store [Gitee Release Page](https://gitee.com/spark-store-project/spark-store/releases) or [Gitcode Release Page](https://gitcode.com/spark-store-project/spark-store/releases) to download and install the installer matching your computer's architecture.
Assuming you downloaded the installer to the Downloads folder under your home directory, we recommend using the `apt` tool for installation to avoid potential dependency issues:
```shell
cd ~/Downloads
sudo apt install ./spark-store*.deb
```
### For Debian Users
#### For Debian 11 Users
1. **Download Dependencies**
* Visit the [Spark Store Dependency Package Download Page](https://gitee.com/spark-store-project/spark-store-dependencies/releases) to download the latest dependency package;
* Extract the dependency package multiple times until you see numerous `.deb` installation packages;
* Follow the instructions inside the dependency package to install all dependencies at once.
2. **Download and Install**
Visit the Spark Store [Gitee Release Page](https://gitee.com/spark-store-project/spark-store/releases) or [Gitcode Release Page](https://gitcode.com/spark-store-project/spark-store/releases) to download and install the installer.
#### For Debian 12+ Users
1. **No Dependency Package Required**
2. **Download and Install**
Visit the Spark Store [Gitee Release Page](https://gitee.com/spark-store-project/spark-store/releases) or [Gitcode Release Page](https://gitcode.com/spark-store-project/spark-store/releases) to download and install the installer matching your computer's architecture.
Assuming you downloaded the installer to the Downloads folder under your home directory, we recommend using the `apt` tool for installation to avoid potential dependency issues:
```shell
cd ~/Downloads
sudo apt install ./spark-store*.deb
```
---
## Frequently Asked Questions (FAQ)
Please refer to the [Spark Store FAQ and Support Guide](https://gitee.com/spark-store-project/spark-store/blob/dev/FAQ.md);
For advanced users requiring custom aptss config configuration, please refer to the [aptss Repository](https://gitee.com/GXDE-OS/aptss).
---
## Contact and Feedback
- If you have any questions or suggestions, please submit issues via email or the [Issue Page](https://gitee.com/spark-store-project/spark-store/issues);
- If you want to follow our development progress, visit the [Spark Store Board](https://gitee.com/spark-store-project/spark-store/board) for more information;
- Welcome to visit the [Spark Community Forum](https://bbs.spark-app.store/) to join discussions;
- Our QQ Discussion Group: 872690351 and 865927727;
- If you or your organization requires commercial support, please leave a message for consultation.
---

204
README.zh.md Normal file
View File

@@ -0,0 +1,204 @@
# 星火应用商店
[![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)
## 简介
欢迎来到**星火应用商店**!这是一个为 Linux 平台用户设计的应用商店,旨在解决 Linux 生态下应用分散、难以获取的问题。无论您使用什么类型的 Linux 发行版,在这里都有可能找到适合您的软件包。
Linux 应用的数量相对有限Wine 软件的可获取性也颇为困难。优秀的开发套件和工具资源散布在各大社区和论坛之间,这种分散化让整个生态系统难以得到全面的提升。
生态系统的构建并非依赖个体的孤立努力,而需要全社区共同参与。只有当大家的“星火”聚集一处,方可引发“燎原之势”。
为了改善这一现状,我们推出了星火应用商店。星火社区广泛地收录了各种用户需求的软件包,汇集了高质量的小工具,并主动对 Wine 应用进行了适配,一切都储存在我们的软件库中,使得用户可以方便地获取这些应用。
**当前支持的 Linux 发行版包括(但不限于):**
- **amd64 架构:** deepin 20 / deepin 23 / Ubuntu 20.04 / Ubuntu 22.04 / UOS 家庭版 20 / Debian 11
- **arm64 架构:** UOS 专业版 1060 / Ubuntu 22.04 / deepin 23
- **loong64 架构:** deepin 23
> 特别说明:星火应用商店还支持所有版本高于 Ubuntu 22.04 的 Ubuntu 操作系统,例如 Ubuntu 22.10、23.04、23.10 等。此外星火应用商店也可能适配除上述平台的其他 Linux 发行版,您可自行进行安装测试。
**重要须知:** 本软件无法保证持续可用、无中断运行或满足特定性能要求。星火社区对其功能完整性、稳定性及无错误运行不作任何承诺。例如,若您计划在 UOS 专业版(或其他类似特定平台)上使用,请务必了解并启用“开发者模式”相关功能。请确保您具备基础的故障排查能力。需要明确的是,星火社区无法在部分特殊平台上进行广泛测试。因此,在这些平台上使用星火应用商店客户端可能会导致一系列问题,如系统更新失败、数据丢失等;使用该软件,即代表您理解并同意所有风险需由用户自行承担。
## 关于团队协作
组织仓库链接:
https://gitee.com/spark-store-project/spark-store
https://gitcode.com/spark-store-project/spark-store
https://github.com/spark-store-project/spark-store
参见[此链接](https://wiki.spark-app.store/#/Dev/Spark-Store-Git-Repo)以获取分支管理相关的详细文档。
我们热忱欢迎您加入我们的开发团队。无论您是希望参与开发,还是计划提交应用,都能在这里找到属于您的一席之地,共同推动 Linux 应用生态的发展。
您可以通过以下链接,实时跟踪我们的 Issue 处理状态:[Issue 看板](https://gitee.com/spark-store-project/spark-store/board)。
若您有软件包需要提交,敬请[点击此处进行投稿](https://wiki.spark-app.store/#/Submit/Submit)。
## 目录
- [星火应用商店](#星火应用商店)
- [简介](#简介)
- [关于团队协作](#关于团队协作)
- [目录](#目录)
- [阅读版权声明](#阅读版权声明)
- [确定你的系统架构](#确定你的系统架构)
- [系统支持与安装指引](#系统支持与安装指引)
- [对于 deepin 用户](#对于-deepin-用户)
- [对于 deepin 用户](#对于-deepin-用户-1)
- [对于 Ubuntu 用户](#对于-ubuntu-用户)
- [对于 Ubuntu 20.04 用户](#对于-ubuntu-2004-用户)
- [对于 Ubuntu 22.04 及更高版本的 Ubuntu 用户](#对于-ubuntu-2204-及更高版本的-ubuntu-用户)
- [对于 Debian 用户](#对于-debian-用户)
- [对于 Debian 11 用户](#对于-debian-11-用户)
- [对于 Debian 12+ 用户](#对于-debian-12-用户)
- [常见问题FAQ](#常见问题faq)
- [联系与反馈](#联系与反馈)
---
## 阅读[版权声明](LICENSE)
## 确定你的系统架构
在安装任何软件之前,您需要知道你的计算机运行在何种架构之上(如 x86_64/amd64 或 aarch64/arm64对于星火应用商店亦是如此。
**如何检查:**
1. 打开 Linux 终端。
2. 输入命令 `uname -m``arch` 并按 `Enter` 键执行。
您会看到终端输出结果,借此您可判断计算机的系统架构。举例:
- 如果您看到 `x86_64`,说明您的系统为 amd64 架构。
- 如果您看到 `aarch64`,说明您的系统为 arm64 架构。
根据这一结果,您需要下载对应版本的星火应用商店安装包以正常使用。
---
## 系统支持与安装指引
根据您的 Linux 发行版和系统架构,以下是安装星火应用商店的详细步骤。
### 对于 deepin 用户
#### 对于 deepin 用户
1. **下载并安装**
您可直接在深度应用商店搜索 `星火应用商店` 安装,或复制此链接到浏览器地址栏,跳转至深度应用商店安装。
> appstore://deepin-home-appstore-client?app_detail_info/spark-store
深度应用商店发布的版本可能不是最新的。若要使用最新版本,请访问星火应用商店 [Gitee 的 Release 页面](https://gitee.com/spark-store-project/spark-store/releases)或 [Gitcode 的 Release 页面](https://gitcode.com/spark-store-project/spark-store/releases)并下载适用于 deepin 的最新版本,安装后即可使用。
假设您将安装包下载至用户目录下的 Downloads 文件夹,我们推荐您使用 `apt` 工具进行安装以避免潜在的依赖问题:
```shell
cd ~/Downloads
sudo apt install ./spark-store*.deb
```
2. **使用更新器**
您可以在应用商店左下角找到更新按钮,点击即可查看更新列表。
### 对于 Ubuntu 用户
#### 对于 Ubuntu 20.04 用户
1. **下载依赖包**
* 请访问[星火应用商店依赖包下载页面](https://gitee.com/spark-store-project/spark-store-dependencies/releases),下载最新的依赖包;
* 请多次解压依赖包,直至您可以看到诸多以 deb 结尾的安装包;
* 依据依赖包内的说明,一次性安装所有的依赖包。
2. **下载并安装**
请访问星火应用商店 [Gitee 的 Release 页面](https://gitee.com/spark-store-project/spark-store/releases)或 [Gitcode 的 Release 页面](https://gitcode.com/spark-store-project/spark-store/releases),下载和您电脑相同架构的安装包并安装。
假设您将安装包下载至用户目录下的 Downloads 文件夹,我们推荐您使用 `apt` 工具进行安装以避免潜在的依赖问题:
```shell
cd ~/Downloads
sudo apt install ./spark-store*.deb
```
#### 对于 Ubuntu 22.04 及更高版本的 Ubuntu 用户
1. **无需安装依赖包**
2. **下载并安装**
请访问星火应用商店 [Gitee 的 Release 页面](https://gitee.com/spark-store-project/spark-store/releases)或 [Gitcode 的 Release 页面](https://gitcode.com/spark-store-project/spark-store/releases),下载和您电脑相同架构的安装包并安装。
假设您将安装包下载至用户目录下的 Downloads 文件夹,我们推荐您使用 `apt` 工具进行安装以避免潜在的依赖问题:
```shell
cd ~/Downloads
sudo apt install ./spark-store*.deb
```
### 对于 Debian 用户
#### 对于 Debian 11 用户
1. **下载依赖包**
* 请访问[星火应用商店依赖包下载页面](https://gitee.com/spark-store-project/spark-store-dependencies/releases) 下载最新的依赖包;
* 请多次解压依赖包,直到您可以看到诸多以 deb 结尾的安装包;
* 依据依赖包内的说明,一次性安装所有的依赖包。
2. **下载并安装**
请访问星火应用商店 [Gitee 的 Release 页面](https://gitee.com/spark-store-project/spark-store/releases)或 [Gitcode 的 Release 页面](https://gitcode.com/spark-store-project/spark-store/releases)并下载,安装后即可使用。
#### 对于 Debian 12+ 用户
1. **无需安装依赖包**
2. **下载并安装**
请访问星火应用商店 [Gitee 的 Release 页面](https://gitee.com/spark-store-project/spark-store/releases)或 [Gitcode 的 Release 页面](https://gitcode.com/spark-store-project/spark-store/releases),下载和您电脑相同架构的安装包并安装。
假设您将安装包下载至用户目录下的 Downloads 文件夹,我们推荐您使用 `apt` 工具进行安装以避免潜在的依赖问题:
```shell
cd ~/Downloads
sudo apt install ./spark-store*.deb
```
---
## 常见问题FAQ
请参见[星火应用商店 FAQ 与支持指南](https://gitee.com/spark-store-project/spark-store/blob/dev/FAQ.zh.md)
对于高级用户,如需自定义配置 aptss config请参阅 [aptss 软件仓库](https://gitee.com/GXDE-OS/aptss)。
---
## 联系与反馈
- 如果您有任何问题或建议,请通过邮件或在 [Issue 页面](https://gitee.com/spark-store-project/spark-store/issues)上提交问题;
- 如果你想关注我们的开发进度,可以跳转至[星火应用商店 Board](https://gitee.com/spark-store-project/spark-store/board) 获取更多信息;
- 欢迎访问[星火社区论坛](https://bbs.spark-app.store/)加入讨论;
- 我们的 QQ 交流群号872690351 和 865927727
- 若您和您的组织需要寻求商业支持,请留言咨询。
---

View File

@@ -1,37 +0,0 @@
#include "big_image.h"
#include <QHBoxLayout>
#include <QtConcurrent>
big_image::big_image(DBlurEffectWidget *parent) : DBlurEffectWidget(parent)
{
// m_image->setParent(this);
QHBoxLayout *layout=new QHBoxLayout;
setLayout(layout);
layout->addWidget(m_image);
layout->setMargin(0);
m_image->setAlignment(Qt::AlignCenter);
// m_image->setMaximumSize(1360,768);
setWindowFlags(this->windowFlags() | Qt::WindowStaysOnTopHint);//设置图片对话框总在最前
setRadius(0);
setMaskAlpha(60);
setMaskColor(QColor("#000000"));
}
void big_image::mousePressEvent(QMouseEvent *)
{
hide();
m_image->clear();
}
void big_image::setimage(QPixmap image)
{
m_image->setPixmap(image);
}
void big_image::focusOutEvent(QFocusEvent *)
{
hide();
m_image->clear();
}

24
build_and_install.sh Executable file
View File

@@ -0,0 +1,24 @@
# Deepin V20/UOS 21 系统下, 安装依赖
# ```shell
# sudo apt install git qt5-default debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev fakeroot qtwayland5 qtwayland5-dev-tools dde-qt5wayland-plugin
# ```
# Ubuntu 22.04 系统下, 安装依赖
# ```shell
# sudo apt install git qtbase5-dev debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev qtwayland5 qtwayland5-dev-tools
# ```
echo "Deepin V20/UOS 21 系统下, 安装依赖"
echo "sudo apt install git qt5-default debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev fakeroot qtwayland5 qtwayland5-dev-tools dde-qt5wayland-plugin"
echo "Ubuntu 22.04 系统下, 安装依赖"
echo "sudo apt install git qtbase5-dev debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev qtwayland5 qtwayland5-dev-tools"
dpkg-buildpackage -j$(cat /proc/cpuinfo | grep processor | wc -l)
sudo apt reinstall ../spark-store_*.deb
rm ../spark-store_*

820
debian/changelog vendored Normal file
View File

@@ -0,0 +1,820 @@
spark-store (4.8.3) UNRELEASED; urgency=medium
* 更新软件主图标
* 软件更新器更新成功后删除软件包
* 修复首次安装ACE环境情况下无法正确配置ACE中aptss的问题
* 修复使用aptss后在/tmp下留下垃圾的问题
* aptss 更新支持在APM下使用
-- momen <vmomenv@gmail.com> Tue, 28 Aug 2025 01:03:08 +0800
spark-store (4.8.1-1) UNRELEASED; urgency=medium
* 修复更新器安装软件完成后仍然显示下载完成的问题
* 修复一些aptss锁定失败bug
-- momen <vmomenv@gmail.com> Tue, 28 Aug 2025 01:03:08 +0800
spark-store (4.8.1~test1) UNRELEASED; urgency=medium
* 添加全新的更新器
* 替换了新版更新器的polkit policy
-- momen <vmomenv@gmail.com> Tue, 15 Jul 2025 01:03:08 +0800
spark-store (4.8.0) UNRELEASED; urgency=medium
* ssinstall重写支持安装到ACE和自动安装到ACE支持只允许安装到本地
* 商店支持展示ACE标识支持识别 native amber-ce-bookworm amber-ce-trixie amber-ce-sid amber-ce-deepin23
* 投稿器支持新版spec
-- shenmo <shenmo@spark-app.store> Tue, 24 Sep 2024 11:27:08 +0800
spark-store (4.5.2) UNRELEASED; urgency=medium
* 支持安装到 ACE Bookworm
-- shenmo <shenmo@spark-app.store> Tue, 24 Sep 2024 11:27:08 +0800
spark-store (4.5.1) UNRELEASED; urgency=medium
* 修复 aptss 部分报错
* 重新设计了 Tag 区的展示方式
* 新增 Fish 补全
-- shenmo <shenmo@spark-app.store> Tue, 24 Sep 2024 11:27:08 +0800
spark-store (4.5.0) UNRELEASED; urgency=medium
* 支持从商店中直接启动应用
* ssinstall 修复安装时不再指定版本号以避免出现问题
* aptss支持fish补全
* 修复: distrobox下无法正常校验应用hash
* aptss 4.5.0
* 应用更新新增进度条
* 支持识别Debian
-- shenmo <shenmo@spark-app.store> Tue, 24 Sep 2024 11:27:08 +0800
spark-store (4.3.3.2) UNRELEASED; urgency=medium
* 提升升级工具体验,不再反复弹窗
* 提升aptss使用体验汇报目前所在阶段而不是卡住不动
* 修复debian sid 无法卸载
-- shenmo <shenmo@spark-app.store> Tue, 24 Sep 2024 11:27:08 +0800
spark-store (4.3.3.1) UNRELEASED; urgency=medium
* 修复点击更新需要输入密码的问题
* 修复安装速度下降的问题
* 修复闪退问题
* 修复错误地展示已安装
-- shenmo <shenmo@spark-app.store> Tue, 24 Sep 2024 11:27:08 +0800
spark-store (4.3.2.0) UNRELEASED; urgency=medium
* 后续更新请从4.3.2.0版本号开始4.3.2版本仅用于GXDE测试
* 支持dummyapps 安装包安装
* 支持紧凑模式
* 修复部分情况下升级安装失败的问题
-- shenmo <shenmo@spark-app.store> Tue, 24 Sep 2024 11:27:08 +0800
spark-store (4.3.2) UNRELEASED; urgency=medium
* ssinstall支持安装conflict包
* 支持紧凑模式
-- shenmo <shenmo@spark-app.store> Tue, 24 Sep 2024 11:27:08 +0800
spark-store (4.3.1) UNRELEASED; urgency=medium
* 修复自提权更新问题
* 提升aptss稳定性
-- shenmo <shenmo@spark-app.store> Tue, 24 Sep 2024 11:27:08 +0800
spark-store (4.3.0-fix5) stable; urgency=medium
* 支持GXDE,重启空链接清理
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.3.0-fix4) stable; urgency=medium
* 修复:安装失败时仍然锁定
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.3.0-fix3) stable; urgency=medium
* 修复:创建快捷方式失效
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.3.0-fix2) stable; urgency=medium
* aptss配置调整
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.3.0-fix1) stable; urgency=medium
* 上游改为d.spark-app.store
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.3) stable; urgency=medium
* 修复客户端不支持301跳转的问题
* 修复UOS下错误地提示开发者模式未启动
* 现在会记住上次的窗口大小
* 删除无用依赖修复Debian 13依赖问题
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.14) stable; urgency=medium
* 上游改为d.spark-app.store
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.3.0) stable; urgency=medium
* 修复部分客户端启动白屏
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.3) stable; urgency=medium
* 修复客户端不支持301跳转的问题
* 修复UOS下错误地提示开发者模式未启动
* 现在会记住上次的窗口大小
* 删除无用依赖修复Debian 13依赖问题
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.13) stable; urgency=medium
* 未经测试文案修改
* 龙芯平台并入主线
* 修复:更新过程中中断无法再次启动更新检查
* 调整:提高超时时长,适应较差的网络环境
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.12.1) stable; urgency=medium
* 修复:龙芯自动--no-sandbox
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.12) stable; urgency=medium
* 修复:飞腾部分设备上白屏的问题
* 修复:下载开始时长时等待(降低链接超时时长)
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.11) stable; urgency=medium
* 修复:判断是否安装状态错误
* 修改:部分组件重构提升清晰度
* 修复v23下部分应用图标失效
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.10) stable; urgency=medium
* 修复:部分发行版上无法启动自动创建的桌面图标
* 修复:发行版统计信息
* 修复Gitee反馈链接错误
* 修复ACE下无法安装,支持ACE下软件更新
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.9) stable; urgency=medium
* 修复:软件详情图片排序调整为服务器排序,而不是按加载顺序排序
* 修复: build error on Deepin V23
* 修复:容器内无限等待
* 新增:高分屏截图支持
* 新增:更新界面支持显示软件名称
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.8.1) stable; urgency=medium
* 修复A2D应用释放无效的Desktop到桌面上
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.8) stable; urgency=medium
* 修复在aptss上锁时支持等待释放锁而不是直接报错退出
* 调整:下载安装按钮文案修改
* 优化 KDE 深色模式支持实现方式
* 新增ssinstall现在会自动创建desktop文件
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.7.3) stable; urgency=medium
* 修复aptss现在会正确地透传错误码而不是exit 0
* 修复下载时如果卡0%(无法下载metalink),会在超时后报错中断而不是一直傻等
* 修复排队下载时CPU占满单核的bug https://gitee.com/spark-store-project/spark-store/issues/I7B91V
* 修复在终端中打开的icon过大导致无法投稿到UOS
* 修复v23下编译出错
* 薪怎:支持崩溃日志收集系统
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.7.2) stable; urgency=medium
* 新增:内置在终端打开功能
* 调整散列验证更改为使用sha512
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.7.1) stable; urgency=medium
* 修复aptss加锁失败现在会正常报错
* 新增在aptss的特定操作时添加了提示
* 新增在aptss提示加粗
* 调整ssinstall验证支持使用cdn.d.获取
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.7) stable; urgency=medium
* 修复:更新星火商店后禁止更新提醒的配置失效
* 新增:支持在设置中关闭平台不兼容提示
* 调整:更改了下载量统计的方式,减少漏数
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.6.6) stable; urgency=medium
* 调整:文案修改:安装失败后引导查看详情而不是重新安装
* 修复dpkg阻塞出现漏掉的安装失败现在在安装后检测是否安装
* 修复UOS专业版上安装成功仍然显示失败的问题方式忽略E:等消息,仅检查脚本报错
* 调整卸载应用时采用autopurge以一并卸载依赖
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.6.5) stable; urgency=medium
* 调整ssaudit安装结束时会提示安装结束
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.6.4) stable; urgency=medium
* 修复:关于页面的入口过时
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.6.3) stable; urgency=medium
* 修复:部分下载统计线路失效
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.6.2) stable; urgency=medium
* 新增支持arm架构搜索
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.6.1) stable; urgency=medium
* 修复mint下更新检测不正常
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.6) stable; urgency=medium
* 修复:截图加载失败时点击闪退
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.5.1) stable; urgency=medium
* 调整重写了spark-dstore-patch速度提升尤其对机械硬盘下
* 调整优化了aptss源文件同步策略
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.5) stable; urgency=medium
* 修复ssinstall在文件不存在时仍然报安装成功
* 修复删除不再需要的依赖libc6-dev
* 在aarch64架构安装时也启用32位支持
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.4) stable; urgency=medium
* 修复ssinstall校验失败的时候仍然提示安装成功
* 新增ssinstall可以自动刷新ssupdate以防止仓库更新中导致的安装校验失败
* 修复:在不受支持的平台安装应用时弹出提示不正确
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.3.3) stable; urgency=medium
* aptss 不再使用bwrap去除依赖支持容器中启动
* aptss 支持非root模式启动
* aptss 添加transhell支持
* 关于界面自动获取分支名称
* 现在安装成功则自动删除安装包
* 完成 arm 架构大部分功能适配
* 修复依赖不完整的问题
* 4.3 roadmap 实现,在浏览不支持的应用时会出现提示
* 4.3 roadmap 实现,在下载文件夹没有读写权限时会出现提示
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.3.2~Reason10) stable; urgency=medium
* 完成除web外大部分功能适配
* 修复依赖不完整的问题
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.3.2~Reason9) stable; urgency=medium
* sender-d.sh
* ssinstall和ssaudit的安装测试转到upgrade-worker
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.3.2~Reason8) stable; urgency=medium
* sender-d改用cpp重写在aarch64上稳定运行
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.3.2~Reason7) stable; urgency=medium
* ssinstall发现无法验证时尝试update而不是ssupdate
* 启动每日aptss update
* ssinstall在发现无法安装后尝试先进行下aptss update
* 修复:安装商店后首次启动无法安装任何软件
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.3.2~Reason5) stable; urgency=medium
* aptss 不再使用bwrap去除依赖支持容器中启动
* aptss 支持非root模式启动
* aptss 添加transhell支持
* 关于界面自动获取分支名称
* 现在安装成功则自动删除安装包
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.3.2~Reason3) stable; urgency=medium
* 现在可在x86上编译使用同一套代码
* 暂时在aarch64上使用旧web----等待柚子
* 空间,疾疫,现在是静谧
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.3.2~only-for-test1) stable; urgency=medium
* 注意!!!!!! 此版本仅为启动测试还需要进一步完善——hardcode需要改善——关于web界面的调用方式需要在柚子做好之后修改成新的
* fix: hardcode
* fix: sender-d
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.2.3.1) stable; urgency=medium
* 修复: ssinstall验证签名出错
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.2.3) stable; urgency=medium
* 修复: 编译依赖不全
* 修复: prerm导致的dpkg崩溃
* 新增: aptss 检查package配置增加sdustore
* 新增: 一键编译并安装脚本
* 新增: 后台安装结束后退出任务栏驻留
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.2.3~test4) stable; urgency=medium
* 修复: aptss 无法安装
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.2.3~test3) stable; urgency=medium
* 调整:打包时从 debian/changelog 自动获取构建版本号并写入关于窗口保证与deb一致
* 新增:支持 DTK 5.6.4 关于对话框“版本特性”显示功能。目前只在deepin编译安装时开启
* 修复:修复下载列表对话框中,点击某个 item 取消下载按钮后下载列表无法再次显示的问题
* 修复:多个应用安装可能会出现某一个应用没有安装
* 修复:修复下载按钮点击/双击/拖动时,主窗口动作与下载管理对话框动作同时触发问题
* aptss 获取线路信息 转到从 d. 服务器获取
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.2.3~test2) stable; urgency=medium
* 调整:开启安装包加固
* 添加zh_TW翻译
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.2.3~test1) stable; urgency=medium
* 修复因判断安装状态错误创建多个相同任务的bug
* 测试中:尝试修复安装结束的闪退问题 https://gitee.com/spark-store-project/spark-store/commit/cb093dcc2bb0a193db89aa0ce5f20ea9cc5d56eb
* 修复Deepin 显示开发者模式未开启
* 修复:从托盘打开主窗口时透明度动画不流畅
* 修复:主窗口关闭后,从托盘打开关于窗口会被主窗口遮挡
-- shenmo <shenmo@spark-app.store> Sun, 05 Feb 2023 23:00:00 +0800
spark-store (4.2.2) stable; urgency=medium
* 调整脚本应用的transhell支持转为source导入
* 修复ssinstall弹窗支持wayland
* 新增:应用托盘,下载时候可以放心关闭窗口了
* 新增支持spk://search/内容 格式链接
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.2.1) stable; urgency=medium
* 调整支持在安装前进行测试ss-do-upgrade-worker,但是未实装到appinfo
* 修复因依赖不完全导致在LinuxMint下无法下载统计
* 新增:脚本系列应用支持英文
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.2) stable; urgency=medium
* 调整UOS开发者模式提示现在不会那么挤了
* 修复wayland下可正常弹出更新提示
* 调整dwine5标签的文案改为Wine应用
* 新增:更新软件时弹窗会显示正在更新的软件包名
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.2~test3) stable; urgency=medium
* 修复: aptss ssupdates
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.2~test2) stable; urgency=medium
* 修复: 420t1版本中ssinstall有时会重新下载软件包的问题
* 新增: 安装前会对软件包安装进行dry run以判断是否能正确安装
* 调整: aptss在进行任何操作前均检测是否存在Packages文件若存在则不进行ssupdate
* 调整: 修改apt-fast源代码以指定conf位置为/tmp/apt-fast,这部分不再使用bwrap模拟
* 新增: aptss检测Package文件支持分目录目前指定为store
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.2~test1) stable; urgency=medium
* 新增: aptss支持显示报错
* 新增: aptss部分提示汉化
* 修复: 修复部分情况下ssinstall实际未安装但是错误显示
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.1.2) stable; urgency=medium
* feat: 初步的wayland支持
* feat: UOS下检测开发者模式是否开启若未开启则拒绝安装
* fix: 首页的捐赠页面在中文环境下显示中文
* fix: 更新检测模块在aptss ssupdate操作失败后现在会正确地移除锁而不是错误的残留锁。
* chore: ssinstall现在拒绝安装验证失败的包审核操作现在需要改用ssaudit
* fix: Ubuntu下下载列表无法关闭
* fix: 修复进入详情页时焦点默认在分享链接按钮上的问题
* fix: 修复特定情况下的内存泄漏问题
* fix: 适配c11代码规范消除qt编译警告
* fix: 默认服务器域名指向cdn域名
* fix: 消除内部函数的无用变量,限制作用域
* feat: aptss 除ssupdate外的操作时候如果检测到存在源文件存在则不再重复获取
* fix: 修复在apt list锁被锁定的时候异常弹出有更新可用
* chore: 去除安装依赖:g++
* fix: 修复下载列表中进度提示文字显示不完整的问题
* feat: ssinstall支持从单独文件夹中校验软件包
* 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 构造函数中进行
* chore: 添加 setOrganizationName 操作,设置组织名称为 spark-union与 SWRT 保持一致
* chore: 设置组织名称后QStandardPaths::AppConfigLocation 等路径相应改变,修改所有配置文件和缓存文件路径
* chore: 关于对话框设置父对象后,对话框背景色受主窗口样式表影响,移动部分控件样式表设置方式与位置
* chore: 去除 .pro 文件中无效的更新翻译文件脚本调用,整理 .pro 文件,添加编译时更新 ts 文件脚本调用
* chore: 继续修复偶现关闭客户端时崩溃问题(疑似 aria2c 进程未启动pid 未初始化为随机值,执行 kill 操作时未判断导致)
* chore: 新增编译依赖,测试安装时不会出现报错
* chore: 暂时去除没有意义的 DBus 接口,使用 DGuiApplicationHelper::newProcessInstance 获取新进程的启动参数
* chore: 更新翻译文件,去除已经不存在的翻译
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.1.2~test2) stable; urgency=medium
* feat: ssinstall支持从单独文件夹中校验软件包
* 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 <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.1.2~test1) stable; urgency=medium
* feat: 初步的wayland支持
* feat: UOS下检测开发者模式是否开启若未开启则拒绝安装
* fix: 首页的捐赠页面在中文环境下显示中文
* fix: 更新检测模块在aptss ssupdate操作失败后现在会正确地移除锁而不是错误的残留锁。
* chore: ssinstall现在拒绝安装验证失败的包审核操作现在需要改用ssaudit
* fix: Ubuntu下下载列表无法关闭
* fix: 修复进入详情页时焦点默认在分享链接按钮上的问题
* fix: 修复特定情况下的内存泄漏问题
* fix: 适配c11代码规范消除qt编译警告
* fix: 默认服务器域名指向cdn域名
* fix: 消除内部函数的无用变量,限制作用域
* feat: aptss 除ssupdate外的操作时候如果检测到存在源文件存在则不再重复获取
* fix: 修复在apt list锁被锁定的时候异常弹出有更新可用
* chore: 去除安装依赖:g++
* fix: 修复下载列表中进度提示文字显示不完整的问题
* chore: 添加 Application 类,继承 DApplication将 main 函数中设置属性、关于信息等操作移至 Application 构造函数中进行
* chore: 添加 setOrganizationName 操作,设置组织名称为 spark-union与 SWRT 保持一致
* chore: 设置组织名称后QStandardPaths::AppConfigLocation 等路径相应改变,修改所有配置文件和缓存文件路径
* chore: 关于对话框设置父对象后,对话框背景色受主窗口样式表影响,移动部分控件样式表设置方式与位置
* chore: 去除 .pro 文件中无效的更新翻译文件脚本调用,整理 .pro 文件,添加编译时更新 ts 文件脚本调用
* chore: 继续修复偶现关闭客户端时崩溃问题(疑似 aria2c 进程未启动pid 未初始化为随机值,执行 kill 操作时未判断导致)
* chore: 新增编译依赖,测试安装时不会出现报错
* chore: 暂时去除没有意义的 DBus 接口,使用 DGuiApplicationHelper::newProcessInstance 获取新进程的启动参数
* chore: 更新翻译文件,去除已经不存在的翻译
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.1.1) stable; urgency=medium
* fix:更新失效
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.1.0) stable; urgency=medium
* feat: 现在可以支持UOS签名包问题了
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.0.1) stable; urgency=medium
* feat: 提升Ubuntu下的显示效果
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.0.0) stable; urgency=medium
* feat: 修复了成吨的bug后开始正式版
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.0.0~test2) stable; urgency=medium
* feat: 修复了成吨的bug后开始公测
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.0.0~test1) stable; urgency=medium
* feat: 柚子过来补充一下啦
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.4~test1) stable; urgency=medium
* feat: aptss不再尝试安装apt-fast转而自带
* chore: 删除password-check模块
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3.3) stable; urgency=medium
* feat: 首页链接调用浏览器打开
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3.3~test5) stable; urgency=medium
* 修复可能的内存泄漏问题
* 修复应用搜索为空但仍显示上一次搜索结果的问题
* 修复动画加载延后的问题
* 修复统计下载量卡主渲染线程的问题
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3.3~test4) stable; urgency=medium
* Enable i386 arch support by default
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3.3~test3) stable; urgency=medium
* Now use ss-apt-fast instead of apt-fast
* 修复:右上角 更新和安装设置 菜单中进入更新列表失效
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3.3~test2) stable; urgency=medium
* bug fix: 更新和检查更新出错时不报错.此更新需要一个推送
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3.3~test1) stable; urgency=medium
* 3.3.3将会是修复大部分bug后的最终版本
* 图形环境中所有root权限的组件剥离到cli(可用于deepin 23 daily只保证商店本体正常运作不处理安装依赖不满足)
* 文案更改:更新检查-->检查更新
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3.1~test1) stable; urgency=medium
* 安装时不再需要联网
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3.0.4) stable; urgency=medium
* 为减轻服务器压力,不再单独更新某一个应用,而是作为整体更新
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3.0.3) stable; urgency=medium
* 回滚 更新中行为到进度条而不是实时输出
* 更新应用时显示正在更新哪个应用
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3.0.2) stable; urgency=medium
* 修复 pkexec未执行
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3.0.1) stable; urgency=medium
* 修复 检查更新的更新进程未实际运行
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3) stable; urgency=medium
* 修复 检查更新 未刷新软件源
* 把检查更新单独拿出作为左列
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3~test3) stable; urgency=medium
* 把检查更新加入免密码
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3~test2) stable; urgency=medium
* 更新检测功能全部更改到zenity
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.3~test1) stable; urgency=medium
* zenity选择可更新应用
* 自动更新检测现在会跳过hold
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.2.4) stable; urgency=medium
* 修改tag相关的文案内容wine相关环境已可自动配置了
* 准备发版
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.2.4~test4) stable; urgency=medium
* 现在在商店启动后点击spk链接仍会正常启动 https://gitee.com/spark-store-project/spark-store/commit/dd6780d636042bf12d77414e6f1552cc7d1ed24c
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.2.4~test3) stable; urgency=medium
* 发版合入到master
* 翻译完毕
* 合入先前的各项改动客户端集成投稿器入口和支持修复安装依赖时间较长时错误地返回“安装完毕”结果现在客户端版本更新时不关闭免密码登录UOS安装进程合并正常aptss中
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.2.4~test2) stable; urgency=medium
* 客户端集成投稿器入口和支持
* 修复:安装依赖时间较长时错误地返回“安装完毕”结果
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.2.4~test1) stable; urgency=medium
* 客户端更新时不关闭免密码登录
* U

1
debian/compat vendored Normal file
View File

@@ -0,0 +1 @@
11

36
debian/control vendored Normal file
View File

@@ -0,0 +1,36 @@
Source: spark-store
Maintainer: shenmo <shenmo@spark-app.store>
Section: utils
Priority: optional
Build-Depends:
debhelper (>= 9),
pkg-config,
qtchooser (>= 55-gc9562a1-1~) | qt5-default,
qtbase5-dev,
libqt5svg5-dev,
qttools5-dev-tools,
qtwebengine5-dev,
libdtkcore-dev (>= 5.0),
libdtkgui-dev (>= 5.0),
libdtkwidget-dev (>= 5.0)
Standards-Version: 4.1.7
Homepage: https://www.spark-app.store/
Package: spark-store
Architecture: any
Provides: spark-store-console-in-container
Depends: ${shlibs:Depends}, ${misc:Depends},
dde-qt5integration,
curl,
openssl,
aria2,
gnupg,
zenity,
policykit-1 | pkexec,
libnotify-bin,
qtwayland5,
desktop-file-utils,
dpkg-dev,
lsb-release,
Description: Spark Store
A community powered app store, based on DTK.

22
debian/copyright vendored Normal file
View File

@@ -0,0 +1,22 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: spark-store
Source: https://gitee.com/spark-store-project/spark-store
Files: *
Copyright: The Spark Project Developers
License: GPL-3+
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General

41
debian/rules vendored Executable file
View File

@@ -0,0 +1,41 @@
#!/usr/bin/make -f
export QT_SELECT = qt5
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
include /usr/share/dpkg/default.mk
DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
# Use realtime timestamp instead of the latest entry in debian/changelog
SOURCE_DATE_EPOCH := $(shell date +%s)
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE = 1
%:
dh $@ --parallel
override_dh_auto_clean:
rm -rf $(CURDIR)/build-$(DEB_HOST_MULTIARCH)
override_dh_auto_configure:
mkdir -p $(CURDIR)/build-$(DEB_HOST_MULTIARCH)
qmake BUILD_VERSION=$(DEB_VERSION_UPSTREAM) spark-store-project.pro \
-spec linux-g++ CONFIG+=force_debug_info \
-o $(CURDIR)/build-$(DEB_HOST_MULTIARCH)/
override_dh_auto_build:
make -C $(CURDIR)/build-$(DEB_HOST_MULTIARCH) -j$(JOBS)
override_dh_auto_install:
make -C $(CURDIR)/build-$(DEB_HOST_MULTIARCH) install \
INSTALL_ROOT=$(CURDIR)/debian/spark-store
# Ignore the dpkg-shlibdeps: warning (it uses none of the library's symbols)
# Qt Mutidedia lib will ref to network libraray.
override_dh_shlibdeps:
dh_shlibdeps --dpkg-shlibdeps-params=--warnings=0 --exclude=opt/durapps/spark-store/bin/ss-feedback/
override_dh_strip:
dh_strip --exclude=opt/durapps/spark-store/bin/ss-feedback/

1
debian/source/format vendored Normal file
View File

@@ -0,0 +1 @@
3.0 (native)

79
debian/spark-store.postinst vendored Executable file
View File

@@ -0,0 +1,79 @@
#!/bin/bash
case "$1" in
configure)
case `arch` in
x86_64)
echo "Enabling i386 arch..."
dpkg --add-architecture i386
;;
aarch64)
echo "Will not enable armhf since 4271"
;;
loongarch64)
echo "Nope we DO NOT WANT ABI1 now"
dpkg --remove-architecture loongarch64
;;
*)
echo "Unknown architecture, skip enable 32-bit arch"
;;
esac
mkdir -p /var/lib/aptss/lists
# Remove the sources.list file
rm -f /etc/apt/sources.list.d/sparkstore.list
rm -f /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list
# Check if /usr/local/bin existed
mkdir -p /usr/local/bin
## I hate /usr/local/bin. We will abandon them later
# Create symbol links for binary files
ln -s -f /opt/durapps/spark-store/bin/spark-store /usr/local/bin/spark-store
ln -s -f /opt/durapps/spark-store/bin/ssinstall /usr/local/bin/ssinstall
ln -s -f /opt/durapps/spark-store/bin/ssaudit /usr/local/bin/ssaudit
ln -s -f /opt/durapps/spark-store/bin/ssinstall /usr/bin/ssinstall
ln -s -f /opt/durapps/spark-store/bin/ssaudit /usr/bin/ssaudit
ln -s -f /opt/durapps/spark-store/bin/spark-dstore-patch /usr/local/bin/spark-dstore-patch
ln -s -f /opt/durapps/spark-store/bin/spark-dstore-patch /usr/bin/spark-dstore-patch
ln -s -f /opt/durapps/spark-store/bin/aptss /usr/local/bin/ss-apt-fast
ln -s -f /opt/durapps/spark-store/bin/aptss /usr/bin/aptss
ln -sf /usr/lib/qt5/bin/spark-update-tool /usr/bin/spark-update-tool
# Install key
mkdir -p /tmp/spark-store-install/
cp -f /opt/durapps/spark-store/bin/spark-store.asc /tmp/spark-store-install/spark-store.asc
gpg --dearmor /tmp/spark-store-install/spark-store.asc
cp -f /tmp/spark-store-install/spark-store.asc.gpg /etc/apt/trusted.gpg.d/spark-store.gpg
# Start upgrade detect service
systemctl daemon-reload
systemctl enable spark-update-notifier
systemctl start spark-update-notifier
# Update certain caches
update-icon-caches /usr/share/icons/hicolor || true
update-desktop-database /usr/share/applications || true
xdg-mime default spark-store.desktop x-scheme-handler/spk
update-mime-database /usr/share/mime || true
# Send email for statistics
#/tmp/spark-store-install/feedback.sh
# Remove temp dir
rm -rf /tmp/spark-store-install
;;
triggered)
spark-dstore-patch
;;
esac

6
debian/spark-store.postrm vendored Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
# Update certain caches
update-icon-caches /usr/share/icons/hicolor || true
update-desktop-database /usr/share/applications || true
update-mime-database /usr/share/mime || true

28
debian/spark-store.preinst vendored Executable file
View File

@@ -0,0 +1,28 @@
#!/bin/bash
#检测网络链接畅通
function network-check()
{
#超时时间
local timeout=15
#目标网站
local target=www.baidu.com
#获取响应状态码
local ret_code=`curl -I -s --connect-timeout ${timeout} ${target} -w %{http_code} | tail -n1`
if [ "x$ret_code" = "x200" ]; then
echo "Network Checked successful ! Continue..."
echo "网络通畅,继续安装"
else
#网络不畅通
echo "Network failed ! Cancel the installation"
echo "网络不畅,终止安装"
exit -1
fi
}
#network-check
echo "不再检测网络"

64
debian/spark-store.prerm vendored Executable file
View File

@@ -0,0 +1,64 @@
#!/bin/bash
function notify-send()
{
# Detect the user using such display
local user=$(who | awk '{print $1}' | head -n 1)
# Detect the id of the user
local uid=$(id -u $user)
sudo -u $user DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus notify-send "$@"
}
if [ "$1" = "remove" -o "$1" = "purge" ] ; then
echo "$1"
echo "卸载操作,进行配置清理"
# Remove residual symbol links
unlink /usr/local/bin/spark-store
unlink /usr/local/bin/ssinstall
unlink /usr/local/bin/ssaudit
unlink /usr/bin/ssinstall
unlink /usr/bin/ssaudit
unlink /usr/local/bin/spark-dstore-patch
unlink /usr/bin/spark-dstore-patch
unlink /usr/local/bin/ss-apt-fast
unlink /usr/bin/aptss
rm -rf /etc/aptss/
rm -rf /var/lib/aptss/
# Remove residual symbol links to stop upgrade detect
rm -f /etc/xdg/autostart/spark-update-notifier.desktop
# Remove config files
for username in `ls /home`
do
echo /home/$username
if [ -d /home/$username/.config/spark-union/spark-store ]
then
rm -rf /home/$username/.config/spark-union/spark-store
fi
done
# Shutdown services
systemctl stop spark-update-notifier
# Stop update detect service
systemctl disable spark-update-notifier
# Remove gpg key file
rm -f /etc/apt/trusted.gpg.d/spark-store.gpg
apt-key del '9D9A A859 F750 24B1 A1EC E16E 0E41 D354 A29A 440C' || true
else
if [ ! -z "`pidof spark-store`" ] ; then
echo "关闭已有 spark-store.."
notify-send "正在升级星火商店" "请在升级结束后重启星火商店" -i spark-store
killall spark-store
fi
fi

2
debian/spark-store.triggers vendored Normal file
View File

@@ -0,0 +1,2 @@
interest-noawait /opt/apps

View File

@@ -1,263 +0,0 @@
#include "downloadlist.h"
#include "ui_downloadlist.h"
#include <QDebug>
#include <QIcon>
#include <QPixmap>
#include <QtConcurrent>
#include <QProcess>
#include <QTextBrowser>
bool downloadlist::isInstall=false;
downloadlist::downloadlist(QWidget *parent) :
QWidget(parent),
ui(new Ui::downloadlist)
{
ui->setupUi(this);
ui->pushButton_install->setEnabled(false);
ui->progressBar->setValue(0);
ui->label_filename->hide();
ui->pushButton_install->hide();
ui->pushButton_3->hide();
ui->widget_spinner->start();
ui->widget_spinner->hide();
action_dpkg->setText("dpkg");
action_gdebi->setText("gdebi");
connect(action_dpkg,&QAction::triggered,[=](){downloadlist::install(1);});
connect(action_gdebi,&QAction::triggered,[=](){downloadlist::install(0);});
menu_install->addAction(action_gdebi);
menu_install->addAction(action_dpkg);
}
downloadlist::~downloadlist()
{
delete ui;
}
void downloadlist::setValue(long long value)
{
ui->progressBar->setValue(int(value));
ui->label_2->setText(QString::number(double(value)/100)+"% ("+speed+")");
if(ui->label_2->text().left(4)=="100%"){
ui->label_2->setText("已完成,等待安装");
}
}
void downloadlist::setMax(long long max)
{
ui->progressBar->setMaximum(int(max));
}
void downloadlist::setName(QString name)
{
ui->label->setText(name);
}
QString downloadlist::getName()
{
return ui->label_filename->text();
}
void downloadlist::readyInstall()
{
if(ui->progressBar->value()!= ui->progressBar->maximum() && !close){
ui->progressBar->hide();
ui->pushButton_install->show();
ui->pushButton_2->hide();
system("notify-send \""+ui->label->text().toUtf8()+"下载失败\"" +" --icon=/tmp/spark-store/icon_"+QString::number(num).toUtf8()+".png");
ui->label_2->setText("下载失败,可能是网络错误");
ui->pushButton_install->setEnabled(false);
return;
}
if(!close){
ui->progressBar->hide();
ui->pushButton_install->setEnabled(true);
ui->pushButton_install->show();
ui->pushButton_2->hide();
system("notify-send \""+ui->label->text().toUtf8()+"下载完成,等待安装\"" +" --icon=/tmp/spark-store/icon_"+QString::number(num).toUtf8()+".png");
}
}
void downloadlist::setFileName(QString fileName)
{
ui->label_filename->setText(fileName);
}
void downloadlist::seticon(const QPixmap icon)
{
ui->label_3->setPixmap(icon);
}
void downloadlist::closeDownload()
{
on_pushButton_2_clicked();
}
void downloadlist::setSpeed(QString s)
{
speed=s;
}
void downloadlist::install(int t)
{
if(!isInstall){
isInstall=true;
ui->pushButton_install->hide();
ui->widget_spinner->show();
qDebug()<<"/tmp/spark-store/"+ui->label_filename->text().toUtf8();
ui->label_2->setText("正在安装,请稍候");
QtConcurrent::run([=](){
QProcess installer;
if(reinstall){
if(t==0){
installer.start("pkexec gdebi -n /tmp/spark-store/"+ui->label_filename->text().toUtf8());
}else {
installer.start("pkexec ssinstall /tmp/spark-store/"+ui->label_filename->text().toUtf8());
}
}else {
if(t==0){
installer.start("pkexec gdebi -n /tmp/spark-store/"+ui->label_filename->text().toUtf8());
}else {
installer.start("pkexec ssinstall /tmp/spark-store/"+ui->label_filename->text().toUtf8());
}
}
installer.waitForFinished();
out=installer.readAllStandardOutput();
QStringList everyOut=out.split("\n");
bool haveError=false;
bool notRoot=false;
for (int i=0;i<everyOut.size();i++) {
qDebug()<<everyOut[i].left(2);
if(everyOut[i].left(2)=="E:"){
haveError=true;
}
if(everyOut[i].right(14)=="Not authorized"){
notRoot=true;
}
}
QProcess isInstall;
isInstall.start("dpkg -s "+pkgName);
isInstall.waitForFinished();
int error=QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
if(error==0){
ui->pushButton_install->hide();
ui->label_2->setText("安装完成");
ui->pushButton_3->show();
}else {
ui->pushButton_install->show();
ui->pushButton_install->setText("重装");
ui->label_2->setText("安装出现错误,可重新安装");
ui->pushButton_3->show();
}
if(notRoot){
ui->label_2->setText("安装被终止,可重新安装");
ui->pushButton_install->show();
ui->pushButton_3->hide();
}
ui->widget_spinner->hide();
downloadlist::isInstall=false;
});
qDebug()<<ui->label_filename->text().toUtf8();
}
}
void downloadlist::on_pushButton_install_clicked()
{
//弹出菜单
// menu_install->show();
menu_install->exec(cursor().pos());
}
void downloadlist::on_pushButton_maninst_clicked()
{
if(!isInstall)
{
isInstall = true;
ui->pushButton_install->hide();
ui->widget_spinner->show();
qDebug() << "/tmp/spark-store/" + ui->label_filename->text().toUtf8();
ui->label_2->setText("正在安装,请稍候");
QtConcurrent::run([=]()
{
QProcess installer;
if(reinstall)
{
installer.start("pkexec apt reinstall /tmp/spark-store/" + ui->label_filename->text().toUtf8());
}
else
{
installer.start("pkexec apt install /tmp/spark-store/" + ui->label_filename->text().toUtf8());
}
installer.waitForFinished();
out = installer.readAllStandardOutput();
installer.close();
QStringList everyOut = out.split("\n");
bool haveError = false;
bool notRoot = false;
for (int i = 0; i < everyOut.size(); i++)
{
qDebug() << everyOut[i].left(2);
if(everyOut[i].left(2) == "E:")
{
haveError = true;
}
if(everyOut[i].right(14) == "Not authorized")
{
notRoot = true;
}
}
QProcess isInstall;
isInstall.start("dpkg -s " + pkgName);
isInstall.waitForFinished();
int error = QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
isInstall.close();
if(error == 0)
{
ui->pushButton_install->hide();
ui->label_2->setText("安装完成");
ui->pushButton_3->show();
}
else
{
ui->pushButton_install->show();
ui->pushButton_install->setText("重装");
ui->label_2->setText("安装出现错误,可重新安装");
ui->pushButton_3->show();
}
if(notRoot)
{
ui->label_2->setText("安装被终止,可重新安装");
ui->pushButton_install->show();
ui->pushButton_3->hide();
}
ui->widget_spinner->hide();
downloadlist::isInstall = false;
});
qDebug() << ui->label_filename->text().toUtf8();
}
}
void downloadlist::on_pushButton_2_clicked()
{
ui->label_2->setText("已取消下载");
ui->pushButton_2->setEnabled(false);
ui->progressBar->hide();
close=true;
}
void downloadlist::on_pushButton_3_clicked()
{
output_w.layout()->addWidget(textbrowser);
textbrowser->setLineWidth(0);
textbrowser->setText(out);
output_w.layout()->setMargin(20);
output_w.setTitle(ui->label->text());
output_w.setMinimumHeight(600);
output_w.setAttribute(Qt::WA_TranslucentBackground);
output_w.show();
}

View File

@@ -1,56 +0,0 @@
#ifndef DOWNLOADLIST_H
#define DOWNLOADLIST_H
#include <QWidget>
#include <DDialog>
#include <QTextBrowser>
#include <QMenu>
#include <QAction>
DWIDGET_USE_NAMESPACE
namespace Ui {
class downloadlist;
}
class downloadlist : public QWidget
{
Q_OBJECT
public:
explicit downloadlist(QWidget *parent = nullptr);
~downloadlist();
void setValue(long long);
void setMax(long long);
void setName(QString);
QString getName();
void readyInstall();
bool free;
void setFileName(QString);
void seticon(const QPixmap);
void closeDownload();
void setSpeed(QString);
int num;
bool close=false;
QString out;
DDialog output_w;
QTextBrowser *textbrowser=new QTextBrowser;
bool reinstall=false;
QString pkgName;
QMenu *menu_install=new QMenu;
QAction *action_gdebi=new QAction;
QAction *action_dpkg=new QAction;
void install(int);
private slots:
void on_pushButton_install_clicked();
void on_pushButton_maninst_clicked();
void on_pushButton_2_clicked();
void on_pushButton_3_clicked();
private:
Ui::downloadlist *ui;
static bool isInstall;
QString speed;
};
//bool downloadlist::isInstall=false;
#endif // DOWNLOADLIST_H

View File

@@ -1,53 +0,0 @@
#include "image_show.h"
#include <QHBoxLayout>
#include <QDebug>
#include <QPainter>
#include <DDialog>
#include <DBlurEffectWidget>
#include <DWidgetUtil>
#include <DApplication>
#include <QDesktopWidget>
DWIDGET_USE_NAMESPACE
image_show::image_show(QWidget *parent) : QWidget(parent)
{
QHBoxLayout *layout=new QHBoxLayout;
layout->addWidget(m_label);
setLayout(layout);
m_label->setText("layout");
}
void image_show::setImage(QPixmap image)
{
QImage screen0;
screen0=image.toImage();
// QPainter painter(&screen0);
QImage re_screen1;
QImage re_screen0=screen0.scaled(QSize(400,300),Qt::KeepAspectRatio,Qt::SmoothTransformation);
int desktop_w=DApplication::desktop()->width();
int desktop_h=DApplication::desktop()->height();
if(screen0.width()>(desktop_w-20) || screen0.height()>(desktop_h-20)){
re_screen1=screen0.scaled(QSize(desktop_w-20,desktop_h-20),Qt::KeepAspectRatio,Qt::SmoothTransformation);
m_image=QPixmap::fromImage(re_screen1);
}else {
m_image=image;
}
//防止图片尺寸过大导致窗口覆盖整个屏幕
// if(screen0.width()>1024 || screen0.height()>768){
// re_screen1=screen0.scaled(QSize(1024,768),Qt::KeepAspectRatio,Qt::SmoothTransformation);
// }else {
// re_screen1=screen0;
// }
// m_image=QPixmap::fromImage(re_screen1);
m_label->setPixmap(QPixmap::fromImage(re_screen0));
}
void image_show::mousePressEvent(QMouseEvent *)
{
m_dialog->setimage(m_image);
m_dialog->showFullScreen();
moveToCenter(m_dialog);
}

View File

@@ -1,54 +0,0 @@
#include "mainwindow.h"
#include <DApplication>
#include <DWidgetUtil> //Dtk::Widget::moveToCenter(&w); 要调用它就得引用DWidgetUtil
#include <QDesktopWidget>
DWIDGET_USE_NAMESPACE
int main(int argc, char *argv[])
{
DApplication::loadDXcbPlugin(); //让bar处在标题栏中
DApplication a(argc, argv);
a.setAttribute(Qt::AA_UseHighDpiPixmaps);
a.loadTranslator();
a.setOrganizationName("spark-union");
a.setApplicationVersion(DApplication::buildVersion("1.0-beta5.6"));
a.setApplicationAcknowledgementPage("https://gitee.com/deepin-community-store/spark-store");
a.setProductIcon(QIcon::fromTheme("spark-store")); //设置Logo
a.setProductName("Spark应用商店");
a.setApplicationDescription("深度社区驱动的一款为deepin打造的第三方商店");
a.setApplicationName("Spark应用商店"); //只有在这儿修改窗口标题才有效
MainWindow w;
QDesktopWidget *s=DApplication::desktop();
int d_w=s->width();
int d_h=s->height();
if(d_w<=1366){
w.setMinimumWidth(820);
w.resize(820,640);
}else if(d_w<=1920){
w.setMinimumWidth(1140);
w.resize(1140,760);
}else {
w.setMinimumWidth(1140);
w.resize(1140,760);
}
if(d_h<=768){
w.setMinimumHeight(640);
w.resize(820,640);
}else if(d_h<=1080){
w.setMinimumHeight(760);
w.resize(1140,760);
}else {
w.setMinimumHeight(760);
w.resize(1140,760);
}
w.show();
QString arg1=argv[1];
if(arg1.left(6)=="spk://"){
w.openUrl(QUrl(argv[1]));
}
//让打开时界面显示在正中
Dtk::Widget::moveToCenter(&w);
return a.exec();
}

View File

@@ -1,79 +0,0 @@
#include "mainwindow.h"
#include <DMainWindow>
#include <QDesktopWidget>
#include <DTitlebar>
#include <QHBoxLayout>
#include <QDebug>
#include <DFileServices>
#include <DApplicationHelper>
DWIDGET_USE_NAMESPACE
MainWindow::MainWindow(QWidget *parent)
: DMainWindow(parent)
{
w = new Widget;
resize(w->size()); //设置窗口大小
setCentralWidget(w);
//添加搜索框
DMainWindow::titlebar()->addWidget(searchEdit);
DMainWindow::titlebar()->setIcon(QIcon::fromTheme("spark-store"));
DMainWindow::titlebar()->setTitle("星火应用商店");
searchEdit->setPlaceholderText("搜索或打开链接");
searchEdit->setMaximumWidth(300);
//添加菜单项
QAction *setting=new QAction("设置");
QMenu *menu=new QMenu;
menu->addAction(setting);
DMainWindow::titlebar()->setMenu(menu);
// connect(DGuiApplicationHelper::instance(),&DGuiApplicationHelper::instance()->applicationPalette().highlight().color()::)
//链接信号和槽
//设置活动颜色和明暗模式
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [=](DGuiApplicationHelper::ColorType themeType) {
QColor main_color;
main_color=DGuiApplicationHelper::instance()->applicationPalette().highlight().color();
if(themeType==DGuiApplicationHelper::DarkType){
qDebug()<<"Dark";
w->setTheme(true,main_color);
}else {
qDebug()<<"White";
w->setTheme(false,main_color);
}
});
//设置菜单
connect(setting,&QAction::triggered,w,&Widget::opensetting);
//搜索事件
connect(searchEdit,&DSearchEdit::editingFinished,this,[=](){
QString searchtext=searchEdit->text();
if(searchtext!=""){
qDebug()<<searchEdit->text();
w->searchApp(searchtext);
}
searchEdit->clearEdit();
});
}
MainWindow::~MainWindow()
{
}
void MainWindow::openUrl(QUrl url)
{
w->openUrl(url);
}

View File

@@ -1,29 +0,0 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <DMainWindow>
#include "widget.h"
#include <QThread>
#include <DSearchEdit>
#include <DBlurEffectWidget>
#include <DTitlebar>
DWIDGET_USE_NAMESPACE
class MainWindow : public DMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
DSearchEdit *searchEdit=new DSearchEdit;
DTitlebar *titlebar=new DTitlebar;
void openUrl(QUrl);
private:
Widget *w;
};
#endif // MAINWINDOW_H

44
patchs/README.md Normal file
View File

@@ -0,0 +1,44 @@
# 补丁操作说明
- 克隆与构建本项目
> 用于 zinface-community-cmake-build-system.patch 补丁化构建方式
```shell
git clone https://gitee.com/spark-store-project/spark-store
cd spark-store
git am < patchs/zinface-community-cmake-build-system.patch
make package
sudo dpkg -i build/*.deb
```
- 在应用补丁时,并对补丁进行的更新操作
```shell
# 切换到一个新的分支,即可开始进行补丁内的更新提交
git checkout -b cmake-build-system
# origin/dev 表示本仓库的 dev 开发分支
# 在应用过补丁,并产生了新的提交,即可在当前所在补丁更新分支内
# 相对基于 origin/dev 为参考,目前所包含的所有最新提交内容将生成为一个补丁文件(其中尾部为增量更新)
git format-patch --stdout origin/dev > patchs/zinface-community-cmake-build-system.patch
# 最后,回到你的原 dev 分支,将被改变的补丁文件进行提交
# 在推送完成后,即可放弃你在 cmake-build-system 分支中所有产生的内容(因为都已经进入补丁)
```
- 一些注意事项
```shell
# 在不了解补丁时,你需要认识一下补丁,但补丁与补丁之间有着不同的用法
# 本 patchs/zinface-community-cmake-build-system.patch 补丁为 cmake 化构建
# 关于补丁的一些方面
# 1. 首先你需要了解 git 是什么,以及简单的使用
# 2. 你需要了解补丁是什么,以及简单的使用(应用补丁)
# 3. 你需要了解如何创建一个补丁,最基本的就是相对于旧目标分支,将本分区新增的提交进行导出为补丁
# 4. 你可能只会将单个提交、或多个提交导出为补丁,但这还不够,你需要具有绝对的对于补丁的理解
# 5. 对于不同的目的补丁,应该是多个 patch 文件存在的形式
# 6. 最后,不管在什么时候,你在应用补丁前,你应该考虑是否应用到当前分支?为什么不切换到一个新的分支呢?
```

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
Package: *
Pin: origin *.deepinos.org.cn
Pin-Priority: 400

View File

@@ -0,0 +1 @@
deb [by-hash=force] https://d.store.deepinos.org.cn /

View File

@@ -0,0 +1,11 @@
[Unit]
Description=Timer for Spark Update Notifier
[Timer]
# 开机后第一次执行
OnBootSec=1min
# 每天执行一次
OnUnitActiveSec=1d
[Install]
WantedBy=timers.target

View File

@@ -0,0 +1,9 @@
#!/bin/sh
echo "From:sparkstorefeedback@163.com
To:sparkstorefeedback@163.com
Subject: spark-store_3.0.2: $(lsb_release -a | grep "Description" | sed -e "s#\t#@#" | cut -d "@" -f 2)
$(uname -a)" | tee /tmp/spark-store-install/feedback.txt > /dev/null
curl -s --url "smtp://smtp.163.com" --mail-from "${MAIL_FEEDBACK}" --mail-rcpt "${MAIL_FEEDBACK}" --upload-file /tmp/spark-store-install/feedback.txt --user "${MAIL_FEEDBACK}:${M}AIL_AUTH"

View File

@@ -0,0 +1,15 @@
[Unit]
Description=Spark Store update notifier
After=apt-daily.service network.target network-online.target systemd-networkd.service NetworkManager.service connman.service
[Service]
Type=simple
RemainAfterExit=yes
ExecStart=/opt/durapps/spark-store/bin/update-upgrade/ss-update-notifier.sh
Restart=on-failure
RestartSec=15 # 可以设置为更长的重试间隔,比如 15 秒或 30 秒
StartLimitIntervalSec=1h # 设置为 1 小时的时间窗口
StartLimitBurst=3 # 最大允许失败次数为 3 次
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,12 @@
[Desktop Entry]
Categories=Development;
Encoding=UTF-8
Exec=/opt/durapps/spark-store/bin/open-in-terminal/open-in-terminal %U
Icon=open-me-in-terminal
MimeType=application/x-desktop
Name=Open me in terminal
Name[zh_CN]=在终端中打开
NoDisplay=true
StartupWMClass=在终端中打开
Terminal=true
Type=Application

View File

@@ -0,0 +1,13 @@
[Desktop Entry]
Encoding=UTF-8
Type=Application
Categories=System;
Exec=spark-store %u
Icon=spark-store
Name=Spark Store
Name[zh_CN]=星火应用商店
Keywords=appstore;
Terminal=false
StartupNotify=true
StartupWMClass=spark-store
MimeType=x-scheme-handler/spk

View File

@@ -0,0 +1,5 @@
#!/bin/bash
TRANSHELL_CONTENT_RUNNING_IN_NOT_ROOT_USER="INFO: Running in non-Root mode! If error occurs, please try running the command with Root privileges."
TRANSHELL_CONTENT_INFO_SOURCES_LIST_D_IS_EMPTY="INFO: The sources.list.d directory is empty. Synchronization will not be attempted."
TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST="Fetching configuration and mirror list from the server..."
TRANSHELL_CONTENT_PLEASE_USE_APTSS_INSTEAD_OF_APT="NOTE: Although the error message may suggest using apt (e.g. apt install --fix-broken) to fix the issue, please use aptss instead when troubleshooting (for example, use: aptss install --fix-broken)."

View File

@@ -0,0 +1,5 @@
#!/bin/bash
TRANSHELL_CONTENT_RUNNING_IN_NOT_ROOT_USER="信息:正在使用非 Root 权限模式启动!若出现问题,请尝试使用 Root 权限执行命令。"
TRANSHELL_CONTENT_INFO_SOURCES_LIST_D_IS_EMPTY="信息sources.list.d 文件夹是空的,将不会尝试同步。"
TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST="正在从服务器获取配置和镜像列表……"
TRANSHELL_CONTENT_PLEASE_USE_APTSS_INSTEAD_OF_APT="注意:尽管报错信息提示使用 apt如 apt install --fix-broken修复问题但请在排查错误时使用 aptss 进行替代(对于例子,请改为使用 aptss install --fix-broken。"

View File

@@ -0,0 +1,228 @@
# Debian apt(8) completion -*- shell-script -*-
_aptss()
{
local sourcesdir="/etc/apt/sources.list.d"
local cur prev words cword
_init_completion || return
local GENERIC_APT_GET_OPTIONS='
-d --download-only
-y --assume-yes
--assume-no
-u --show-upgraded
-m --ignore-missing
-t --target-release
--download
--fix-missing
--ignore-hold
--upgrade
--only-upgrade
--allow-change-held-packages
--allow-remove-essential
--allow-downgrades
--print-uris
--trivial-only
--remove
--arch-only
--allow-unauthenticated
--allow-insecure-repositories
--install-recommends
--install-suggests
--no-install-recommends
--no-install-suggests
--fix-policy
'
# see if the user selected a command already
local COMMANDS=(
"ssupdate"
"list"
"search"
"show" "showsrc"
"install" "remove" "purge" "autoremove" "autopurge"
"update"
"upgrade" "full-upgrade" "dist-upgrade"
"edit-sources"
"help"
"source" "build-dep"
"clean" "autoclean"
"download" "changelog"
"moo"
"depends" "rdepends"
"policy")
local command i
for (( i=0; i < ${#words[@]}-1; i++ )); do
if [[ ${COMMANDS[@]} =~ ${words[i]} ]]; then
command=${words[i]}
break
fi
done
# Complete a -t<SPACE><TAB>
case $prev in
-t|--target-release)
COMPREPLY=( $( compgen -W "$( apt-cache policy -o Dir::Cache="/var/lib/aptss/" | egrep -o 'a=[^,]*|n=[^,]*' | cut -f2- -d= | sort -u)" -- "$cur" ) )
return 0
;;
esac
# supported options per command
if [[ "$cur" == -* ]]; then
case $command in
install|remove|purge|upgrade|dist-upgrade|full-upgrade|autoremove)
COMPREPLY=( $( compgen -W '--show-progress
--fix-broken --purge --verbose-versions --auto-remove
-s --simulate --dry-run
--download
--fix-missing
--fix-policy
--ignore-hold
--force-yes
--trivial-only
--reinstall --solver
-t --target-release'"$GENERIC_APT_GET_OPTIONS" -- "$cur" ) )
return 0
;;
update)
COMPREPLY=( $( compgen -W '--list-cleanup
--print-uris
--allow-insecure-repositories
' -- "$cur" ) )
return 0
;;
list)
COMPREPLY=( $( compgen -W '--installed --upgradable
--manual-installed
-v --verbose
-a --all-versions
-t --target-release
' -- "$cur" ) )
return 0
;;
show)
COMPREPLY=( $( compgen -W '-a --all-versions
' -- "$cur" ) )
return 0
;;
depends|rdepends)
COMPREPLY=( $( compgen -W '-i
--important
--installed
--pre-depends
--depends
--recommends
--suggests
--replaces
--breaks
--conflicts
--enhances
--recurse
--implicit' -- "$cur" ) )
return 0
;;
search)
COMPREPLY=( $( compgen -W '
-n --names-only
-f --full' -- "$cur" ) )
return 0
;;
showsrc)
COMPREPLY=( $( compgen -W '
--only-source' -- "$cur" ) )
return 0
;;
source)
COMPREPLY=( $( compgen -W '
-s --simulate --dry-run
-b --compile --build
-P --build-profiles
--diff-only --debian-only
--tar-only
--dsc-only
-t --target-release
'"$GENERIC_APT_GET_OPTIONS" -- "$cur" ) )
return 0
;;
build-dep)
COMPREPLY=( $( compgen -W '
-a --host-architecture
-s --simulate --dry-run
-P --build-profiles
-t --target-release
--purge --solver
'"$GENERIC_APT_GET_OPTIONS" -- "$cur" ) )
return 0
;;
moo)
COMPREPLY=( $( compgen -W '
--color
' -- "$cur" ) )
return 0
;;
clean|autoclean)
COMPREPLY=( $( compgen -W '
-s --simulate --dry-run
' -- "$cur" ) )
return 0
;;
esac
fi
# specific command arguments
if [[ -n $command ]]; then
case $command in
remove|purge|autoremove)
if [[ -f /etc/debian_version ]]; then
# Debian system
COMPREPLY=( $( \
_xfunc dpkg _comp_dpkg_installed_packages $cur ) )
else
# assume RPM based
_xfunc rpm _rpm_installed_packages
fi
return 0
;;
show|list|download|changelog|depends|rdepends)
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" -o Dir::Cache="/var/lib/aptss/" \
2> /dev/null ) )
return 0
;;
install)
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" -o Dir::Cache="/var/lib/aptss/" \
2> /dev/null ) )
if [[ "$cur" == ./* || "$cur" == /* ]]; then
_filedir "deb"
fi
return 0
;;
source|build-dep|showsrc|policy)
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" -o Dir::Cache="/var/lib/aptss/" \
2> /dev/null ) $( apt-cache dumpavail -o Dir::Cache="/var/lib/aptss/" | \
command grep "^Source: $cur" | sort -u | cut -f2 -d" " ) )
return 0
;;
edit-sources)
COMPREPLY=( $( compgen -W '$( command ls $sourcesdir )' \
-- "$cur" ) )
return 0
;;
moo)
COMPREPLY=( $( compgen -W 'moo' \
-- "$cur" ) )
return 0
;;
esac
fi
# no command yet, show what commands we have
if [ "$command" = "" ]; then
COMPREPLY=( $( compgen -W '${COMMANDS[@]}' -- "$cur" ) )
fi
return 0
} &&
complete -F _aptss aptss
# ex: ts=4 sw=4 et filetype=sh

View File

@@ -0,0 +1,26 @@
{
"magic": "dsg.config.meta",
"version": "1.0",
"contents": {
"featureUpdated": {
"value": false,
"serial": 0,
"flags": [],
"name": "Whether the application has new feature updates",
"name[zh_CN]": "配置应用的更新状态",
"description": "Configure the update status of the application",
"permissions": "readwrite",
"visibility": "public"
},
"autoDisplayFeature": {
"value": false,
"serial": 0,
"flags": [],
"name": "The application automatically display new features once",
"name[zh_CN]": "配置应用是否自动展示一次新特性",
"description": "The application automatically display updated contents once",
"permissions": "readwrite",
"visibility": "public"
}
}
}

View File

@@ -0,0 +1,242 @@
# 清除已有的 aptss 补全(如果有的话)
complete -c aptss -e
# 禁用默认的文件补全(避免显示当前目录文件)
complete -c aptss -f
########################################################################
# aptss Fish 补全脚本(中文说明版,软件包补全显示简介)
#
# 说明:
# 1. 子命令和选项的说明采用中文显示。
# 2. 软件包补全部分不再调用 apt-cache而是解析 aptss 自有的软件源索引文件,
# 从 /var/lib/aptss/lists/*Packages或 *Sources中提取软件包名称及简介信息。
#
# 注意:如果你的 aptss 软件源索引文件位置或格式有变化,请相应修改下面的 awk 命令。
########################################################################
### 辅助函数
# 解析 /var/lib/aptss/lists/*Packages 文件,输出符合当前输入前缀的“软件包<TAB>简介”
function __fish_aptss_print_packages
set cur (commandline -ct)
# 将所有匹配的 Packages 文件拼接后,用 awk 分段解析RS="" 表示以空行为分段)
awk -v cur="$cur" '
BEGIN { RS=""; FS="\n" }
{
pkg = ""; desc = "";
for(i=1; i<=NF; i++){
if($i ~ /^Package: /) { pkg = substr($i, 10) } # “Package: ”共9个字符
else if($i ~ /^Description: /) { desc = substr($i, 14) } # “Description: ”共13个字符
}
if(pkg != "" && (cur == "" || pkg ~ ("^" cur))) {
print pkg "\t" desc
}
}
' /var/lib/aptss/lists/*Packages 2>/dev/null
end
# 解析已安装软件包(这里仍使用 dpkg-query如果需要使用 aptss 数据,可另外构造)
function __fish_aptss_print_installed_packages
set cur (commandline -ct)
dpkg-query -W -f='${Package}\t${Description}\n' 2>/dev/null | grep -i "^$cur"
end
# 解析 /var/lib/aptss/lists/*Sources 文件,输出源代码包信息(如果存在)
function __fish_aptss_print_source_packages
set cur (commandline -ct)
awk -v cur="$cur" '
BEGIN { RS=""; FS="\n" }
{
pkg = ""; desc = "";
for(i=1; i<=NF; i++){
if($i ~ /^Package: /) { pkg = substr($i, 10) }
else if($i ~ /^Description: /) { desc = substr($i, 14) }
}
if(pkg != "" && (cur == "" || pkg ~ ("^" cur))) {
print pkg "\t" desc
}
}
' /var/lib/aptss/lists/*Sources 2>/dev/null
end
# 翻译子命令为中文说明(用于补全时显示在括号内)
function __fish_translate_aptss_cmd
switch $argv[1]
case ssupdate
echo "更新软件源"
case list
echo "列出软件包"
case search
echo "搜索软件包"
case show
echo "显示软件包信息"
case showsrc
echo "显示源包信息"
case install
echo "安装软件包"
case remove
echo "移除软件包"
case purge
echo "彻底移除软件包"
case autoremove
echo "自动移除不必要的软件包"
case update
echo "更新软件包列表"
case upgrade
echo "升级软件包"
case full-upgrade
echo "完全升级(可能移除其他软件包)"
case dist-upgrade
echo "发行版升级"
case edit-sources
echo "编辑软件源列表"
case help
echo "显示帮助信息"
case source
echo "下载源代码包"
case build-dep
echo "安装构建依赖"
case clean
echo "清除软件包缓存"
case autoclean
echo "自动清理旧缓存"
case download
echo "下载软件包"
case changelog
echo "显示更新日志"
case moo
echo "彩蛋"
case depends
echo "显示软件包依赖"
case rdepends
echo "显示软件包逆向依赖"
case policy
echo "显示软件包策略"
case '*'
echo $argv[1]
end
end
### 定义各类子命令组
# 所有子命令列表
set -g __aptss_commands ssupdate list search show showsrc install remove purge autoremove update upgrade full-upgrade dist-upgrade edit-sources help source build-dep clean autoclean download changelog moo depends rdepends policy
# 需要补全二进制软件包名称的子命令(例如 install、show、search、download、changelog、depends、rdepends
set -l __aptss_pkg_subcmds install show search download changelog depends rdepends
# 需要补全已安装软件包的子命令(例如 remove、purge、autoremove
set -l __aptss_installed_pkg_subcmds remove purge autoremove
# 需要补全源代码包的子命令(例如 source、build-dep、showsrc、policy
set -l __aptss_src_pkg_subcmds source build-dep showsrc policy
### 子命令补全
# 未输入子命令时,显示所有候选子命令,并在括号中显示中文说明
for cmd in $__aptss_commands
set desc (__fish_translate_aptss_cmd $cmd)
complete -c aptss -a $cmd -d "$desc" -n "not __fish_seen_subcommand_from $__aptss_commands"
end
### 公共选项(适用于一组子命令)
set -l group1 "install remove purge upgrade dist-upgrade full-upgrade autoremove"
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l show-progress -d '显示进度'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l fix-broken -d '修复损坏的依赖'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l purge -d '清除配置文件'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l verbose-versions -d '显示详细版本'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l auto-remove -d '自动移除依赖'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -s s -l simulate -d '模拟/试运行'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l download -d '下载软件包'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l fix-missing -d '修复丢失文件'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l fix-policy -d '修复策略'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l ignore-hold -d '忽略锁定'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l force-yes -d '强制确认'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l trivial-only -d '仅处理简单情况'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l reinstall -d '重新安装'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l solver -d '使用求解器'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -s t -l target-release -d '目标版本'
# 附加的 GENERIC 选项
complete -c aptss -n "__fish_seen_subcommand_from $group1" -s d -l download-only -d '仅下载'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -s y -l assume-yes -d '默认确认'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -l assume-no -d '默认否定'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -s u -l show-upgraded -d '显示升级情况'
complete -c aptss -n "__fish_seen_subcommand_from $group1" -s m -l ignore-missing -d '忽略缺失'
### 针对各个子命令的专用选项
# update 命令
complete -c aptss -n "__fish_seen_subcommand_from update" -l list-cleanup -d '清理列表'
complete -c aptss -n "__fish_seen_subcommand_from update" -l print-uris -d '显示 URI'
complete -c aptss -n "__fish_seen_subcommand_from update" -l allow-insecure-repositories -d '允许不安全的仓库'
# list 命令
complete -c aptss -n "__fish_seen_subcommand_from list" -l installed -d '已安装的软件包'
complete -c aptss -n "__fish_seen_subcommand_from list" -l upgradable -d '可升级的软件包'
complete -c aptss -n "__fish_seen_subcommand_from list" -l manual-installed -d '手动安装的软件包'
complete -c aptss -n "__fish_seen_subcommand_from list" -s v -l verbose -d '详细模式'
complete -c aptss -n "__fish_seen_subcommand_from list" -s a -l all-versions -d '显示所有版本'
complete -c aptss -n "__fish_seen_subcommand_from list" -s t -l target-release -d '目标版本'
# show 命令
complete -c aptss -n "__fish_seen_subcommand_from show" -s a -l all-versions -d '显示所有版本'
# depends 和 rdepends 命令(逐项添加各选项)
for opt in i important installed pre-depends depends recommends suggests replaces breaks conflicts enhances recurse implicit
complete -c aptss -n "__fish_seen_subcommand_from depends rdepends" -l $opt -d $opt
end
complete -c aptss -n "__fish_seen_subcommand_from depends rdepends" -s i -d '选项 -i'
# search 命令
complete -c aptss -n "__fish_seen_subcommand_from search" -s n -l names-only -d '仅匹配名称'
complete -c aptss -n "__fish_seen_subcommand_from search" -s f -l full -d '全文搜索'
# showsrc 命令
complete -c aptss -n "__fish_seen_subcommand_from showsrc" -l only-source -d '仅显示源代码'
# source 命令
complete -c aptss -n "__fish_seen_subcommand_from source" -s s -l simulate -d '模拟'
complete -c aptss -n "__fish_seen_subcommand_from source" -s b -l compile -d '编译/构建'
complete -c aptss -n "__fish_seen_subcommand_from source" -s P -l build-profiles -d '构建配置'
complete -c aptss -n "__fish_seen_subcommand_from source" -l diff-only -d '仅显示差异'
complete -c aptss -n "__fish_seen_subcommand_from source" -l debian-only -d '仅限 Debian'
complete -c aptss -n "__fish_seen_subcommand_from source" -l tar-only -d '仅打包 tar'
complete -c aptss -n "__fish_seen_subcommand_from source" -l dsc-only -d '仅下载 DSC'
complete -c aptss -n "__fish_seen_subcommand_from source" -s t -l target-release -d '目标版本'
# build-dep 命令
complete -c aptss -n "__fish_seen_subcommand_from build-dep" -s a -l host-architecture -d '主机架构'
complete -c aptss -n "__fish_seen_subcommand_from build-dep" -s s -l simulate -d '模拟'
complete -c aptss -n "__fish_seen_subcommand_from build-dep" -s P -l build-profiles -d '构建配置'
complete -c aptss -n "__fish_seen_subcommand_from build-dep" -s t -l target-release -d '目标版本'
complete -c aptss -n "__fish_seen_subcommand_from build-dep" -l purge -d '清除'
complete -c aptss -n "__fish_seen_subcommand_from build-dep" -l solver -d '求解依赖'
# moo 命令
complete -c aptss -n "__fish_seen_subcommand_from moo" -l color -d '彩蛋模式'
# clean 和 autoclean 命令
complete -c aptss -n "__fish_seen_subcommand_from clean autoclean" -s s -l simulate -d '模拟'
### 针对 -t/--target-release 的特殊补全
complete -c aptss -n '
begin
set -l prev (commandline -poc | string trim)
test "$prev" = "-t" -o "$prev" = "--target-release"
end
' -a '(__fish_aptss_target_release)' -d '目标版本'
### 软件包补全
# 对于需要二进制软件包名称的子命令,调用 __fish_aptss_print_packages
# 输出的每一行格式为 "包名<TAB>简介"Fish 会将 TAB 后内容显示为注释。
complete -c aptss -n "__fish_seen_subcommand_from $__aptss_pkg_subcmds" -a '(__fish_aptss_print_packages)'
# 对于 remove、purge、autoremove 命令,补全已安装的软件包(使用 dpkg-query 输出)
complete -c aptss -n "__fish_seen_subcommand_from $__aptss_installed_pkg_subcmds" -a '(__fish_aptss_print_installed_packages)' -d '已安装软件包'
# 对于 source、build-dep、showsrc、policy 命令,补全源代码包,
# 如果存在对应的 Sources 索引文件,则调用 __fish_aptss_print_source_packages
# 否则可考虑默认使用二进制包的索引。
complete -c aptss -n "__fish_seen_subcommand_from $__aptss_src_pkg_subcmds" -a '(__fish_aptss_print_source_packages)' -d '源代码包'

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
<vendor>Spark Store</vendor>
<icon_name>x-package-repository</icon_name>
<action id="store.spark-app.ssinstall">
<description>运行ssinstall需要权限</description>
<message>要使用ssinstall需要权限</message>
<defaults>
<allow_any>yes</allow_any>
<allow_inactive>yes</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/local/bin/ssinstall</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
</policyconfig>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
<action id="com.spark.update">
<description>Run the Spark Update Tool</description>
<message>Authentication is required to update the system</message>
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/spark-update-tool</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
<defaults>
<allow_active>yes</allow_active>
<allow_inactive>no</allow_inactive>
</defaults>
</action>
</policyconfig>

View File

@@ -0,0 +1,6 @@
#!/bin/bash
TRANSHELL_CONTENT_HASH_CHECK_FAILED="An unexpected error caused the package verification to fail, and the installation process has been terminated.\n\nPossible causes include:\nNetwork or storage issues resulting in a corrupted package; The Spark Store repository has not yet completed synchronization; In extreme cases, malware may be attempting to tamper with the installation package to compromise the system.\n\nFor normal users: please run the following command in the terminal and then try installing again:\nsudo aptss update\n\nIf the problem persists, click 'App Feedback' button in the application information page to submit the issue.\n\nFor auditors: please use ssaudit instead of ssinstall for auditing, as ssinstall is now reserved for password-free installation.\nThe ssaudit command can also be used to attempt installation of applications that have been removed from the Spark Store."
TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT="Please run the ssinstall command with Root privileges."
TRANSHELL_CONTENT_FILE_NOT_EXIST="The specified file does not exist."
TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB="No --delete-after-install option specified or installation failed. The Deb package will not be deleted."
TRANSHELL_CONTENT_DEB_IS_DELETED="The --delete-after-install option was used and the installation succeeded. The Deb package has been deleted."

View File

@@ -0,0 +1,6 @@
#!/bin/bash
TRANSHELL_CONTENT_HASH_CHECK_FAILED="意外错误导致软件包校验失败,安装进程已终止。\n\n可能导致此错误的原因\n网络或存储问题导致软件包损坏星火应用商店软件仓库未完成同步极端情况下恶意软件尝试篡改安装包进行入侵。\n\n对于普通用户请在终端执行 sudo aptss update 后再次尝试安装;如仍然遇到此错误,请在应用信息界面点击“应用反馈”提交问题。\n对于审核人员请使用 ssaudit 替代 ssinstall 执行,现在 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 包。"

View File

@@ -0,0 +1,6 @@
#!/bin/bash
TRANSHELL_CONTENT_HASH_CHECK_FAILED="An unexpected error caused the package verification to fail, and the installation process has been terminated.\n\nPossible causes include:\nNetwork or storage issues resulting in a corrupted package; The Spark Store repository has not yet completed synchronization; In extreme cases, malware may be attempting to tamper with the installation package to compromise the system.\n\nFor normal users: please run the following command in the terminal and then try installing again:\nsudo aptss update\n\nIf the problem persists, click 'App Feedback' button in the application information page to submit the issue.\n\nFor auditors: please use ssaudit instead of ssinstall for auditing, as ssinstall is now reserved for password-free installation.\nThe ssaudit command can also be used to attempt installation of applications that have been removed from the Spark Store."
TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT="Please run the ssinstall command with Root privileges."
TRANSHELL_CONTENT_FILE_NOT_EXIST="The specified file does not exist."
TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB="No --delete-after-install option specified or installation failed. The Deb package will not be deleted."
TRANSHELL_CONTENT_DEB_IS_DELETED="The --delete-after-install option was used and the installation succeeded. The Deb package has been deleted."

View File

@@ -0,0 +1,6 @@
#!/bin/bash
TRANSHELL_CONTENT_HASH_CHECK_FAILED="意外错误导致软件包校验失败,安装进程已终止。\n\n可能导致此错误的原因\n网络或存储问题导致软件包损坏星火应用商店软件仓库未完成同步极端情况下恶意软件尝试篡改安装包进行入侵。\n\n对于普通用户请在终端执行 sudo aptss update 后再次尝试安装;如仍然遇到此错误,请在应用信息界面点击“应用反馈”提交问题。\n对于审核人员请使用 ssaudit 替代 ssinstall 执行,现在 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 包。"

88
spark-store-project.pro Normal file
View File

@@ -0,0 +1,88 @@
#-------------------------------------------------
#
# Project created by QtCreator 2022-01-12T04:00:00
#
#-------------------------------------------------
TARGET = spark-store
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += \
src/spark-store.pro
# https://wiki.debian.org/Hardening
QMAKE_CFLAGS *= $(shell dpkg-buildflags --get CFLAGS)
QMAKE_CPPFLAGS *= $(shell dpkg-buildflags --get CPPFLAGS)
QMAKE_CXXFLAGS *= $(shell dpkg-buildflags --get CXXFLAGS)
QMAKE_LFLAGS *= $(shell dpkg-buildflags --get LDFLAGS)
# Update translation files
CONFIG(release, debug | release) {
system(bash $${PWD}/translate_update.sh)
system(bash $${PWD}/translate_generation.sh)
}
# Rules for deployment
tool.files += tool/*
tool.path = /opt/durapps/$${TARGET}/bin
qm.files += translations/*.qm
qm.path = /usr/share/spark-store/translations
#preferences.files += pkg/etc/apt/preferences.d/sparkstore
#preferences.path = /etc/apt/preferences.d
#sourceslist.files += pkg/etc/apt/sources.list.d/sparkstore.list
#sourceslist.path = /etc/apt/sources.list.d
bash_completion.files += pkg/usr/share/bash-completion/completions/aptss
bash_completion.path = /usr/share/bash-completion/completions
fish_completion.files += pkg/usr/share/fish/completions/aptss.fish
fish_completion.path = /usr/share/fish/completions/
desktop.files += pkg/usr/share/applications/*.desktop
desktop.path = /usr/share/applications
service.files += pkg/usr/lib/systemd/system/spark-update-notifier.service
service.path = /usr/lib/systemd/system/
polkit-1.files += pkg/usr/share/polkit-1/actions/*
polkit-1.path = /usr/share/polkit-1/actions/
icon.files += pkg/usr/share/icons/hicolor/scalable/apps/*.svg
icon.files += pkg/usr/share/icons/hicolor/scalable/apps/*.png
icon.path = /usr/share/icons/hicolor/scalable/apps
ssinstall-transhell.files += pkg/usr/share/ssinstall/transhell
ssinstall-transhell.path = /usr/share/ssinstall/
aptss-transhell.files += pkg/usr/share/aptss/transhell
aptss-transhell.path = /usr/share/aptss/
tmp.files += pkg/tmp/spark-store-install/feedback.sh
tmp.path = /tmp/spark-store-install
INSTALLS += \
tool \
qm \
desktop \
icon \
ssinstall-transhell \
aptss-transhell \
# sourceslist \
tmp \
service \
bash_completion \
fish_completion \
polkit-1
# 暂时不添加
SUBDIRS += spark-update-tool
spark-update-tool.subdir = spark-update-tool
spark-update-tool.file = spark-update-tool/spark-update-tool.pro
spark-update-tool.target = spark-update-tool
spark-update-tool.depends = spark-store

View File

@@ -1,46 +0,0 @@
#-------------------------------------------------
#
# Project created by QtCreator 2019-06-30T12:53:03
#
#-------------------------------------------------
QT += core gui webkitwidgets network concurrent
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = spark-store
TEMPLATE = app
# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += main.cpp\
mainwindow.cpp \
widget.cpp \
downloadlist.cpp \
image_show.cpp \
big_image.cpp
HEADERS += mainwindow.h \
widget.h \
downloadlist.h \
image_show.h \
big_image.h
CONFIG += link_pkgconfig
PKGCONFIG += dtkwidget
CONFIG += c++11
FORMS += \
widget.ui \
downloadlist.ui

62
spark-update-tool/.gitignore vendored Normal file
View File

@@ -0,0 +1,62 @@
build
.vscode
.cache
CMakeLists.txt.user
CMakeLists.txt.user.*
obj-x86_64-linux-gnu
# C++ objects and libs
*.slo
*.lo
*.o
*.a
*.la
*.lai
*.so
*.dll
*.dylib
# Qt-es
object_script.*.Release
object_script.*.Debug
*_plugin_import.cpp
/.qmake.cache
/.qmake.stash
*.pro.user
*.pro.user.*
*.qbs.user
*.qbs.user.*
*.moc
moc_*.cpp
moc_*.h
qrc_*.cpp
ui_*.h
*.qmlc
*.jsc
Makefile*
*build-*
# Qt unit tests
target_wrapper.*
# Qt qm files
translations/*.qm
# QtCreator
*.autosave
# QtCreator Qml
*.qmlproject.user
*.qmlproject.user.*
# QtCreator CMake
CMakeLists.txt.user*
build
# Debian dpkg-buildpackage
debian/*.debhelper*
debian/files
debian/*.substvars
debian/spark-update-tool
.vscode/*
src/spark-update-tool

View File

@@ -0,0 +1,59 @@
cmake_minimum_required(VERSION 3.16)
project(spark-update-tool VERSION 0.1 LANGUAGES CXX)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5 REQUIRED COMPONENTS Widgets Network Concurrent)
set(PROJECT_SOURCES
src/main.cpp
src/mainwindow.cpp
src/mainwindow.h
src/mainwindow.ui
src/aptssupdater.h
src/aptssupdater.cpp
src/icons.qrc
src/appdelegate.h
src/appdelegate.cpp
src/applistmodel.h
src/applistmodel.cpp
src/downloadmanager.h
src/downloadmanager.cpp
src/ignoreconfig.h
src/ignoreconfig.cpp
)
if(ANDROID)
add_library(spark-update-tool SHARED
${PROJECT_SOURCES}
)
# Define properties for Android with Qt 5 after find_package() calls as:
# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
else()
add_executable(spark-update-tool
${PROJECT_SOURCES}
)
endif()
target_link_libraries(spark-update-tool PRIVATE Qt5::Widgets Qt5::Network Qt5::Concurrent)
set_target_properties(spark-update-tool PROPERTIES
MACOSX_BUNDLE_GUI_IDENTIFIER com.example.spark-update-tool
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
MACOSX_BUNDLE TRUE
WIN32_EXECUTABLE TRUE
)
include(GNUInstallDirs)
install(TARGETS spark-update-tool
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

674
spark-update-tool/LICENSE Normal file
View File

@@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.

View File

@@ -0,0 +1,15 @@
### Spark Update Tool
#### Introduction
Welcome to Spark Software Updater. Use this tool to update applications on your Linux system.
This version is specifically designed for Linux distributions with Qt6 support.
Please run under root privileges (recommended: use `sudo`).
#### Currently Supported Linux Distributions
- [x] GXDE OS
- [x] Ubuntu
- [x] deepin
- [ ] Kylin
#### Contact & Feedback
momen@momen.world

View File

@@ -0,0 +1,25 @@
### 星火软件更新器
#### 简介
欢迎使用星火软件更新器,您可以使用此更新器更新位于您 Linux 计算机的程序。
此版本专为有qt6的Linux发行版所使用。
请在root环境下运行。
#### 当前支持的 Linux 发行版
- [x] GXDE OS
- [x] Ubuntu
- [x] deepin
- [ ] Kylin
#### 功能清单
| 功能模块 | 描述 |
|------------------|--------------------------------------|
| 应用名识别 | 基于 `ss-do-upgrade.sh` 部分代码实现 |
| 应用包大小识别 | 通过 dpkg 获取包大小信息 |
| 获取应用图标 | 利用 QDesktopServices 实现 |
| 支持 ACE 兼容环境| |
| 多线程下载 | 基于 aptss 方案 |
如您已安装星火应用商店,则会附带本程序。
#### 联系与反馈
momen@momen.world

View File

@@ -0,0 +1,23 @@
spark-update-tool (1.0.3) unstable; urgency=low
* 修复默认图标加载失败的问题
* 修复更新器在安装阶段强制关闭窗口后再次更新无法安装软件包的问题。
-- momen <vmomenv@gmail.com> Fri, 17 Oct 2025 00:00:00 +0000
spark-update-tool (1.0.2) unstable; urgency=low
* 添加复选框,选择多个包更新
* 修复缩放问题
* 添加忽略应用功能
-- momen <vmomenv@gmail.com> Mon, 29 Sep 2025 00:00:00 +0000
spark-update-tool (1.0.1) unstable; urgency=low
* 修复窗口调整大小时的错误
-- momen <vmomenv@gmail.com> Wed, 18 Jun 2025 00:00:00 +0000
spark-update-tool (1.0.0) unstable; urgency=low
* Initial release.
-- momen <vmomenv@gmail.com> Wed, 18 Jun 2025 00:00:00 +0000

View File

@@ -0,0 +1 @@
13

View File

@@ -0,0 +1,13 @@
Source: spark-update-tool
Section: utils
Priority: optional
Maintainer: momen <vmomenv@gmail.com>
Build-Depends: debhelper (>= 9)
Standards-Version: 3.9.6
Homepage: https://gitee.com/spark-store-project/Spark-Update-Tool
Package: spark-update-tool
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Spark Update Tool
星火应用商店更新组件。This package provides the Spark Update Tool. It includes features for checking for updates, downloading, and applying them seamlessly.

View File

@@ -0,0 +1,7 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: spark-update-tool
Source: https://gitee.com/spark-store-project/Spark-Update-Tool
Files: *
Copyright: 2025, momen <vmomenv@gmail.com>
License: GPL-3.0+

View File

@@ -0,0 +1,3 @@
build/spark-update-tool /usr/bin/
debian/spark-update-tool.desktop /usr/share/applications
resources/128*128/spark-update-tool.png /usr/share/icons/hicolor/128x128/apps

View File

@@ -0,0 +1,11 @@
#!/bin/sh
set -e
case "$1" in
purge)
rm -rf /usr/share/spark-update-tool
;;
esac
exit 0

27
spark-update-tool/debian/rules Executable file
View File

@@ -0,0 +1,27 @@
#!/usr/bin/make -f
# 声明兼容性级别
export DH_VERBOSE=1
%:
dh $@ --buildsystem=cmake
# 确保使用CMake进行配置
override_dh_auto_configure:
dh_auto_configure -- -DCMAKE_INSTALL_PREFIX=/usr
# 确保使用CMake进行构建
override_dh_auto_build:
dh_auto_build
# 确保使用CMake进行安装
override_dh_auto_install:
dh_auto_install
# 确保使用CMake进行清理
override_dh_auto_clean:
dh_auto_clean
# 确保使用CMake进行依赖解析
override_dh_shlibdeps:
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info

View File

@@ -0,0 +1 @@
3.0 (native)

View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=Spark Update Tool
Comment=A Qt-based application for managing and updating software
Exec=spark-update-tool
Icon=spark-update-tool
Terminal=false
Type=Application
Categories=Utility;

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 86 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="12" height="16" viewBox="0 0 12 16"><defs><clipPath id="master_svg0_1_074"><rect x="0.75" y="2" width="10.5" height="12" rx="0"/></clipPath></defs><g><rect x="0" y="0" width="12" height="16" rx="0" fill="#000000" fill-opacity="0" style="mix-blend-mode:passthrough"/><g clip-path="url(#master_svg0_1_074)"><g transform="matrix(1,0,0,-1,0,24.015625)"><g><path d="M4.71094,12.2187505Q4.94531,12.0078125,5.25,12.0078125Q5.55469,12.0078125,5.78906,12.2187505L10.2891,16.7187525Q10.5,16.9531225,10.5,17.2578125Q10.5,17.5625025,10.2891,17.7968725Q10.0547,18.0078125,9.75,18.0078125Q9.44531,18.0078125,9.21094,17.7968725L5.25,13.8125025L1.28906,17.7968725Q1.05469,18.0078125,0.75,18.0078125Q0.445312,18.0078125,0.210938,17.7968725Q0,17.5625025,0,17.2578125Q0,16.9531225,0.210938,16.7187525L4.71094,12.2187505Z" fill="#4B5563" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1009 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,49 @@
QT += core gui widgets network concurrent
TARGET = spark-update-tool
TEMPLATE = app
# Set C++ standard to C++17
CONFIG += c++17
# Enable auto features (uic, moc, rcc)
CONFIG += qt warn_on release
# Version info
VERSION = 0.1.0
DEFINES += APP_VERSION=\\\"$$VERSION\\\"
# Source files
SOURCES += \
src/main.cpp \
src/mainwindow.cpp \
src/aptssupdater.cpp \
src/appdelegate.cpp \
src/applistmodel.cpp \
src/downloadmanager.cpp \
src/ignoreconfig.cpp
HEADERS += \
src/mainwindow.h \
src/aptssupdater.h \
src/appdelegate.h \
src/applistmodel.h \
src/downloadmanager.h \
src/ignoreconfig.h
FORMS += \
src/mainwindow.ui
RESOURCES += \
src/icons.qrc
# Linux-specific settings
unix:!macx {
# Installation paths for Linux
target.path = $$[QT_INSTALL_BINS]
INSTALLS += target
# Additional Linux specific configurations if needed
QMAKE_CXXFLAGS += -Wall -Wextra
}
# Remove Windows and macOS specific sections since we're focusing on Linux

View File

@@ -0,0 +1,506 @@
#include "appdelegate.h"
#include <QIcon>
#include <QDebug>
#include <QApplication>
#include <QDir>
#include <QProgressBar>
#include <QPushButton>
#include <QPainter>
#include <QMouseEvent>
#include <QFile>
AppDelegate::AppDelegate(QObject *parent)
: QStyledItemDelegate(parent), m_downloadManager(new DownloadManager(this)), m_installProcess(nullptr) {
connect(m_downloadManager, &DownloadManager::downloadFinished, this,
[this](const QString &packageName, bool success) {
if (m_downloads.contains(packageName)) {
m_downloads[packageName].isDownloading = false;
// 不要提前设置 isInstalled
emit updateDisplay(packageName);
qDebug() << (success ? "下载完成:" : "下载失败:") << packageName;
if (success) {
enqueueInstall(packageName); // 安装完成后再设置 isInstalled
}
}
});
connect(m_downloadManager, &DownloadManager::downloadProgress, this,
[this](const QString &packageName, int progress) {
if (m_downloads.contains(packageName)) {
m_downloads[packageName].progress = progress;
qDebug()<<progress;
emit updateDisplay(packageName); // 实时刷新进度条
}
});
// m_spinnerTimer.start(); // 移除这行
// 新增:初始化和连接 QTimer
m_spinnerUpdateTimer.setInterval(20); // 刷新间隔,可以调整
connect(&m_spinnerUpdateTimer, &QTimer::timeout, this, &AppDelegate::updateSpinner);
}
void AppDelegate::setModel(QAbstractItemModel *model) {
m_model = model;
}
void AppDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const {
painter->save();
// 检查是否为忽略状态
bool isIgnored = index.data(Qt::UserRole + 8).toBool();
if (option.state & QStyle::State_Selected)
painter->fillRect(option.rect, option.palette.highlight());
else
painter->fillRect(option.rect, QColor("#F3F4F6"));
// 绘制复选框
QString packageName = index.data(Qt::UserRole + 1).toString();
bool isSelected = m_selectedPackages.contains(packageName);
QRect checkboxRect(option.rect.left() + 10, option.rect.top() + (option.rect.height() - 20) / 2, 20, 20);
// 绘制复选框边框
QColor checkboxColor = isIgnored ? QColor("#CCCCCC") : QColor("#888888");
painter->setPen(checkboxColor);
painter->setBrush(Qt::NoBrush);
painter->drawRect(checkboxRect);
// 如果选中,绘制勾选标记
if (isSelected && !isIgnored) {
painter->setPen(QPen(QColor("#2563EB"), 2));
painter->setBrush(QColor("#2563EB"));
painter->drawRect(checkboxRect.adjusted(4, 4, -4, -4));
}
QFont boldFont = option.font;
boldFont.setBold(true);
QFont normalFont = option.font;
QString name = index.data(Qt::DisplayRole).toString();
QString currentVersion = index.data(Qt::UserRole + 2).toString();
QString newVersion = index.data(Qt::UserRole + 3).toString();
QString iconPath = index.data(Qt::UserRole + 4).toString();
QString size = index.data(Qt::UserRole + 5).toString();
QString description = index.data(Qt::UserRole + 6).toString();
QRect rect = option.rect;
int margin = 10, spacing = 6, iconSize = 40;
// 调整图标位置,为复选框留出空间
QRect iconRect(rect.left() + 40, rect.top() + (rect.height() - iconSize) / 2, iconSize, iconSize);
// 如果是忽略状态,绘制灰色图标
if (isIgnored) {
// 创建灰度效果
QPixmap originalPixmap = QIcon(iconPath).pixmap(iconSize, iconSize);
QPixmap grayPixmap(originalPixmap.size());
grayPixmap.fill(Qt::transparent);
QPainter grayPainter(&grayPixmap);
grayPainter.setOpacity(0.3); // 设置透明度使其变灰
grayPainter.drawPixmap(0, 0, originalPixmap);
grayPainter.end();
painter->drawPixmap(iconRect, grayPixmap);
} else {
QIcon(iconPath).paint(painter, iconRect);
}
int textX = iconRect.right() + margin;
int textWidth = rect.width() - textX - 100;
QRect nameRect(textX, rect.top() + margin, textWidth, 20);
painter->setFont(boldFont);
QColor nameColor = isIgnored ? QColor("#999999") : QColor("#333333");
painter->setPen(nameColor);
painter->drawText(nameRect, Qt::AlignLeft | Qt::AlignVCenter, name);
QRect versionRect(textX, nameRect.bottom() + spacing, textWidth, 20);
painter->setFont(normalFont);
QColor versionColor = isIgnored ? QColor("#AAAAAA") : QColor("#888888");
painter->setPen(versionColor);
painter->drawText(versionRect, Qt::AlignLeft | Qt::AlignVCenter,
QString("当前版本: %1 → 新版本: %2").arg(currentVersion, newVersion));
QRect descRect(textX, versionRect.bottom() + spacing, textWidth, 40);
painter->setFont(normalFont);
QColor descColor = isIgnored ? QColor("#CCCCCC") : QColor("#AAAAAA");
painter->setPen(descColor);
painter->drawText(descRect, Qt::TextWordWrap,
QString("包大小:%1 MB").arg(QString::number(size.toDouble() / (1024 * 1024), 'f', 2)));
bool isDownloading = m_downloads.contains(packageName) && m_downloads[packageName].isDownloading;
int progress = m_downloads.value(packageName, DownloadInfo{0, false}).progress;
bool isInstalled = m_downloads.value(packageName).isInstalled;
bool isInstalling = m_downloads.value(packageName).isInstalling;
// 如果是忽略状态,显示"已忽略"文本和"取消忽略"按钮
if (isIgnored) {
QRect ignoredTextRect(rect.right() - 170, rect.top() + (rect.height() - 30) / 2, 80, 30);
painter->setPen(QColor("#999999"));
painter->setFont(option.font);
painter->drawText(ignoredTextRect, Qt::AlignCenter, "已忽略");
// 绘制取消忽略按钮
QRect unignoreButtonRect(rect.right() - 80, rect.top() + (rect.height() - 30) / 2, 70, 30);
painter->setPen(Qt::NoPen);
painter->setBrush(QColor("#F3F4F6"));
painter->drawRoundedRect(unignoreButtonRect, 4, 4);
painter->setPen(QColor("#6B7280"));
painter->drawText(unignoreButtonRect, Qt::AlignCenter, "取消忽略");
} else if (isDownloading) {
QRect progressRect(rect.right() - 270, rect.top() + (rect.height() - 20) / 2, 150, 20);
QStyleOptionProgressBar progressBarOption;
progressBarOption.rect = progressRect;
progressBarOption.minimum = 0;
progressBarOption.maximum = 100;
progressBarOption.progress = progress;
progressBarOption.text = QString("%1%").arg(progress);
progressBarOption.textVisible = true;
QApplication::style()->drawControl(QStyle::CE_ProgressBar, &progressBarOption, painter);
QRect cancelButtonRect(rect.right() - 80, rect.top() + (rect.height() - 30) / 2, 70, 30);
painter->setPen(Qt::NoPen);
painter->setBrush(QColor("#ff4444"));
painter->drawRoundedRect(cancelButtonRect, 4, 4);
painter->setPen(Qt::white);
painter->setFont(option.font);
painter->drawText(cancelButtonRect, Qt::AlignCenter, "取消");
} else if (isInstalling) {
QRect spinnerRect(option.rect.right() - 80, option.rect.top() + (option.rect.height() - 30) / 2, 30, 30);
// 修改:使用 m_spinnerAngle
QPen pen(QColor("#2563EB"), 3);
painter->setPen(pen);
painter->setRenderHint(QPainter::Antialiasing, true);
QRectF arcRect = spinnerRect.adjusted(3, 3, -3, -3);
painter->drawArc(arcRect, m_spinnerAngle * 16, 120 * 16); // 120度弧
QRect textRect(option.rect.right() - 120, option.rect.top() + (option.rect.height() - 30) / 2, 110, 30);
painter->setPen(QColor("#2563EB"));
painter->setFont(option.font);
painter->drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, "正在安装中");
} else {
// 绘制忽略按钮
QRect ignoreButtonRect(option.rect.right() - 160, option.rect.top() + (option.rect.height() - 30) / 2, 70, 30);
painter->setPen(Qt::NoPen);
painter->setBrush(QColor("#F3F4F6"));
painter->drawRoundedRect(ignoreButtonRect, 4, 4);
painter->setPen(QColor("#6B7280"));
painter->drawText(ignoreButtonRect, Qt::AlignCenter, "忽略");
// 绘制更新按钮
QRect updateButtonRect(option.rect.right() - 80, option.rect.top() + (option.rect.height() - 30) / 2, 70, 30);
painter->setPen(Qt::NoPen);
if (isInstalled) {
painter->setBrush(QColor("#10B981"));
painter->drawRoundedRect(updateButtonRect, 4, 4);
painter->setPen(Qt::white);
painter->drawText(updateButtonRect, Qt::AlignCenter, "已安装");
} else if (m_downloads.contains(packageName) && !m_downloads[packageName].isDownloading) {
painter->setBrush(QColor("#10B981"));
painter->drawRoundedRect(updateButtonRect, 4, 4);
painter->setPen(Qt::white);
painter->drawText(updateButtonRect, Qt::AlignCenter, "下载完成");
} else {
painter->setBrush(QColor("#e9effd"));
painter->drawRoundedRect(updateButtonRect, 4, 4);
painter->setPen(QColor("#2563EB"));
painter->drawText(updateButtonRect, Qt::AlignCenter, "更新");
}
}
painter->restore();
}
QSize AppDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const {
return QSize(option.rect.width(), 110);
}
bool AppDelegate::editorEvent(QEvent *event, QAbstractItemModel *model,
const QStyleOptionViewItem &option, const QModelIndex &index) {
if (event->type() == QEvent::MouseButtonRelease) {
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
QRect rect = option.rect;
QString packageName = index.data(Qt::UserRole + 1).toString();
// 检查是否为忽略状态,如果是则只允许取消忽略按钮的交互
bool isIgnored = index.data(Qt::UserRole + 8).toBool();
if (isIgnored) {
QRect unignoreButtonRect(option.rect.right() - 80, option.rect.top() + (option.rect.height() - 30) / 2, 70, 30);
if (unignoreButtonRect.contains(mouseEvent->pos())) {
// 发送取消忽略信号
emit unignoreApp(packageName);
return true;
}
return true; // 消耗其他事件,不允许其他交互
}
// 检查是否点击了复选框
QRect checkboxRect(rect.left() + 10, rect.top() + (rect.height() - 20) / 2, 20, 20);
if (checkboxRect.contains(mouseEvent->pos())) {
if (m_selectedPackages.contains(packageName)) {
m_selectedPackages.remove(packageName);
} else {
m_selectedPackages.insert(packageName);
}
emit updateDisplay(packageName);
return true;
}
if (m_downloads.contains(packageName) && m_downloads[packageName].isDownloading) {
QRect cancelButtonRect(rect.right() - 70, rect.top() + (rect.height() - 20) / 2, 60, 20);
if (cancelButtonRect.contains(mouseEvent->pos())) {
m_downloadManager->cancelDownload(packageName);
m_downloads.remove(packageName);
emit updateDisplay(packageName);
return true;
}
} else {
// 检查是否点击了忽略按钮
QRect ignoreButtonRect(rect.right() - 160, rect.top() + (rect.height() - 30) / 2, 70, 30);
if (ignoreButtonRect.contains(mouseEvent->pos())) {
QString currentVersion = index.data(Qt::UserRole + 2).toString();
emit ignoreApp(packageName, currentVersion);
return true;
}
// 检查是否点击了更新按钮
QRect updateButtonRect(rect.right() - 80, rect.top() + (rect.height() - 30) / 2, 70, 30);
if (updateButtonRect.contains(mouseEvent->pos())) {
if (m_downloads.contains(packageName) && !m_downloads[packageName].isDownloading) {
return false;
}
// 检查/tmp目录下是否已经存在deb包
QDir tempDir(QDir::tempPath());
QStringList debs = tempDir.entryList(QStringList() << QString("%1_*.deb").arg(packageName), QDir::Files);
QString debPath;
if (!debs.isEmpty()) {
debPath = tempDir.absoluteFilePath(debs.first());
} else {
debs = tempDir.entryList(QStringList() << QString("%1*.deb").arg(packageName), QDir::Files);
if (!debs.isEmpty()) {
debPath = tempDir.absoluteFilePath(debs.first());
}
}
// 如果存在deb包直接进行安装
if (!debPath.isEmpty() && QFile::exists(debPath)) {
qDebug() << "发现已存在的deb包直接进行安装:" << debPath;
enqueueInstall(packageName);
} else {
// 否则触发下载流程
QString downloadUrl = index.data(Qt::UserRole + 7).toString();
QString outputPath = QString("%1/%2.metalink").arg(QDir::tempPath(), packageName);
m_downloads[packageName] = {0, true};
m_downloadManager->startDownload(packageName, downloadUrl, outputPath);
emit updateDisplay(packageName);
}
return true;
}
}
}
return QStyledItemDelegate::editorEvent(event, model, option, index);
}
void AppDelegate::startDownloadForAll() {
if (!m_model) return;
for (int row = 0; row < m_model->rowCount(); ++row) {
QModelIndex index = m_model->index(row, 0);
QString packageName = index.data(Qt::UserRole + 1).toString();
if (m_downloads.contains(packageName) && (m_downloads[packageName].isDownloading || m_downloads[packageName].isInstalled))
continue;
QString downloadUrl = index.data(Qt::UserRole + 7).toString();
QString outputPath = QString("%1/%2.metalink").arg(QDir::tempPath(), packageName);
m_downloads[packageName] = {0, true, false};
m_downloadManager->startDownload(packageName, downloadUrl, outputPath);
emit updateDisplay(packageName);
}
}
void AppDelegate::enqueueInstall(const QString &packageName) {
m_installQueue.enqueue(packageName);
if (!m_isInstalling) {
startNextInstall();
}
}
void AppDelegate::startNextInstall() {
if (m_installQueue.isEmpty()) {
m_isInstalling = false;
m_installingPackage.clear();
m_spinnerUpdateTimer.stop(); // 新增:停止定时器
return;
}
m_isInstalling = true;
QString packageName = m_installQueue.dequeue();
m_installingPackage = packageName;
m_downloads[packageName].isInstalling = true;
m_spinnerUpdateTimer.start(); // 新增:启动定时器
emit updateDisplay(packageName);
QDir tempDir(QDir::tempPath());
QStringList debs = tempDir.entryList(QStringList() << QString("%1_*.deb").arg(packageName), QDir::Files);
QString debPath;
if (!debs.isEmpty()) {
debPath = tempDir.absoluteFilePath(debs.first());
} else {
debs = tempDir.entryList(QStringList() << QString("%1*.deb").arg(packageName), QDir::Files);
if (!debs.isEmpty()) {
debPath = tempDir.absoluteFilePath(debs.first());
}
}
if (debPath.isEmpty()) {
qWarning() << "未找到deb文件包名:" << packageName;
m_downloads[packageName].isInstalling = false;
emit updateDisplay(packageName);
m_installingPackage.clear();
startNextInstall();
return;
}
m_installProcess = new QProcess(this);
QString logPath = QString("/tmp/%1_install.log").arg(packageName);
QFile *logFile = new QFile(logPath, m_installProcess);
if (logFile->open(QIODevice::Append | QIODevice::Text)) {
QFile::setPermissions(logPath, QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner |
QFile::ReadGroup | QFile::WriteGroup | QFile::ExeGroup |
QFile::ReadOther | QFile::WriteOther | QFile::ExeOther);
connect(m_installProcess, &QProcess::readyReadStandardOutput, this, [this, packageName, logFile]() {
QByteArray out = m_installProcess->readAllStandardOutput();
logFile->write(out);
logFile->flush();
QString text = QString::fromLocal8Bit(out);
qDebug().noquote() << text;
if (text.contains(QStringLiteral("软件包已安装"))) {
m_downloads[packageName].isInstalling = false;
m_downloads[packageName].isInstalled = true;
emit updateDisplay(packageName);
}
});
connect(m_installProcess, &QProcess::readyReadStandardError, this, [this, logFile]() {
QByteArray err = m_installProcess->readAllStandardError();
logFile->write(err);
logFile->flush();
qDebug().noquote() << QString::fromLocal8Bit(err);
});
connect(m_installProcess, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
this, [this, packageName, logFile, debPath](int exitCode, QProcess::ExitStatus status) {
if (logFile) logFile->close();
m_downloads[packageName].isInstalling = false;
if (exitCode == 0) {
m_downloads[packageName].isInstalled = true;
// 安装成功后删除deb包
if (QFile::exists(debPath)) {
if (QFile::remove(debPath)) {
qDebug() << "已删除deb包:" << debPath;
} else {
qWarning() << "删除deb包失败:" << debPath;
}
}
}
emit updateDisplay(packageName);
m_installProcess->deleteLater();
m_installProcess = nullptr;
m_installingPackage.clear();
startNextInstall();
});
} else {
connect(m_installProcess, &QProcess::readyReadStandardOutput, this, [this, packageName, debPath]() {
QByteArray out = m_installProcess->readAllStandardOutput();
QString text = QString::fromLocal8Bit(out);
qDebug().noquote() << text;
if (text.contains(QStringLiteral("软件包已安装"))) {
m_downloads[packageName].isInstalling = false;
m_downloads[packageName].isInstalled = true;
// 安装成功后删除deb包
if (QFile::exists(debPath)) {
if (QFile::remove(debPath)) {
qDebug() << "已删除deb包:" << debPath;
} else {
qWarning() << "删除deb包失败:" << debPath;
}
}
emit updateDisplay(packageName);
}
});
connect(m_installProcess, &QProcess::readyReadStandardError, this, [this]() {
QByteArray err = m_installProcess->readAllStandardError();
qDebug().noquote() << QString::fromLocal8Bit(err);
});
connect(m_installProcess, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
this, [this, packageName, debPath](int exitCode, QProcess::ExitStatus /*status*/) {
// 如果通过退出码判断安装成功也删除deb包
if (exitCode == 0 && QFile::exists(debPath)) {
if (QFile::remove(debPath)) {
qDebug() << "已删除deb包:" << debPath;
} else {
qWarning() << "删除deb包失败:" << debPath;
}
}
emit updateDisplay(packageName);
m_installProcess->deleteLater();
m_installProcess = nullptr;
m_installingPackage.clear();
startNextInstall();
});
}
QStringList args;
args << debPath << "--no-create-desktop-entry" << "--delete-after-install";
m_installProcess->start("ssinstall", args);
}
// 新增槽函数,用于更新旋转角度并触发刷新
void AppDelegate::updateSpinner() {
m_spinnerAngle = (m_spinnerAngle + 10) % 360; // 每次增加10度
emit updateDisplay(m_installingPackage); // 仅刷新当前正在安装的项
}
// 新增:更新选中应用的方法
void AppDelegate::startDownloadForSelected() {
if (!m_model) return;
for (int row = 0; row < m_model->rowCount(); ++row) {
QModelIndex index = m_model->index(row, 0);
QString packageName = index.data(Qt::UserRole + 1).toString();
// 只下载选中的应用
if (m_selectedPackages.contains(packageName)) {
if (m_downloads.contains(packageName) && (m_downloads[packageName].isDownloading || m_downloads[packageName].isInstalled))
continue;
QString downloadUrl = index.data(Qt::UserRole + 7).toString();
QString outputPath = QString("%1/%2.metalink").arg(QDir::tempPath(), packageName);
m_downloads[packageName] = {0, true, false};
m_downloadManager->startDownload(packageName, downloadUrl, outputPath);
emit updateDisplay(packageName);
}
}
}
// 复选框相关方法实现
void AppDelegate::setSelectedPackages(const QSet<QString> &selected) {
m_selectedPackages = selected;
}
QSet<QString> AppDelegate::getSelectedPackages() const {
return m_selectedPackages;
}
void AppDelegate::clearSelection() {
m_selectedPackages.clear();
}
// 实现获取下载状态信息的方法
const QHash<QString, DownloadInfo>& AppDelegate::getDownloads() const {
return m_downloads;
}

View File

@@ -0,0 +1,71 @@
#pragma once
#include <QStyledItemDelegate>
#include <QHash>
#include <QQueue>
#include <QProcess>
#include <QElapsedTimer>
#include <QTimer>
#include <QSet>
#include "downloadmanager.h"
struct DownloadInfo {
int progress = 0;
bool isDownloading = false;
bool isInstalled = false;
bool isInstalling = false;
};
class AppDelegate : public QStyledItemDelegate {
Q_OBJECT
public:
explicit AppDelegate(QObject *parent = nullptr);
void setModel(QAbstractItemModel *model);
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
bool editorEvent(QEvent *event, QAbstractItemModel *model,
const QStyleOptionViewItem &option, const QModelIndex &index) override;
void startDownloadForAll();
void startDownloadForSelected();
// 复选框相关方法
void setSelectedPackages(const QSet<QString> &selected);
QSet<QString> getSelectedPackages() const;
void clearSelection();
// 获取下载状态信息
const QHash<QString, DownloadInfo>& getDownloads() const;
signals:
void updateDisplay(const QString &packageName);
void updateFinished(bool success); //传递是否完成更新
void ignoreApp(const QString &packageName, const QString &version); // 新增:忽略应用信号
void unignoreApp(const QString &packageName); // 新增:取消忽略应用信号
private slots:
void updateSpinner(); // 新增槽函数
private:
DownloadManager *m_downloadManager;
QHash<QString, DownloadInfo> m_downloads;
QAbstractItemModel *m_model = nullptr;
// 复选框相关成员变量
QSet<QString> m_selectedPackages;
QQueue<QString> m_installQueue;
bool m_isInstalling = false;
QProcess *m_installProcess = nullptr;
QString m_installingPackage;
QElapsedTimer m_spinnerTimer;
QTimer m_spinnerUpdateTimer; // 新增定时器
int m_spinnerAngle = 0; // 新增角度变量
void enqueueInstall(const QString &packageName);
void startNextInstall();
};

View File

@@ -0,0 +1,74 @@
#include "applistmodel.h"
AppListModel::AppListModel(QObject *parent) : QAbstractListModel(parent) {}
int AppListModel::rowCount(const QModelIndex &parent) const
{
if (parent.isValid())
return 0;
return m_data.size();
}
QVariant AppListModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid() || index.row() >= m_data.size())
return QVariant();
const QVariantMap &map = m_data.at(index.row()); // 直接访问 QVariantMap
switch (role) {
case Qt::DisplayRole:
return map.value("name");
case Qt::UserRole + 1: // 包名
return map.value("package");
case Qt::UserRole + 2: // 当前版本
return map.value("current_version");
case Qt::UserRole + 3: // 新版本
return map.value("new_version");
case Qt::UserRole + 4: // 图标路径
return map.value("icon");
case Qt::UserRole + 5: // 文件大小
return map.value("size");
case Qt::UserRole + 6: // 描述
return map.value("description");
case Qt::UserRole + 7: // 下载 URL
return map.value("download_url"); // 返回下载 URL
case Qt::UserRole + 8: // 忽略状态
return map.value("ignored");
default:
return QVariant();
}
}
void AppListModel::setUpdateData(const QJsonArray &updateInfo)
{
beginResetModel();
m_data.clear(); // 清空 QList<QVariantMap>
for (const auto &item : updateInfo) {
QJsonObject obj = item.toObject();
QVariantMap map;
map["package"] = obj["package"].toString();
map["name"] = obj["name"].toString();
map["current_version"] = obj["current_version"].toString();
map["new_version"] = obj["new_version"].toString();
map["icon"] = obj["icon"].toString();
map["size"] = obj["size"].toString();
map["download_url"] = obj["download_url"].toString(); // 确保设置下载 URL
map["ignored"] = obj["ignored"].toBool(); // 设置忽略状态
m_data.append(map); // 添加到 QList<QVariantMap>
qDebug() << "设置到模型的包名:" << map["package"].toString() << "忽略状态:" << map["ignored"].toBool();
qDebug() << "设置到模型的下载 URL:" << map["download_url"].toString(); // 检查设置的数据
}
endResetModel();
}
bool AppListModel::isAppIgnored(const QModelIndex &index) const
{
if (!index.isValid() || index.row() >= m_data.size())
return false;
const QVariantMap &map = m_data.at(index.row());
return map.value("ignored").toBool();
}

View File

@@ -0,0 +1,29 @@
#ifndef APPLISTMODEL_H
#define APPLISTMODEL_H
#include <QAbstractListModel>
#include <QJsonArray>
// 添加 QJsonObject 头文件
#include <QJsonObject>
#include <QDebug>
class AppListModel : public QAbstractListModel
{
Q_OBJECT
public:
explicit AppListModel(QObject *parent = nullptr);
// 重写方法
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
// 设置更新数据
void setUpdateData(const QJsonArray &data);
// 获取忽略状态
bool isAppIgnored(const QModelIndex &index) const;
private:
QList<QVariantMap> m_data; // 修改类型为 QList<QVariantMap>
};
#endif // APPLISTMODEL_H

View File

@@ -0,0 +1,436 @@
#include "aptssupdater.h"
#include <QProcess>
#include <QTextStream>
#include <QRegularExpression>
#include <QFile>
#include <qdebug.h>
aptssUpdater::aptssUpdater(QWidget *parent)
: QWidget(parent)
{
packageName = getUpdateablePackages();
}
QStringList aptssUpdater::getUpdateablePackages()
{
QStringList packageDetails;
QProcess process;
QString command = R"(env LANGUAGE=en_US /usr/bin/apt -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf list --upgradable -o Dir::Etc::sourcelist="/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/aptss.list" -o Dir::Etc::sourceparts="/dev/null" -o APT::Get::List-Cleanup="0" | awk 'NR>1')";
process.start("bash", QStringList() << "-c" << command);
if (!process.waitForFinished(30000)) { // 30秒超时
qWarning() << "Process failed to finish within 30 seconds.";
process.kill();
return packageDetails;
}
QString output = process.readAllStandardOutput();
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
QStringList lines = output.split('\n', Qt::SkipEmptyParts);
#else
QStringList lines = output.split('\n', QString::SkipEmptyParts);
#endif
// 创建临时文件
QTemporaryFile tempFile;
tempFile.setAutoRemove(false);
if (tempFile.open()) {
QTextStream stream(&tempFile);
for (const QString &line : lines) {
QRegularExpression regex(R"(([\w\-\+\.]+)/\S+\s+([^\s]+)\s+\S+\s+\[upgradable from: ([^\]]+)\])");
QRegularExpressionMatch match = regex.match(line);
if (match.hasMatch()) {
QString name = match.captured(1);
QString newVersion = match.captured(2);
QString oldVersion = match.captured(3);
// 检查版本是否相同,相同则跳过
if (newVersion == oldVersion) {
qDebug() << "跳过版本相同的包:" << name << "(" << oldVersion << "" << newVersion << ")";
continue;
}
// 写入内存列表
packageDetails << QString("%1: %2 → %3").arg(name, oldVersion, newVersion);
// 写入临时文件(原始数据)
stream << name << "|" << oldVersion << "|" << newVersion << "\n";
}
}
tempFile.close();
m_tempFilePath = tempFile.fileName();
qDebug()<< "临时文件路径:" << m_tempFilePath;
} else {
qWarning() << "无法创建临时文件";
}
return packageDetails;
}
QStringList aptssUpdater::getPackageSizes()
{
QStringList packageDetails;
// 获取可更新包名列表
QStringList updateablePackages;
for (const QString &pkgInfo : packageName) {
updateablePackages << pkgInfo.section(":", 0, 0).trimmed();
}
foreach (const QString &packageName, updateablePackages) {
QProcess process; // 在循环内部创建新的QProcess实例
// 构建新命令(包含包名参数)
QString command = QString("/usr/bin/apt download %1 --print-uris -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf "
"-o Dir::Etc::sourcelist=\"/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/aptss.list\" "
"-o Dir::Etc::sourceparts=\"/dev/null\"").arg(packageName);
process.start("bash", QStringList() << "-c" << command);
if (!process.waitForFinished(30000)) { // 30秒超时
qWarning() << "获取包信息失败:" << packageName << "(超时)";
process.kill();
continue;
}
QString output = process.readAllStandardOutput();
// 使用正则匹配所有信息
// 调整正则表达式匹配分组
QRegularExpression regex(R"('([^']+)'\s+(\S+)\s+(\d+)\s+SHA512:([^\s]+))"); // 分组1:URL 分组2:文件名 分组3:大小 分组4:SHA512
QRegularExpressionMatch match = regex.match(output);
if (match.hasMatch()) {
QString url = match.captured(1);
QString fileName = match.captured(2);
QString size = match.captured(3);
QString sha512 = match.captured(4);
// 调整字段顺序:包名 | 大小 | URL | SHA512
packageDetails << QString("%1: %2|%3|%4").arg(packageName, size, url, sha512);
}
}
qDebug() << "完整包信息:" << packageDetails;
return packageDetails;
}
QStringList aptssUpdater::getDesktopAppNames()
{
QStringList appNames;
// 获取当前系统语言环境
QString lang = QLocale().name().replace("_", "-");
// 遍历所有可更新包(复用已有的临时文件数据)
QStringList packages = packageName;
foreach (const QString &package, packages) {
QProcess dpkgProcess; // 在循环内部创建新的QProcess实例
QString packageName = package.split(":")[0];
QString finalName = packageName; // 默认使用包名
// 获取包文件列表
dpkgProcess.start("dpkg", QStringList() << "-L" << packageName);
if (!dpkgProcess.waitForFinished(30000)) { // 30秒超时
qWarning() << "获取包文件列表失败:" << packageName << "(超时)";
dpkgProcess.kill();
continue;
}
// 修复:添加这行代码来获取进程输出
QString output = dpkgProcess.readAllStandardOutput();
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
QStringList files = output.split('\n', Qt::SkipEmptyParts);
#else
QStringList files = output.split('\n', QString::SkipEmptyParts);
#endif
// 先检查常规应用目录
QStringList regularDesktopFiles = files.filter("/usr/share/applications/");
QString regularAppName;
if (!regularDesktopFiles.isEmpty()) {
checkDesktopFiles(regularDesktopFiles, regularAppName, lang, packageName);
}
// 如果常规目录没有找到,再检查特殊目录
if (regularAppName.isEmpty()) {
QStringList specialDesktopFiles = files.filter(QRegularExpression(QString("/opt/apps/%1/entries/applications").arg(packageName)));
QString specialAppName;
if (!specialDesktopFiles.isEmpty()) {
checkDesktopFiles(specialDesktopFiles, specialAppName, lang, packageName);
if (!specialAppName.isEmpty()) {
finalName = specialAppName;
}
}
} else {
finalName = regularAppName;
}
// 输出格式为[软件名|包名]
appNames << QString("[%1|%2]").arg(finalName, packageName);
}
qDebug()<< "应用名称列表:" << appNames;
return appNames;
}
bool aptssUpdater::checkDesktopFiles(const QStringList &desktopFiles, QString &appName, const QString &lang, const QString &packageName)
{
QString lastValidName;
QRegularExpression noDisplayRe("^NoDisplay=(true|True)");
QRegularExpression nameRe("^Name\\[?" + lang + "?\\]?=(.*)");
QRegularExpression nameOrigRe("^Name=(.*)");
foreach (const QString &filePath, desktopFiles) {
if (!filePath.endsWith(".desktop")) continue;
QFile file(filePath);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) continue;
bool skip = false;
QString currentName;
QTextStream in(&file);
while (!in.atEnd()) {
QString line = in.readLine().trimmed();
// 检查NoDisplay属性
if (line.startsWith("NoDisplay=")) {
if (noDisplayRe.match(line).hasMatch()) {
skip = true;
break;
}
}
// 优先匹配本地化名称
if (currentName.isEmpty()) {
QRegularExpressionMatch match = nameRe.match(line);
if (match.hasMatch()) {
currentName = match.captured(1);
continue;
}
// 匹配原始名称
match = nameOrigRe.match(line);
if (match.hasMatch()) {
currentName = match.captured(1);
}
}
}
if (!skip && !currentName.isEmpty()) {
lastValidName = currentName;
}
}
// 处理最终的有效名称
if (!lastValidName.isEmpty()) {
appName = lastValidName; // 直接赋值而不是使用<<
return true;
}
// 回退到包名
appName = packageName;
return false;
}
QStringList aptssUpdater::getPackageIcons()
{
QStringList packageIcons;
// 遍历所有可更新包
QStringList packages = packageName;
foreach (const QString &package, packages) {
QProcess dpkgProcess; // 在循环内部创建新的QProcess实例
QString packageName = package.split(":")[0];
QString iconPath = ":/resources/default_icon.png"; // 默认图标
// 获取包文件列表
dpkgProcess.start("dpkg", QStringList() << "-L" << packageName);
if (!dpkgProcess.waitForFinished(30000)) { // 30秒超时
qWarning() << "获取包文件列表失败:" << packageName << "(超时)";
dpkgProcess.kill();
packageIcons << QString("%1: %2").arg(packageName, iconPath);
continue;
}
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
QStringList files = QString(dpkgProcess.readAllStandardOutput()).split('\n', Qt::SkipEmptyParts);
#else
QStringList files = QString(dpkgProcess.readAllStandardOutput()).split('\n', QString::SkipEmptyParts);
#endif
// 查找.desktop文件
QStringList desktopFiles = files.filter(QRegularExpression("/(usr/share|opt/apps)/.*\\.desktop$"));
// 从.desktop文件中提取图标
foreach (const QString &desktopFile, desktopFiles) {
QFile file(desktopFile);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&file);
while (!in.atEnd()) {
QString line = in.readLine().trimmed();
if (line.startsWith("Icon=")) {
QString iconName = line.mid(5).trimmed();
// 处理相对图标名如Icon=vscode
if (!iconName.contains('/')) {
// 查找标准图标路径
QStringList iconPaths = {
QString("/usr/share/pixmaps/%1.png").arg(iconName),
QString("/usr/share/icons/hicolor/48x48/apps/%1.png").arg(iconName),
QString("/usr/share/icons/hicolor/scalable/apps/%1.svg").arg(iconName),
QString("/opt/apps/%1/entries/icons/hicolor/48x48/apps/%2.png").arg(packageName, iconName)
};
foreach (const QString &path, iconPaths) {
if (QFile::exists(path)) {
iconPath = path;
qDebug() << "找到图标文件:" << path;
break;
}
}
} else {
// 已经是绝对路径
if (QFile::exists(iconName)) {
iconPath = iconName;
qDebug() << "使用绝对路径图标文件:" << iconName;
}
}
break;
}
}
file.close();
}
}
// 如果.desktop中没有找到图标尝试直接查找包中的图标文件
if (iconPath == ":/resources/default_icon.png") {
qDebug() << "未在.desktop文件中找到图标尝试直接查找包中的图标文件";
QStringList iconFiles = files.filter(QRegularExpression("/(usr/share/pixmaps|usr/share/icons|opt/apps/.*/entries/icons)/.*\\.(png|svg)$"));
if (!iconFiles.isEmpty()) {
iconPath = iconFiles.first();
qDebug() << "从包中找到图标文件:" << iconPath;
} else {
qDebug() << "未在包中找到图标文件,使用默认图标";
}
}
qDebug() << "包名:" << packageName << "图标路径:" << iconPath;
packageIcons << QString("%1: %2").arg(packageName, iconPath);
}
return packageIcons;
}
QJsonArray aptssUpdater::getUpdateInfoAsJson()
{
QJsonArray jsonArray;
// 获取所有需要的信息
QStringList sizes = getPackageSizes();
QStringList names = getDesktopAppNames();
QStringList icons = getPackageIcons();
// 创建包名到各种信息的映射
QHash<QString, QHash<QString, QString>> packageInfo;
// 解析包版本信息
for (const QString &pkg : packageName) {
QStringList parts = pkg.split(": ");
if (parts.size() >= 2) {
QString packageName = parts[0];
QStringList versions = parts[1].split("");
if (versions.size() == 2) {
packageInfo[packageName]["current_version"] = versions[0];
packageInfo[packageName]["new_version"] = versions[1];
}
}
}
// 解析包详细信息(新增部分)
for (const QString &sizeInfo : sizes) {
QStringList parts = sizeInfo.split(": ");
if (parts.size() == 2) {
QString packageName = parts[0];
QStringList details = parts[1].split("|");
if (details.size() == 3) { // 现在包含大小|URL|SHA512
packageInfo[packageName]["size"] = details[0];
packageInfo[packageName]["url"] = details[1];
packageInfo[packageName]["sha512"] = details[2];
}
}
}
// 解析应用名称信息
for (const QString &nameInfo : names) {
if (nameInfo.startsWith("[") && nameInfo.endsWith("]")) {
QString content = nameInfo.mid(1, nameInfo.length() - 2);
QStringList parts = content.split("|");
if (parts.size() == 2) {
QString displayName = parts[0];
QString packageName = parts[1];
packageInfo[packageName]["display_name"] = displayName;
}
}
}
// 解析图标信息
for (const QString &iconInfo : icons) {
QStringList parts = iconInfo.split(": ");
if (parts.size() == 2) {
QString packageName = parts[0];
packageInfo[packageName]["icon"] = parts[1].trimmed();
}
}
// 构建JSON数组
for (const QString &packageName : packageInfo.keys()) {
QJsonObject jsonObj;
jsonObj["package"] = packageName;
// 使用显示名称(如果有),否则使用包名
if (packageInfo[packageName].contains("display_name")) {
jsonObj["name"] = packageInfo[packageName]["display_name"];
} else {
jsonObj["name"] = packageName;
}
jsonObj["current_version"] = packageInfo[packageName]["current_version"];
jsonObj["new_version"] = packageInfo[packageName]["new_version"];
jsonObj["icon"] = packageInfo[packageName]["icon"];
jsonObj["ignored"] = false; // 默认不忽略
// 如果有大小信息也加入
if (packageInfo[packageName].contains("size")) {
jsonObj["size"] = packageInfo[packageName]["size"];
}
// 在构建JSON对象时添加新字段在jsonObj中添加
if (packageInfo[packageName].contains("url")) {
jsonObj["download_url"] = packageInfo[packageName]["url"];
qDebug() << "生成的下载 URL:" << packageInfo[packageName]["url"]; // 检查生成的 URL
} else {
qWarning() << "未找到下载 URL包名:" << packageName;
jsonObj["download_url"] = ""; // 设置为空字符串以避免崩溃
}
jsonObj["sha512"] = packageInfo[packageName]["sha512"];
jsonArray.append(jsonObj);
}
qDebug()<<jsonArray;
return jsonArray;
}

View File

@@ -0,0 +1,28 @@
#ifndef APTSSUPDATER_H
#define APTSSUPDATER_H
#include <QWidget>
#include <QStringList>
#include <QTemporaryFile>
#include <QLocale>
#include <QJsonObject>
#include <QJsonArray>
class aptssUpdater : public QWidget
{
Q_OBJECT
public:
explicit aptssUpdater(QWidget *parent = nullptr);
QStringList getUpdateablePackages(); // 查询可更新包列表及更新内容
QStringList getPackageSizes(); // 获取每个包的大小
QStringList getDesktopAppNames(); // 获取桌面应用名称列表
QStringList getPackageIcons(); // 获取包图标列表
QJsonArray getUpdateInfoAsJson(); // 获取更新信息的 JSON 格式
QString m_tempFilePath;
signals:
private:
bool checkDesktopFiles(const QStringList &desktopFiles, QString &appName, const QString &lang, const QString &packageName);
QStringList packageName;
};
#endif // APTSSUPDATER_H

View File

@@ -0,0 +1,117 @@
#include "downloadmanager.h"
#include <QFileInfo>
#include <QDir>
#include <QFile>
#include <QRegularExpression>
#include <QDebug>
DownloadManager::DownloadManager(QObject *parent) : QObject(parent)
{
cleanupTempFiles();
}
void DownloadManager::startDownload(const QString &packageName, const QString &url, const QString &outputPath)
{
if (m_processes.contains(packageName)) {
qWarning() << packageName << " is already downloading.";
return;
}
QString metalinkUrl = url + ".metalink";
QFileInfo fileInfo(outputPath);
QStringList arguments = {
"--enable-rpc=false",
"--console-log-level=warn",
"--summary-interval=1",
"--allow-overwrite=true",
"--dir=" + fileInfo.absolutePath(),
"--out=" + fileInfo.fileName(),
metalinkUrl
};
QProcess *process = new QProcess(this);
m_processes.insert(packageName, process);
// 新增:准备日志文件
QString logPath = QString("/tmp/%1_download.log").arg(packageName);
QFile *logFile = new QFile(logPath, process);
if (logFile->open(QIODevice::Append | QIODevice::Text)) {
// 设置权限为777
QFile::setPermissions(logPath, QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner |
QFile::ReadGroup | QFile::WriteGroup | QFile::ExeGroup |
QFile::ReadOther | QFile::WriteOther | QFile::ExeOther);
connect(process, &QProcess::readyReadStandardOutput, this, [this, packageName, process, logFile]() {
while (process->canReadLine()) {
QString line = QString::fromUtf8(process->readLine()).trimmed();
// 写入日志
logFile->write(line.toUtf8() + '\n');
logFile->flush();
QRegularExpression regex(R"(\((\d+)%\))");
QRegularExpressionMatch match = regex.match(line);
if (match.hasMatch()) {
int progress = match.captured(1).toInt();
emit downloadProgress(packageName, progress);
}
}
});
connect(process, &QProcess::readyReadStandardError, this, [process, logFile]() {
QByteArray err = process->readAllStandardError();
logFile->write(err);
logFile->flush();
});
}
connect(process, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
this, [this, packageName, outputPath, logFile](int exitCode, QProcess::ExitStatus status) {
bool success = (exitCode == 0 && status == QProcess::NormalExit);
if (!success) {
qWarning() << "Download failed for" << packageName << "exit code:" << exitCode;
}
removeAria2Files(outputPath); // 清理残留 .aria2
emit downloadFinished(packageName, success);
if (logFile) logFile->close();
QProcess *proc = m_processes.take(packageName);
if (proc) proc->deleteLater();
});
process->start("aria2c", arguments);
}
void DownloadManager::cancelDownload(const QString &packageName)
{
if (!m_processes.contains(packageName)) return;
QProcess *process = m_processes.take(packageName);
if (process) {
process->kill(); // 立即终止
process->waitForFinished(3000); // 最多等待3秒
process->deleteLater();
}
emit downloadFinished(packageName, false); // 显式通知取消
}
void DownloadManager::removeAria2Files(const QString &filePath)
{
QString ariaFile = filePath + ".aria2";
QFile::remove(ariaFile);
}
bool DownloadManager::isDownloading(const QString &packageName) const
{
return m_processes.contains(packageName);
}
void DownloadManager::cleanupTempFiles()
{
QDir tempDir(QDir::tempPath());
QStringList leftovers = tempDir.entryList(QStringList() << "*.aria2", QDir::Files);
for (const QString &f : leftovers) {
tempDir.remove(f);
}
}

View File

@@ -0,0 +1,28 @@
#ifndef DOWNLOADMANAGER_H
#define DOWNLOADMANAGER_H
#include <QObject>
#include <QMap>
#include <QProcess>
class DownloadManager : public QObject
{
Q_OBJECT
public:
explicit DownloadManager(QObject *parent = nullptr);
void startDownload(const QString &packageName, const QString &url, const QString &outputPath);
void cancelDownload(const QString &packageName);
bool isDownloading(const QString &packageName) const;
signals:
void downloadProgress(const QString &packageName, int progress);
void downloadFinished(const QString &packageName, bool success);
private:
void cleanupTempFiles();
void removeAria2Files(const QString &filePath);
QMap<QString, QProcess*> m_processes;
};
#endif // DOWNLOADMANAGER_H

View File

@@ -0,0 +1,9 @@
<RCC>
<qresource prefix="/">
<file>../resources/down_arrow.svg</file>
<file>../resources/default_icon.svg</file>
<file>../resources/spark-update-tool.svg</file>
<file>../resources/128*128/spark-update-tool.png</file>
<file>../resources/default_icon.png</file>
</qresource>
</RCC>

View File

@@ -0,0 +1,148 @@
#include "ignoreconfig.h"
#include <QStandardPaths>
#include <QDir>
#include <QFile>
#include <QTextStream>
#include <QDebug>
#include <unistd.h> // for geteuid
IgnoreConfig::IgnoreConfig(QObject *parent)
: QObject(parent)
{
// 设置配置文件路径
QString configDir;
// // 检查是否以 root 权限运行
// if (geteuid() == 0) {
// // 首先检查是否有 SUDO_USER_HOME 环境变量(表示是通过 pkexec 提权的普通用户)
// QByteArray sudoUserHomeEnv = qgetenv("SUDO_USER_HOME");
// if (!sudoUserHomeEnv.isEmpty()) {
// // 通过 pkexec 提权的普通用户,使用原用户的配置目录
// QString sudoUserHomePath = QString::fromLocal8Bit(sudoUserHomeEnv);
// configDir = sudoUserHomePath + "/.config";
// } else {
// // 获取实际的 HOME 目录来判断是真正的 root 用户还是其他方式提权的用户
// QByteArray homeEnv = qgetenv("HOME");
// QString homePath = QString::fromLocal8Bit(homeEnv);
// if (homePath == "/root") {
// // 真正的 root 用户,使用 /root/.config
// configDir = "/root/.config";
// } else {
// // 其他方式提权的用户,使用 HOME 目录下的配置
// configDir = homePath + "/.config";
// }
// }
// } else {
// // 普通用户,使用标准配置目录
// configDir = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);
// }
configDir = "/etc/";
QDir dir(configDir);
if (!dir.exists()) {
dir.mkpath(".");
}
m_configFilePath = dir.filePath("spark-store/ignored_apps.conf");
// 确保目录存在
QFileInfo fileInfo(m_configFilePath);
QDir configDirPath = fileInfo.dir();
if (!configDirPath.exists()) {
configDirPath.mkpath(".");
}
// 加载现有配置
loadConfig();
// 输出忽略列表到 qDebug
printIgnoredApps();
}
void IgnoreConfig::addIgnoredApp(const QString &packageName, const QString &version)
{
m_ignoredApps.insert(qMakePair(packageName, version));
saveConfig();
}
void IgnoreConfig::removeIgnoredApp(const QString &packageName)
{
// 移除所有该包名的版本
auto it = m_ignoredApps.begin();
while (it != m_ignoredApps.end()) {
if (it->first == packageName) {
it = m_ignoredApps.erase(it);
} else {
++it;
}
}
saveConfig();
}
bool IgnoreConfig::isAppIgnored(const QString &packageName, const QString &version) const
{
return m_ignoredApps.contains(qMakePair(packageName, version));
}
QSet<QPair<QString, QString>> IgnoreConfig::getIgnoredApps() const
{
return m_ignoredApps;
}
void IgnoreConfig::printIgnoredApps() const
{
qDebug() << "=== 忽略的应用列表 ===";
qDebug() << "配置文件路径:" << m_configFilePath;
if (m_ignoredApps.isEmpty()) {
qDebug() << "没有忽略的应用";
} else {
for (const auto &app : m_ignoredApps) {
qDebug() << "忽略的应用:" << app.first << "版本:" << app.second;
}
}
qDebug() << "====================";
}
bool IgnoreConfig::saveConfig()
{
QFile file(m_configFilePath);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
qDebug() << "无法打开配置文件进行写入:" << m_configFilePath;
return false;
}
QTextStream out(&file);
for (const auto &app : m_ignoredApps) {
out << app.first << "|" << app.second << "\n";
}
file.close();
return true;
}
bool IgnoreConfig::loadConfig()
{
QFile file(m_configFilePath);
if (!file.exists()) {
// 配置文件不存在这是正常的返回true表示没有错误
return true;
}
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug() << "无法打开配置文件进行读取:" << m_configFilePath;
return false;
}
m_ignoredApps.clear();
QTextStream in(&file);
while (!in.atEnd()) {
QString line = in.readLine().trimmed();
if (!line.isEmpty()) {
QStringList parts = line.split('|');
if (parts.size() == 2) {
m_ignoredApps.insert(qMakePair(parts[0], parts[1]));
}
}
}
file.close();
return true;
}

View File

@@ -0,0 +1,42 @@
#ifndef IGNORECONFIG_H
#define IGNORECONFIG_H
#include <QObject>
#include <QSet>
#include <QString>
#include <QPair>
class IgnoreConfig : public QObject
{
Q_OBJECT
public:
explicit IgnoreConfig(QObject *parent = nullptr);
// 添加忽略的应用(包名和版本号)
void addIgnoredApp(const QString &packageName, const QString &version);
// 移除忽略的应用
void removeIgnoredApp(const QString &packageName);
// 检查应用是否被忽略
bool isAppIgnored(const QString &packageName, const QString &version) const;
// 获取所有被忽略的应用
QSet<QPair<QString, QString>> getIgnoredApps() const;
// 输出所有被忽略的应用到 qDebug
void printIgnoredApps() const;
// 保存配置到文件
bool saveConfig();
// 从文件加载配置
bool loadConfig();
private:
QSet<QPair<QString, QString>> m_ignoredApps;
QString m_configFilePath;
};
#endif // IGNORECONFIG_H

View File

@@ -0,0 +1,88 @@
#include "mainwindow.h"
#include <QApplication>
#include <QProcess>
#include <QMessageBox>
#include <unistd.h> // for geteuid
#include <cstdlib> // for getenv
#include <QDebug> // For debugging output
bool isRoot() {
return geteuid() == 0;
}
bool elevateToRoot() {
QString program = QCoreApplication::applicationFilePath();
qDebug() << "Current application path:" << program;
QByteArray display = qgetenv("DISPLAY");
QByteArray xauthority = qgetenv("XAUTHORITY");
QByteArray home = qgetenv("HOME"); // 获取原始用户的 HOME 目境变量
QStringList args;
args << "env"
<< "DISPLAY=" + display
<< "XAUTHORITY=" + xauthority
<< "SUDO_USER_HOME=" + home // 传递原始用户的 HOME 路径
<< program;
QProcess process;
process.setProgram("pkexec");
process.setArguments(args);
qDebug() << "Attempting to elevate using pkexec with arguments:" << args;
process.start();
if (!process.waitForStarted(5000)) {
qDebug() << "Failed to start pkexec.";
return false;
}
// 阻塞等待提权进程退出(比如主程序窗口关闭)
if (!process.waitForFinished(-1)) { // 等待直到新进程退出
qDebug() << "pkexec process waitForFinished failed.";
return false;
}
int exitCode = process.exitCode();
QProcess::ExitStatus exitStatus = process.exitStatus();
qDebug() << "pkexec exit code:" << exitCode;
qDebug() << "pkexec exit status:" << exitStatus;
qDebug() << "pkexec stderr:" << process.readAllStandardError();
return (exitStatus == QProcess::NormalExit && exitCode == 0);
}
int main(int argc, char *argv[])
{
// 必须在 QGuiApplication 实例创建之前调用
// QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
QApplication a(argc, argv);
a.setWindowIcon(QIcon(":/resources/128*128/spark-update-tool.png"));
if (!isRoot()) {
qDebug() << "Not running as root. Attempting to elevate...";
if (!elevateToRoot()) {
qDebug() << "Elevation failed or pkexec command was not executed successfully.";
QMessageBox::critical(nullptr,
"权限不足",
"提权失败!\n\n您的系统可能不支持 `pkexec` 或 `polkit` 配置不正确,"
"或者您取消了授权。\n\n请尝试使用 `sudo` 命令运行此程序:"
"\n\n在终端中输入:\n`sudo " + QCoreApplication::applicationName() + "`");
return 0; // 提权失败,退出程序
} else {
// 如果 elevateToRoot 返回 true说明 pkexec 命令本身执行成功
// 但这并不意味着原始程序以 root 权限启动了
// 因为 elevateToRoot 启动的是一个新的进程,当前进程应该退出
// 否则会并行运行两个程序实例
qDebug() << "pkexec command executed successfully (new process likely started). Exiting current process.";
return 0; // 当前非root进程退出
}
} else {
qDebug() << "Running as root.";
}
MainWindow w;
w.show();
return a.exec();
}

View File

@@ -0,0 +1,445 @@
#include "mainwindow.h"
#include "./ui_mainwindow.h"
#include <QProcess>
#include <QMessageBox>
#include <QProgressDialog>
#include <QtConcurrent> // 新增
#include <QFutureWatcher> // 新增
#include <QIcon>
#include <qicon.h>
#include <unistd.h> // for geteuid
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
, m_model(new AppListModel(this))
, m_delegate(new AppDelegate(this))
, m_ignoreConfig(new IgnoreConfig(this))
{
QIcon icon(":/resources/128*128/spark-update-tool.png");
setWindowIcon(icon);
QProgressDialog *progressDialog = new QProgressDialog("正在与服务器通信,获取更新信息中...", QString(), 0, 0, this);
progressDialog->setWindowModality(Qt::ApplicationModal);
progressDialog->setCancelButton(nullptr);
progressDialog->setWindowTitle("请稍候");
progressDialog->setMinimumDuration(0);
progressDialog->setWindowFlags(progressDialog->windowFlags() & ~Qt::WindowCloseButtonHint); // 禁用关闭按钮
progressDialog->show();
//异步执行runAptssUpgrade
QFutureWatcher<void> *watcher = new QFutureWatcher<void>(this);
connect(watcher, &QFutureWatcher<void>::finished, this, [=]() {
progressDialog->close();
progressDialog->deleteLater();
watcher->deleteLater();
ui->setupUi(this);
QIcon icon(":/resources/128*128/spark-update-tool.png");
setWindowIcon(icon);
// 创建 QListView 并设置父控件为 ui->appWidget
listView = new QListView(ui->appWidget);
listView->setModel(m_model);
listView->setItemDelegate(m_delegate);
// 新增:确保 delegate 拥有 model 指针
m_delegate->setModel(m_model);
// 设置 QListView 填充 ui->appWidget
QVBoxLayout *layout = new QVBoxLayout(ui->appWidget);
layout->addWidget(listView);
layout->setContentsMargins(0, 0, 0, 0);
connect(m_delegate, &AppDelegate::updateDisplay, this, [=](const QString &packageName) {
for (int i = 0; i < m_model->rowCount(); ++i) {
QModelIndex index = m_model->index(i);
if (index.data(Qt::UserRole + 1).toString() == packageName) {
m_model->dataChanged(index, index); // 刷新该行
break;
}
}
});
// 连接应用委托的信号
connect(m_delegate, &AppDelegate::ignoreApp, this, &MainWindow::onIgnoreApp);
connect(m_delegate, &AppDelegate::unignoreApp, this, &MainWindow::onUnignoreApp);
// 新增:点击“更新全部”按钮批量下载
connect(ui->updatePushButton, &QPushButton::clicked, this, [=](){
qDebug()<<"更新按钮被点击";
if (m_delegate->getSelectedPackages().isEmpty()) {
// 没有选中任何应用,更新全部
m_delegate->startDownloadForAll();
} else {
// 有选中应用,更新选中
m_delegate->startDownloadForSelected();
m_delegate->clearSelection();
updateButtonText();
}
});
// 新增:监听选择变化
connect(m_delegate, &AppDelegate::updateDisplay, this, &MainWindow::handleSelectionChanged);
checkUpdates();
// 新增:监听搜索框文本变化
connect(ui->searchPlainTextEdit, &QPlainTextEdit::textChanged, this, [=]() {
QString keyword = ui->searchPlainTextEdit->toPlainText();
filterAppsByKeyword(keyword);
});
initStyle();
// 确保搜索框内容为空placeholder 能显示
ui->searchPlainTextEdit->clear();
});
// 启动异步任务
watcher->setFuture(QtConcurrent::run([this](){
runAptssUpgrade();
}));
QScreen *screen = QGuiApplication::screenAt(QCursor::pos());
if (!screen) screen = QGuiApplication::primaryScreen();
QRect screenGeometry = screen->geometry();
int x = screenGeometry.x() + (screenGeometry.width() - this->width()) / 2;
int y = screenGeometry.y() + (screenGeometry.height() - this->height()) / 2;
this->move(x, y);
}
//初始化控件样式
void MainWindow::initStyle()
{
//设置窗口标题
this->setWindowTitle("软件更新中心");
//查询框样式
ui->searchPlainTextEdit->setStyleSheet(R"(
QPlainTextEdit {
background-color: #FFFFFF;
border: 1px solid #E5E7EB;
border-radius: 4px;
padding-top: 8px;
padding-bottom: 8px;
font-size: 9px;
line-height: 1.4;
color: #9CA3AF;
}
QPlainTextEdit[placeholderText]:empty {
color: #9CA3AF;
}
)");
ui->searchPlainTextEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui->searchPlainTextEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
//筛选框样式
ui->FilterComboBox->setStyleSheet(R"(
QComboBox {
background-color: #FFFFFF;
border: 1px solid #E5E7EB;
border-radius: 4px;
color: #4B5563;
padding: 4px 8px;
}
QComboBox::drop-down {
border: none;
width: 20px;
}
QComboBox::down-arrow {
image: url(:/resources/down_arrow.svg);
width: 12px;
height: 16px;
}
QComboBox QAbstractItemView {
background-color: #FFFFFF;
border: 1px solid #E5E7EB;
color: #4B5563;
selection-background-color: #F3F4F6;
selection-color: #111827;
}
)");
//更新软件按钮样式
ui->updatePushButton->setStyleSheet(R"(
QPushButton {
background-color: #2563EB;
color: #FFFFFF;
border: none;
border-radius: 4px;
font-size: 14px;
padding: 6px 12px;
text-align: center;
}
QPushButton:hover {
background-color: #1D4ED8; /* 深一点的 hover 效果,可选 */
}
QPushButton:pressed {
background-color: #1E40AF; /* 按下效果,可选 */
}
QPushButton:disabled {
background-color: #A5B4FC;
color: #F9FAFB;
}
)");
//设置背景填充颜色
ui->backgroundWidget->setStyleSheet(R"(
QWidget {
background-color: #FFFFFF;
border-radius: 12px;
}
)");
//设置主背景颜色
this->setStyleSheet("background-color: #F8FAFC;");
// 添加滚动条样式
this->setStyleSheet(R"(
QScrollBar:vertical {
background: #F3F4F6;
width: 8px;
margin: 0px;
}
QScrollBar::handle:vertical {
background: #D1D5DB;
border-radius: 4px;
min-height: 30px;
}
QScrollBar::handle:vertical:hover {
background: #9CA3AF;
}
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical {
background: none;
height: 0px;
}
QScrollBar:horizontal {
background: #F3F4F6;
height: 8px;
margin: 0px;
}
QScrollBar::handle:horizontal {
background: #D1D5DB;
border-radius: 4px;
min-width: 30px;
}
QScrollBar::handle:horizontal:hover {
background: #9CA3AF;
}
)");
}
void MainWindow::checkUpdates()
{
aptssUpdater updater;
QJsonArray updateInfo = updater.getUpdateInfoAsJson();
// 分离正常应用和忽略应用
QJsonArray normalApps;
QJsonArray ignoredApps;
for (const auto &item : updateInfo) {
QJsonObject obj = item.toObject();
QString packageName = obj["package"].toString();
QString currentVersion = obj["current_version"].toString();
// 检查应用是否被忽略
if (m_ignoreConfig->isAppIgnored(packageName, currentVersion)) {
// 标记为忽略状态
obj["ignored"] = true;
ignoredApps.append(obj);
} else {
obj["ignored"] = false;
normalApps.append(obj);
}
}
// 合并数组:正常应用在前,忽略应用在后
QJsonArray finalApps;
for (const auto &item : normalApps) {
finalApps.append(item);
}
for (const auto &item : ignoredApps) {
finalApps.append(item);
}
m_allApps = finalApps; // 保存所有应用数据
m_model->setUpdateData(finalApps);
for (const auto &item : finalApps) {
QJsonObject obj = item.toObject();
qDebug() << "模型设置的包名:" << obj["package"].toString() << "忽略状态:" << obj["ignored"].toBool();
qDebug() << "模型设置的下载 URL:" << obj["download_url"].toString(); // 检查模型数据
}
}
// 新增:根据关键字过滤应用
void MainWindow::filterAppsByKeyword(const QString &keyword)
{
if (keyword.trimmed().isEmpty()) {
m_model->setUpdateData(m_allApps);
return;
}
// 分离正常应用和忽略应用
QJsonArray normalApps;
QJsonArray ignoredApps;
for (const auto &item : m_allApps) {
QJsonObject obj = item.toObject();
// 可根据需要匹配更多字段
QString name = obj.value("name").toString();
QString package = obj.value("package").toString();
if (name.contains(keyword, Qt::CaseInsensitive) ||
package.contains(keyword, Qt::CaseInsensitive)) {
// 检查是否为忽略状态
if (obj.value("ignored").toBool()) {
ignoredApps.append(item);
} else {
normalApps.append(item);
}
}
}
// 合并数组:正常应用在前,忽略应用在后
QJsonArray filtered;
for (const auto &item : normalApps) {
filtered.append(item);
}
for (const auto &item : ignoredApps) {
filtered.append(item);
}
m_model->setUpdateData(filtered);
}
void MainWindow::runAptssUpgrade()
{
QProcess process;
// 检查是否已经是root用户如果是则直接执行命令否则使用sudo
if (geteuid() == 0) {
// root用户直接执行
process.start("aptss", QStringList() << "ssupdate");
} else {
// 非root用户使用sudo
process.start("sudo", QStringList() << "aptss" << "ssupdate");
}
if (!process.waitForStarted(5000)) {
QMessageBox::warning(this, "升级失败", "无法启动 aptss ssupdate");
return;
}
process.write("n\n");
process.closeWriteChannel();
// 设置超时时间,避免无限等待
if (!process.waitForFinished(30000)) { // 30秒超时
qDebug() << "aptss ssupdate 执行超时";
process.kill(); // 强制终止进程
return;
}
if (process.exitCode() != 0) {
QMessageBox::warning(this, "升级失败", "执行 aptss ssupdate 失败,请检查系统环境或稍后再试。");
}
}
void MainWindow::closeEvent(QCloseEvent *event)
{
// 检查是否正在进行更新
bool isUpdating = false;
// 通过AppDelegate检查是否有正在下载或安装的应用
const QHash<QString, DownloadInfo>& downloads = m_delegate->getDownloads();
for (auto it = downloads.constBegin(); it != downloads.constEnd(); ++it) {
if (it.value().isDownloading || it.value().isInstalling) {
isUpdating = true;
break;
}
}
// 如果正在更新,才显示确认对话框
if (isUpdating) {
QMessageBox::StandardButton reply = QMessageBox::question(this, "确认关闭", "正在更新,是否确认关闭窗口?", QMessageBox::Yes | QMessageBox::No);
if (reply == QMessageBox::Yes) {
event->accept();
} else {
event->ignore();
}
} else {
// 如果没有更新,直接关闭窗口
event->accept();
}
}
void MainWindow::handleUpdateFinished(bool success)
{
if (success) {
// 更新成功时的处理逻辑
QMessageBox::information(this, "更新完成", "软件更新已成功完成!");
} else {
// 更新失败时的处理逻辑
QMessageBox::warning(this, "更新失败", "软件更新过程中出现错误,请稍后再试。");
}
// 刷新应用列表
checkUpdates();
}
MainWindow::~MainWindow()
{
delete ui;
}
// 新增:更新按钮文本
void MainWindow::updateButtonText() {
int selectedCount = m_delegate->getSelectedPackages().size();
if (selectedCount > 0) {
ui->updatePushButton->setText(QString("更新选中(%1)").arg(selectedCount));
} else {
ui->updatePushButton->setText("更新全部");
}
}
// 新增:处理选择变化
void MainWindow::handleSelectionChanged() {
updateButtonText();
}
// 新增:处理忽略应用的槽函数
void MainWindow::onIgnoreApp(const QString &packageName, const QString &version) {
// 将应用添加到忽略配置中
m_ignoreConfig->addIgnoredApp(packageName, version);
// 更新模型中应用的状态,而不是移除
QJsonArray updatedApps;
for (const auto &item : m_allApps) {
QJsonObject obj = item.toObject();
if (obj["package"].toString() == packageName) {
obj["ignored"] = true; // 标记为忽略状态
}
updatedApps.append(obj);
}
m_allApps = updatedApps;
// 重新排序:正常应用在前,忽略应用在后
checkUpdates();
}
// 新增:处理取消忽略应用的槽函数
void MainWindow::onUnignoreApp(const QString &packageName) {
// 从忽略配置中移除应用
m_ignoreConfig->removeIgnoredApp(packageName);
// 更新模型中应用的状态
QJsonArray updatedApps;
for (const auto &item : m_allApps) {
QJsonObject obj = item.toObject();
if (obj["package"].toString() == packageName) {
obj["ignored"] = false; // 标记为非忽略状态
}
updatedApps.append(obj);
}
m_allApps = updatedApps;
// 重新排序:正常应用在前,忽略应用在后
checkUpdates();
}

View File

@@ -0,0 +1,48 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "aptssupdater.h"
#include "applistmodel.h"
#include "appdelegate.h"
#include "ignoreconfig.h"
#include <QListView>
#include <QJsonArray> // 添加头文件
#include <QScreen>
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
protected:
void closeEvent(QCloseEvent *event) override;
private:
Ui::MainWindow *ui;
void checkUpdates();
void initStyle();
void runAptssUpgrade();
AppListModel *m_model;
AppDelegate *m_delegate;
IgnoreConfig *m_ignoreConfig; // 新增:忽略配置管理
QListView *listView; // 声明 QListView 指针
QJsonArray m_allApps; // 新增:保存所有应用数据
void filterAppsByKeyword(const QString &keyword); // 新增:搜索过滤函数声明
void updateButtonText(); // 新增:更新按钮文本
private slots:
void handleUpdateFinished(bool success); // 新增:处理更新完成的槽函数
void handleSelectionChanged(); // 新增:处理选择变化的槽函数
void onIgnoreApp(const QString &packageName, const QString &version); // 新增:处理忽略应用的槽函数
void onUnignoreApp(const QString &packageName); // 新增:处理取消忽略应用
};
#endif // MAINWINDOW_H

View File

@@ -0,0 +1,256 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QWidget" name="titleWidget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<family>Noto Sans Vai</family>
<pointsize>22</pointsize>
</font>
</property>
<property name="text">
<string>软件更新中心</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>1245</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QWidget" name="backgroundWidget" native="true">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="widget_4" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="widget_3" native="true">
<property name="minimumSize">
<size>
<width>320</width>
<height>38</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>320</width>
<height>38</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QPlainTextEdit" name="searchPlainTextEdit">
<property name="minimumSize">
<size>
<width>200</width>
<height>38</height>
</size>
</property>
<property name="plainText">
<string/>
</property>
<property name="tabStopDistance">
<double>81.000000000000000</double>
</property>
<property name="placeholderText">
<string>搜索软件...</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QWidget" name="widget" native="true">
<property name="minimumSize">
<size>
<width>214</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>214</width>
<height>40</height>
</size>
</property>
<widget class="QComboBox" name="FilterComboBox">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>102</width>
<height>38</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>102</width>
<height>38</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>102</width>
<height>38</height>
</size>
</property>
<property name="font">
<font/>
</property>
<property name="layoutDirection">
<enum>Qt::LayoutDirection::LeftToRight</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::SizeAdjustPolicy::AdjustToContentsOnFirstShow</enum>
</property>
<item>
<property name="text">
<string>按名称</string>
</property>
</item>
</widget>
<widget class="QPushButton" name="updatePushButton">
<property name="geometry">
<rect>
<x>118</x>
<y>0</y>
<width>96</width>
<height>40</height>
</rect>
</property>
<property name="text">
<string>更新全部</string>
</property>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="appWidget" native="true">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1440</width>
<height>23</height>
</rect>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

30
src/README.md Normal file
View File

@@ -0,0 +1,30 @@
# 有关 src 下的一些改进预览
> 1. 主体结构预览
> 2. 主体结构中的内容单独说明
> 并使用所用语言进行非侵入式独立描述,而不是在代码中填充说明与注释。
>
> 这是简单的预览说明规范
- widget/base 结构
```
src/widgets/base/
├── basewidgetopacity.cpp
└── basewidgetopacity.h
0 directories, 2 files
```
- 来源于 widget/base 的说明
```c++
// BaseWidgetOpacity 是一个提供了淡出/淡入动画的基础类:
// 1. closeEvent 窗口关闭时进行淡出动画
// 此前在 MainWindow 中实现的淡出动画将由 BaseWidgetOpacity 来实现。
// 此前 MainWindow 原有的 DBlurEffectWidget 父类将移交至 BaseWidgetOpacity 继承。
// 注意:
// 如果 MainWindow 在未来重写 closeEvent 事件时将可能丢失 BaseWidgetOpacity 中的淡出效果
```

246
src/application.cpp Normal file
View File

@@ -0,0 +1,246 @@
#include "application.h"
#include "mainwindow-dtk.h"
#include "utils/utils.h"
#include <QDir>
#include <QJsonArray>
#include <DPlatformWindowHandle>
#include <DLog>
#include <DGuiApplicationHelper>
#include <DAboutDialog>
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
#include <DFeatureDisplayDialog>
#endif
#include <QSettings>
#include <QStandardPaths>
#include <QTranslator>
DCORE_USE_NAMESPACE
Application::Application(int &argc, char **argv)
: DApplication(argc, argv)
{
// Wayland 环境下使用,防止子控件 Native 化
if (!DPlatformWindowHandle::pluginVersion().isEmpty()) {
setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true);
}
setQuitOnLastWindowClosed(false); // 启用托盘图标时,关闭窗口程序仍然运行
loadTranslator(); // 载入翻译
setOrganizationName("spark-union");
setApplicationName("spark-store"); // 影响 ~/.config/spark-union ~/.local/share/spark-union 下文件夹名称
setApplicationDisplayName(QObject::tr("Spark Store")); // 设置窗口显示标题 (Wayland 下会显示 Qt 原生标题栏)
setProductName(QObject::tr("Spark Store"));
setProductIcon(QIcon(":/icon/sparky.png"));
setApplicationHomePage("https://gitee.com/spark-store-project");
setApplicationDescription(
QObject::tr(
"<span style=' font-size:10pt;font-weight:60;'>An appstore powered by community</span><br/>"
"<span style=' font-size:10pt;font-weight:60;'>Sparky is our mascot, designed by <a href='https://tai3.cn/'>Tyson Tan</a></span><br/>"));
setApplicationLicense(" <a href='https://gitee.com/spark-store-project/spark-store/blob/Flamescion/LICENSE'>GPL V3</a> ");
// 检查 ~/.config/spark-union/spark-store 文件夹是否存在
checkAppConfigLocation();
// 初始化日志模块 (默认日志位置 ~/.cache/spark-union/spark-store)
DLogManager::registerConsoleAppender();
DLogManager::registerFileAppender();
// 获取版本特性信息
m_featuresJsonObj = Utils::parseFeatureJsonFile();
}
void Application::handleAboutAction()
{
if (aboutDialog() && aboutDialog()->parent() == m_mainWindow) {
DApplication::handleAboutAction();
return;
}
initAboutDialog();
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
initFeatureDisplayDialog(); // 初始化版本特性对话框
#endif
DApplication::handleAboutAction();
}
bool Application::notify(QObject *receiver, QEvent *event)
{
if (m_mainWindow) {
m_mainWindow->notify(receiver, event);
}
return DApplication::notify(receiver, event);
}
void Application::checkAppConfigLocation()
{
QDir dir(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation));
if (!dir.exists()) {
qWarning() << "AppConfigLocation not existed, creating...";
dir.mkpath(dir.absolutePath());
}
}
void Application::setBuildDateTime(const QString &buildDateTime)
{
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
// 确保 UUID 存在
if (!config.contains("info/uuid")) {
QUuid uuid = QUuid::createUuid();
config.setValue("info/uuid", uuid.toString());
}
QString currentUuid = config.value("info/uuid").toString();
if (config.value("build/version").toString() != QString(APP_VERSION)) {
qDebug() << "Spark Store has been updated!";
config.setValue("build/version", QString(APP_VERSION));
config.setValue("build/branch", QString(APP_BRANCH));
config.setValue("build/time", buildDateTime);
// 恢复原有的 UUID
config.setValue("info/uuid", currentUuid);
config.sync();
}
setApplicationVersion(DApplication::buildVersion(QString(APP_VERSION) + "-" + QString(APP_BRANCH) + "-" + buildDateTime));
}
void Application::setMainWindow(MainWindow *window)
{
m_mainWindow = window;
if (aboutDialog() == nullptr || aboutDialog()->parent() != m_mainWindow)
{
initAboutDialog();
}
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
if (featureDisplayDialog() == nullptr || featureDisplayDialog()->parent() != m_mainWindow)
{
initFeatureDisplayDialog(); // 初始化版本特性对话框
}
#endif
}
MainWindow *Application::mainWindow()
{
return m_mainWindow;
}
void Application::initAboutDialog()
{
if (m_mainWindow == nullptr)
{
return;
}
if (aboutDialog())
{
aboutDialog()->deleteLater();
setAboutDialog(nullptr);
}
// 自定义 DAboutDialog
DAboutDialog *dialog = new DAboutDialog(m_mainWindow);
dialog->setProductName(productName());
dialog->setProductIcon(productIcon());
dialog->setVersion(translate("DAboutDialog", "Version: %1").arg(applicationVersion()));
if (runtimeDtkVersion() >= DTK_VERSION_CHECK(5, 6, 4, 0)) {
dialog->setVersion(applicationVersion());
}
// 根据 shenmo 要求,不显示组织 Logo
// dialog->setCompanyLogo(QPixmap(":/icon/Logo-Spark.png"));
dialog->setCompanyLogo(QPixmap());
dialog->setWebsiteName(QObject::tr("Spark Project"));
dialog->setWebsiteLink(applicationHomePage());
dialog->setDescription(applicationDescription());
dialog->setLicense(translate("DAboutDialog", "%1 is released under %2").arg(productName()).arg(applicationLicense()));
setAboutDialog(dialog);
connect(aboutDialog(), &DAboutDialog::destroyed, this, [=]() {
setAboutDialog(nullptr);
});
dialog->hide();
}
void Application::loadTranslator()
{
DApplication::loadTranslator();
if (QLocale::system().language() == QLocale::Chinese) {
QTranslator *webengineTranslator = new QTranslator(this);
bool loaded = webengineTranslator->load(QLocale(QLocale::Chinese), "qtwebengine", "_", ":/translations");
if (!loaded) {
qWarning() << "Failed to load webengine translator";
}
installTranslator(webengineTranslator);
}
}
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
/**
* @brief Application::initFeatureDisplayDialog 初始化版本特性对话框
*/
void Application::initFeatureDisplayDialog()
{
if (featureDisplayDialog())
{
featureDisplayDialog()->deleteLater();
setFeatureDisplayDialog(nullptr);
}
// 自定义 DFeatureDisplayDialog
DFeatureDisplayDialog *dialog = new DFeatureDisplayDialog(m_mainWindow);
// 标题
dialog->setTitle(m_featuresJsonObj.value("title").toString());
// NOTE: json 文件中支持多语言;考虑到维护性,不放入翻译文件处理
if (m_featuresJsonObj.contains(QString("title[%1]").arg(QLocale::system().name())))
{
dialog->setTitle(m_featuresJsonObj.value(QString("title[%1]").arg(QLocale::system().name())).toString());
}
// 特性项
QList<DFeatureItem *> items;
foreach (const QJsonValue &jsonValue, m_featuresJsonObj.value("items").toArray())
{
QJsonObject jsonObj = jsonValue.toObject();
QString name = jsonObj.value("name").toString();
if (jsonObj.contains(QString("name[%1]").arg(QLocale::system().name())))
{
name = jsonObj.value(QString("name[%1]").arg(QLocale::system().name())).toString();
}
QString description = jsonObj.value("description").toString();
if (jsonObj.contains(QString("description[%1]").arg(QLocale::system().name())))
{
description = jsonObj.value(QString("description[%1]").arg(QLocale::system().name())).toString();
}
DFeatureItem *item = new DFeatureItem(QIcon::fromTheme("spark-store"), name, description, dialog);
items.append(item);
}
dialog->addItems(items); // NOTE: 也支持 addItem 依次添加单个 item
// “了解更多”链接按钮
dialog->setLinkUrl(m_featuresJsonObj.value("linkUrl").toString());
dialog->setLinkButtonVisible(m_featuresJsonObj.value("linkButtonVisible").toBool());
setFeatureDisplayDialog(dialog);
connect(featureDisplayDialog(), &DFeatureDisplayDialog::destroyed, this, [=]() {
setFeatureDisplayDialog(nullptr);
});
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
connect(aboutDialog(), &DAboutDialog::featureActivated, this, [=]() {
featureDisplayDialog()->show();
});
#endif
dialog->hide();
}
#endif

41
src/application.h Normal file
View File

@@ -0,0 +1,41 @@
#ifndef APPLICATION_H
#define APPLICATION_H
#include <DApplication>
#include <QJsonObject>
DWIDGET_USE_NAMESPACE
class MainWindow;
class Application : public DApplication
{
Q_OBJECT
public:
Application(int &argc, char **argv);
void handleAboutAction() override;
bool notify(QObject *receiver, QEvent *event) override;
static void checkAppConfigLocation();
void setBuildDateTime(const QString &buildDateTime);
void setMainWindow(MainWindow *window);
MainWindow *mainWindow();
private:
void initAboutDialog();
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
void initFeatureDisplayDialog();
#endif
void loadTranslator();
private:
QJsonObject m_featuresJsonObj;
MainWindow *m_mainWindow = nullptr;
};
#endif // APPLICATION_H

Some files were not shown because too many files have changed in this diff Show More