Compare commits

..

18 Commits
4.3 ... 4.2.10

Author SHA1 Message Date
6c108aecca !253 4210 x86
Merge pull request !253 from shenmo/dev
2024-01-11 15:29:45 +00:00
7cd2977032 !250 429
Merge pull request !250 from shenmo/dev
2023-11-15 10:17:51 +00:00
94a6532509 !244 4281
Merge pull request !244 from shenmo/dev
2023-11-02 14:41:03 +00:00
9acf7cc8d4 !242 428
Merge pull request !242 from shenmo/dev
2023-10-31 14:35:54 +00:00
75b73088b4 !238 4273
Merge pull request !238 from shenmo/dev
2023-09-17 00:49:44 +00:00
dd0629bc8d !235 4272
Merge pull request !235 from shenmo/dev
2023-09-13 10:25:17 +00:00
39be4cdf6f !233 4271+1
Merge pull request !233 from shenmo/dev
2023-09-01 14:59:52 +00:00
fc58de0325 !230 4271
Merge pull request !230 from shenmo/dev
2023-08-31 14:58:24 +00:00
ba00b208f0 !228 4.2.7
Merge pull request !228 from shenmo/dev
2023-08-14 04:38:46 +00:00
2cca83a34b !226 4266
Merge pull request !226 from shenmo/dev
2023-08-02 03:41:43 +00:00
ea7baa9ab0 !224 4265
Merge pull request !224 from shenmo/dev
2023-07-24 08:03:03 +00:00
c228706144 !222 4264 社群入口修复
Merge pull request !222 from shenmo/dev
2023-07-13 03:01:38 +00:00
c030bf9e6e !220 4263
Merge pull request !220 from shenmo/dev
2023-07-05 03:59:36 +00:00
9ac0c67a25 !216 4262
Merge pull request !216 from shenmo/dev
2023-04-25 14:07:41 +00:00
fd4b52e384 !214 426
Merge pull request !214 from shenmo/dev
2023-04-22 05:58:34 +00:00
db79a59fb6 !212 4251
Merge pull request !212 from shenmo/dev
2023-04-20 12:46:27 +00:00
6891fc5b87 !211 4.2.5
Merge pull request !211 from shenmo/dev
2023-04-12 05:20:09 +00:00
62f52451b7 !210 424
Merge pull request !210 from shenmo/dev
2023-03-23 06:25:48 +00:00
38 changed files with 711 additions and 3355 deletions

View File

@@ -12,9 +12,7 @@
6. 仓库版权条款:为了更好的提供持续性服务,星火仅对个人用户免费开放服务仓库,如您或您的组织需要提供商业服务或者您的组织为盈利性组织,请联系星火社区获取商业授权。
7. 禁止恶意行为和批量爬取: 用户或组织在使用本软件时,严禁进行任何形式的恶意行为,包括但不限于恶意攻击、滥用、破坏、批量爬取软件仓库等。恶意行为的定义由星火社区自行判断,违反者将被追究法律责任。
8. 分发与再分发权利: 星火社区保留对其制作的软件包的分发权利。未经明确授权,禁止任何个人或组织将星火社区软件包用于商业目的或在未获得星火社区许可的情况下进行再分发。此条款旨在确保开源精神的同时,维护星火社区的知识产权。
9. 商业应用限制:您不得使用本软件的代码开发商业应用,也不得在商业应用中使用本软件的代码,除非获得星火社区和火穗(沈阳)计算机软件开发有限公司的书面许可
10. 其他条款:除上述约定外,若您使用了星火商店的主程序或其部分代码,您应遵守 GPL v3 的所有其他条款和要求。若本协议条款的内容与GPL V3中的内容不同的以本协议条款为准
11. 其他约定:本许可以简体中文版本为最准确释义
9. 其他条款:除上述约定外,若您使用了星火商店的主程序或其部分代码,您应遵守 GPL v3 的所有其他条款和要求
GPLV3许可证的完整文本可以在以下链接找到https://www.gnu.org/licenses/gpl-3.0.html
@@ -34,8 +32,6 @@ This software is free software; you can modify and redistribute it under the ter
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.
9. Other Terms: In addition to the above, if you use the Spark Store main program or part of its code, you are subject to all other terms and requirements of GPL v3.
You can find the full text of GPLV3 license at: https://www.gnu.org/licenses/gpl-3.0.html

View File

@@ -15,19 +15,18 @@ To improve this situation, we have launched this app store. We have broadly incl
- **amd64 architecture:** deepin 20 / deepin 23 / Ubuntu 20.04 / Ubuntu 22.04 / UOS Home Edition 20
- **arm64 architecture:** UOS Professional Edition 1060 / Ubuntu 22.04 / deepin 23
- **loong64 architecture:** deepin 23
> Special Note: We also support all versions of Ubuntu operating systems higher than Ubuntu 22.04, such as Ubuntu 22.10, 23.04, 23.10, etc.
**Important Notice:** This software does not provide any form of warranty. If you plan to use it on UOS Professional Edition, please make sure to understand and enable Developer Mode. Make sure you have basic troubleshooting capabilities. It should be clear that we have not conducted extensive testing on the UOS operating system. Therefore, using the Spark client may lead to a series of issues like failed system updates, data loss, etc., all risks to be borne by the user.
## Team Collaboration: For detailed documentation related to branch management, please see [this link](https://wiki.spark-app.store/#/Dev/Spark-Store-Git-Repo).
## Team Collaboration: For detailed documentation related to branch management, please see [this link](https://spark-store-project.gitee.io/spark-wiki/#/Dev/Spark-Store-Git-Repo).
We warmly welcome you to join our development team. Whether you want to participate in development or submit applications, you can find your place here to jointly promote the development of the Linux application ecosystem.
You can track our Issue handling status in real-time through the following link: [Gitee Issue Board](https://gitee.com/spark-store-project/spark-store/board).
If you have a software package you'd like to submit, please [click here to submit](https://upload.deepinos.org.cn/index).
If you have a software package you'd like to submit, please [click here to submit](https://upload.deepinos.org/index).
## Contents
@@ -42,9 +41,25 @@ If you have a software package you'd like to submit, please [click here to submi
---
## Read [the copyright](LICENSE)
## Read the copyright
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. Other Terms: In addition to the above, if you use the Spark Store main program or part of its code, you are subject to all other terms and requirements of GPL v3.
You can find the full text of GPLV3 license at: https://www.gnu.org/licenses/gpl-3.0.html
## Determine your system architecture
@@ -88,7 +103,7 @@ You will see an output, and that's your system architecture.
#### For Ubuntu 20.04 Users
1. **Download Dependencies**
* Please visit the [Spark App Store Dependency Download page](https://gitee.com/spark-store-project/spark-store-dependencies/releases) and download the latest dependency package.
* Please visit the [Spark App Store Dependency Download page](https://spark-app.store/download_dependencies_latest) and download the latest dependency package.
* Unzip the dependency package multiple times until you see multiple installation packages ending with `.deb`.
* Follow the instructions in the dependency package to install all the dependencies at once.
@@ -123,7 +138,7 @@ You will see an output, and that's your system architecture.
#### For Debian 11 Users
1. **Download Dependencies**
* Please visit the [Spark App Store Dependency Download page](https://gitee.com/spark-store-project/spark-store-dependencies/releases) and download the latest dependency package.
* Please visit the [Spark App Store Dependency Download page](https://spark-app.store/download_dependencies_latest) and download the latest dependency package.
* Unzip the dependency package multiple times until you see multiple installation packages ending with `.deb`.
* Follow the instructions in the dependency package to install all the dependencies at once.
@@ -160,8 +175,8 @@ You can also check the [Chinese version](https://gitee.com/spark-store-project/s
- If you have any questions or suggestions, please submit them via email or on our [Gitee page](https://gitee.com/spark-store-project/spark-store/issues).
- If you want to follow our development progress, you can go to the [Spark App Store Board](https://gitee.com/spark-store-project/spark-store/board) for more information.
- Our [Forum](https://bbs.spark-app.store/)
- Our [Forum](https://www.deepinos.org/)
- Our [QQ Group](https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/)
- For commercial support, please leave your issue~
- For commercial support, please visit [Flamescion Inc.](http://flamescion.cn/)
---

View File

@@ -2,7 +2,6 @@
[![star](https://gitee.com/spark-store-project/spark-store/badge/star.svg?theme=gvp)](https://gitee.com/spark-store-project/spark-store/stargazers) [![fork](https://gitee.com/spark-store-project/spark-store/badge/fork.svg?theme=gvp)](https://gitee.com/spark-store-project/spark-store/members)
## 简介
欢迎来到星火应用商店这是一个为Linux用户设计的应用商店旨在解决Linux生态下应用分散、难以获取的问题。无论你是使用什么类型的Linux发行版这里都有可能找到适合你的软件包。
@@ -12,13 +11,12 @@ Linux 应用的数量相对有限Wine 软件的可获得性也颇为困难。
生态系统的构建并非依赖个体的孤立努力,而需要全社区共同参与。只有当大家的“星火”聚集一处,方可引发“燎原之势”。
为了改善这一现状,我们推出了这个应用商店。我们广泛地收录了各种用户需求的软件包,汇集了高质量的小工具,并主动对 Wine 应用进行了适配,一切都储存在我们的软件库中,使得用户可以方便地获取这些应用
为了改善这一现状,我们推出了这个应用商店。我们广泛地收录了各种用户需求的软件包,汇集了高质量的小工具,并主动对 Wine 应用进行了适配,一切都储存在我们的软件库中,以便用户方便地获取。
**当前支持的Linux发行版包括**
- **amd64架构** deepin 20 / deepin 23 / Ubuntu 20.04 / Ubuntu 22.04 / UOS家庭版20
- **arm64架构** UOS专业版1060 / Ubuntu 22.04 / deepin 23
- **loong64架构** deepin 23
> 特别说明我们还支持所有版本高于Ubuntu 22.04的Ubuntu操作系统例如Ubuntu 22.10、23.04、23.10等。
@@ -26,13 +24,13 @@ Linux 应用的数量相对有限Wine 软件的可获得性也颇为困难。
## 关于团队协作:分支管理相关的详细文档可参见 [此链接](https://wiki.spark-app.store/#/Dev/Spark-Store-Git-Repo)。
## 关于团队协作:分支管理相关的详细文档可参见 [此链接](https://spark-store-project.gitee.io/spark-wiki/#/Dev/Spark-Store-Git-Repo)。
我们热忱欢迎您加入我们的开发团队。无论您是想参与开发还是想提交应用都能在这里找到属于您的一席之地共同推动Linux应用生态的发展。
您可以通过以下链接实时跟踪我们的Issue处理状态[Gitee Issue看板](https://gitee.com/spark-store-project/spark-store/board)。
若您有软件包想要提交,敬请 [点击此处进行投稿](https://wiki.spark-app.store/#/Submit/Submit)。
若您有软件包想要提交,敬请 [点击此处进行投稿](https://spark-store-project.gitee.io/spark-wiki/#/Submit/Submit)。
@@ -50,8 +48,24 @@ Linux 应用的数量相对有限Wine 软件的可获得性也颇为困难。
---
## 阅读[版权声明](LICENSE)
## 阅读版权声明
星火开源软件协议Spark Opensource LICENSE
版权所有 (C) 2023 星火社区
根据 GNU 通用公共许可证第三版GPL v3本软件是自由软件您可以修改和再发布它。但是为了维护原作者的权益并保护社区用户的权益您还需要遵守以下条款
1. 对本仓库下的所有文件生效:本许可证适用于本仓库(或项目)下的所有文件。任何使用、修改或再发布本软件的个人或组织都必须遵守本许可证。
2. 版权声明和许可证文件:您不得移除、隐藏或更改本软件中包含的原作者的版权声明和许可证文件。保留原作者的权益信息对于维护开源软件生态系统至关重要。
3. 版本标注: 如果您对本软件做出修改并再发布,您必须在醒目位置标注此版本并非星火社区官方提供。这样可以避免误导使用者认为该软件为星火社区官方提供的版本。此软件仅授权用于个人非盈利用途,任何将其用于商业目的或在盈利性组织中使用的行为均需事先获得星火社区的书面许可。
4. 商标使用您不得在再发布版本中使用“星火应用商店”、“Spark Store”或星火应用商店的Logo等可能误导使用者此软件由星火社区官方提供的信息。
5. 服务条款:您使用星火商店软件的行为将被视为您同意星火在不侵犯您隐私的前提下搜集版本、日志等信息,以便于星火社区更好地为您提供服务。
6. 仓库版权条款:为了更好的提供持续性服务,星火仅对个人用户免费开放服务仓库,如您或您的组织需要提供商业服务或者您的组织为盈利性组织,请联系星火社区获取商业授权。
7. 禁止恶意行为和批量爬取: 用户或组织在使用本软件时,严禁进行任何形式的恶意行为,包括但不限于恶意攻击、滥用、破坏、批量爬取软件仓库等。恶意行为的定义由星火社区自行判断,违反者将被追究法律责任。
8. 分发与再分发权利: 星火社区保留对其制作的软件包的分发权利。未经明确授权,禁止任何个人或组织将星火社区软件包用于商业目的或在未获得星火社区许可的情况下进行再分发。此条款旨在确保开源精神的同时,维护星火社区的知识产权。
9. 其他条款:除上述约定外,若您使用了星火商店的主程序或其部分代码,您应遵守 GPL v3 的所有其他条款和要求。
GPLV3许可证的完整文本可以在以下链接找到https://www.gnu.org/licenses/gpl-3.0.html
## 确定你的系统架构
@@ -98,7 +112,7 @@ Linux 应用的数量相对有限Wine 软件的可获得性也颇为困难。
#### 对于 Ubuntu 20.04 用户
1. **下载依赖包**
* 请访问[星火应用商店依赖包下载页面](https://gitee.com/spark-store-project/spark-store-dependencies/releases) 下载最新的依赖包。
* 请访问[星火应用商店依赖包下载页面](https://spark-app.store/download_dependencies_latest) 下载最新的依赖包。
* 请多次解压依赖包,直到你可以看到诸多以 deb 结尾的安装包。
* 依据依赖包内的说明,一次性安装所有的依赖包。
@@ -134,7 +148,7 @@ Linux 应用的数量相对有限Wine 软件的可获得性也颇为困难。
#### 对于 Debian 11 用户
1. **下载依赖包**
* 请访问[星火应用商店依赖包下载页面](https://gitee.com/spark-store-project/spark-store-dependencies/releases) 下载最新的依赖包。
* 请访问[星火应用商店依赖包下载页面](https://spark-app.store/download_dependencies_latest) 下载最新的依赖包。
* 请多次解压依赖包,直到你可以看到诸多以 deb 结尾的安装包。
* 依据依赖包内的说明,一次性安装所有的依赖包。
@@ -172,8 +186,9 @@ Linux 应用的数量相对有限Wine 软件的可获得性也颇为困难。
- 如果您有任何问题或建议,请通过邮件或在[Gitee页面](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
- 商业支持请留言咨询~
- 我们的[论坛](https://www.deepinos.org/)
- 我们的[QQ群](https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/)
- 商业支持请访问[火穗科技 Flamescion Inc.](http://flamescion.cn/)
---

42
debian/changelog vendored
View File

@@ -1,45 +1,3 @@
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
* 修复:部分发行版上无法启动自动创建的桌面图标

37
debian/control vendored
View File

@@ -7,28 +7,45 @@ Build-Depends:
pkg-config,
qtchooser (>= 55-gc9562a1-1~) | qt5-default,
qtbase5-dev,
libqt5core5a,
libqt5gui5,
libqt5widgets5,
libqt5network5,
libqt5concurrent5,
libdtkcore-dev(>=5.0),
libdtkgui-dev(>=5.0),
libdtkwidget-dev(>=5.0),
libqt5svg5-dev,
qttools5-dev-tools,
qttools5-private-dev,
qtwebengine5-dev,
libdtkcore-dev (>= 5.0),
libdtkgui-dev (>= 5.0),
libdtkwidget-dev (>= 5.0)
Standards-Version: 4.1.7
qtwayland5,
qtwayland5-dev-tools,
gcc,
g++
Standards-Version: 4.0.0
Homepage: https://www.spark-app.store/
Package: spark-store
Architecture: any
Provides: spark-store-console-in-container
Depends: ${shlibs:Depends}, ${misc:Depends},
dde-qt5integration,
Depends:${shlibs:Depends}, ${misc:Depends},
libqt5core5a,
libqt5gui5,
libqt5widgets5,
libqt5network5,
libqt5concurrent5,
qtwayland5,
libdtkcore5,
libdtkgui5,
libdtkwidget5,
curl,
openssl,
dde-qt5integration,
aria2,
gnupg,
zenity,
policykit-1 | pkexec,
policykit-1,
libnotify-bin,
desktop-file-utils,
dpkg-dev
desktop-file-utils
Description: Spark Store
A community powered app store, based on DTK.

19
debian/rules vendored
View File

@@ -3,13 +3,10 @@
export QT_SELECT = qt5
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
include /usr/share/dpkg/default.mk
export DEB_VERSION = $(shell dpkg-parsechangelog -S Version)
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
@@ -17,23 +14,25 @@ SOURCE_DATE_EPOCH := $(shell date +%s)
dh $@ --parallel
override_dh_auto_clean:
rm -rf $(CURDIR)/build-$(DEB_HOST_MULTIARCH)
rm -rf $(CURDIR)/build
override_dh_auto_configure:
mkdir -p $(CURDIR)/build-$(DEB_HOST_MULTIARCH)
mkdir -p $(CURDIR)/build
qmake BUILD_VERSION=$(DEB_VERSION_UPSTREAM) spark-store-project.pro \
-spec linux-g++ CONFIG+=force_debug_info \
-o $(CURDIR)/build-$(DEB_HOST_MULTIARCH)/
-spec linux-g++ CONFIG+=qtquickcompiler \
-o $(CURDIR)/build/
override_dh_auto_build:
make -C $(CURDIR)/build-$(DEB_HOST_MULTIARCH) -j$(JOBS)
make MAKEFLAGS="$(MAKEFLAGS)" -C $(CURDIR)/build
override_dh_auto_install:
make -C $(CURDIR)/build-$(DEB_HOST_MULTIARCH) install \
make -C $(CURDIR)/build 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

View File

@@ -12,10 +12,6 @@ case "$1" in
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"
@@ -29,15 +25,12 @@ case "$1" in
# 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
@@ -73,7 +66,18 @@ case "$1" in
;;
triggered)
spark-dstore-patch
# Quit if deepin-app-store-tool existed
if [ -x "/usr/bin/deepin-app-store-tool" ] ; then
exit 0
fi
# Trigger for UOS debs installation
echo '--------检测到Uniontech标准软件包运行补丁以修正安装--------'
if [ -x "/usr/local/bin/spark-dstore-patch" ] ; then
/usr/local/bin/spark-dstore-patch
echo '-----------spark-dstore-patch补丁工具已运行完毕-----------'
else
echo '------------spark-dstore-patch补丁工具运行失败------------'
fi
;;
esac

0
debian/spark-store.postrm vendored Executable file → Normal file
View File

View File

@@ -16,15 +16,12 @@ if [ "$1" = "remove" -o "$1" = "purge" ] ; then
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 -f /usr/local/bin/spark-store
rm -f /usr/local/bin/ssinstall
rm -f /usr/local/bin/ssaudit
rm -f /usr/local/bin/spark-dstore-patch
rm -f /usr/local/bin/ss-apt-fast
rm -f /usr/bin/aptss
rm -rf /etc/aptss/
rm -rf /var/lib/aptss/

View File

@@ -1,2 +1 @@
interest-noawait /opt/apps
interest-noawait /usr/share/icons

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -7,7 +7,8 @@
TARGET = spark-store
TEMPLATE = subdirs
CONFIG += ordered
#CONFIG += ordered
CONFIG += wayland-compositor
SUBDIRS += \
src/spark-store.pro

View File

@@ -36,13 +36,13 @@ Application::Application(int &argc, char **argv)
setApplicationDisplayName(QObject::tr("Spark Store")); // 设置窗口显示标题 (Wayland 下会显示 Qt 原生标题栏)
setProductName(QObject::tr("Spark Store"));
setProductIcon(QIcon::fromTheme("spark-store"));
setApplicationHomePage("https://gitee.com/spark-store-project");
setApplicationHomePage("https://gitee.com/deepin-community-store");
setApplicationDescription(
QObject::tr(
"<span style=' font-size:10pt;font-weight:60;'>An appstore powered by community</span><br/>"
"<a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/>"
"<span style=' font-size:12pt;'>Spark developers</span>"));
setApplicationLicense(" <a href='https://gitee.com/spark-store-project/spark-store/blob/Flamescion/LICENSE'>Spark Opensource License</a> ");
setApplicationLicense(" <a href='https://gitee.com/deepin-community-store/spark-store/blob/Flamescion/LICENSE'>GPLv3</a> ");
// 检查 ~/.config/spark-union/spark-store 文件夹是否存在
checkAppConfigLocation();

View File

@@ -1,249 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
inkscape:export-ydpi="127"
inkscape:export-xdpi="127"
inkscape:export-filename="/home/zhangtianyi/Desktop/deepin-community-store.png"
width="200mm"
height="200mm"
viewBox="0 0 200 200"
version="1.1"
id="svg8"
inkscape:version="1.3 (0e150ed, 2023-07-21)"
sodipodi:docname="logo-no-border.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient1200">
<stop
style="stop-color:#000000;stop-opacity:0.1299435"
offset="0"
id="stop1196" />
<stop
style="stop-color:#dadada;stop-opacity:0.81960785"
offset="1"
id="stop1198" />
</linearGradient>
<linearGradient
id="linearGradient1138"
inkscape:collect="always">
<stop
id="stop1134"
offset="0"
style="stop-color:#99e7ea;stop-opacity:1" />
<stop
id="stop1136"
offset="1"
style="stop-color:#007ffc;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1128">
<stop
style="stop-color:#99e7ea;stop-opacity:1"
offset="0"
id="stop1124" />
<stop
style="stop-color:#007ffc;stop-opacity:1"
offset="1"
id="stop1126" />
</linearGradient>
<inkscape:path-effect
effect="bspline"
id="path-effect960"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient1128"
id="radialGradient1130"
cx="100.35268"
cy="199.86011"
fx="100.35268"
fy="199.86011"
r="90.135414"
gradientTransform="matrix(1,0,0,0.98112945,0,3.7714702)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient1138"
id="radialGradient1132"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.98112945,0,3.7714702)"
cx="100.35268"
cy="199.86011"
fx="100.35268"
fy="199.86011"
r="90.135414" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient1200"
id="radialGradient1202"
cx="100.35268"
cy="199.86011"
fx="100.35268"
fy="199.86011"
r="90.135414"
gradientTransform="matrix(1,0,0,0.98112945,0,3.7714702)"
gradientUnits="userSpaceOnUse" />
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter1448">
<feFlood
flood-opacity="0.372549"
flood-color="rgb(145,145,145)"
result="flood"
id="feFlood1438" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite1440" />
<feGaussianBlur
in="composite1"
stdDeviation="5.2918"
result="blur"
id="feGaussianBlur1442" />
<feOffset
dx="0"
dy="0"
result="offset"
id="feOffset1444" />
<feComposite
in="SourceGraphic"
in2="offset"
operator="over"
result="composite2"
id="feComposite1446" />
</filter>
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter2201"
x="-0.06449152"
y="-0.061604632"
width="1.128983"
height="1.1232093">
<feFlood
flood-opacity="0.372549"
flood-color="rgb(145,145,145)"
result="flood"
id="feFlood2191" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite2193" />
<feGaussianBlur
in="composite1"
stdDeviation="3.76995"
result="blur"
id="feGaussianBlur2195" />
<feOffset
dx="0"
dy="0"
result="offset"
id="feOffset2197" />
<feComposite
in="SourceGraphic"
in2="offset"
operator="over"
result="composite2"
id="feComposite2199" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="476.28692"
inkscape:cy="375.77675"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="974"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:document-rotation="0"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-97)" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2">
<path
style="fill:#ffc344;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 94.205599,38.155907 c 0,0 11.145081,-0.157476 22.599701,6.928753 11.45465,7.086223 18.11074,13.857508 20.27783,18.266716 2.16708,4.409209 9.28755,12.125332 9.13277,26.297795 -0.15488,14.172409 -3.40543,23.620739 -8.97797,31.494299 -5.57254,7.87359 -15.63405,13.85751 -27.70786,14.17247 -12.073829,0.31494 -19.813453,-7.55863 -22.444927,-11.96786 -2.631469,-4.4092 -3.715019,-13.85751 -0.464377,-20.62877 3.250645,-6.771296 8.358796,-6.771296 10.061513,-6.141389 1.702724,0.629897 2.167092,1.574691 3.095852,3.306872 0.928749,1.732187 1.547929,1.417257 2.941089,0.472427 1.39311,-0.944834 1.85748,-2.047138 1.54792,-3.464372 -0.30958,-1.417247 -2.16711,-3.149427 -3.71505,-3.621847 -1.547909,-0.47241 -3.715016,-1.88966 -6.810869,-1.41721 -3.095848,0.47238 -9.132757,2.04711 -14.240906,8.975819 -5.108153,6.92875 -4.488988,17.63684 -1.393134,22.67593 3.095849,5.0391 8.977962,14.48739 21.980539,17.79431 13.00259,3.30693 34.05435,-6.45633 41.32959,-21.57361 7.27524,-15.1173 7.43004,-22.203505 7.12048,-34.64374 C 148.22821,72.642208 137.23793,54.060548 125.00933,47.289265 112.78073,40.517979 103.64797,36.581186 94.205599,38.155907 Z"
id="path1002"
inkscape:connector-curvature="0" />
<path
style="fill:#f06767;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 100.67541,101.06311 c 0,0 -3.06474,-2.895088 -5.801108,2.22698 -2.736373,5.12205 -4.049827,9.68737 -1.313459,15.25486 2.736367,5.56745 8.428007,8.90792 17.184447,8.79659 8.75636,-0.11148 15.21419,-2.22699 19.0451,-8.5739 3.83094,-6.34692 6.7862,-11.02357 7.11457,-13.36191 0.32839,-2.33835 2.07965,0.33404 1.53239,2.33834 -0.54728,2.00426 -0.43783,5.9015 1.09454,5.12204 1.53237,-0.77942 2.73637,-2.00427 2.95526,-1.44753 0.21893,0.55673 -1.75127,4.00859 -2.68162,5.73449 -0.93039,1.7259 -3.83094,5.90153 -5.5275,7.51607 -1.69652,1.61458 -4.04981,3.89724 -6.84092,5.56747 -2.79109,1.67024 -7.11454,3.61887 -9.52255,4.06427 -2.40801,0.44539 -7.22403,1.39184 -9.96042,1.2805 -2.73635,-0.11137 -6.23892,-0.61243 -10.124558,-2.56104 -3.885645,-1.94859 -8.099657,-4.95505 -9.741479,-7.96148 -1.641825,-3.00643 -4.159283,-5.73449 -3.61201,-13.30623 0.547277,-7.57175 3.010008,-11.46899 4.870741,-13.250551 1.860731,-1.781588 4.597103,-2.561035 6.403105,-2.171298 1.806004,0.38971 2.955282,1.447544 3.393102,2.226958 0.43781,0.779437 1.149279,2.226981 1.532369,2.505371 z"
id="path1012"
inkscape:connector-curvature="0" />
<path
style="fill:#3f62eb;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 132.18114,140.09049 c 0,0 13.13457,-7.6831 19.26404,-19.82016 6.12948,-12.13707 8.7564,-19.93152 7.99021,-31.84589 -0.76619,-11.914358 -2.62692,-6.012854 -0.54728,-11.134928 2.07964,-5.122074 -1.31345,-15.254857 0.10943,-15.922949 1.42292,-0.668097 4.48765,4.453971 5.3633,8.573903 0.87562,4.119922 4.70654,16.813721 1.64181,32.959364 -3.06472,16.14564 -10.28872,22.60391 -15.10475,26.94655 -4.81603,4.34261 -15.7615,11.91437 -17.40332,11.80302 -1.64183,-0.11148 -1.86073,-0.11148 -1.31348,-1.55891 z"
id="path1014"
inkscape:connector-curvature="0" />
<path
style="fill:#fce102;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 104.83471,117.2363 c 0,0 7.00512,1.5589 12.36838,-1.78156 5.3633,-3.3405 9.5226,-8.79661 10.17931,-10.91225 0.65672,-2.11564 0.76619,1.89294 1.53236,-0.11125 0.76618,-2.00432 3.83093,-6.012871 2.29855,-15.366212 -1.53237,-9.35333 -1.64182,-9.798747 -4.48762,-14.809463 -2.84586,-5.010719 -9.63207,-11.91437 -13.79134,-14.141359 -4.15927,-2.226986 -9.96037,-5.567464 -17.950594,-5.344766 -7.990202,0.222699 -5.363286,-0.334048 -13.025124,1.002146 -7.661836,1.336187 -14.557491,5.010717 -16.856041,7.015006 -2.298552,2.004286 -8.428023,7.460405 -10.61712,10.46684 -2.189098,3.00643 -8.209113,9.798741 -11.383303,19.263442 -3.174189,9.464656 -4.487646,10.466796 -4.706555,16.702366 -0.21891,6.23557 0.547274,7.90578 -0.766185,8.46256 -1.31346,0.55673 -1.094547,-4.67668 -0.985094,-8.35123 0.109463,-3.6745 0.109463,-13.250536 4.925468,-23.940057 4.816015,-10.689538 13.353489,-19.597489 18.169503,-22.826622 4.816009,-3.229128 10.398208,-7.571752 19.045135,-9.687392 8.646933,-2.115635 17.293863,-1.781586 22.65716,-0.779443 5.3633,1.002145 13.68187,4.453974 18.1695,7.905802 4.48766,3.45183 9.41314,7.683099 13.13459,14.586765 3.72146,6.903648 4.70654,15.700251 4.59709,19.374771 -0.10943,3.674531 -1.97019,12.137076 -4.81601,16.256986 -2.84583,4.11993 -6.67674,9.0193 -10.61711,10.80089 -3.94039,1.78157 -8.75642,2.33833 -12.69675,0.55674 -3.94039,-1.78161 -3.72147,-2.44969 -4.3782,-4.34263 z"
id="path1016"
inkscape:connector-curvature="0" />
<path
style="fill:#5ed938;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 104.83471,117.2363 c 0,0 5.54674,1.56707 10.22918,-0.55878 4.68248,-2.12587 6.4239,-4.17301 7.54615,-5.3934 1.12223,-1.22042 3.25064,-3.50376 3.83112,-4.56669 0.58046,-1.06292 1.19962,-1.69282 1.19962,-2.08649 0,-0.39369 -1.08353,-1.33853 -0.0386,-3.62186 1.04482,-2.283321 1.97361,-7.519246 1.50922,-9.881306 -0.46438,-2.362073 -1.54792,-15.471616 -10.83547,-24.211303 -9.28753,-8.739678 -18.497709,-9.763242 -18.497709,-9.763242 0,0 14.705309,4.645415 21.593569,18.739134 6.88828,14.093741 4.64376,23.148323 0.23218,28.659827 -4.41158,5.51151 -10.68068,6.14141 -12.38342,4.72415 -1.70268,-1.41725 -5.2113,6.47164 -4.38574,7.95996 z"
id="path1018"
inkscape:connector-curvature="0" />
<path
style="fill:#8fdbe9;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 86.930353,66.680267 c 0,0 -9.906718,-0.07875 -17.414156,4.881616 -7.507436,4.960371 -11.14506,8.975903 -13.23476,12.125332 -2.089697,3.149446 -4.488981,7.479909 -4.179395,7.401179 0.309585,-0.0788 9.055364,-12.2828 15.866229,-15.432236 6.81087,-3.149436 13.621741,-7.558644 22.986687,-4.330482 9.364952,3.228184 13.776542,7.716118 15.788842,6.613829 2.0123,-1.1023 2.3993,-2.440824 1.23835,-3.936804 -1.16094,-1.495979 -9.364961,-8.818417 -21.051797,-7.322434 z"
id="path1020"
inkscape:connector-curvature="0" />
<path
style="fill:#fd7aff;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 72.107699,130.12526 c 0.65673,0.33404 5.58219,8.90795 9.522571,10.35548 3.940372,1.44755 6.567286,1.55888 7.005104,2.227 0.437821,0.66809 0.328367,4.00858 3.830921,5.45614 3.502555,1.44753 19.920785,6.01284 24.627325,6.45824 4.70658,0.4454 0.76621,3.22911 3.61202,4.23125 2.84584,1.00217 14.99532,1.5589 17.95061,0.33405 2.95527,-1.22483 2.95527,1.1135 -2.1891,3.1178 -5.14437,2.00427 -18.71677,6.79231 -27.58261,5.67882 -8.86586,-1.1135 -19.373526,-3.00644 -25.284086,-7.23772 -5.910565,-4.23126 -8.42802,-6.1242 -6.238924,-6.45824 2.189096,-0.33407 7.990199,5.9015 10.507662,6.56959 2.517463,0.66809 4.597103,0.66809 3.064735,-0.8908 -1.532366,-1.55888 -11.492755,-8.46253 -12.477849,-8.1285 -0.985092,0.33405 -3.064737,0.55674 -4.816012,-1.78159 -1.751278,-2.33832 -10.945484,-15.25485 -10.39821,-22.1585 0.547273,-6.90365 2.298552,-5.12208 4.378195,-2.56103 2.079641,2.56103 4.487648,4.78801 4.487648,4.78801 z"
id="path1022"
inkscape:connector-curvature="0" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -120,8 +120,6 @@ void DownloadController::startDownload(const QString &url)
QString downloadDir = "/tmp/spark-store/"; //下载目录
QString aria2ConnectionPerServer = "--max-connection-per-server=1"; //每个服务器最大连接数
QString aria2ConnectionMax = "--max-concurrent-downloads=16"; //最大同时下载数
QString aria2ConnectionTimeout = "--connect-timeout=5"; // 5 秒服务器连接超时
QString aria2MaxRetry = "--max-tries=1"; //设置最大重试次数
if (useMetalink) //如果是metalink
@@ -149,8 +147,6 @@ void DownloadController::startDownload(const QString &url)
command.append(aria2SizePerThreads.toUtf8());
command.append(aria2ConnectionPerServer.toUtf8());
command.append(aria2ConnectionMax.toUtf8());
command.append(aria2ConnectionTimeout.toUtf8());
command.append(aria2MaxRetry.toUtf8());
if (useMetalink)
{

View File

@@ -10,8 +10,6 @@ QString SparkAPI::serverUrl = "";
#elif __aarch64__
QString SparkAPI::serverUrlDir = "aarch64-store";
#elif __loongarch__
QString SparkAPI::serverUrlDir = "loong64-store";
#endif
SparkAPI::SparkAPI(QObject *parent) : QObject(parent)
@@ -28,7 +26,6 @@ void SparkAPI::get(QUrl url)
QNetworkRequest request;
HttpRequest *httprequest = new HttpRequest;
request.setUrl(QUrl(url.toString().replace("+", "%2B")));
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
connect(httprequest, &HttpRequest::finished, [=](QString data)
{
QByteArray arr = data.toUtf8();
@@ -54,7 +51,6 @@ void SparkAPI::getRAW(QUrl url)
QNetworkRequest request;
HttpRequest *httprequest = new HttpRequest;
request.setUrl(QUrl(url.toString().replace("+", "%2B")));
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
connect(httprequest, &HttpRequest::finished, [=](QString data)
{
emit finishedRAW(data);

View File

@@ -13,6 +13,7 @@
#include <DSysInfo>
#include <DApplicationSettings>
#include <DWidgetUtil>
#include <QDate>
#include <QProcessEnvironment>
@@ -147,11 +148,49 @@ int main(int argc, char *argv[])
// qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-web-security");
#ifdef __sw_64__
qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--no-sandbox");
#elif __aarch64__
QString env = QString::fromUtf8(qgetenv("QTWEBENGINE_CHROMIUM_FLAGS"));
env = env.trimmed();
/**
* NOTE: 参考帮助手册代码,对于部分 ARM CPU 设备,
* --disable-gpu 保证网页正常显示
* --single-process 避免 QtWebEngine 崩溃(可选)
*/
env += " --disable-gpu";
if (Utils::isPhytium()) {
env += " --single-process";
}
qputenv("QTWEBENGINE_CHROMIUM_FLAGS", env.trimmed().toUtf8());
if (Utils::isWayland()) {
/**
* WARNING: DDM TreeLand 混合器下,设置
* QT_WAYLAND_SHELL_INTEGRATION 环境变量
* 会导致崩溃 By justforlxz
*/
if (!Utils::isTreeLand()) {
/**
* NOTE: 参考帮助手册代码,对于麒麟 CPU 设备,
* 避免 wayland 环境下 QtWebEngine 崩溃
*/
qputenv("QT_WAYLAND_SHELL_INTEGRATION", "kwayland-shell");
}
}
QSurfaceFormat format;
format.setRenderableType(QSurfaceFormat::OpenGLES);
QSurfaceFormat::setDefaultFormat(format);
/**
* NOTE: https://zhuanlan.zhihu.com/p/550285855
* 避免 X11 环境下从 QtWebEngine 后退回到 QWidget 时黑屏闪烁
*/
if (!Utils::isWayland()) {
qputenv("QMLSCENE_DEVICE", "softwarecontext");
DApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);
}
#endif
#ifdef __loongarch__
qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--no-sandbox");
#endif
/**
* NOTE: https://zhuanlan.zhihu.com/p/550285855
* 避免 wayland 环境下从 QtWebEngine 后退回到 QWidget 时黑屏闪烁
@@ -195,6 +234,8 @@ int main(int argc, char *argv[])
MainWindow w;
a.setMainWindow(&w); // 设置应用程序主窗口,用于初始化关于对话框
// 让打开时界面显示在正中
Dtk::Widget::moveToCenter(&w);
if (argc > 1)
{

View File

@@ -25,7 +25,7 @@
#define WaylandSearchCenter 1
#define OtherSearchCenter 2
#define RightSearchSpace 1
#define UploadServerUrl "https://upload.deepinos.org.cn/"
#define UploadServerUrl "https://upload.deepinos.org/"
MainWindow::MainWindow(QWidget *parent)
: BaseWidgetOpacity(parent)
@@ -48,11 +48,6 @@ MainWindow::~MainWindow()
delete ui;
downloadlistwidget->deleteLater();
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
config.setValue("window/width", width());
config.setValue("window/height", height());
config.sync();
}
void MainWindow::initDbus()
@@ -128,17 +123,6 @@ void MainWindow::closeEvent(QCloseEvent *event)
void MainWindow::initUI()
{
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
QSize size;
size.rwidth() = config.value("window/width").toInt();
size.rheight() = config.value("window/height").toInt();
if (!size.isEmpty()) {
resize(size);
}
// 让打开时界面显示在正中
moveToCenter(this);
setWindowTitle(QObject::tr("Spark Store"));
setMaskAlpha(250);
@@ -511,13 +495,9 @@ void MainWindow::notify(QObject *receiver, QEvent *event)
void MainWindow::on_pushButton_14_clicked()
{
/**
* NOTE: No need to judget developmode status
*/
// Check UOS
// QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
// if (config.contains("UOS/EnableDeveloperMode") && !config.value("UOS/EnableDeveloperMode").toBool())
if (false)
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
if (config.contains("UOS/EnableDeveloperMode") && !config.value("UOS/EnableDeveloperMode").toBool())
{
qDebug() << "UOS Developer Mode has not been enabled!";
QtConcurrent::run([=]

View File

@@ -55,7 +55,7 @@ void AppIntoPage::openUrl(const QUrl &url)
ui->label_2->setText(info["More"].toString());
// 显示 tags
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 15, 0, 0))
QStringList taglist = info["Tags"].toString().split(";", Qt::SkipEmptyParts);
#else
QStringList taglist = info["Tags"].toString().split(";", QString::SkipEmptyParts);
@@ -73,7 +73,6 @@ void AppIntoPage::openUrl(const QUrl &url)
iconRequest.setUrl(QUrl(pkgUrlBase + "/icon.png"));
iconRequest.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent);
iconRequest.setHeader(QNetworkRequest::ContentTypeHeader, "charset='utf-8'");
iconRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
iconManager->get(iconRequest);
QObject::connect(iconManager, &QNetworkAccessManager::finished, [=](QNetworkReply *reply)
@@ -97,7 +96,6 @@ void AppIntoPage::openUrl(const QUrl &url)
request.setUrl(QUrl(imgUrl));
request.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent);
request.setHeader(QNetworkRequest::ContentTypeHeader, "charset='utf-8'");
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
manager->get(request);
QObject::connect(manager, &QNetworkAccessManager::finished, [=](QNetworkReply *reply)
{
@@ -116,18 +114,14 @@ void AppIntoPage::openUrl(const QUrl &url)
qDebug() << imgUrl;
}
manager->deleteLater();
manager->deleteLater();
});
}
/**
* NOTE: No need to judget developmode status
*/
// Check UOS
// QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
// if (config.contains("UOS/EnableDeveloperMode") && !config.value("UOS/EnableDeveloperMode").toBool()){
if (false) {
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
if (config.contains("UOS/EnableDeveloperMode") && !config.value("UOS/EnableDeveloperMode").toBool()){
qDebug() << "UOS Developer Mode has not been enabled!";
ui->downloadButton->setText(tr("Developer Mode Disabled"));
ui->downloadButton->setEnabled(false);
@@ -139,15 +133,11 @@ void AppIntoPage::openUrl(const QUrl &url)
bool isInstalled;
bool isUpdated;
QString packagename = info["Pkgname"].toString();
isInstall.start("/opt/durapps/spark-store/bin/store-helper/check-is-installed", QStringList() << info["Pkgname"].toString());
isInstall.start("dpkg", QStringList() << "-s" << info["Pkgname"].toString());
qDebug() << info["Pkgname"].toString();
isInstall.waitForFinished(180 * 1000); // 默认超时 3 分钟
int exitCode = isInstall.exitCode();
QProcess::ExitStatus exitStatus = isInstall.exitStatus();
isInstall.close();
if (exitCode == 0 && exitStatus == QProcess::NormalExit)
int error = QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
if (error == 0)
{
isInstalled = true;
@@ -160,7 +150,7 @@ void AppIntoPage::openUrl(const QUrl &url)
isUpdate.start("dpkg", QStringList() << "--compare-versions" << localVersion << "ge" << info["Version"].toString());
isUpdate.waitForFinished(180 * 1000); // 默认超时 3 分钟
if (isUpdate.exitCode() == 0 && isUpdate.exitStatus() == QProcess::NormalExit)
if (!isUpdate.exitCode())
{
isUpdated = true;
}
@@ -168,7 +158,6 @@ void AppIntoPage::openUrl(const QUrl &url)
{
isUpdated = false;
}
isUpdate.close();
}
else
{
@@ -348,27 +337,10 @@ void AppIntoPage::isDownloading(const QUrl &url)
}
if (item->download == 3)
{
QString packageName = info["Pkgname"].toString();
QProcess process;
process.start("/opt/durapps/spark-store/bin/store-helper/check-is-installed", {packageName});
process.waitForFinished(-1);
int exitCode = process.exitCode();
QProcess::ExitStatus exitStatus = process.exitStatus();
process.close();
if (exitCode == 0 && exitStatus == QProcess::NormalExit)
{
ui->downloadButton->setEnabled(true);
ui->downloadButton->setText(tr("Reinstall"));
ui->downloadButton->show();
ui->pushButton_3->show();
}
else
{
ui->downloadButton->setEnabled(true);
ui->downloadButton->setText(tr("Download and Install"));
}
ui->downloadButton->setEnabled(true);
ui->downloadButton->setText(tr("Reinstall"));
ui->downloadButton->show();
ui->pushButton_3->show();
}
}
@@ -448,19 +420,19 @@ void AppIntoPage::notifyUserUnsupportedTags(bool ubuntuSupport, bool deepinSuppo
if (checkdeepin)
{
Utils::sendNotification("spark-store", tr("Warning"), tr("The current application does not support or tested on deepin, there may be problems"));
Utils::sendNotification("spark-store", tr("Warning"), tr("The current application does not support deepin, there may be problems"));
}
else if (checkuos)
{
Utils::sendNotification("spark-store", tr("Warning"), tr("The current application does not support or tested on UOS, there may be problems"));
Utils::sendNotification("spark-store", tr("Warning"), tr("The current application does not support UOS, there may be problems"));
}
else if (checkubuntu)
{
Utils::sendNotification("spark-store", tr("Warning"), tr("The current application does not support or tested on Ubuntu, there may be problems"));
Utils::sendNotification("spark-store", tr("Warning"), tr("The current application does not support Ubuntu, there may be problems"));
}
else if (!isUbuntu && !isDeepin && !isUOS)
{
Utils::sendNotification("spark-store", tr("Warning"), tr("The current application does not support or tested on current platform, there may be problems"));
Utils::sendNotification("spark-store", tr("Warning"), tr("The current application does not support current platform, there may be problems"));
}
return;
@@ -513,24 +485,22 @@ void AppIntoPage::on_pushButton_3_clicked()
QProcess uninstall;
uninstall.start("pkexec", QStringList() << "apt" << "autopurge" << "-y" << info["Pkgname"].toString().toLower());
uninstall.waitForFinished(-1);
uninstall.close();
QProcess check;
check.start("dpkg", QStringList() << "-s" << info["Pkgname"].toString().toLower());
check.waitForFinished(-1);
check.waitForFinished(10*1000);
if (check.exitCode() != 0 || check.exitStatus() != QProcess::NormalExit)
if (check.readAllStandardOutput().isEmpty())
{
ui->downloadButton->setText(tr("Download and Install"));
ui->pushButton_3->hide();
updatesEnabled();
Utils::sendNotification("spark-store",tr("Spark Store"),tr("Uninstall succeeded"));
}
ui->downloadButton->setEnabled(true);
ui->pushButton_3->setEnabled(true);
check.close();
});
}

View File

@@ -1,105 +1,108 @@
#include "applistpage.h"
#include "ui_applistpage.h"
#define BUILD_URL(theme, arch) \
api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/" + (type.isEmpty() ? "?" : "applist?type=" + type + "&") + theme + "&arch=" + arch
AppListPage::AppListPage(QWidget *parent) : QWidget(parent),
ui(new Ui::AppListPage)
{
ui->setupUi(this);
ui->webEngineView->page()->setBackgroundColor(Qt::transparent);
}
void AppListPage::setTheme(bool dark)
{
isDark = dark;
if (dark)
{
this->setStyleSheet("#frame{background-color: #252525;border-radius:14px;border:1px solid rgb(64, 64, 64);}");
}
else
{
// 亮色模式
this->setStyleSheet("#frame{background-color: #ffffff;border-radius:14px;border:1px solid rgb(229,229,229);}");
}
if (isSearch)
{
getSearchList(nowType);
}
else
{
getAppList(nowType);
}
}
void AppListPage::getAppList(QString type)
{
isSearch = false;
nowType = type;
SparkAPI *api = new SparkAPI(this);
QString url;
QString theme;
if (isDark)
{
theme = "theme=dark";
}
else
{
theme = "theme=light";
}
#ifdef __aarch64__
url = BUILD_URL(theme, "aarch64");
#elif __loongarch__
url = BUILD_URL(theme, "loong64");
#else
url = BUILD_URL(theme, "x86");
#endif
ui->webEngineView->setUrl(url);
delete api;
}
void AppListPage::getSearchList(const QString &keyword)
{
isSearch = true;
nowType = keyword;
SparkAPI *api = new SparkAPI(this);
QString url;
QString theme;
if (isDark)
{
theme = "theme=dark";
}
else
{
theme = "theme=light";
}
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/search?keywords=" + QUrl::toPercentEncoding(keyword) + "&" + theme + "&" + "arch=x86";
#ifdef __aarch64__
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/search?keywords=" + QUrl::toPercentEncoding(keyword) + "&" + theme + "&" + "arch=aarch64";
#elif __loongarch__
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/search?keywords=" + QUrl::toPercentEncoding(keyword) + "&" + theme + "&" + "arch=loong64";
#endif
ui->webEngineView->setUrl(url);
delete api;
}
AppListPage::~AppListPage()
{
delete ui;
}
void AppListPage::on_webEngineView_urlChanged(const QUrl &arg1)
{
if (arg1.path().right(8) == "app.json")
{
QString url = arg1.toString();
url = url.mid(url.indexOf("/" + SparkAPI::getArchDir() + "/"));
url = "spk:/" + url;
url = url.mid(0, url.indexOf("/app.json"));
qDebug() << "程序跳转链接地址:" << url;
ui->webEngineView->back();
emit clicked(url);
}
}
#include "applistpage.h"
#include "ui_applistpage.h"
AppListPage::AppListPage(QWidget *parent) : QWidget(parent),
ui(new Ui::AppListPage)
{
ui->setupUi(this);
ui->webEngineView->page()->setBackgroundColor(Qt::transparent);
}
void AppListPage::setTheme(bool dark)
{
isDark = dark;
if (dark)
{
this->setStyleSheet("#frame{background-color: #252525;border-radius:14px;border:1px solid rgb(64, 64, 64);}");
}
else
{
// 亮色模式
this->setStyleSheet("#frame{background-color: #ffffff;border-radius:14px;border:1px solid rgb(229,229,229);}");
}
if (isSearch)
{
getSearchList(nowType);
}
else
{
getAppList(nowType);
}
}
void AppListPage::getAppList(QString type)
{
isSearch = false;
nowType = type;
SparkAPI *api = new SparkAPI(this);
QString url;
QString theme;
if (isDark)
{
theme = "theme=dark";
}
else
{
theme = "theme=light";
}
if (type == "")
{
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/?" + theme + "&" + "arch=x86";
#ifdef __aarch64__
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/?" + theme + "&" + "arch=aarch64";
#endif
}
else
{
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/applist?type=" + type + "&" + theme + "&" + "arch=x86";
#ifdef __aarch64__
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/applist?type=" + type + "&" + theme + "&" + "arch=aarch64";
#endif
}
ui->webEngineView->setUrl(url);
delete api;
}
void AppListPage::getSearchList(const QString &keyword)
{
isSearch = true;
nowType = keyword;
SparkAPI *api = new SparkAPI(this);
QString url;
QString theme;
if (isDark)
{
theme = "theme=dark";
}
else
{
theme = "theme=light";
}
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/search?keywords=" + QUrl::toPercentEncoding(keyword) + "&" + theme + "&" + "arch=x86";
#ifdef __aarch64__
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/search?keywords=" + QUrl::toPercentEncoding(keyword) + "&" + theme + "&" + "arch=aarch64";
#endif
ui->webEngineView->setUrl(url);
delete api;
}
AppListPage::~AppListPage()
{
delete ui;
}
void AppListPage::on_webEngineView_urlChanged(const QUrl &arg1)
{
if (arg1.path().right(8) == "app.json")
{
QString url = arg1.toString();
url = url.mid(url.indexOf("/" + SparkAPI::getArchDir() + "/"));
url = "spk:/" + url;
url = url.mid(0, url.indexOf("/app.json"));
qDebug() << "程序跳转链接地址:" << url;
ui->webEngineView->back();
emit clicked(url);
}
}

View File

@@ -9,7 +9,7 @@
#define TMP_PATH "/tmp/spark-store"
#define DEFAULT_SERVER_URL "https://cdn.d.store.deepinos.org.cn/"
#define DEFAULT_CHECK_DOMAIN "deepinos"
bool SettingsPage::needUncompatibleNotification = true;
bool SettingsPage::isdownload = false;
@@ -57,7 +57,10 @@ void SettingsPage::readServerList()
// 创建 QTextStream 对象
QTextStream textStream(&file);
if (!textStream.readAll().contains(DEFAULT_CHECK_DOMAIN)) // 校验配置文件有效性
{
return;
}
textStream.seek(0); // 回到开头
QString lineData = textStream.readLine(); // 读取文件的第一行
ui->comboBox_server->addItem(lineData);

View File

@@ -80,7 +80,8 @@ bool Utils::isWayland()
bool Utils::isTreeLand()
{
bool isTreeLand = false;
if (qgetenv("DDE_CURRENT_COMPOSITOR").toLower() == "treeland") {
if (qgetenv("DDE_CURRENT_COMPOSITER").toLower() == "treeland"
|| qgetenv("DESKTOP_SESSION").toLower() == "treeland") {
isTreeLand = true;
}
@@ -184,18 +185,14 @@ void Utils::setQPAPlatform()
qDebug() << "System Wayland enabled:" << isWayland << "Spark Wayland enabled:" << useWayland;
/**
* NOTE: https://github.com/linuxdeepin/developer-center/issues/7217#issuecomment-1922653903
* DDE Wayland has been deprecated, so using wayland plugin only
*/
if (isWayland && useWayland /*&& !(Dtk::Core::DSysInfo::isDeepin() || isDDE)*/)
if (isWayland && useWayland && !(Dtk::Core::DSysInfo::isDeepin() || isDDE))
{
qputenv("QT_QPA_PLATFORM", "wayland");
}
// else if (isWayland && useWayland && (Dtk::Core::DSysInfo::isDeepin() && isDDE))
// {
// qputenv("QT_QPA_PLATFORM", "dwayland");
// }
else if (isWayland && useWayland && (Dtk::Core::DSysInfo::isDeepin() && isDDE))
{
qputenv("QT_QPA_PLATFORM", "dwayland");
}
else
{
qputenv("QT_QPA_PLATFORM", "dxcb");

View File

@@ -198,7 +198,7 @@ void DownloadItem::slotAsyncInstall(int t)
for (int i = 0; i < everyOut.size(); i++)
{
tempOutput = everyOut[i];
if (tempOutput.contains("OMG-IT-GOES-WRONG"))
if (everyOut[i].left(2) == tempOutput.contains("OMG-IT-GOES-WRONG"))
{
haveError = true;
}

View File

@@ -1,7 +1,5 @@
#!/bin/bash
SPARK_DOWNLOAD_SERVER_URL="https://d.store.deepinos.org.cn/"
SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL="d.store.deepinos.org.cn"
source /opt/durapps/spark-store/bin/bashimport/transhell.amber
load_transhell
@@ -14,10 +12,6 @@ case `arch` in
STORE_URL="aarch64-store"
STORE_LIST_URL="-aarch64"
;;
loongarch64)
STORE_URL="loong64-store"
STORE_LIST_URL="-loong64"
;;
esac
SS_APT_FAST="/opt/durapps/spark-store/bin/apt-fast/ss-apt-fast"
@@ -46,22 +40,22 @@ if [ ! -e "/tmp/aptss-conf/apt-fast.conf" ];then
mkdir -p /tmp/aptss-conf/
echo -e "\e[1;32m${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}\e[0m"
echo
curl --progress-bar -o /tmp/aptss-conf/apt-fast.conf "${SPARK_DOWNLOAD_SERVER_URL}/apt-fast.conf"
curl --progress-bar -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
chmod -R 755 /tmp/aptss-conf
fi
if [ ! -e "/var/lib/aptss/lists/${SPARK_DOWNLOAD_SERVER_URL_NO_PROTOCOL}_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ];then
if [ ! -e "/var/lib/aptss/lists/d.spark-app.store_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ];then
mkdir -p /tmp/aptss-conf/
echo -e "\e[1;32m${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}\e[0m"
echo
curl --silent -o /tmp/aptss-conf/apt-fast.conf "${SPARK_DOWNLOAD_SERVER_URL}/apt-fast.conf"
curl --silent -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
chmod -R 755 /tmp/aptss-conf
curl --silent -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "${SPARK_DOWNLOAD_SERVER_URL}/sparkstore${STORE_LIST_URL}.list"
/usr/bin/apt update -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
curl --silent -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore${STORE_LIST_URL}.list"
apt update -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
#只更新星火源
@@ -98,34 +92,35 @@ elif [ "$1" = "policy" ] || [ "$1" = "search" ];then
###执行
/usr/bin/apt "$@" -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
apt "$@" -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
elif [ "$1" = "ssupdate" ];then
mkdir -p /tmp/aptss-conf/
echo -e "\e[1;32m${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}\e[0m"
echo
curl --silent -o /tmp/aptss-conf/apt-fast.conf "${SPARK_DOWNLOAD_SERVER_URL}/apt-fast.conf"
curl --silent -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
chmod -R 755 /tmp/aptss-conf
curl --silent -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "${SPARK_DOWNLOAD_SERVER_URL}/sparkstore${STORE_LIST_URL}.list"
curl --silent -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore${STORE_LIST_URL}.list"
/usr/bin/apt update -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" -o Dir::Etc::sourcelist="/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list"
apt update -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" -o Dir::Etc::sourcelist="/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list"
#只更新星火源
elif [ "$1" = "update" ];then
echo -e "\e[1;32m${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}\e[0m"
echo
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "${SPARK_DOWNLOAD_SERVER_URL}/sparkstore${STORE_LIST_URL}.list"
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore${STORE_LIST_URL}.list"
mkdir -p /tmp/aptss-conf/
curl --progress-bar -o /tmp/aptss-conf/apt-fast.conf "${SPARK_DOWNLOAD_SERVER_URL}/apt-fast.conf"
curl --progress-bar -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
chmod -R 755 /tmp/aptss-conf
### 额外一份拿来给aptss自动补全用
/usr/bin/apt "$@" -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
apt "$@" -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
else
/usr/bin/apt "$@" -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
apt "$@" -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
fi

View File

@@ -1,13 +1,13 @@
#!/bin/bash
echo "----------------Running Spark DStore Patch----------------"
enumAppInfoList() {
appInfoList=()
apps="/opt/apps"
list=$(ls $apps 2>/dev/null)
list=$(ls $apps)
for appID in $list; do
appInfoList+=("$appID")
done
@@ -26,13 +26,15 @@ linkDir() {
targetDir=$(dirname "$target")
find "$source" -type f | while read sourceFile; do
targetFile="$targetDir/${sourceFile#$sourceDir/}"
if [ -L "$targetFile" ] && [ "$(readlink "$targetFile")" = "$sourceFile" ]; then
continue
else
rm -f "$targetFile"
fi
ensureTargetDir "$targetFile"
sourceFile=$(realpath --relative-to="$(dirname $targetFile)" "$sourceFile" )
if [ ! -e ${targetFile} ];then
ln -sv "$sourceFile" "$targetFile"
fi
ln -s "$sourceFile" "$targetFile"
done
}
@@ -63,66 +65,61 @@ linkApp() {
done
}
function exec_uos_package_link(){
# execute linkApp function for each app and print output
for app in $(enumAppInfoList); do
linkApp "$app" &
if [ "$1" = "--debug" ]; then
echo "Linking for $app"
fi
# remove broken links in /usr/share
done
wait
}
function exec_v23_icon_link(){
# Fix v23 broken icon
if [ ! -d "/usr/share/icons/hicolor/scalable/apps" ];then
mkdir -p /usr/share/icons/hicolor/scalable/apps
if [ "$1" = "--debug" ]; then
echo "Cleaning links and updating databases and caches..."
fi
for icon_root_icon_path in $(ls /usr/share/icons/*.png /usr/share/icons/*.svg 2>/dev/null)
do
target_icon_path=/usr/share/icons/hicolor/scalable/apps/$(basename ${icon_root_icon_path})
if [ ! -e ${target_icon_path} ];then
ln -sv $(realpath --relative-to=/usr/share/icons/hicolor/scalable/apps ${icon_root_icon_path}) /usr/share/icons/hicolor/scalable/apps
fi
done
}
function exec_link_clean(){
# remove broken links in /usr/share
find /usr/share/applications -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/share/icons -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/share/mime/packages -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/share/glib-2.0 -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/share/dbus-1/services -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/share/fcitx -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/share/help -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/share/locale -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/fcitx -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/lib/mozilla/plugins -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/share/polkit-1/actions -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/share/fonts -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /etc/fonts/conf.d -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
}
function exec_uos_package_update(){
if [ "$1" = "--debug" ]; then
find /usr/share/applications -xtype l -delete &
find /usr/share/icons -xtype l -delete &
find /usr/share/mime/packages -xtype l -delete &
find /usr/share/glib-2.0 -xtype l -delete &
find /usr/share/dbus-1/services -xtype l -delete &
find /usr/share/fcitx -xtype l -delete &
find /usr/share/help -xtype l -delete &
find /usr/share/locale -xtype l -delete &
find /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/fcitx -xtype l -delete &
find /usr/lib/mozilla/plugins -xtype l -delete &
find /usr/share/polkit-1/actions -xtype l -delete &
find /usr/share/fonts -xtype l -delete &
find /etc/fonts/conf.d -xtype l -delete &
update-icon-caches /usr/share/icons/* &
update-desktop-database -q &
update-mime-database -V /usr/share/mime &
glib-compile-schemas /usr/share/glib-2.0/schemas/ &
wait
else
find /usr/share/applications -xtype l -delete > /dev/null 2>&1 &
find /usr/share/icons -xtype l -delete > /dev/null 2>&1 &
find /usr/share/mime/packages -xtype l -delete > /dev/null 2>&1 &
find /usr/share/glib-2.0 -xtype l -delete > /dev/null 2>&1 &
find /usr/share/dbus-1/services -xtype l -delete > /dev/null 2>&1 &
find /usr/share/fcitx -xtype l -delete > /dev/null 2>&1 &
find /usr/share/help -xtype l -delete > /dev/null 2>&1 &
find /usr/share/locale -xtype l -delete > /dev/null 2>&1 &
find /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/fcitx -xtype l -delete > /dev/null 2>&1 &
find /usr/lib/mozilla/plugins -xtype l -delete > /dev/null 2>&1 &
find /usr/share/polkit-1/actions -xtype l -delete > /dev/null 2>&1 &
find /usr/share/fonts -xtype l -delete > /dev/null 2>&1 &
find /etc/fonts/conf.d -xtype l -delete > /dev/null 2>&1 &
update-icon-caches /usr/share/icons/* > /dev/null 2>&1 &
update-desktop-database -q > /dev/null 2>&1 &
update-mime-database -V /usr/share/mime > /dev/null 2>&1 &
glib-compile-schemas /usr/share/glib-2.0/schemas/ > /dev/null 2>&1 &
}
#########################################################################################
echo "----------------Running Spark DStore Patch----------------"
if [ ! -e /usr/bin/deepin-app-store-tool ];then
# execute linkApp function for each app and print output
exec_uos_package_link
fi
#exec_v23_icon_link
#exec_link_clean
wait
exec_uos_package_update
echo "----------------Finished----------------"
echo "----------------Finished----------------"

View File

@@ -9,9 +9,6 @@ case `arch` in
aarch64)
STORE_URL="aarch64-store"
;;
loongarch64)
STORE_URL="loong64-store"
;;
esac
if [ -z $1 ] || [ "$2" != "HD70642" ];then

View File

@@ -10,10 +10,6 @@ case $(arch) in
aarch64)
STORE_URL="aarch64-store"
;;
loongarch64)
STORE_URL="loong64-store"
STORE_LIST_URL="-loong64"
;;
esac
echo "Spark Store Install script. 星火商店安装脚本"
@@ -79,17 +75,10 @@ function hash_check() {
echo "Running Spark Package Verify..."
DEB_SHA512SUM=$(sha512sum "$1" | cut -d ' ' -f 1)
unset IS_SHA512SUM_CHECKED
IS_SHA512SUM_CHECKED=$(cat "$PACKAGES_DATA_PATH" | grep "$DEB_SHA512SUM")
}
function lock_file(){
chattr +i "$1"
}
function unlock_file(){
chattr -i "$1"
}
####################################
@@ -100,7 +89,11 @@ if [ $# -eq 0 ]; then
exit
fi
if [ ! -f "$1" ]; then
echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST}"
echo "OMG-IT-GOES-WRONG"
exit 1
fi
if [ "$(id -u)" != "0" ]; then
echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}"
@@ -108,26 +101,7 @@ if [ "$(id -u)" != "0" ]; then
exit 1
fi
if [ ! -f "$1" ]; then
echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST},Trying to redownload"
FILEPATH=$(dirname "$1")
FILENAME=$(basename "$1")
PACKAGE_NAME=$(echo "$FILENAME" | sed -r 's/^([^_]+)_.*$/\1/')
VERSION=$(echo "$FILENAME" | sed -r 's/^[^_]+_([^_]+)_.*$/\1/')
pushd ${FILEPATH}
aptss download ${PACKAGE_NAME}=${VERSION}
popd
if [ ! -f "$1" ]; then
echo "OMG-IT-GOES-WRONG"
exit 1
else
DEBPATH=$(realpath "$1")
fi
else
DEBPATH=$(realpath "$1")
fi
lock_file "$DEBPATH"
DEBPATH=$(realpath "$1")
hash_check "$DEBPATH"
@@ -165,8 +139,6 @@ if [ ! -z "$IS_SHA512SUM_CHECKED" ]; then
dpkg -i "$DEBPATH" || aptss install -yf
unlock_file "$DEBPATH"
if [ "$?" = "0" ] && [ "$2" = "--delete-after-install" ]; then
if dpkg -s "$package_name" >/dev/null 2>&1; then
echo "软件包已安装:$package_name"
@@ -190,3 +162,4 @@ unlock_file "$DEBPATH"
fi
fi
fi

View File

@@ -1,2 +0,0 @@
#!/bin/bash
dpkg -l | grep "^ii" | grep -w "$1" > /dev/null

View File

@@ -1,5 +1,5 @@
#!/bin/bash
trap "rm -f /tmp/spark-store/upgradeStatus.txt" EXIT
source /opt/durapps/spark-store/bin/bashimport/transhell.amber
load_transhell_debug

View File

@@ -4,7 +4,7 @@ TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL="Spark Store APP Upgrade module"
TRANSHELL_CONTENT_CHECK_UPDATE_PROCESS_ERROR_PRESS_CONFIRM_TO_CHECK="Error occured in checking for update! Press Confirm to get the error log (Can be useful when feedback)"
TRANSHELL_CONTENT_I_ALREDY_COPIED_THE_LOG_HERE_AND_WILL_USE_IT_TO_FEEDBACK="I already copied the log in the text box and I will attach it when feeding back. You can find feedback entry in the settings which is located in the top right of the store."
TRANSHELL_CONTENT_FEEDBACK_CAN_BE_FOUND_IN_THE_SETTINGS="Feedback entry in the settings which is located in the top right of the store"
TRANSHELL_CONTENT_NO_NEED_TO_UPGRADE="All APPs are up to date."
TRANSHELL_CONTENT_NO_NEED_TO_UPGRADE="All APPs are up to date.\nBut you are not at the top of the world"
TRANSHELL_CONTENT_CAN_NOT_UPGRADE_FOR_BEING_HOLD="Unable to upgrade: Being marked as hold"
TRANSHELL_CONTENT_CHOOSE_APP_TO_UPGRADE="Choose the app you want to upgrade"
TRANSHELL_CONTENT_CHOOSE="Choose"
@@ -12,7 +12,7 @@ TRANSHELL_CONTENT_APP_NAME="APP name"
TRANSHELL_CONTENT_PKG_NAME="Package Name"
TRANSHELL_CONTENT_NEW_VERSION="New version"
TRANSHELL_CONTENT_UPGRADE_FROM="Upgrade from"
TRANSHELL_CONTENT_NO_APP_IS_CHOSEN="No app is chosen"
TRANSHELL_CONTENT_NO_APP_IS_CHOSEN="No app is chosen\nBut you are not at the top of the world"
TRANSHELL_CONTENT_UPGRADING_PLEASE_WAIT="Upgrading $APP_UPGRADE , please wait..."
TRANSHELL_CONTENT_CHOSEN_APP_UPGRADE_FINISHED="The chosen app is upgraded"
TRANSHELL_CONTENT_APP_UGRADE_PROCESS_ERROR_PRESS_CONFIRM_TO_CHECK="Error occured when upgrading! Press Confirm to get the error log (Can be useful when feedback)"

View File

@@ -4,7 +4,7 @@ TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL="星火商店更新模块"
TRANSHELL_CONTENT_CHECK_UPDATE_PROCESS_ERROR_PRESS_CONFIRM_TO_CHECK="检查更新进程出现错误!按确定查看报错,可用于反馈"
TRANSHELL_CONTENT_I_ALREDY_COPIED_THE_LOG_HERE_AND_WILL_USE_IT_TO_FEEDBACK="我已复制了此文本框中的日志,且将会在反馈时附上。反馈渠道可以在右上角菜单的设置中找到"
TRANSHELL_CONTENT_FEEDBACK_CAN_BE_FOUND_IN_THE_SETTINGS="反馈渠道在商店右上角的设置里"
TRANSHELL_CONTENT_NO_NEED_TO_UPGRADE="没有软件需要更新"
TRANSHELL_CONTENT_NO_NEED_TO_UPGRADE="没有软件需要更新\n但是你并没有站在世界之巅"
TRANSHELL_CONTENT_CAN_NOT_UPGRADE_FOR_BEING_HOLD="(无法更新:已被标记为保留)"
TRANSHELL_CONTENT_CHOOSE_APP_TO_UPGRADE="选择你想更新的应用"
TRANSHELL_CONTENT_CHOOSE="选择"
@@ -12,7 +12,7 @@ TRANSHELL_CONTENT_APP_NAME="应用名"
TRANSHELL_CONTENT_PKG_NAME="包名"
TRANSHELL_CONTENT_NEW_VERSION="新版本"
TRANSHELL_CONTENT_UPGRADE_FROM="从该版本更新"
TRANSHELL_CONTENT_NO_APP_IS_CHOSEN="没有选中任何软件"
TRANSHELL_CONTENT_NO_APP_IS_CHOSEN="没有选中任何软件\n但是你并没有站在世界之巅"
TRANSHELL_CONTENT_UPGRADING_PLEASE_WAIT="正在更新 $APP_UPGRADE ,请稍候..."
TRANSHELL_CONTENT_CHOSEN_APP_UPGRADE_FINISHED="选中的软件已经更新完毕"
TRANSHELL_CONTENT_APP_UGRADE_PROCESS_ERROR_PRESS_CONFIRM_TO_CHECK="更新出现错误!按确定查看报错,可用于反馈"

View File

@@ -4,7 +4,7 @@ TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL="星火商店更新模塊"
TRANSHELL_CONTENT_CHECK_UPDATE_PROCESS_ERROR_PRESS_CONFIRM_TO_CHECK="檢查更新行程出現錯誤! 按確定查看報錯,可用於回報"
TRANSHELL_CONTENT_I_ALREDY_COPIED_THE_LOG_HERE_AND_WILL_USE_IT_TO_FEEDBACK="我已複製了此文字方塊中的日誌,且將會在回報時附上。 迴響通路可以在右上角選單的設定中找到 "
TRANSHELL_CONTENT_FEEDBACK_CAN_BE_FOUND_IN_THE_SETTINGS="回報入口在商店右上角的設定裏"
TRANSHELL_CONTENT_NO_NEED_TO_UPGRADE="沒有軟體需要更新"
TRANSHELL_CONTENT_NO_NEED_TO_UPGRADE="沒有軟體需要更新\n但是你並沒有站在世界之巔"
TRANSHELL_CONTENT_CAN_NOT_UPGRADE_FOR_BEING_HOLD="(无法更新:已被标记为保留)"
TRANSHELL_CONTENT_CHOOSE_APP_TO_UPGRADE="选择你想更新的应用"
TRANSHELL_CONTENT_CHOOSE="选择"
@@ -12,7 +12,7 @@ TRANSHELL_CONTENT_APP_NAME="应用名"
TRANSHELL_CONTENT_PKG_NAME="包名"
TRANSHELL_CONTENT_NEW_VERSION="新版本"
TRANSHELL_CONTENT_UPGRADE_FROM="从该版本更新"
TRANSHELL_CONTENT_NO_APP_IS_CHOSEN="没有选中任何軟體"
TRANSHELL_CONTENT_NO_APP_IS_CHOSEN="没有选中任何軟體\n但是你並沒有站在世界之巔"
TRANSHELL_CONTENT_UPGRADING_PLEASE_WAIT="正在更新 $APP_UPGRADE ,请稍候..."
TRANSHELL_CONTENT_CHOSEN_APP_UPGRADE_FINISHED="选中的軟體已经更新完毕"
TRANSHELL_CONTENT_APP_UGRADE_PROCESS_ERROR_PRESS_CONFIRM_TO_CHECK="更新出现错误!按确定查看报错,可用于反馈"

View File

@@ -126,10 +126,9 @@
</message>
<message>
<location filename="../src/pages/appintopage.ui" line="244"/>
<location filename="../src/pages/appintopage.cpp" line="192"/>
<location filename="../src/pages/appintopage.cpp" line="330"/>
<location filename="../src/pages/appintopage.cpp" line="364"/>
<location filename="../src/pages/appintopage.cpp" line="518"/>
<location filename="../src/pages/appintopage.cpp" line="190"/>
<location filename="../src/pages/appintopage.cpp" line="328"/>
<location filename="../src/pages/appintopage.cpp" line="498"/>
<source>Download and Install</source>
<translation type="unfinished"></translation>
</message>
@@ -176,79 +175,79 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="53"/>
<location filename="../src/pages/appintopage.cpp" line="56"/>
<source>Click Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="126"/>
<location filename="../src/pages/appintopage.cpp" line="129"/>
<source>Developer Mode Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="177"/>
<location filename="../src/pages/appintopage.cpp" line="357"/>
<location filename="../src/pages/appintopage.cpp" line="490"/>
<location filename="../src/pages/appintopage.cpp" line="175"/>
<location filename="../src/pages/appintopage.cpp" line="344"/>
<location filename="../src/pages/appintopage.cpp" line="471"/>
<source>Reinstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="184"/>
<location filename="../src/pages/appintopage.cpp" line="182"/>
<source>Upgrade</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="335"/>
<location filename="../src/pages/appintopage.cpp" line="466"/>
<location filename="../src/pages/appintopage.cpp" line="333"/>
<location filename="../src/pages/appintopage.cpp" line="447"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="340"/>
<location filename="../src/pages/appintopage.cpp" line="338"/>
<source>Installing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="445"/>
<location filename="../src/pages/appintopage.cpp" line="449"/>
<location filename="../src/pages/appintopage.cpp" line="453"/>
<location filename="../src/pages/appintopage.cpp" line="457"/>
<location filename="../src/pages/appintopage.cpp" line="426"/>
<location filename="../src/pages/appintopage.cpp" line="430"/>
<location filename="../src/pages/appintopage.cpp" line="434"/>
<location filename="../src/pages/appintopage.cpp" line="438"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="445"/>
<source>The current application does not support or tested on deepin, there may be problems</source>
<location filename="../src/pages/appintopage.cpp" line="426"/>
<source>The current application does not support deepin, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="449"/>
<source>The current application does not support or tested on UOS, there may be problems</source>
<location filename="../src/pages/appintopage.cpp" line="430"/>
<source>The current application does not support UOS, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="453"/>
<source>The current application does not support or tested on Ubuntu, there may be problems</source>
<location filename="../src/pages/appintopage.cpp" line="434"/>
<source>The current application does not support Ubuntu, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="457"/>
<source>The current application does not support or tested on current platform, there may be problems</source>
<location filename="../src/pages/appintopage.cpp" line="438"/>
<source>The current application does not support current platform, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="521"/>
<location filename="../src/pages/appintopage.cpp" line="536"/>
<location filename="../src/pages/appintopage.cpp" line="502"/>
<location filename="../src/pages/appintopage.cpp" line="515"/>
<source>Spark Store</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="521"/>
<location filename="../src/pages/appintopage.cpp" line="502"/>
<source>Uninstall succeeded</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="536"/>
<location filename="../src/pages/appintopage.cpp" line="515"/>
<source>The URL has been copied to the clipboard</source>
<translation type="unfinished"></translation>
</message>
@@ -282,7 +281,7 @@
<context>
<name>DownloadController</name>
<message>
<location filename="../src/backend/downloadworker.cpp" line="180"/>
<location filename="../src/backend/downloadworker.cpp" line="176"/>
<source>Download Failed, please retry :(</source>
<translation type="unfinished"></translation>
</message>
@@ -640,17 +639,17 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="214"/>
<location filename="../src/pages/settingspage.cpp" line="217"/>
<source>Updating, please wait...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="236"/>
<location filename="../src/pages/settingspage.cpp" line="239"/>
<source>Spark Store</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="236"/>
<location filename="../src/pages/settingspage.cpp" line="239"/>
<source>Temporary cache was cleaned</source>
<translation type="unfinished"></translation>
</message>

View File

@@ -126,10 +126,9 @@
</message>
<message>
<location filename="../src/pages/appintopage.ui" line="244"/>
<location filename="../src/pages/appintopage.cpp" line="192"/>
<location filename="../src/pages/appintopage.cpp" line="330"/>
<location filename="../src/pages/appintopage.cpp" line="364"/>
<location filename="../src/pages/appintopage.cpp" line="518"/>
<location filename="../src/pages/appintopage.cpp" line="190"/>
<location filename="../src/pages/appintopage.cpp" line="328"/>
<location filename="../src/pages/appintopage.cpp" line="498"/>
<source>Download and Install</source>
<translation>Descargar e instalar</translation>
</message>
@@ -176,95 +175,79 @@
<translation>Sitio web</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="53"/>
<location filename="../src/pages/appintopage.cpp" line="56"/>
<source>Click Open</source>
<translation>Haga clic en &quot;abrir&quot;</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="126"/>
<location filename="../src/pages/appintopage.cpp" line="129"/>
<source>Developer Mode Disabled</source>
<translation>Se ha desactivado el modo desarrollador</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="177"/>
<location filename="../src/pages/appintopage.cpp" line="357"/>
<location filename="../src/pages/appintopage.cpp" line="490"/>
<location filename="../src/pages/appintopage.cpp" line="175"/>
<location filename="../src/pages/appintopage.cpp" line="344"/>
<location filename="../src/pages/appintopage.cpp" line="471"/>
<source>Reinstall</source>
<translation>Reinstalación</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="184"/>
<location filename="../src/pages/appintopage.cpp" line="182"/>
<source>Upgrade</source>
<translation>Actualización</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="335"/>
<location filename="../src/pages/appintopage.cpp" line="466"/>
<location filename="../src/pages/appintopage.cpp" line="333"/>
<location filename="../src/pages/appintopage.cpp" line="447"/>
<source>Install</source>
<translation>Instalación</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="340"/>
<location filename="../src/pages/appintopage.cpp" line="338"/>
<source>Installing</source>
<translation>Se está instalando</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="445"/>
<location filename="../src/pages/appintopage.cpp" line="449"/>
<location filename="../src/pages/appintopage.cpp" line="453"/>
<location filename="../src/pages/appintopage.cpp" line="457"/>
<location filename="../src/pages/appintopage.cpp" line="426"/>
<location filename="../src/pages/appintopage.cpp" line="430"/>
<location filename="../src/pages/appintopage.cpp" line="434"/>
<location filename="../src/pages/appintopage.cpp" line="438"/>
<source>Warning</source>
<translation>Aviso</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="445"/>
<source>The current application does not support or tested on deepin, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="449"/>
<source>The current application does not support or tested on UOS, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="453"/>
<source>The current application does not support or tested on Ubuntu, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="457"/>
<source>The current application does not support or tested on current platform, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="426"/>
<source>The current application does not support deepin, there may be problems</source>
<translation type="vanished">La aplicación actual no admite deepin, puede haber problemas</translation>
<translation>La aplicación actual no admite deepin, puede haber problemas</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="430"/>
<source>The current application does not support UOS, there may be problems</source>
<translation type="vanished">La aplicación actual no admite uos, puede haber problemas</translation>
<translation>La aplicación actual no admite uos, puede haber problemas</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="434"/>
<source>The current application does not support Ubuntu, there may be problems</source>
<translation type="vanished">La aplicación actual no admite ubuntu, puede haber problemas</translation>
<translation>La aplicación actual no admite ubuntu, puede haber problemas</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="438"/>
<source>The current application does not support current platform, there may be problems</source>
<translation type="vanished">La aplicación actual no admite la Plataforma actual, puede haber problemas</translation>
<translation>La aplicación actual no admite la Plataforma actual, puede haber problemas</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="521"/>
<location filename="../src/pages/appintopage.cpp" line="536"/>
<location filename="../src/pages/appintopage.cpp" line="502"/>
<location filename="../src/pages/appintopage.cpp" line="515"/>
<source>Spark Store</source>
<translation>SPARK Store</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="521"/>
<location filename="../src/pages/appintopage.cpp" line="502"/>
<source>Uninstall succeeded</source>
<translation>Desinstalación exitosa</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="536"/>
<location filename="../src/pages/appintopage.cpp" line="515"/>
<source>The URL has been copied to the clipboard</source>
<translation>La URL ha sido copiada al portapapeles</translation>
</message>
@@ -298,7 +281,7 @@
<context>
<name>DownloadController</name>
<message>
<location filename="../src/backend/downloadworker.cpp" line="180"/>
<location filename="../src/backend/downloadworker.cpp" line="176"/>
<source>Download Failed, please retry :(</source>
<translation>Descarga fall, por favor vuelva a intentarlo</translation>
</message>
@@ -656,17 +639,17 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="214"/>
<location filename="../src/pages/settingspage.cpp" line="217"/>
<source>Updating, please wait...</source>
<translation>Se está actualizando, por favor Espere...</translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="236"/>
<location filename="../src/pages/settingspage.cpp" line="239"/>
<source>Spark Store</source>
<translation>SPARK Store</translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="236"/>
<location filename="../src/pages/settingspage.cpp" line="239"/>
<source>Temporary cache was cleaned</source>
<translation>Se ha limpiado la caché temporal</translation>
</message>

View File

@@ -126,10 +126,9 @@
</message>
<message>
<location filename="../src/pages/appintopage.ui" line="244"/>
<location filename="../src/pages/appintopage.cpp" line="192"/>
<location filename="../src/pages/appintopage.cpp" line="330"/>
<location filename="../src/pages/appintopage.cpp" line="364"/>
<location filename="../src/pages/appintopage.cpp" line="518"/>
<location filename="../src/pages/appintopage.cpp" line="190"/>
<location filename="../src/pages/appintopage.cpp" line="328"/>
<location filename="../src/pages/appintopage.cpp" line="498"/>
<source>Download and Install</source>
<translation>Télécharger et installer</translation>
</message>
@@ -176,95 +175,79 @@
<translation>Site Web</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="53"/>
<location filename="../src/pages/appintopage.cpp" line="56"/>
<source>Click Open</source>
<translation>Cliquez sur Ouvrir</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="126"/>
<location filename="../src/pages/appintopage.cpp" line="129"/>
<source>Developer Mode Disabled</source>
<translation>Mode développeur désactivé</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="177"/>
<location filename="../src/pages/appintopage.cpp" line="357"/>
<location filename="../src/pages/appintopage.cpp" line="490"/>
<location filename="../src/pages/appintopage.cpp" line="175"/>
<location filename="../src/pages/appintopage.cpp" line="344"/>
<location filename="../src/pages/appintopage.cpp" line="471"/>
<source>Reinstall</source>
<translation>Réinstaller</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="184"/>
<location filename="../src/pages/appintopage.cpp" line="182"/>
<source>Upgrade</source>
<translation>Mise à niveau</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="335"/>
<location filename="../src/pages/appintopage.cpp" line="466"/>
<location filename="../src/pages/appintopage.cpp" line="333"/>
<location filename="../src/pages/appintopage.cpp" line="447"/>
<source>Install</source>
<translation>Installation</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="340"/>
<location filename="../src/pages/appintopage.cpp" line="338"/>
<source>Installing</source>
<translation>Installation en cours</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="445"/>
<location filename="../src/pages/appintopage.cpp" line="449"/>
<location filename="../src/pages/appintopage.cpp" line="453"/>
<location filename="../src/pages/appintopage.cpp" line="457"/>
<location filename="../src/pages/appintopage.cpp" line="426"/>
<location filename="../src/pages/appintopage.cpp" line="430"/>
<location filename="../src/pages/appintopage.cpp" line="434"/>
<location filename="../src/pages/appintopage.cpp" line="438"/>
<source>Warning</source>
<translation>Avertissement</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="445"/>
<source>The current application does not support or tested on deepin, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="449"/>
<source>The current application does not support or tested on UOS, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="453"/>
<source>The current application does not support or tested on Ubuntu, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="457"/>
<source>The current application does not support or tested on current platform, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="426"/>
<source>The current application does not support deepin, there may be problems</source>
<translation type="vanished">L&apos;application actuelle ne supporte pas deepin, il peut y avoir un problème</translation>
<translation>L&apos;application actuelle ne supporte pas deepin, il peut y avoir un problème</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="430"/>
<source>The current application does not support UOS, there may be problems</source>
<translation type="vanished">L&apos;application actuelle ne prend pas en charge uos, il peut y avoir un problème</translation>
<translation>L&apos;application actuelle ne prend pas en charge uos, il peut y avoir un problème</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="434"/>
<source>The current application does not support Ubuntu, there may be problems</source>
<translation type="vanished">L&apos;application actuelle ne supporte pas Ubuntu, il peut y avoir un problème</translation>
<translation>L&apos;application actuelle ne supporte pas Ubuntu, il peut y avoir un problème</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="438"/>
<source>The current application does not support current platform, there may be problems</source>
<translation type="vanished">L&apos;application actuelle ne prend pas en charge la plate - forme actuelle, il peut y avoir un problème</translation>
<translation>L&apos;application actuelle ne prend pas en charge la plate - forme actuelle, il peut y avoir un problème</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="521"/>
<location filename="../src/pages/appintopage.cpp" line="536"/>
<location filename="../src/pages/appintopage.cpp" line="502"/>
<location filename="../src/pages/appintopage.cpp" line="515"/>
<source>Spark Store</source>
<translation>Le Spark store</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="521"/>
<location filename="../src/pages/appintopage.cpp" line="502"/>
<source>Uninstall succeeded</source>
<translation>Désinstallation réussie</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="536"/>
<location filename="../src/pages/appintopage.cpp" line="515"/>
<source>The URL has been copied to the clipboard</source>
<translation>L&apos;URL a é copiée dans le presse - papiers</translation>
</message>
@@ -298,7 +281,7 @@
<context>
<name>DownloadController</name>
<message>
<location filename="../src/backend/downloadworker.cpp" line="180"/>
<location filename="../src/backend/downloadworker.cpp" line="176"/>
<source>Download Failed, please retry :(</source>
<translation>Le téléchargement a échoué, veuillez réessayer</translation>
</message>
@@ -656,17 +639,17 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="214"/>
<location filename="../src/pages/settingspage.cpp" line="217"/>
<source>Updating, please wait...</source>
<translation>Mise à jour en cours, veuillez patienter...</translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="236"/>
<location filename="../src/pages/settingspage.cpp" line="239"/>
<source>Spark Store</source>
<translation>Le Spark store</translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="236"/>
<location filename="../src/pages/settingspage.cpp" line="239"/>
<source>Temporary cache was cleaned</source>
<translation>Cache temporaire nettoyé</translation>
</message>

View File

@@ -121,10 +121,9 @@
</message>
<message>
<location filename="../src/pages/appintopage.ui" line="244"/>
<location filename="../src/pages/appintopage.cpp" line="192"/>
<location filename="../src/pages/appintopage.cpp" line="330"/>
<location filename="../src/pages/appintopage.cpp" line="364"/>
<location filename="../src/pages/appintopage.cpp" line="518"/>
<location filename="../src/pages/appintopage.cpp" line="190"/>
<location filename="../src/pages/appintopage.cpp" line="328"/>
<location filename="../src/pages/appintopage.cpp" line="498"/>
<source>Download and Install</source>
<translation></translation>
</message>
@@ -176,95 +175,79 @@
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="53"/>
<location filename="../src/pages/appintopage.cpp" line="56"/>
<source>Click Open</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="126"/>
<location filename="../src/pages/appintopage.cpp" line="129"/>
<source>Developer Mode Disabled</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="177"/>
<location filename="../src/pages/appintopage.cpp" line="357"/>
<location filename="../src/pages/appintopage.cpp" line="490"/>
<location filename="../src/pages/appintopage.cpp" line="175"/>
<location filename="../src/pages/appintopage.cpp" line="344"/>
<location filename="../src/pages/appintopage.cpp" line="471"/>
<source>Reinstall</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="184"/>
<location filename="../src/pages/appintopage.cpp" line="182"/>
<source>Upgrade</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="335"/>
<location filename="../src/pages/appintopage.cpp" line="466"/>
<location filename="../src/pages/appintopage.cpp" line="333"/>
<location filename="../src/pages/appintopage.cpp" line="447"/>
<source>Install</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="340"/>
<location filename="../src/pages/appintopage.cpp" line="338"/>
<source>Installing</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="445"/>
<location filename="../src/pages/appintopage.cpp" line="449"/>
<location filename="../src/pages/appintopage.cpp" line="453"/>
<location filename="../src/pages/appintopage.cpp" line="457"/>
<location filename="../src/pages/appintopage.cpp" line="426"/>
<location filename="../src/pages/appintopage.cpp" line="430"/>
<location filename="../src/pages/appintopage.cpp" line="434"/>
<location filename="../src/pages/appintopage.cpp" line="438"/>
<source>Warning</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="445"/>
<source>The current application does not support or tested on deepin, there may be problems</source>
<translation>deepin上测试过</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="449"/>
<source>The current application does not support or tested on UOS, there may be problems</source>
<translation>UOS上测试过</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="453"/>
<source>The current application does not support or tested on Ubuntu, there may be problems</source>
<translation>Ubuntu上测试过</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="457"/>
<source>The current application does not support or tested on current platform, there may be problems</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="426"/>
<source>The current application does not support deepin, there may be problems</source>
<translation type="vanished">deepin</translation>
<translation>deepin</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="430"/>
<source>The current application does not support UOS, there may be problems</source>
<translation type="vanished">UOS</translation>
<translation>UOS</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="434"/>
<source>The current application does not support Ubuntu, there may be problems</source>
<translation type="vanished">Ubuntu</translation>
<translation>Ubuntu</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="438"/>
<source>The current application does not support current platform, there may be problems</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="521"/>
<location filename="../src/pages/appintopage.cpp" line="536"/>
<location filename="../src/pages/appintopage.cpp" line="502"/>
<location filename="../src/pages/appintopage.cpp" line="515"/>
<source>Spark Store</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="521"/>
<location filename="../src/pages/appintopage.cpp" line="502"/>
<source>Uninstall succeeded</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="536"/>
<location filename="../src/pages/appintopage.cpp" line="515"/>
<source>The URL has been copied to the clipboard</source>
<translation></translation>
</message>
@@ -298,7 +281,7 @@
<context>
<name>DownloadController</name>
<message>
<location filename="../src/backend/downloadworker.cpp" line="180"/>
<location filename="../src/backend/downloadworker.cpp" line="176"/>
<source>Download Failed, please retry :(</source>
<translation></translation>
</message>
@@ -656,17 +639,17 @@
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;使使&lt;/p&gt;&lt;p&gt;Spark&lt;/p&gt;&lt;p&gt;使SparkSpark Community&lt;/p&gt;&lt;p&gt;Spark CommunitySpark CommunitySpark使Spark StoreGPL v3&lt;span style=&quot; font - family:;&quot; &lt;span style=&quot; font - family:;color:#0082fa;&quot;&gt;jifengshenmo@outlook.com&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/span&gt;&lt;a href=&quot;https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0082fa;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="214"/>
<location filename="../src/pages/settingspage.cpp" line="217"/>
<source>Updating, please wait...</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="236"/>
<location filename="../src/pages/settingspage.cpp" line="239"/>
<source>Spark Store</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="236"/>
<location filename="../src/pages/settingspage.cpp" line="239"/>
<source>Temporary cache was cleaned</source>
<translation></translation>
</message>

View File

@@ -121,10 +121,9 @@
</message>
<message>
<location filename="../src/pages/appintopage.ui" line="244"/>
<location filename="../src/pages/appintopage.cpp" line="192"/>
<location filename="../src/pages/appintopage.cpp" line="330"/>
<location filename="../src/pages/appintopage.cpp" line="364"/>
<location filename="../src/pages/appintopage.cpp" line="518"/>
<location filename="../src/pages/appintopage.cpp" line="190"/>
<location filename="../src/pages/appintopage.cpp" line="328"/>
<location filename="../src/pages/appintopage.cpp" line="498"/>
<source>Download and Install</source>
<translation></translation>
</message>
@@ -176,79 +175,79 @@
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="53"/>
<location filename="../src/pages/appintopage.cpp" line="56"/>
<source>Click Open</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="126"/>
<location filename="../src/pages/appintopage.cpp" line="129"/>
<source>Developer Mode Disabled</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="177"/>
<location filename="../src/pages/appintopage.cpp" line="357"/>
<location filename="../src/pages/appintopage.cpp" line="490"/>
<location filename="../src/pages/appintopage.cpp" line="175"/>
<location filename="../src/pages/appintopage.cpp" line="344"/>
<location filename="../src/pages/appintopage.cpp" line="471"/>
<source>Reinstall</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="184"/>
<location filename="../src/pages/appintopage.cpp" line="182"/>
<source>Upgrade</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="335"/>
<location filename="../src/pages/appintopage.cpp" line="466"/>
<location filename="../src/pages/appintopage.cpp" line="333"/>
<location filename="../src/pages/appintopage.cpp" line="447"/>
<source>Install</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="340"/>
<location filename="../src/pages/appintopage.cpp" line="338"/>
<source>Installing</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="445"/>
<location filename="../src/pages/appintopage.cpp" line="449"/>
<location filename="../src/pages/appintopage.cpp" line="453"/>
<location filename="../src/pages/appintopage.cpp" line="457"/>
<location filename="../src/pages/appintopage.cpp" line="426"/>
<location filename="../src/pages/appintopage.cpp" line="430"/>
<location filename="../src/pages/appintopage.cpp" line="434"/>
<location filename="../src/pages/appintopage.cpp" line="438"/>
<source>Warning</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="445"/>
<source>The current application does not support or tested on deepin, there may be problems</source>
<translation type="unfinished"></translation>
<location filename="../src/pages/appintopage.cpp" line="426"/>
<source>The current application does not support deepin, there may be problems</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="449"/>
<source>The current application does not support or tested on UOS, there may be problems</source>
<translation type="unfinished"></translation>
<location filename="../src/pages/appintopage.cpp" line="430"/>
<source>The current application does not support UOS, there may be problems</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="453"/>
<source>The current application does not support or tested on Ubuntu, there may be problems</source>
<translation type="unfinished"></translation>
<location filename="../src/pages/appintopage.cpp" line="434"/>
<source>The current application does not support Ubuntu, there may be problems</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="457"/>
<source>The current application does not support or tested on current platform, there may be problems</source>
<translation type="unfinished"></translation>
<location filename="../src/pages/appintopage.cpp" line="438"/>
<source>The current application does not support current platform, there may be problems</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="521"/>
<location filename="../src/pages/appintopage.cpp" line="536"/>
<location filename="../src/pages/appintopage.cpp" line="502"/>
<location filename="../src/pages/appintopage.cpp" line="515"/>
<source>Spark Store</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="521"/>
<location filename="../src/pages/appintopage.cpp" line="502"/>
<source>Uninstall succeeded</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="536"/>
<location filename="../src/pages/appintopage.cpp" line="515"/>
<source>The URL has been copied to the clipboard</source>
<translation></translation>
</message>
@@ -282,7 +281,7 @@
<context>
<name>DownloadController</name>
<message>
<location filename="../src/backend/downloadworker.cpp" line="180"/>
<location filename="../src/backend/downloadworker.cpp" line="176"/>
<source>Download Failed, please retry :(</source>
<translation></translation>
</message>
@@ -640,17 +639,17 @@
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;使使&lt;/p&gt;&lt;p&gt;Spark&lt;/p&gt;&lt;p&gt;使SparkSpark Community&lt;/p&gt;&lt;p&gt;Spark CommunitySpark CommunitySpark使Spark StoreGPL v3&lt;span style=&quot; font - family:;&quot; &lt;span style=&quot; font - family:;color:#0082fa;&quot;&gt;jifengshenmo@outlook.com&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/span&gt;&lt;a href=&quot;https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0082fa;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="214"/>
<location filename="../src/pages/settingspage.cpp" line="217"/>
<source>Updating, please wait...</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="236"/>
<location filename="../src/pages/settingspage.cpp" line="239"/>
<source>Spark Store</source>
<translation></translation>
</message>
<message>
<location filename="../src/pages/settingspage.cpp" line="236"/>
<location filename="../src/pages/settingspage.cpp" line="239"/>
<source>Temporary cache was cleaned</source>
<translation></translation>
</message>