mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-09-19 01:22:20 +08:00
commit
62f52451b7
1
.gitignore
vendored
1
.gitignore
vendored
@ -52,3 +52,4 @@ debian/files
|
||||
debian/*.substvars
|
||||
debian/spark-store
|
||||
|
||||
.vscode/*
|
||||
|
46
.workflow/pipeline-dtk-build-aarch64.yml
Normal file
46
.workflow/pipeline-dtk-build-aarch64.yml
Normal file
@ -0,0 +1,46 @@
|
||||
version: '1.0'
|
||||
name: pipeline-dtk-build-aarch64
|
||||
displayName: dtk-build-aarch64
|
||||
triggers:
|
||||
trigger: manual
|
||||
push:
|
||||
tags:
|
||||
prefix:
|
||||
- ''
|
||||
stages:
|
||||
- name: stage-2c12cce1
|
||||
displayName: 编译
|
||||
strategy: naturally
|
||||
trigger: auto
|
||||
executor: []
|
||||
steps:
|
||||
- step: execute@docker
|
||||
name: execute_by_docker
|
||||
displayName: 基于镜像的脚本执行
|
||||
certificate: ''
|
||||
image: docker.io/debian:buster
|
||||
command:
|
||||
- '# 请在此输入您想执行的脚本'
|
||||
- sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
|
||||
- apt update
|
||||
- export DEBIAN_FRONTEND=noninteractive
|
||||
- echo "安装wget qemu-user-static"
|
||||
- apt install wget qemu-user-static xz-utils -y
|
||||
- mkdir ../spark-store-git
|
||||
- mv * ../spark-store-git
|
||||
- wget https://code.gitlink.org.cn/shenmo7192/debian-container-aarch64/raw/branch/master/DEBIANARM.tar.xz
|
||||
- tar -xf DEBIANARM.tar.xz
|
||||
- mkdir -p DEBIAN/root/build-spark
|
||||
- mv ../spark-store-git DEBIAN/root/build-spark/spark-store
|
||||
- wget https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/spark-build-aarch64.sh && mv spark-build-aarch64.sh DEBIAN/root
|
||||
- mv /usr/bin/qemu-aarch64-static DEBIAN/
|
||||
- chroot DEBIAN /qemu-aarch64-static /bin/bash /root/spark-build-aarch64.sh
|
||||
- ''
|
||||
- ''
|
||||
artifacts:
|
||||
- name: BUILD_ARTIFACT
|
||||
path:
|
||||
- ./DEBIAN/root/build-spark/target
|
||||
notify: []
|
||||
strategy:
|
||||
retry: '0'
|
13
README.md
13
README.md
@ -1,6 +1,13 @@
|
||||
# Spark App Store
|
||||
[](https://gitee.com/deepin-community-store/spark-store/stargazers) [](https://gitee.com/deepin-community-store/spark-store/members)
|
||||
|
||||
## Branch: Flamescion
|
||||
|
||||
This branch is the main branch of Spark Store
|
||||
|
||||
---
|
||||
## You are informed that the aarch64 support is EXPERIMENTAL and there is NO GUARANTEE that this branch will be supported in the future
|
||||
|
||||
Spark Store aims to collect Linux apps for the convieniece of Linux new comers
|
||||
|
||||
The collecting process needs everyone's help
|
||||
@ -36,13 +43,13 @@ If you are using Debian11/Ubuntu 20.04, you will need extra dependency package.
|
||||
For Deepin V20/UOS 21/ Debian 11
|
||||
|
||||
```shell
|
||||
sudo apt install git qt5-default debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev fakeroot qtwayland5 qtwayland5-dev-tools dde-qt5wayland-plugin
|
||||
sudo apt install git qt5-default debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev fakeroot qtwayland5 qtwayland5-dev-tools dde-qt5wayland-plugin libqt5svg5*
|
||||
|
||||
```
|
||||
|
||||
Ubuntu 22.04
|
||||
```shell
|
||||
sudo apt install git qtbase5-dev debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev qtwayland5 qtwayland5-dev-tools
|
||||
sudo apt install git qtbase5-dev debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev qtwayland5 qtwayland5-dev-tools libqt5svg5*
|
||||
|
||||
```
|
||||
|
||||
@ -77,4 +84,4 @@ PWA Client:
|
||||
|
||||
spk://store/chat/store.spark-app.feedback
|
||||
|
||||
(Copy and paste to search bar or in browser address bar after installing Spark Store)
|
||||
(Copy and paste to search bar or in browser address bar after installing Spark Store)
|
||||
|
@ -1,6 +1,13 @@
|
||||
# 星火应用商店
|
||||
[](https://gitee.com/deepin-community-store/spark-store/stargazers) [](https://gitee.com/deepin-community-store/spark-store/members)
|
||||
|
||||
## 分支:火穗
|
||||
|
||||
此分支是星火应用商店的主分支
|
||||
|
||||
---
|
||||
## 请注意,aarch64的支持是实验性的,并未确认持续支持!
|
||||
|
||||
众所周知,国内的Linux应用比较少,wine应用难以获取,优质工具分散在民间各大论坛,无法形成合力,难以改善生态
|
||||
|
||||
生态构建需要的不是某一方的单打独斗,而是人人行动起来,汇聚星火,产生燎原之势
|
||||
@ -71,4 +78,4 @@ https://chat.shenmo.tech/
|
||||
|
||||
spk://store/chat/store.spark-app.feedback
|
||||
|
||||
(安装星火商店后在浏览器打开或复制到搜索栏打开)
|
||||
(安装星火商店后在浏览器打开或复制到搜索栏打开)
|
||||
|
@ -18,7 +18,7 @@ echo "sudo apt install git qt5-default debhelper pkg-config qtchooser libqt5core
|
||||
echo "Ubuntu 22.04 系统下, 安装依赖"
|
||||
echo "sudo apt install git qtbase5-dev debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev qtwayland5 qtwayland5-dev-tools"
|
||||
|
||||
dpkg-buildpackage -j
|
||||
dpkg-buildpackage -j$(cat /proc/cpuinfo | grep processor | wc -l)
|
||||
sudo apt reinstall ../spark-store_*.deb
|
||||
|
||||
rm ../spark-store_*
|
72
debian/changelog
vendored
72
debian/changelog
vendored
@ -1,3 +1,75 @@
|
||||
spark-store (4.2.4) stable; urgency=medium
|
||||
* 修复:ssinstall校验失败的时候仍然提示安装成功
|
||||
* 新增:ssinstall可以自动刷新ssupdate以防止仓库更新中导致的安装校验失败
|
||||
* 修复:在不受支持的平台安装应用时弹出提示不正确
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
|
||||
spark-store (4.2.3.3) stable; urgency=medium
|
||||
* aptss 不再使用bwrap,去除依赖,支持容器中启动
|
||||
* aptss 支持非root模式启动
|
||||
* aptss 添加transhell支持
|
||||
* 关于界面自动获取分支名称
|
||||
* 现在安装成功则自动删除安装包
|
||||
* 完成 arm 架构大部分功能适配
|
||||
* 修复依赖不完整的问题
|
||||
* 4.3 roadmap 实现,在浏览不支持的应用时会出现提示
|
||||
* 4.3 roadmap 实现,在下载文件夹没有读写权限时会出现提示
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
|
||||
|
||||
spark-store (4.2.3.2~Reason10) stable; urgency=medium
|
||||
* 完成除web外大部分功能适配
|
||||
* 修复依赖不完整的问题
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
|
||||
|
||||
spark-store (4.2.3.2~Reason9) stable; urgency=medium
|
||||
* sender-d.sh
|
||||
* ssinstall和ssaudit的安装测试转到upgrade-worker
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
|
||||
|
||||
spark-store (4.2.3.2~Reason8) stable; urgency=medium
|
||||
* sender-d改用cpp重写,在aarch64上稳定运行
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
|
||||
|
||||
spark-store (4.2.3.2~Reason7) stable; urgency=medium
|
||||
* ssinstall发现无法验证时尝试update而不是ssupdate
|
||||
* 启动每日aptss update
|
||||
* ssinstall在发现无法安装后尝试先进行下aptss update
|
||||
* 修复:安装商店后首次启动无法安装任何软件
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
|
||||
|
||||
spark-store (4.2.3.2~Reason5) stable; urgency=medium
|
||||
* aptss 不再使用bwrap,去除依赖,支持容器中启动
|
||||
* aptss 支持非root模式启动
|
||||
* aptss 添加transhell支持
|
||||
* 关于界面自动获取分支名称
|
||||
* 现在安装成功则自动删除安装包
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
spark-store (4.2.3.2~Reason3) stable; urgency=medium
|
||||
* 现在可在x86上编译,使用同一套代码
|
||||
* 暂时在aarch64上使用旧web----等待柚子
|
||||
* 空间,疾疫,现在是静谧
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
spark-store (4.2.3.2~only-for-test1) stable; urgency=medium
|
||||
* 注意!!!!!! 此版本仅为启动测试,还需要进一步完善——hardcode需要改善——关于web界面的调用方式需要在柚子做好之后修改成新的
|
||||
* fix: hardcode
|
||||
* fix: sender-d
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
spark-store (4.2.3.1) stable; urgency=medium
|
||||
* 修复: ssinstall验证签名出错
|
||||
|
||||
|
5
debian/control
vendored
5
debian/control
vendored
@ -39,10 +39,11 @@ Depends:${shlibs:Depends}, ${misc:Depends},
|
||||
curl,
|
||||
openssl,
|
||||
dde-qt5integration,
|
||||
bubblewrap,
|
||||
aria2,
|
||||
gcc,
|
||||
zenity,
|
||||
libc6-dev
|
||||
libc6-dev,
|
||||
policykit-1,
|
||||
libnotify-bin
|
||||
Description: Spark Store
|
||||
A community powered app store, based on DTK.
|
||||
|
2
debian/rules
vendored
2
debian/rules
vendored
@ -30,7 +30,9 @@ override_dh_auto_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
|
||||
|
||||
|
21
debian/spark-store.postinst
vendored
21
debian/spark-store.postinst
vendored
@ -2,13 +2,20 @@
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
# Enable i386 arch
|
||||
|
||||
case `arch` in
|
||||
x86_64)
|
||||
echo "Enabling i386 arch..."
|
||||
dpkg --add-architecture i386
|
||||
;;
|
||||
*)
|
||||
echo "Not amd64, skip enable i386 arch"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
mkdir -p /var/lib/aptss/lists
|
||||
|
||||
# config for aptss
|
||||
mkdir -p /etc/aptss/sources.list.d
|
||||
ln -s -f /etc/apt/sources.list /etc/aptss/sources.list
|
||||
|
||||
# Remove the sources.list file
|
||||
rm -f /etc/apt/sources.list.d/sparkstore.list
|
||||
@ -17,8 +24,6 @@ case "$1" in
|
||||
mkdir -p /usr/local/bin
|
||||
|
||||
# Create symbol links for binary files
|
||||
ln -s -f /opt/durapps/spark-store/bin/ussinstall /usr/local/bin/ussinstall
|
||||
ln -s -f /opt/durapps/spark-store/bin/ussremove /usr/local/bin/ussremove
|
||||
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
|
||||
@ -30,10 +35,8 @@ case "$1" in
|
||||
# Create symbol links for SSINSTALL
|
||||
ln -s -f /opt/durapps/spark-store/bin/auto-install-policy/store.spark-app.ssinstall.policy /usr/share/polkit-1/actions/store.spark-app.ssinstall.policy
|
||||
|
||||
# Compile sender module
|
||||
echo "Compiling the Sender module..."
|
||||
gcc -Wformat -Wformat-security -Werror=format-security /opt/durapps/spark-store/bin/ss-feedback/sender-d.sh.c -o /opt/durapps/spark-store/bin/ss-feedback/sender-d
|
||||
|
||||
|
||||
# Install key
|
||||
mkdir -p /tmp/spark-store-install/
|
||||
cp -f /opt/durapps/spark-store/bin/spark-store.asc /tmp/spark-store-install/spark-store.asc
|
||||
|
6
debian/spark-store.prerm
vendored
6
debian/spark-store.prerm
vendored
@ -16,15 +16,13 @@ if [ "$1" = "remove" ] || [ "$1" = "purge" ] ; then
|
||||
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/ussinstall
|
||||
rm -f /usr/local/bin/ussremove
|
||||
rm -f /usr/local/bin/ss-apt-fast
|
||||
rm -f /usr/bin/aptss
|
||||
|
||||
rm -rf /etc/aptss/
|
||||
rm -rf /var/lib/aptss/
|
||||
|
||||
|
||||
# Remove Sender module
|
||||
rm -f /opt/durapps/spark-store/bin/ss-feedback/sender-d
|
||||
|
||||
# Remove residual symbol links to stop upgrade detect
|
||||
rm -f /etc/xdg/autostart/spark-update-notifier.desktop
|
||||
|
4
pkg/usr/share/aptss/transhell/aptss_en_US.transhell
Normal file
4
pkg/usr/share/aptss/transhell/aptss_en_US.transhell
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
TRANSHELL_CONTENT_RUNNING_IN_NOT_ROOT_USER="W:Running in non-root mode! If error occurs, please try to excute me as root."
|
||||
TRANSHELL_CONTENT_INFO_SOURCES_LIST_D_IS_EMPTY="INFO:sources.list.d directory is empty,will not try to sync"
|
||||
TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST="Getting server and mirror lists..."
|
4
pkg/usr/share/aptss/transhell/aptss_zh_CN.transhell
Normal file
4
pkg/usr/share/aptss/transhell/aptss_zh_CN.transhell
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
TRANSHELL_CONTENT_RUNNING_IN_NOT_ROOT_USER="警告:正在使用非root权限模式启动!若出现问题,请尝试使用root权限执行指令"
|
||||
TRANSHELL_CONTENT_INFO_SOURCES_LIST_D_IS_EMPTY="信息:sources.list.d文件夹是空的,将不会尝试同步"
|
||||
TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST="从服务器获取配置和镜像列表..."
|
@ -63,7 +63,7 @@ _aptss()
|
||||
# Complete a -t<SPACE><TAB>
|
||||
case $prev in
|
||||
-t|--target-release)
|
||||
COMPREPLY=( $( compgen -W "$( apt-cache policy -o Dir::Cache="/etc/aptss/" | egrep -o 'a=[^,]*|n=[^,]*' | cut -f2- -d= | sort -u)" -- "$cur" ) )
|
||||
COMPREPLY=( $( compgen -W "$( apt-cache policy -o Dir::Cache="/var/lib/aptss/" | egrep -o 'a=[^,]*|n=[^,]*' | cut -f2- -d= | sort -u)" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
@ -185,12 +185,12 @@ _aptss()
|
||||
return 0
|
||||
;;
|
||||
show|list|download|changelog|depends|rdepends)
|
||||
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" -o Dir::Cache="/etc/aptss/" \
|
||||
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" -o Dir::Cache="/var/lib/aptss/" \
|
||||
2> /dev/null ) )
|
||||
return 0
|
||||
;;
|
||||
install)
|
||||
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" -o Dir::Cache="/etc/aptss/" \
|
||||
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" -o Dir::Cache="/var/lib/aptss/" \
|
||||
2> /dev/null ) )
|
||||
if [[ "$cur" == ./* || "$cur" == /* ]]; then
|
||||
_filedir "deb"
|
||||
@ -198,8 +198,8 @@ _aptss()
|
||||
return 0
|
||||
;;
|
||||
source|build-dep|showsrc|policy)
|
||||
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" -o Dir::Cache="/etc/aptss/" \
|
||||
2> /dev/null ) $( apt-cache dumpavail -o Dir::Cache="/etc/aptss/" | \
|
||||
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" -o Dir::Cache="/var/lib/aptss/" \
|
||||
2> /dev/null ) $( apt-cache dumpavail -o Dir::Cache="/var/lib/aptss/" | \
|
||||
command grep "^Source: $cur" | sort -u | cut -f2 -d" " ) )
|
||||
return 0
|
||||
;;
|
||||
|
@ -1,6 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
@ -10,12 +8,15 @@
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
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="0.92.4 (5da689c313, 2019-01-14)"
|
||||
inkscape:version="1.0 (4035a4f, 2020-05-01)"
|
||||
sodipodi:docname="deepin-community-store.svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
@ -170,17 +171,18 @@
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.35"
|
||||
inkscape:cx="120.33119"
|
||||
inkscape:cy="507.94585"
|
||||
inkscape:zoom="0.7"
|
||||
inkscape:cx="13.97476"
|
||||
inkscape:cy="371.76152"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1040"
|
||||
inkscape:window-height="941"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:document-rotation="0" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
@ -199,70 +201,54 @@
|
||||
id="layer1"
|
||||
transform="translate(0,-97)">
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ebebeb;stroke-width:2.87003541;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter2201)"
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ebebeb;stroke-width:2.87004;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter2201)"
|
||||
id="rect2119"
|
||||
width="162.54665"
|
||||
height="170.16383"
|
||||
x="20.431099"
|
||||
y="112.51035"
|
||||
rx="30"
|
||||
ry="30" />
|
||||
<circle
|
||||
style="opacity:1;fill:#959595;fill-opacity:1;stroke:#e9e9e9;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path2121"
|
||||
cx="58.208336"
|
||||
cy="131.8244"
|
||||
r="6.0476193" />
|
||||
<circle
|
||||
style="opacity:1;fill:#9c9c9c;fill-opacity:1;stroke:#eaeaea;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path2121-5"
|
||||
cx="143.63095"
|
||||
cy="133.71429"
|
||||
r="6.0476193" />
|
||||
ry="30"
|
||||
transform="matrix(1.0253898,0,0,0.97932001,-4.2824724,3.4808454)" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2">
|
||||
<path
|
||||
style="fill:#ffc344;fill-opacity:1;stroke:none;stroke-width:0.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 94.205599,42.389243 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.172433 -3.40543,23.620763 -8.97797,31.494323 -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.77132 8.358796,-6.77132 10.061513,-6.14141 1.702724,0.6299 2.167092,1.5747 3.095852,3.30689 0.928749,1.73219 1.547929,1.41726 2.941089,0.47243 1.39311,-0.94484 1.85748,-2.04715 1.54792,-3.46439 -0.30958,-1.417253 -2.16711,-3.149433 -3.71505,-3.621853 -1.547909,-0.47241 -3.715016,-1.88966 -6.810869,-1.41721 -3.095848,0.47238 -9.132757,2.04711 -14.240906,8.975843 -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.20352 7.12048,-34.643764 C 148.22821,76.875544 137.23793,58.293884 125.00933,51.522601 112.78073,44.751315 103.64797,40.814522 94.205599,42.389243 Z"
|
||||
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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 100.67541,105.29647 c 0,0 -3.06474,-2.8951 -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.25056 1.860731,-1.7816 4.597103,-2.56105 6.403105,-2.17131 1.806004,0.38971 2.955282,1.44755 3.393102,2.22697 0.43781,0.77944 1.149279,2.22699 1.532369,2.50538 z"
|
||||
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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 128.47695,145.38219 c 0,0 13.13457,-7.6831 19.26404,-19.82016 6.12948,-12.13707 8.7564,-19.93152 7.99021,-31.84592 -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.959394 -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"
|
||||
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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 104.83471,121.99883 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.01288 2.29855,-15.366239 -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.464683 -4.487646,10.466823 -4.706555,16.702393 -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.25056 4.925468,-23.940084 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.674543 -1.97019,12.137103 -4.81601,16.257013 -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"
|
||||
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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 104.83471,121.99883 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.28333 1.97361,-7.519273 1.50922,-9.881333 -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.148344 0.23218,28.659854 -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"
|
||||
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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 86.930353,71.44277 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"
|
||||
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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 72.107699,134.35862 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"
|
||||
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" />
|
||||
<path
|
||||
style="fill:none;stroke:#939393;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 56.889259,34.981831 c 0,0 16.252976,26.08036 43.845241,26.83631 27.59226,0.75596 42.33333,-23.8125 42.33333,-23.8125"
|
||||
id="path2138"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
@ -1,4 +1,6 @@
|
||||
#!/bin/bash
|
||||
TRANSHELL_CONTENT_HASH_CHECK_FAILED="Failed in checking package hash! \nPossibly reason can be the package is broken, laggy in sync of Spark Store repository, or, there is a malware attempt to attack. \nIf you don't know what happend, please try install again after execute the command below\n sudo aptss ssupdate\n\nIf the problem still happen, please click APP Feedback button in the APP information page to feedback to us.\n\n If you are in the Audition Group,Please use ssaudit instead of ssinstall to audit APPs,for ssinstall is used for password-free install now.\nIf you want to install an app that is removed from Spark Store repository,you can also use ssaudit."
|
||||
TRANSHELL_CONTENT_HASH_CHECK_FAILED="Failed in checking package hash! \nPossibly reason can be the package is broken, laggy in sync of Spark Store repository, or, there is a malware attempt to attack. \nIf you don't know what happend, please try install again after execute the command below\n sudo aptss update\n\nIf the problem still happen, please click APP Feedback button in the APP information page to feedback to us.\n\n If you are in the Audition Group,Please use ssaudit instead of ssinstall to audit APPs,for ssinstall is used for password-free install now.\nIf you want to install an app that is removed from Spark Store repository,you can also use ssaudit."
|
||||
TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT="Please run ssinstall as root"
|
||||
TRANSHELL_CONTENT_FILE_NOT_EXIST="File not exist"
|
||||
TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB="No delete after install option given, will not delete the deb"
|
||||
TRANSHELL_CONTENT_DEB_IS_DELETED="--delete-after-install option is given and the installation is succeeded, delete the deb file."
|
||||
|
@ -1,4 +1,6 @@
|
||||
#!/bin/bash
|
||||
TRANSHELL_CONTENT_HASH_CHECK_FAILED="软件包校验失败!这不应该发生!\n可能是因为软件包已损坏,星火仓库未同步,或者最坏的情况:恶意软件尝试利用自动安装来入侵系统!\n如果你不清楚发生了什么,请执行 sudo aptss ssupdate 后再尝试安装。\n如果问题仍然存在,请在应用信息界面点击 应用反馈 来提交反馈给我们!\n\n 如果你是审核人员,请使用 ssaudit来替代ssinstall进行审核工作,因为现在ssinstall已经被用于免密安装。\n如果你正在尝试安装已经下架的星火应用,也可用ssaudit来替代ssinstall"
|
||||
TRANSHELL_CONTENT_HASH_CHECK_FAILED="软件包校验失败!这不应该发生!\n可能是因为软件包已损坏,星火仓库未同步,或者最坏的情况:恶意软件尝试利用自动安装来入侵系统!\n如果你不清楚发生了什么,请执行 sudo aptss update 后再尝试安装。\n如果问题仍然存在,请在应用信息界面点击 应用反馈 来提交反馈给我们!\n\n 如果你是审核人员,请使用 ssaudit来替代ssinstall进行审核工作,因为现在ssinstall已经被用于免密安装。\n如果你正在尝试安装已经下架的星火应用,也可用ssaudit来替代ssinstall"
|
||||
TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT="请使用root启动ssinstall"
|
||||
TRANSHELL_CONTENT_FILE_NOT_EXIST="文件不存在"
|
||||
TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB="未指定安装后删除或安装出错,不删除deb包"
|
||||
TRANSHELL_CONTENT_DEB_IS_DELETED="使用了--delete-after-install选项且安装未出错,删除deb包"
|
||||
|
@ -57,6 +57,9 @@ icon.path = /usr/share/icons/hicolor/scalable/apps
|
||||
ssinstall-transhell.files += pkg/usr/share/ssinstall/transhell
|
||||
ssinstall-transhell.path = /usr/share/ssinstall/
|
||||
|
||||
aptss-transhell.files += pkg/usr/share/aptss/transhell
|
||||
aptss-transhell.path = /usr/share/aptss/
|
||||
|
||||
tmp.files += pkg/tmp/spark-store-install/feedback.sh
|
||||
tmp.path = /tmp/spark-store-install
|
||||
|
||||
@ -66,6 +69,7 @@ INSTALLS += \
|
||||
desktop \
|
||||
icon \
|
||||
ssinstall-transhell \
|
||||
aptss-transhell \
|
||||
# sourceslist \
|
||||
tmp \
|
||||
service \
|
||||
|
@ -91,11 +91,12 @@ void Application::setBuildDateTime(const QString &buildDateTime)
|
||||
qDebug() << "Spark Store has been updated!";
|
||||
|
||||
config.setValue("build/version", QString(APP_VERSION));
|
||||
config.setValue("build/branch",QString(APP_BRANCH));
|
||||
config.setValue("build/time", buildDateTime);
|
||||
config.sync();
|
||||
}
|
||||
|
||||
setApplicationVersion(DApplication::buildVersion(QString(APP_VERSION) + "-" + "Flamescion" + "-" + buildDateTime));
|
||||
setApplicationVersion(DApplication::buildVersion(QString(APP_VERSION) + "-" + QString(APP_BRANCH) + "-" + buildDateTime));
|
||||
}
|
||||
|
||||
void Application::setMainWindow(MainWindow *window)
|
||||
|
@ -1,268 +1,254 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="200mm"
|
||||
height="200mm"
|
||||
viewBox="0 0 200 200"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
||||
sodipodi:docname="deepin-community-store.svg">
|
||||
<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">
|
||||
<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.35"
|
||||
inkscape:cx="120.33119"
|
||||
inkscape:cy="507.94585"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1040"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<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" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-97)">
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ebebeb;stroke-width:2.87003541;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter2201)"
|
||||
id="rect2119"
|
||||
width="162.54665"
|
||||
height="170.16383"
|
||||
x="20.431099"
|
||||
y="112.51035"
|
||||
rx="30"
|
||||
ry="30" />
|
||||
<circle
|
||||
style="opacity:1;fill:#959595;fill-opacity:1;stroke:#e9e9e9;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path2121"
|
||||
cx="58.208336"
|
||||
cy="131.8244"
|
||||
r="6.0476193" />
|
||||
<circle
|
||||
style="opacity:1;fill:#9c9c9c;fill-opacity:1;stroke:#eaeaea;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path2121-5"
|
||||
cx="143.63095"
|
||||
cy="133.71429"
|
||||
r="6.0476193" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2">
|
||||
<path
|
||||
style="fill:#ffc344;fill-opacity:1;stroke:none;stroke-width:0.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 94.205599,42.389243 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.172433 -3.40543,23.620763 -8.97797,31.494323 -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.77132 8.358796,-6.77132 10.061513,-6.14141 1.702724,0.6299 2.167092,1.5747 3.095852,3.30689 0.928749,1.73219 1.547929,1.41726 2.941089,0.47243 1.39311,-0.94484 1.85748,-2.04715 1.54792,-3.46439 -0.30958,-1.417253 -2.16711,-3.149433 -3.71505,-3.621853 -1.547909,-0.47241 -3.715016,-1.88966 -6.810869,-1.41721 -3.095848,0.47238 -9.132757,2.04711 -14.240906,8.975843 -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.20352 7.12048,-34.643764 C 148.22821,76.875544 137.23793,58.293884 125.00933,51.522601 112.78073,44.751315 103.64797,40.814522 94.205599,42.389243 Z"
|
||||
id="path1002"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#f06767;fill-opacity:1;stroke:none;stroke-width:0.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 100.67541,105.29647 c 0,0 -3.06474,-2.8951 -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.25056 1.860731,-1.7816 4.597103,-2.56105 6.403105,-2.17131 1.806004,0.38971 2.955282,1.44755 3.393102,2.22697 0.43781,0.77944 1.149279,2.22699 1.532369,2.50538 z"
|
||||
id="path1012"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#3f62eb;fill-opacity:1;stroke:none;stroke-width:0.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 128.47695,145.38219 c 0,0 13.13457,-7.6831 19.26404,-19.82016 6.12948,-12.13707 8.7564,-19.93152 7.99021,-31.84592 -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.959394 -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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 104.83471,121.99883 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.01288 2.29855,-15.366239 -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.464683 -4.487646,10.466823 -4.706555,16.702393 -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.25056 4.925468,-23.940084 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.674543 -1.97019,12.137103 -4.81601,16.257013 -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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 104.83471,121.99883 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.28333 1.97361,-7.519273 1.50922,-9.881333 -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.148344 0.23218,28.659854 -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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 86.930353,71.44277 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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 72.107699,134.35862 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" />
|
||||
<path
|
||||
style="fill:none;stroke:#939393;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 56.889259,34.981831 c 0,0 16.252976,26.08036 43.845241,26.83631 27.59226,0.75596 42.33333,-23.8125 42.33333,-23.8125"
|
||||
id="path2138"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
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.0 (4035a4f, 2020-05-01)"
|
||||
sodipodi:docname="deepin-community-store.svg">
|
||||
<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">
|
||||
<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.7"
|
||||
inkscape:cx="13.97476"
|
||||
inkscape:cy="371.76152"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="941"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:document-rotation="0" />
|
||||
<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" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-97)">
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ebebeb;stroke-width:2.87004;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter2201)"
|
||||
id="rect2119"
|
||||
width="162.54665"
|
||||
height="170.16383"
|
||||
x="20.431099"
|
||||
y="112.51035"
|
||||
rx="30"
|
||||
ry="30"
|
||||
transform="matrix(1.0253898,0,0,0.97932001,-4.2824724,3.4808454)" />
|
||||
</g>
|
||||
<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: 14 KiB After Width: | Height: | Size: 14 KiB |
268
src/assets/icon/logo_old.svg
Normal file
268
src/assets/icon/logo_old.svg
Normal file
@ -0,0 +1,268 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="200mm"
|
||||
height="200mm"
|
||||
viewBox="0 0 200 200"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
||||
sodipodi:docname="deepin-community-store.svg">
|
||||
<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">
|
||||
<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.35"
|
||||
inkscape:cx="120.33119"
|
||||
inkscape:cy="507.94585"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1040"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<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" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-97)">
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ebebeb;stroke-width:2.87003541;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter2201)"
|
||||
id="rect2119"
|
||||
width="162.54665"
|
||||
height="170.16383"
|
||||
x="20.431099"
|
||||
y="112.51035"
|
||||
rx="30"
|
||||
ry="30" />
|
||||
<circle
|
||||
style="opacity:1;fill:#959595;fill-opacity:1;stroke:#e9e9e9;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path2121"
|
||||
cx="58.208336"
|
||||
cy="131.8244"
|
||||
r="6.0476193" />
|
||||
<circle
|
||||
style="opacity:1;fill:#9c9c9c;fill-opacity:1;stroke:#eaeaea;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path2121-5"
|
||||
cx="143.63095"
|
||||
cy="133.71429"
|
||||
r="6.0476193" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2">
|
||||
<path
|
||||
style="fill:#ffc344;fill-opacity:1;stroke:none;stroke-width:0.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 94.205599,42.389243 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.172433 -3.40543,23.620763 -8.97797,31.494323 -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.77132 8.358796,-6.77132 10.061513,-6.14141 1.702724,0.6299 2.167092,1.5747 3.095852,3.30689 0.928749,1.73219 1.547929,1.41726 2.941089,0.47243 1.39311,-0.94484 1.85748,-2.04715 1.54792,-3.46439 -0.30958,-1.417253 -2.16711,-3.149433 -3.71505,-3.621853 -1.547909,-0.47241 -3.715016,-1.88966 -6.810869,-1.41721 -3.095848,0.47238 -9.132757,2.04711 -14.240906,8.975843 -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.20352 7.12048,-34.643764 C 148.22821,76.875544 137.23793,58.293884 125.00933,51.522601 112.78073,44.751315 103.64797,40.814522 94.205599,42.389243 Z"
|
||||
id="path1002"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#f06767;fill-opacity:1;stroke:none;stroke-width:0.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 100.67541,105.29647 c 0,0 -3.06474,-2.8951 -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.25056 1.860731,-1.7816 4.597103,-2.56105 6.403105,-2.17131 1.806004,0.38971 2.955282,1.44755 3.393102,2.22697 0.43781,0.77944 1.149279,2.22699 1.532369,2.50538 z"
|
||||
id="path1012"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#3f62eb;fill-opacity:1;stroke:none;stroke-width:0.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 128.47695,145.38219 c 0,0 13.13457,-7.6831 19.26404,-19.82016 6.12948,-12.13707 8.7564,-19.93152 7.99021,-31.84592 -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.959394 -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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 104.83471,121.99883 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.01288 2.29855,-15.366239 -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.464683 -4.487646,10.466823 -4.706555,16.702393 -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.25056 4.925468,-23.940084 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.674543 -1.97019,12.137103 -4.81601,16.257013 -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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 104.83471,121.99883 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.28333 1.97361,-7.519273 1.50922,-9.881333 -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.148344 0.23218,28.659854 -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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 86.930353,71.44277 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.3091144px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 72.107699,134.35862 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" />
|
||||
<path
|
||||
style="fill:none;stroke:#939393;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 56.889259,34.981831 c 0,0 16.252976,26.08036 43.845241,26.83631 27.59226,0.75596 42.33333,-23.8125 42.33333,-23.8125"
|
||||
id="path2138"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
@ -20,6 +20,6 @@
|
||||
"description": "Fix 1 detailed description..."
|
||||
}
|
||||
],
|
||||
"linkUrl": "https://gitee.com/deepin-community-store/spark-store/releases/4.2.3test3",
|
||||
"linkUrl": "https://gitee.com/deepin-community-store/spark-store/releases/",
|
||||
"linkButtonVisible": true
|
||||
}
|
||||
|
@ -22,13 +22,13 @@ void image_show::setImage(QPixmap image)
|
||||
QImage re_screen1;
|
||||
QImage re_screen0 = screen0.scaled(QSize(400, 300), Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
|
||||
// 获取主屏幕尺寸
|
||||
desktop_w = QGuiApplication::primaryScreen()->geometry().width();
|
||||
desktop_h = QGuiApplication::primaryScreen()->geometry().height();
|
||||
// 获取当前app所在的主屏幕尺寸
|
||||
desktop_w = QGuiApplication::screenAt(QCursor().pos())->geometry().width();
|
||||
desktop_h = QGuiApplication::screenAt(QCursor().pos())->geometry().height();
|
||||
|
||||
if (screen0.width() > (desktop_w - 20) || screen0.height() > (desktop_h - 20))
|
||||
if (screen0.width() > int(desktop_w / 3 * 2) || screen0.height() > int(desktop_h / 3 * 2))
|
||||
{
|
||||
re_screen1 = screen0.scaled(QSize(desktop_w - 20, desktop_h - 20), Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
re_screen1 = screen0.scaled(QSize(int(desktop_w / 3 * 2), int(desktop_h / 3 * 2)), Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
m_image = QPixmap::fromImage(re_screen1);
|
||||
}
|
||||
else
|
||||
@ -42,12 +42,13 @@ void image_show::setImage(QPixmap image)
|
||||
void image_show::mousePressEvent(QMouseEvent *)
|
||||
{
|
||||
m_dialog->setimage(m_image);
|
||||
m_dialog->showFullScreen();
|
||||
|
||||
// 识别主屏幕尺寸并设置 widget 大小
|
||||
m_dialog->setFixedSize(desktop_w, desktop_h);
|
||||
m_dialog->setFixedSize(qMin(desktop_w, m_image.width() + int(desktop_h / 16 * m_image.width() / m_image.height())), qMin(desktop_h, m_image.height() + int(desktop_h / 16)));
|
||||
|
||||
m_dialog->move(0, 0);
|
||||
m_dialog->move(QGuiApplication::screenAt(QCursor().pos())->geometry().center() - m_dialog->rect().center());
|
||||
|
||||
m_dialog->show();
|
||||
}
|
||||
image_show::~image_show()
|
||||
{
|
||||
|
@ -5,6 +5,11 @@
|
||||
#include <QDebug>
|
||||
|
||||
QString SparkAPI::serverUrl = "";
|
||||
#ifdef __x86_64__
|
||||
QString SparkAPI::serverUrlDir = "store";
|
||||
#elif __aarch64__
|
||||
QString SparkAPI::serverUrlDir = "aarch64-store";
|
||||
#endif
|
||||
|
||||
SparkAPI::SparkAPI(QObject *parent) : QObject(parent)
|
||||
{
|
||||
@ -54,7 +59,7 @@ void SparkAPI::getRAW(QUrl url)
|
||||
|
||||
void SparkAPI::getAppList(QString type)
|
||||
{
|
||||
get(QUrl(getServerUrl() + "store/" + type + "/applist.json"));
|
||||
get(QUrl(getServerUrl() + SparkAPI::serverUrlDir + "/" + type + "/applist.json"));
|
||||
}
|
||||
|
||||
void SparkAPI::getSearchList(QString keyword)
|
||||
@ -64,12 +69,17 @@ void SparkAPI::getSearchList(QString keyword)
|
||||
|
||||
void SparkAPI::getAppInfo(QUrl spk)
|
||||
{
|
||||
get(QUrl(getServerUrl() + "store" + spk.path().replace("+", "%2B") + "/app.json"));
|
||||
get(QUrl(getServerUrl() + SparkAPI::serverUrlDir + spk.path().replace("+", "%2B") + "/app.json"));
|
||||
}
|
||||
|
||||
QString SparkAPI::getArchDir()
|
||||
{
|
||||
return SparkAPI::serverUrlDir;
|
||||
}
|
||||
|
||||
void SparkAPI::getAppDownloadTimes(QUrl spk)
|
||||
{
|
||||
getRAW(QUrl(getServerUrl() + "store" + spk.path().replace("+", "%2B") + "/download-times.txt"));
|
||||
getRAW(QUrl(getServerUrl() + SparkAPI::serverUrlDir + spk.path().replace("+", "%2B") + "/download-times.txt"));
|
||||
}
|
||||
|
||||
QString SparkAPI::getServerUrl()
|
||||
|
@ -25,6 +25,7 @@ public:
|
||||
void getRAW(QUrl url);
|
||||
void getAppList(QString type);
|
||||
void getAppInfo(QUrl spk);
|
||||
static QString getArchDir();
|
||||
|
||||
signals:
|
||||
void finished(QJsonArray);
|
||||
@ -33,6 +34,7 @@ signals:
|
||||
|
||||
private:
|
||||
static QString serverUrl;
|
||||
static QString serverUrlDir;
|
||||
};
|
||||
|
||||
#endif // SPARKAPI_H
|
||||
|
34
src/main.cpp
34
src/main.cpp
@ -43,8 +43,33 @@ int main(int argc, char *argv[])
|
||||
// 浏览器开启 GPU 支持
|
||||
#ifdef __sw_64__
|
||||
qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--no-sandbox");
|
||||
#elif __aarch64__
|
||||
if (!Utils::isWayland()) {
|
||||
QString env = QString::fromUtf8(qgetenv("QTWEBENGINE_CHROMIUM_FLAGS"));
|
||||
env = env.trimmed();
|
||||
/**
|
||||
* NOTE: 参考帮助手册代码,对于部分ARM CPU 设备,
|
||||
* --disable-gpu 保证 X11 环境下网页正常显示
|
||||
* --single-process 避免 X11 环境下 QtWebEngine 崩溃(可选)
|
||||
*/
|
||||
env += " --disable-gpu";
|
||||
qputenv("QTWEBENGINE_CHROMIUM_FLAGS", env.trimmed().toUtf8());
|
||||
|
||||
QSurfaceFormat format;
|
||||
format.setRenderableType(QSurfaceFormat::OpenGLES);
|
||||
QSurfaceFormat::setDefaultFormat(format);
|
||||
|
||||
/**
|
||||
* NOTE: https://zhuanlan.zhihu.com/p/550285855
|
||||
* 避免 X11 环境下从 QtWebEngine 后退回到 QWidget 时黑屏闪烁
|
||||
*/
|
||||
qputenv("QMLSCENE_DEVICE", "softwarecontext");
|
||||
DApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* FIXME: 对于麒麟 CPU 设备,调用 QtWebEngine 会导致客户端崩溃;
|
||||
* 暂时不对 CPU 进行判断,对 wayland 环境下统一处理
|
||||
@ -77,7 +102,14 @@ int main(int argc, char *argv[])
|
||||
DApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);
|
||||
}
|
||||
|
||||
DApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // 开启 Hidpi 支持
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||
{
|
||||
// 开启 Hidpi 支持
|
||||
qDebug() << "Enable HiDPI Support.";
|
||||
DApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||
DApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
|
||||
}
|
||||
#endif
|
||||
|
||||
// 强制使用 DTK 平台插件
|
||||
QVector<char *> fakeArgs(argc + 2);
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include <QDesktopServices>
|
||||
#include <QAbstractButton>
|
||||
#include <QtConcurrent>
|
||||
#include <unistd.h>
|
||||
|
||||
#define AppPageApplist 0
|
||||
#define AppPageSearchlist 1
|
||||
@ -32,11 +33,11 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
initTmpDir();
|
||||
|
||||
initUI();
|
||||
initConnections();
|
||||
|
||||
initTmpDir();
|
||||
|
||||
ui->appintopage->setDownloadWidget(downloadlistwidget);
|
||||
|
||||
emit DGuiApplicationHelper::instance()->themeTypeChanged(DGuiApplicationHelper::instance()->themeType());
|
||||
@ -393,6 +394,28 @@ void MainWindow::initTmpDir()
|
||||
// 新建临时文件夹
|
||||
QDir dir;
|
||||
dir.mkpath("/tmp/spark-store");
|
||||
|
||||
// 检查写入权限
|
||||
QFileInfo info("/tmp/spark-store");
|
||||
|
||||
if (info.isWritable() == false)
|
||||
{
|
||||
QtConcurrent::run([=]
|
||||
{
|
||||
sleep(3);
|
||||
auto upgradeP = new QProcess();
|
||||
upgradeP->startDetached("zenity", QStringList() << "--warning"
|
||||
<< "--text"
|
||||
<< "用户未拥有 /tmp/spark-store 写入权限,星火商店会因此工作异常,请检查!"
|
||||
<< "--title"
|
||||
<< "权限受限提示"
|
||||
<< "--width"
|
||||
<< "360"
|
||||
);
|
||||
upgradeP->waitForStarted();
|
||||
upgradeP->waitForFinished(30);
|
||||
upgradeP->deleteLater(); });
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::switchPage(int now) // 临时方案,回家后修改
|
||||
|
@ -9,6 +9,9 @@
|
||||
|
||||
#include <QtConcurrent>
|
||||
#include <QClipboard>
|
||||
#include <QFile>
|
||||
|
||||
#include <DSysInfo>
|
||||
|
||||
AppIntoPage::AppIntoPage(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
@ -55,8 +58,8 @@ void AppIntoPage::openUrl(const QUrl &url)
|
||||
// 获取图标
|
||||
QNetworkRequest request;
|
||||
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
|
||||
qDebug() << api->getImgServerUrl() + "store" + url.path() + "/icon.png";
|
||||
request.setUrl(QUrl(api->getImgServerUrl() + "store" + url.path() + "/icon.png"));
|
||||
qDebug() << api->getImgServerUrl() + SparkAPI::getArchDir() + url.path() + "/icon.png";
|
||||
request.setUrl(QUrl(api->getImgServerUrl() + SparkAPI::getArchDir() + url.path() + "/icon.png"));
|
||||
request.setRawHeader("User-Agent", "Mozilla/5.0");
|
||||
request.setRawHeader("Content-Type", "charset='utf-8'");
|
||||
manager->get(request);
|
||||
@ -175,7 +178,7 @@ void AppIntoPage::openUrl(const QUrl &url)
|
||||
ui->downloadButton->show();
|
||||
}
|
||||
|
||||
isDownloading(SparkAPI::getServerUrl() + "store" + spk.path() + "/" + info["Filename"].toString());
|
||||
isDownloading(SparkAPI::getServerUrl() + SparkAPI::getArchDir() + spk.path() + "/" + info["Filename"].toString());
|
||||
}
|
||||
|
||||
api1->disconnect();
|
||||
@ -267,7 +270,7 @@ void AppIntoPage::setDownloadWidget(DownloadListWidget *w)
|
||||
|
||||
dw = w;
|
||||
connect(w, &DownloadListWidget::downloadFinished, [=]()
|
||||
{ isDownloading(SparkAPI::getServerUrl() + "store" + spk.path() + "/" + info["Filename"].toString()); });
|
||||
{ isDownloading(SparkAPI::getServerUrl() + SparkAPI::getArchDir() + spk.path() + "/" + info["Filename"].toString()); });
|
||||
}
|
||||
|
||||
void AppIntoPage::initUI()
|
||||
@ -336,6 +339,9 @@ void AppIntoPage::isDownloading(const QUrl &url)
|
||||
|
||||
void AppIntoPage::setAppinfoTags(const QStringList &tagList)
|
||||
{
|
||||
bool ubuntuSupport = false;
|
||||
bool deepinSupport = false;
|
||||
bool uosSupport = false;
|
||||
foreach (const QString &tag, tagList)
|
||||
{
|
||||
if (tag == "community")
|
||||
@ -345,14 +351,18 @@ void AppIntoPage::setAppinfoTags(const QStringList &tagList)
|
||||
else if (tag == "ubuntu")
|
||||
{
|
||||
ui->tag_ubuntu->show();
|
||||
ubuntuSupport = true;
|
||||
}
|
||||
else if (tag == "deepin")
|
||||
{
|
||||
ui->tag_deepin->show();
|
||||
deepinSupport = true;
|
||||
}
|
||||
else if (tag == "uos")
|
||||
{
|
||||
ui->tag_uos->show();
|
||||
uosSupport = true;
|
||||
|
||||
}
|
||||
else if (tag == "dtk5")
|
||||
{
|
||||
@ -371,11 +381,55 @@ void AppIntoPage::setAppinfoTags(const QStringList &tagList)
|
||||
ui->tag_a2d->show();
|
||||
}
|
||||
}
|
||||
notifyUserUnsupportedTags(ubuntuSupport, deepinSupport, uosSupport);
|
||||
}
|
||||
|
||||
void AppIntoPage::notifyUserUnsupportedTags(bool ubuntuSupport, bool deepinSupport, bool uosSupport)
|
||||
{
|
||||
bool isDeepin = Dtk::Core::DSysInfo::productType() == Dtk::Core::DSysInfo::Deepin;
|
||||
bool isUOS = Dtk::Core::DSysInfo::productType() == Dtk::Core::DSysInfo::Uos;
|
||||
bool checkdeepin = (isDeepin && !deepinSupport);
|
||||
bool checkuos = (isUOS && !uosSupport);
|
||||
bool isUbuntu = false;
|
||||
if (!checkdeepin && !checkuos)
|
||||
{
|
||||
// 检查是否为 ubuntu 系统
|
||||
QFile lsb("/etc/lsb-release");
|
||||
if (!lsb.open(QIODevice::ReadOnly))
|
||||
{
|
||||
qDebug() << "打开 /etc/lsb-release 失败";
|
||||
}
|
||||
else if (lsb.readAll().contains("Ubuntu"))
|
||||
{
|
||||
isUbuntu = true;
|
||||
lsb.close();
|
||||
}
|
||||
}
|
||||
bool checkubuntu = (isUbuntu && !ubuntuSupport);
|
||||
|
||||
if (checkdeepin)
|
||||
{
|
||||
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 UOS, there may be problems"));
|
||||
}
|
||||
else if (checkubuntu)
|
||||
{
|
||||
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 current platform, there may be problems"));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void AppIntoPage::on_downloadButton_clicked()
|
||||
{
|
||||
QString downloadUrl = SparkAPI::getServerUrl() + "store" + spk.path() + "/" + info["Filename"].toString();
|
||||
QString downloadUrl = SparkAPI::getServerUrl() + SparkAPI::getArchDir() + spk.path() + "/" + info["Filename"].toString();
|
||||
if (ui->downloadButton->text() == tr("Install"))
|
||||
{
|
||||
DownloadItem *item = dw->getDIList()[dw->getUrlList().lastIndexOf(downloadUrl)];
|
||||
|
@ -29,6 +29,7 @@ private:
|
||||
void initConnections();
|
||||
void isDownloading(const QUrl &url);
|
||||
void setAppinfoTags(const QStringList &tagList);
|
||||
void notifyUserUnsupportedTags(bool ubuntuSupport, bool deepinSupport, bool uosSupport);
|
||||
|
||||
signals:
|
||||
void clickedDownloadBtn();
|
||||
|
@ -1,6 +1,8 @@
|
||||
#include "applistpage.h"
|
||||
#include "ui_applistpage.h"
|
||||
|
||||
|
||||
|
||||
AppListPage::AppListPage(QWidget *parent) : QWidget(parent),
|
||||
ui(new Ui::AppListPage)
|
||||
{
|
||||
@ -38,18 +40,30 @@ void AppListPage::getAppList(QString type)
|
||||
if (isDark)
|
||||
{
|
||||
theme = "theme=dark";
|
||||
#ifdef __aarch64__
|
||||
theme = "dark";
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
theme = "theme=light";
|
||||
#ifdef __aarch64__
|
||||
theme = "";
|
||||
#endif
|
||||
}
|
||||
if (type == "")
|
||||
{
|
||||
url = api->getServerUrl() + "store/#/flamescion/?" + theme;
|
||||
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/?" + theme;
|
||||
#ifdef __aarch64__
|
||||
url = api->getServerUrl() + "aarch64-store/#/"+ theme;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
url = api->getServerUrl() + "store/#/flamescion/applist?type=" + type + "&" + theme;
|
||||
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/applist?type=" + type + "&" + theme;
|
||||
#ifdef __aarch64__
|
||||
url = api->getServerUrl() + "aarch64-store/#/"+ theme + type;
|
||||
#endif
|
||||
}
|
||||
|
||||
ui->webEngineView->setUrl(url);
|
||||
@ -71,7 +85,7 @@ void AppListPage::getSearchList(const QString &keyword)
|
||||
{
|
||||
theme = "theme=light";
|
||||
}
|
||||
url = api->getServerUrl() + "store/#/flamescion/search?keywords=" + QUrl::toPercentEncoding(keyword) + "&" + theme;
|
||||
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/search?keywords=" + QUrl::toPercentEncoding(keyword) + "&" + theme;
|
||||
ui->webEngineView->setUrl(url);
|
||||
delete api;
|
||||
}
|
||||
@ -86,7 +100,7 @@ void AppListPage::on_webEngineView_urlChanged(const QUrl &arg1)
|
||||
if (arg1.path().right(8) == "app.json")
|
||||
{
|
||||
QString url = arg1.toString();
|
||||
url = url.mid(url.indexOf("/store/"));
|
||||
url = url.mid(url.indexOf("/" + SparkAPI::getArchDir() + "/"));
|
||||
url = "spk:/" + url;
|
||||
url = url.mid(0, url.indexOf("/app.json"));
|
||||
qDebug() << "程序跳转链接地址:" << url;
|
||||
|
@ -26,7 +26,7 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
||||
VERSION = $$BUILD_VERSION
|
||||
isEmpty(VERSION): VERSION = 4.0.0
|
||||
DEFINES += APP_VERSION=\\\"'$${VERSION}'\\\"
|
||||
|
||||
DEFINES += APP_BRANCH=\\\"'$$system(git symbolic-ref --short -q HEAD)'\\\"
|
||||
# Disable qWarning / qDebug output in Release
|
||||
#CONFIG(release, debug | release): DEFINES += QT_NO_WARNING_OUTPUT QT_NO_DEBUG_OUTPUT
|
||||
|
||||
|
@ -64,9 +64,9 @@ QString DownloadItem::getName()
|
||||
|
||||
/***************************************************************
|
||||
* @brief 告知界面,准备安装
|
||||
* @param
|
||||
* @param
|
||||
* @note 如果正在安装,返回-1
|
||||
* @Sample usage: DownloadItem::install(0);
|
||||
* @Sample usage: DownloadItem::install(0);
|
||||
**************************************************************/
|
||||
int DownloadItem::readyInstall()
|
||||
{
|
||||
@ -110,9 +110,9 @@ void DownloadItem::setSpeed(QString s)
|
||||
|
||||
/***************************************************************
|
||||
* @brief 安装当前应用
|
||||
* @param int t, t为安装方式,可以为 0,1,2
|
||||
* @param int t, t为安装方式,可以为 0,1,2
|
||||
* @note 执行这个函数时,需要已经检查是否可以安装,但该函数仍然会再检测一次!
|
||||
* @Sample usage: DownloadItem::install(0);
|
||||
* @Sample usage: DownloadItem::install(0);
|
||||
**************************************************************/
|
||||
void DownloadItem::install(int t)
|
||||
{
|
||||
@ -165,23 +165,26 @@ void DownloadItem::on_pushButton_3_clicked()
|
||||
|
||||
/***************************************************************
|
||||
* @brief 实际安装应用
|
||||
* @param int t, t为安装方式,可以为 0,1,2
|
||||
* @param int t, t为安装方式,可以为 0,1,2
|
||||
* @note 备注
|
||||
* @Sample usage: slotAsyncInstall(0);
|
||||
* @Sample usage: slotAsyncInstall(0);
|
||||
**************************************************************/
|
||||
void DownloadItem::slotAsyncInstall(int t)
|
||||
{
|
||||
QProcess installer;
|
||||
switch(t)
|
||||
switch (t)
|
||||
{
|
||||
case 0:
|
||||
installer.start("pkexec", QStringList() << "ssinstall" << "/tmp/spark-store/" + ui->label_filename->text().toUtf8());
|
||||
installer.start("pkexec", QStringList() << "ssinstall"
|
||||
<< "/tmp/spark-store/" + ui->label_filename->text().toUtf8() << "--delete-after-install");
|
||||
break;
|
||||
case 1:
|
||||
installer.start("deepin-deb-installer", QStringList() << "/tmp/spark-store/" + ui->label_filename->text().toUtf8());
|
||||
break;
|
||||
case 2:
|
||||
installer.start("pkexec", QStringList() << "gdebi" << "-n" << "/tmp/spark-store/" + ui->label_filename->text().toUtf8());
|
||||
installer.start("pkexec", QStringList() << "gdebi"
|
||||
<< "-n"
|
||||
<< "/tmp/spark-store/" + ui->label_filename->text().toUtf8());
|
||||
break;
|
||||
}
|
||||
|
||||
@ -191,13 +194,15 @@ void DownloadItem::slotAsyncInstall(int t)
|
||||
out = installer.readAllStandardOutput();
|
||||
|
||||
QStringList everyOut = out.split("\n");
|
||||
QString tempOutput;
|
||||
for (int i = 0; i < everyOut.size(); i++)
|
||||
{
|
||||
if(everyOut[i].left(2) == "E:")
|
||||
tempOutput = everyOut[i];
|
||||
if (everyOut[i].left(2) == "E:" || tempOutput.contains("错误") || tempOutput.contains("exit code") || tempOutput.contains("OMG-IT-GOES-WRONG"))
|
||||
{
|
||||
haveError = true;
|
||||
}
|
||||
if(everyOut[i].right(14) == "Not authorized")
|
||||
if (tempOutput.contains("Not authorized"))
|
||||
{
|
||||
notRoot = true;
|
||||
}
|
||||
@ -205,12 +210,12 @@ void DownloadItem::slotAsyncInstall(int t)
|
||||
|
||||
QProcess isInstall;
|
||||
isInstall.start("dpkg", QStringList() << "-s" << pkgName);
|
||||
isInstall.waitForFinished(180*1000); // 默认超时 3 分钟
|
||||
isInstall.waitForFinished(180 * 1000); // 默认超时 3 分钟
|
||||
int error = QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
|
||||
if (error == 0 && !haveError)
|
||||
{
|
||||
ui->pushButton_install->hide();
|
||||
Utils::sendNotification("spark-store",tr("Spark Store"),ui->label->text() + " " + tr("Installation complete."));
|
||||
Utils::sendNotification("spark-store", tr("Spark Store"), ui->label->text() + " " + tr("Installation complete."));
|
||||
ui->label_2->setText(tr("Finish"));
|
||||
ui->label_2->setToolTip(tr("Finish"));
|
||||
download = 3;
|
||||
@ -221,7 +226,7 @@ void DownloadItem::slotAsyncInstall(int t)
|
||||
ui->pushButton_install->show();
|
||||
ui->pushButton_install->setText(tr("Retry"));
|
||||
download = 1;
|
||||
Utils::sendNotification("spark-store",tr("Spark Store"),tr("Error happened in dpkg progress , you can try it again."));
|
||||
Utils::sendNotification("spark-store", tr("Spark Store"), tr("Error happened in dpkg progress , you can try it again."));
|
||||
ui->label_2->setText(tr("Error happened in dpkg progress , you can try it again"));
|
||||
ui->label_2->setToolTip(tr("Error happened in dpkg progress , you can try it again"));
|
||||
ui->pushButton_3->show();
|
||||
@ -229,7 +234,7 @@ void DownloadItem::slotAsyncInstall(int t)
|
||||
|
||||
if (notRoot)
|
||||
{
|
||||
Utils::sendNotification("spark-store",tr("Spark Store"),tr("dpkg progress had been aborted,you can retry installation."));
|
||||
Utils::sendNotification("spark-store", tr("Spark Store"), tr("dpkg progress had been aborted,you can retry installation."));
|
||||
ui->label_2->setText(tr("dpkg progress had been aborted,you can retry installation"));
|
||||
ui->label_2->setToolTip(tr("dpkg progress had been aborted,you can retry installation"));
|
||||
ui->pushButton_install->show();
|
||||
@ -238,5 +243,9 @@ void DownloadItem::slotAsyncInstall(int t)
|
||||
|
||||
ui->widget_spinner->hide();
|
||||
DownloadItem::isInstall = false;
|
||||
emit finished();
|
||||
|
||||
installer.deleteLater();
|
||||
isInstall.deleteLater();
|
||||
|
||||
emit finished(error == 0 && !haveError && !notRoot);
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ private slots:
|
||||
void slotAsyncInstall(int t);
|
||||
|
||||
signals:
|
||||
void finished();
|
||||
void finished(bool success);
|
||||
};
|
||||
|
||||
#endif // DOWNLOADITEM_H
|
||||
|
@ -91,10 +91,14 @@ DownloadItem* DownloadListWidget::addItem(QString name, QString fileName, QStrin
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
urList.append(downloadurl);
|
||||
allDownload += 1;
|
||||
toDownload += 1;
|
||||
|
||||
DownloadItem *di = new DownloadItem;
|
||||
connect(di, &DownloadItem::finished, this, &DownloadListWidget::slotInstallFinished, Qt::QueuedConnection);
|
||||
|
||||
dlist << downloadurl;
|
||||
downloaditemlist << di;
|
||||
di->setName(name);
|
||||
@ -167,22 +171,9 @@ void DownloadListWidget::httpFinished() // 完成下载
|
||||
{
|
||||
continue;
|
||||
}
|
||||
toDownload -= 1; // 安装完以后减少待安装数目
|
||||
qDebug() << "Download: 还没有下载的数目:" << toDownload;
|
||||
|
||||
if (toDownload == 0)
|
||||
{
|
||||
Application *app = qobject_cast<Application *>(qApp);
|
||||
MainWindow *mainWindow = app->mainWindow();
|
||||
if (mainWindow->isCloseWindowAnimation() == true)
|
||||
{
|
||||
qDebug() << "Download: 后台安装结束,退出程序";
|
||||
qApp->quit();
|
||||
}
|
||||
}
|
||||
|
||||
downloaditemlist[nowDownload - 1]->free = true;
|
||||
emit downloadFinished();
|
||||
|
||||
if (nowDownload < allDownload)
|
||||
{
|
||||
// 如果有排队则下载下一个
|
||||
@ -241,3 +232,23 @@ void DownloadListWidget::on_pushButton_clicked()
|
||||
{
|
||||
QDesktopServices::openUrl(QUrl("file:///tmp/spark-store", QUrl::TolerantMode));
|
||||
}
|
||||
|
||||
void DownloadListWidget::slotInstallFinished(bool success)
|
||||
{
|
||||
// NOTE: 仅在安装成功后判断是否需要退出后台
|
||||
if (success) {
|
||||
toDownload -= 1; // 安装完以后减少待安装数目
|
||||
qDebug() << "Download: 还没有下载的数目:" << toDownload;
|
||||
|
||||
if (toDownload == 0)
|
||||
{
|
||||
Application *app = qobject_cast<Application *>(qApp);
|
||||
MainWindow *mainWindow = app->mainWindow();
|
||||
if (mainWindow->isCloseWindowAnimation() == true)
|
||||
{
|
||||
qDebug() << "Download: 后台安装结束,退出程序";
|
||||
qApp->quit();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -60,6 +60,7 @@ signals:
|
||||
|
||||
private slots:
|
||||
void on_pushButton_clicked();
|
||||
void slotInstallFinished(bool success);
|
||||
};
|
||||
|
||||
#endif // DOWNLOADLISTWIDGET_H
|
||||
|
14
tool/apt-fast-conf/aptss-apt.conf
Normal file
14
tool/apt-fast-conf/aptss-apt.conf
Normal file
@ -0,0 +1,14 @@
|
||||
Debug::RunScripts true;
|
||||
Dir::Cache::archives "/var/cache/apt/archives";
|
||||
Dir::Cache "/var/lib/aptss/";
|
||||
Dir::Etc::SourceParts "/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/";
|
||||
Dir::State::lists "/var/lib/aptss/lists/";
|
||||
|
||||
APT::Get::Fix-Broken true;
|
||||
APT::Get::List-Cleanup="0";
|
||||
|
||||
#clear APT::Update::Post-Invoke-Success;
|
||||
|
||||
#clear DPkg::Post-Invoke;
|
||||
|
||||
#clear DPkg::Pre-Install-Pkgs;
|
95
tool/aptss
95
tool/aptss
@ -1,12 +1,53 @@
|
||||
#!/bin/bash
|
||||
|
||||
source /opt/durapps/spark-store/bin/bashimport/transhell.amber
|
||||
load_transhell
|
||||
|
||||
case `arch` in
|
||||
x86_64)
|
||||
STORE_URL="store"
|
||||
STORE_LIST_URL=""
|
||||
;;
|
||||
aarch64)
|
||||
STORE_URL="aarch64-store"
|
||||
STORE_LIST_URL="-aarch64"
|
||||
;;
|
||||
esac
|
||||
SS_APT_FAST="/opt/durapps/spark-store/bin/apt-fast/ss-apt-fast"
|
||||
|
||||
|
||||
is_empty_dir(){
|
||||
return `ls -A $1|wc -w`
|
||||
}
|
||||
|
||||
|
||||
|
||||
if [ "$(id -u)" != "0" ];then
|
||||
#############################无root权限时
|
||||
echo "${TRANSHELL_CONTENT_RUNNING_IN_NOT_ROOT_USER}"
|
||||
|
||||
else
|
||||
|
||||
if is_empty_dir /etc/apt/sources.list.d/ ;then
|
||||
echo "${TRANSHELL_CONTENT_INFO_SOURCES_LIST_D_IS_EMPTY}"
|
||||
else
|
||||
ln -sf /etc/apt/sources.list.d/* /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d
|
||||
###让这里和系统同步,先链接,然后清除无效链接
|
||||
for a in `find /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d -type l`
|
||||
do
|
||||
stat -L $a >/dev/null 2>/dev/null
|
||||
if [ $? -gt 0 ];then
|
||||
rm $a
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if [ ! -e "/tmp/aptss-conf/apt-fast.conf" ];then
|
||||
###刷新apt-fast配置
|
||||
mkdir -p /tmp/aptss-conf/
|
||||
echo "从服务器获取配置和镜像列表..."
|
||||
echo "Getting server and mirror lists..."
|
||||
echo "${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}"
|
||||
echo
|
||||
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
|
||||
@ -14,18 +55,16 @@ chmod -R 755 /tmp/aptss-conf
|
||||
fi
|
||||
|
||||
|
||||
if [ ! -e "/var/lib/apt/lists/d.spark-app.store_store_Packages" ] && [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" ] && [ ! -e "/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_store_Packages" ];then
|
||||
echo "接收星火仓库软件信息中..."
|
||||
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 "从服务器获取配置和镜像列表..."
|
||||
echo "Getting server and mirror lists..."
|
||||
echo "${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}"
|
||||
echo
|
||||
curl --silent -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
|
||||
chmod -R 755 /tmp/aptss-conf
|
||||
|
||||
sudo curl --silent -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore.list"
|
||||
sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||
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
|
||||
|
||||
#只更新星火源
|
||||
|
||||
@ -41,17 +80,15 @@ if [ "$1" = "install" ] || [ "$1" = "upgrade" ] || [ "$1" = "full-upgrade" ] ;
|
||||
|
||||
|
||||
###执行
|
||||
bwrap --dev-bind / / \
|
||||
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||
${SS_APT_FAST} "$@" --allow-downgrades
|
||||
|
||||
${SS_APT_FAST} "$@" --allow-downgrades -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
|
||||
|
||||
|
||||
elif [ "$1" = "download" ];then
|
||||
|
||||
###执行
|
||||
bwrap --dev-bind / / \
|
||||
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||
${SS_APT_FAST} "$@" --allow-downgrades
|
||||
|
||||
${SS_APT_FAST} "$@" --allow-downgrades -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
|
||||
|
||||
|
||||
elif [ "$1" = "policy" ] || [ "$1" = "search" ];then
|
||||
@ -59,47 +96,37 @@ elif [ "$1" = "policy" ] || [ "$1" = "search" ];then
|
||||
|
||||
|
||||
###执行
|
||||
bwrap --dev-bind / / \
|
||||
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||
apt "$@"
|
||||
apt "$@" -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
|
||||
|
||||
elif [ "$1" = "ssupdate" ];then
|
||||
|
||||
mkdir -p /tmp/aptss-conf/
|
||||
echo "从服务器获取配置和镜像列表..."
|
||||
echo "Getting server and mirror lists..."
|
||||
echo "${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}"
|
||||
echo
|
||||
curl --silent -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
|
||||
chmod -R 755 /tmp/aptss-conf
|
||||
|
||||
sudo curl --silent -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore.list"
|
||||
sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||
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 -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
|
||||
sudo curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore.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/
|
||||
echo "从服务器获取配置和镜像列表..."
|
||||
echo "Getting server and mirror lists..."
|
||||
echo "${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}"
|
||||
echo
|
||||
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自动补全用
|
||||
bwrap --dev-bind / / \
|
||||
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||
apt "$@" -o APT::Get::List-Cleanup="0"
|
||||
|
||||
bwrap --dev-bind / / \
|
||||
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||
apt "$@" -o APT::Get::List-Cleanup="0" -o Dir::Cache="/etc/aptss/"
|
||||
apt "$@" -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
|
||||
|
||||
else
|
||||
bwrap --dev-bind / / \
|
||||
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||
apt "$@"
|
||||
apt "$@" -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
|
||||
fi
|
||||
|
||||
|
||||
|
@ -1,2 +0,0 @@
|
||||
# Feadback 反馈脚本
|
||||
使用 shc 加密, 需要使用 cc、gcc 编译。
|
82
tool/ss-feedback/sender-d
Executable file
82
tool/ss-feedback/sender-d
Executable file
@ -0,0 +1,82 @@
|
||||
#!/bin/bash
|
||||
|
||||
#用法:sender.sh 下载链接 HD70642
|
||||
|
||||
case `arch` in
|
||||
x86_64)
|
||||
STORE_URL="store"
|
||||
;;
|
||||
aarch64)
|
||||
STORE_URL="aarch64-store"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z $1 ] || [ "$2" != "HD70642" ];then
|
||||
echo "Segment fault"
|
||||
# 假的段错误
|
||||
exit -1
|
||||
fi
|
||||
|
||||
mkdir -p /tmp/spark-store/mail-send-content
|
||||
cd /tmp/spark-store/mail-send-content
|
||||
|
||||
APP_LOCATION=${1#*/$STORE_URL/}
|
||||
APP_LOCATION=${APP_LOCATION%/*}
|
||||
echo $APP_LOCATION
|
||||
|
||||
APP_METALINK_FILE_NAME=${1##*/}
|
||||
#echo $APP_METALINK_FILE_NAME
|
||||
|
||||
|
||||
PIDS=$(pidof "spark-store")
|
||||
# 检查 metalink以防止未下载时刷分
|
||||
|
||||
if [ ! -f /tmp/spark-store/$APP_METALINK_FILE_NAME ] || [ "$PIDS" = "" ];then
|
||||
sleep 1
|
||||
echo "发送!成功"
|
||||
exit
|
||||
# 其实是发送不成功的意思lolol
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
MAIL_INFO_0=sparkstorefeedback@163.com:YWYGLQNOPLWNNJJY
|
||||
MAIL_INFO_1=ss_feedback@163.com:NIXEBFOBQHLOFVKX
|
||||
MAIL_INFO_2=spark_store_good@163.com:FIGNKXCLBGCYUDUF
|
||||
MAIL_INFO_3=wudibaolongzsoy@163.com:IOGHUIEDXXMGWJTI
|
||||
MAIL_INFO_4=suasnjaksf@163.com:KWUBIOYTGYIPVALZ
|
||||
#
|
||||
MAIL_INFO_5=asdasdasdasd0827@163.com:TSSLXXCEAAATCZJJ
|
||||
MAIL_INFO_6=hjkhuiasndkj@163.com:XJZDDLHZYACGJVWM
|
||||
MAIL_INFO_7=xncniasudhqi@163.com:CULXTHBHSENNMPWG
|
||||
MAIL_INFO_8=ajhdiahiudqahwui@163.com:HFAJCJOCWIDZHGIG
|
||||
MAIL_INFO_9=xcvuyefbewr@163.com:VYBRUVGLHPSHQRSM
|
||||
|
||||
|
||||
MAIL_INFO_RANDOM=MAIL_INFO_$(($RANDOM % 10))
|
||||
|
||||
MAIL_INFO_RANDOM=`echo ${!MAIL_INFO_RANDOM}`
|
||||
# 把对应变量赋值过来
|
||||
|
||||
MAIL_ADDRESS_FROM_INFO_RANDOM=`echo $MAIL_INFO_RANDOM | sed "{s/:.*//}" `
|
||||
|
||||
|
||||
|
||||
cat << EOF > ./data.txt
|
||||
------------------------------------
|
||||
From:$MAIL_ADDRESS_FROM_INFO_RANDOM
|
||||
To:$MAIL_ADDRESS_FROM_INFO_RANDOM
|
||||
Subject: Download count command
|
||||
check=i love amber forever
|
||||
command:download_count
|
||||
APP_LOCATION=$STORE_URL/$APP_LOCATION
|
||||
------------------------------------
|
||||
|
||||
EOF
|
||||
|
||||
curl -s --url "smtp://smtp.163.com" --mail-from "$MAIL_ADDRESS_FROM_INFO_RANDOM" --mail-rcpt "$MAIL_ADDRESS_FROM_INFO_RANDOM" --upload-file ./data.txt --user "$MAIL_INFO_RANDOM"
|
||||
|
||||
rm /tmp/spark-store/mail-send-content/data.txt
|
||||
|
||||
echo "Finished"
|
@ -1,817 +0,0 @@
|
||||
#if 0
|
||||
shc Version 4.0.3, Generic Shell Script Compiler
|
||||
GNU GPL Version 3 Md Jahidul Hamid <jahidulhamid@yahoo.com>
|
||||
|
||||
shc -v -r -f sender-d.sh
|
||||
#endif
|
||||
|
||||
static char data [] =
|
||||
#define pswd_z 256
|
||||
#define pswd ((&data[15]))
|
||||
"\073\237\114\151\003\324\064\061\057\100\342\310\062\343\346\075"
|
||||
"\105\011\036\257\154\107\223\050\237\060\137\020\063\015\377\156"
|
||||
"\162\230\321\117\026\333\267\322\335\062\077\075\261\355\172\366"
|
||||
"\367\231\246\144\341\071\215\201\151\354\221\234\371\221\013\153"
|
||||
"\052\334\273\101\267\162\023\224\244\123\322\125\100\115\114\067"
|
||||
"\347\362\233\310\053\050\111\225\025\333\061\016\154\075\172\227"
|
||||
"\031\065\330\320\250\354\145\114\077\067\242\200\204\357\267\154"
|
||||
"\341\123\064\015\174\176\242\221\131\324\240\306\021\032\136\053"
|
||||
"\117\066\373\367\043\141\104\142\230\347\342\035\326\232\212\270"
|
||||
"\356\276\306\152\075\151\374\227\076\234\135\120\266\273\173\006"
|
||||
"\362\167\376\025\330\103\170\161\052\133\217\001\366\031\272\344"
|
||||
"\330\201\116\025\352\113\254\051\347\012\171\236\305\365\245\270"
|
||||
"\154\243\316\105\346\106\267\021\242\106\023\230\137\316\174\067"
|
||||
"\117\313\115\072\026\371\143\376\003\334\234\311\322\101\202\076"
|
||||
"\345\120\204\313\227\073\335\071\202\360\321\341\276\116\031\016"
|
||||
"\031\146\110\057\140\253\056\144\210\312\056\132\014\260\231\361"
|
||||
"\000\036\275\230\131\232\321\333\213\243\275\112\361\327\130\360"
|
||||
"\173\100\213\115\034\027\361\331\141\342\261\272\356\360\133\051"
|
||||
"\217\247\222\222\173\307\304\253\007\247\163\072\212\132\052\005"
|
||||
"\232\266\123\266\315\104\220"
|
||||
#define date_z 1
|
||||
#define date ((&data[311]))
|
||||
"\375"
|
||||
#define tst2_z 19
|
||||
#define tst2 ((&data[312]))
|
||||
"\031\242\273\246\041\336\076\145\246\300\036\051\047\366\106\356"
|
||||
"\220\064\226"
|
||||
#define shll_z 10
|
||||
#define shll ((&data[331]))
|
||||
"\142\312\022\213\061\052\357\062\161\266\353\321"
|
||||
#define inlo_z 3
|
||||
#define inlo ((&data[343]))
|
||||
"\216\314\250"
|
||||
#define msg1_z 65
|
||||
#define msg1 ((&data[347]))
|
||||
"\300\115\164\240\306\270\356\211\346\362\207\042\205\377\337\231"
|
||||
"\113\016\267\021\330\324\374\242\242\336\361\041\143\054\223\355"
|
||||
"\361\326\220\125\016\336\260\031\012\341\025\102\124\131\005\244"
|
||||
"\234\133\315\262\013\375\340\025\227\352\060\034\236\222\347\136"
|
||||
"\160\356\206\333\112\340\006\120\173\274\243\061"
|
||||
#define chk1_z 22
|
||||
#define chk1 ((&data[427]))
|
||||
"\270\017\004\242\044\277\223\036\316\135\273\047\172\354\056\123"
|
||||
"\141\200\041\375\363\101\127\122\242\373\336\067\346\143\370"
|
||||
#define text_z 1869
|
||||
#define text ((&data[549]))
|
||||
"\071\315\146\114\156\047\322\111\162\262\117\303\055\014\146\137"
|
||||
"\226\117\042\116\136\046\360\203\135\327\346\126\251\033\243\342"
|
||||
"\351\012\056\127\062\000\240\244\263\360\147\341\374\316\101\222"
|
||||
"\035\143\341\174\212\322\377\350\251\345\076\122\001\342\065\352"
|
||||
"\355\143\101\037\144\342\304\030\323\053\372\320\372\073\142\030"
|
||||
"\237\104\224\051\026\223\022\300\171\121\023\172\064\110\144\041"
|
||||
"\131\377\367\164\123\316\261\141\353\367\301\016\274\016\120\047"
|
||||
"\114\046\100\031\034\140\073\010\260\305\236\267\340\334\172\305"
|
||||
"\021\246\221\332\021\311\021\154\112\347\316\242\317\135\332\301"
|
||||
"\336\151\126\072\217\354\230\133\220\107\301\140\001\353\360\166"
|
||||
"\213\363\372\027\233\047\323\276\201\201\216\023\154\320\161\313"
|
||||
"\320\152\257\025\322\272\025\153\247\235\321\160\071\321\067\253"
|
||||
"\241\156\046\022\220\271\031\066\331\215\206\354\323\250\277\275"
|
||||
"\253\021\137\373\037\247\054\101\371\345\374\104\113\056\231\313"
|
||||
"\256\361\253\230\051\271\176\340\337\333\050\341\362\056\167\255"
|
||||
"\110\043\213\146\047\300\122\142\314\236\021\040\074\377\243\374"
|
||||
"\373\242\311\017\027\025\325\213\232\031\105\104\013\052\212\072"
|
||||
"\030\104\271\142\045\220\026\110\122\375\151\376\117\030\367\246"
|
||||
"\217\256\245\325\077\346\276\327\045\113\166\374\164\175\046\022"
|
||||
"\327\265\135\221\047\346\332\276\260\240\227\230\211\165\023\170"
|
||||
"\316\154\240\317\001\217\073\173\212\106\115\070\141\315\324\116"
|
||||
"\204\026\326\026\254\252\257\044\333\310\024\223\327\026\336\312"
|
||||
"\151\363\273\204\220\242\016\226\317\314\156\124\240\122\232\124"
|
||||
"\110\055\240\223\016\373\000\136\102\135\122\057\222\070\210\130"
|
||||
"\012\234\324\361\047\201\232\126\155\021\270\134\303\377\110\250"
|
||||
"\220\352\314\011\276\260\131\175\233\367\254\266\366\263\014\102"
|
||||
"\237\066\305\270\257\117\034\316\147\136\133\373\051\333\006\077"
|
||||
"\242\225\073\276\155\106\311\232\247\112\341\143\016\103\013\062"
|
||||
"\214\247\315\302\241\024\076\037\135\126\145\227\342\323\061\230"
|
||||
"\016\246\203\251\033\223\105\251\131\001\060\306\305\034\005\133"
|
||||
"\161\366\173\132\343\314\135\205\273\260\170\145\370\262\153\321"
|
||||
"\253\345\131\260\346\020\367\016\127\056\307\040\112\052\012\264"
|
||||
"\247\057\273\157\016\275\270\226\173\033\071\042\072\142\170\134"
|
||||
"\045\016\163\251\362\073\214\166\354\103\017\330\122\073\211\204"
|
||||
"\200\004\003\176\324\343\275\017\056\341\055\071\173\175\144\147"
|
||||
"\365\115\274\012\253\277\036\370\220\115\307\120\131\037\206\063"
|
||||
"\355\032\324\265\064\114\014\217\113\302\125\301\033\100\357\042"
|
||||
"\334\212\202\353\262\040\130\240\027\110\343\271\356\171\001\325"
|
||||
"\167\062\056\061\210\316\075\142\261\005\116\142\230\367\343\135"
|
||||
"\174\302\375\047\075\334\222\326\253\073\174\173\360\260\021\344"
|
||||
"\331\315\146\233\057\007\314\231\256\113\221\021\126\173\045\315"
|
||||
"\247\126\162\253\375\041\043\263\232\274\171\132\320\020\070\152"
|
||||
"\013\224\371\045\350\270\077\251\145\063\357\171\036\245\125\315"
|
||||
"\020\206\333\111\062\331\054\144\346\173\132\113\374\043\022\371"
|
||||
"\311\101\043\300\337\334\367\145\030\023\207\043\253\042\227\302"
|
||||
"\350\037\067\332\350\253\117\124\243\341\046\211\061\007\303\154"
|
||||
"\022\210\064\112\311\170\123\071\332\266\205\151\265\300\343\237"
|
||||
"\147\001\024\013\173\265\330\375\070\111\044\246\204\155\146\067"
|
||||
"\036\060\065\251\005\354\200\115\136\076\034\040\335\033\043\221"
|
||||
"\374\211\170\061\251\321\372\116\023\167\330\007\310\060\175\076"
|
||||
"\064\242\253\131\116\074\275\022\133\016\203\214\254\115\002\325"
|
||||
"\046\213\073\107\241\341\273\110\300\236\005\231\275\325\012\175"
|
||||
"\365\056\370\275\132\330\041\035\166\130\240\013\162\041\163\140"
|
||||
"\377\225\075\315\115\106\270\277\233\113\106\305\270\240\026\106"
|
||||
"\317\325\264\324\126\337\214\155\366\331\372\200\306\272\163\333"
|
||||
"\266\343\246\100\016\002\242\070\231\262\005\137\323\257\343\047"
|
||||
"\301\206\266\341\302\046\266\167\227\276\125\165\027\044\353\035"
|
||||
"\043\036\300\137\140\244\156\205\364\361\067\016\324\110\142\167"
|
||||
"\125\216\360\003\023\161\060\263\356\073\050\173\151\371\005\027"
|
||||
"\027\273\363\163\017\044\064\055\267\345\052\320\370\132\374\123"
|
||||
"\020\263\163\176\037\145\346\003\275\377\154\040\166\363\224\240"
|
||||
"\214\304\332\367\057\146\070\165\101\026\125\361\100\357\001\031"
|
||||
"\305\363\242\164\125\067\077\063\134\271\250\242\243\022\031\114"
|
||||
"\225\006\352\203\137\376\201\147\225\372\053\217\331\003\156\143"
|
||||
"\332\361\315\167\027\232\307\331\314\071\025\271\047\031\126\310"
|
||||
"\254\200\324\257\022\351\244\007\335\036\150\036\362\072\021\007"
|
||||
"\140\155\073\242\063\071\162\205\121\257\302\056\155\071\306\057"
|
||||
"\236\364\027\143\074\375\254\324\117\176\242\267\247\215\374\137"
|
||||
"\003\123\113\247\064\347\123\321\123\044\211\351\253\045\226\324"
|
||||
"\034\147\117\066\000\370\074\041\242\137\270\361\106\154\113\045"
|
||||
"\275\172\101\331\157\137\222\202\136\241\075\132\267\033\325\113"
|
||||
"\042\352\305\133\274\252\111\213\330\215\261\145\322\246\174\031"
|
||||
"\267\347\275\247\251\030\255\106\116\362\117\277\024\135\356\172"
|
||||
"\033\066\346\252\205\144\302\147\131\076\122\021\152\225\313\235"
|
||||
"\202\066\043\300\027\147\263\001\201\341\121\051\310\140\317\333"
|
||||
"\131\254\112\104\337\014\320\143\375\231\252\220\064\143\234\000"
|
||||
"\017\304\317\113\131\055\324\177\367\224\230\264\132\311\261\152"
|
||||
"\034\137\223\225\365\314\014\076\377\025\023\040\222\043\022\047"
|
||||
"\332\363\144\102\015\314\010\256\206\065\310\103\337\001\326\206"
|
||||
"\024\354\074\045\337\107\003\225\137\032\055\332\056\347\073\055"
|
||||
"\267\115\315\204\061\310\304\007\065\267\107\176\066\216\011\014"
|
||||
"\066\215\236\247\176\327\164\113\353\215\343\313\302\106\302\250"
|
||||
"\077\220\165\207\015\144\336\311\065\351\311\163\104\104\267\262"
|
||||
"\307\057\106\061\110\271\053\136\133\263\066\177\103\212\234\166"
|
||||
"\271\130\043\076\352\006\066\017\220\207\275\024\235\356\377\344"
|
||||
"\005\257\200\002\253\123\052\015\326\342\225\116\137\256\213\354"
|
||||
"\251\026\237\347\166\014\121\075\306\022\247\276\265\017\375\161"
|
||||
"\174\113\273\017\227\064\057\217\376\326\311\140\354\074\160\121"
|
||||
"\346\370\327\255\277\376\062\301\033\111\042\016\233\162\101\303"
|
||||
"\161\123\210\042\157\270\114\252\372\315\352\335\221\115\300\252"
|
||||
"\163\344\140\324\157\261\256\232\173\171\024\250\006\342\320\340"
|
||||
"\365\137\167\336\216\320\337\345\265\346\363\133\023\076\121\117"
|
||||
"\002\021\237\112\206\043\012\370\033\045\133\151\303\330\001\222"
|
||||
"\073\174\074\320\054\005\127\000\210\240\347\131\256\126\253\007"
|
||||
"\342\137\135\162\075\344\340\210\333\057\141\042\223\055\006\174"
|
||||
"\000\005\225\117\203\320\143\136\130\037\333\217\136\371\221\220"
|
||||
"\052\071\173\374\261\213\235\241\071\260\057\226\360\212\211\346"
|
||||
"\333\062\135\157\357\316\156\022\111\201\010\151\065\111\364\364"
|
||||
"\137\005\161\265\354\014\003\204\117\112\075\042\357\165\042\354"
|
||||
"\263\304\343\323\045\127\244\326\160\216\335\042\353\173\135\061"
|
||||
"\354\306\013\252\265\013\046\173\100\050\146\372\303\210\171\200"
|
||||
"\160\377\013\300\245\265\307\146\355\047\052\007\011\214\060\367"
|
||||
"\177\327\043\302\111\263\123\276\107\220\316\207\024\142\070\325"
|
||||
"\004\262\276\355\075\175\146\163\370\345\135\214\322\041\105\047"
|
||||
"\371\073\016\023\064\231\203\005\246\204\203\306\340\002\160\365"
|
||||
"\315\022\302\170\340\356\151\323\344\242\134\046\134\162\227\117"
|
||||
"\262\240\062\234\324\135\326\242\341\066\232\314\200\331\124\077"
|
||||
"\201\245\227\252\073\356\252\367\277\232\331\005\324\350\032\261"
|
||||
"\035\246\325\177\334\121\146\316\041\043\352\253\373\043\035\234"
|
||||
"\231\321\046\171\221\105\216\272\025\321\042\222\007\351\363\232"
|
||||
"\006\016\231\137\124\215\132\071\166\042\065\127\337\253\307\021"
|
||||
"\337\364\070\261\112\201\310\242\335\104\353\055\277\322\232\240"
|
||||
"\007\374\034\322\312\373\031\130\204\036\362\373\142\043\273\315"
|
||||
"\216\373\273\260\310\111\070\031\207\101\325\157\110\142\216\357"
|
||||
"\172\023\345\067\105\007\375\023\053\256\121\163\255\323\257\132"
|
||||
"\164\360\307\234\106\130\275\217\211\327\300\322\261\206\364\326"
|
||||
"\021\255\077\302\202\027\207\370\263\313\333\070\010\115\377\271"
|
||||
"\173\302\243\224\126\201\255\356\261\176\213\135\216\054\237\371"
|
||||
"\040\174\342\367\323\053\341\031\333\211\214\042\343\254\122\252"
|
||||
"\325\326\263\326\325\063\065\362\114\161\314\151\116\237\160\073"
|
||||
"\321\025\336\117\020\055\371\021\371\104\001\072\204\064\227\333"
|
||||
"\034\374\123\265\343\026\372\207\264\033\065\316\147\211\142\366"
|
||||
"\371\257\120\162\107\234\134\010\035\212\241\132\317\254\246\101"
|
||||
"\020\211\005\051\134\061\043\054\054\137\217\104\376\323\330\050"
|
||||
"\352\154\072\253\345\214\276\137\300\006\304\341\262\152\043\303"
|
||||
"\364\051\354\120\132\017\175\207\156\014\313\155\337\244\225\312"
|
||||
"\020\320\165\366\134\063\126\034\072\032\376\355\205\041\260\171"
|
||||
"\113\234\312\245\254\107\055\033\123\370\210\063\235\036\375\256"
|
||||
"\356\163\245\113\247\373\150\341\025\146\316\233\210\177\024\323"
|
||||
"\034\336\171\310\046\246\343\171\237\153\255\075\211\252\353\170"
|
||||
"\036\220\304\305\214\054\246\242\222\165\075\033\365\122\357\021"
|
||||
"\061\150\331\127\017\275\321\257\051\176"
|
||||
#define chk2_z 19
|
||||
#define chk2 ((&data[2562]))
|
||||
"\330\053\107\261\150\156\021\060\277\165\015\167\176\171\251\302"
|
||||
"\276\160\207\325\012\334"
|
||||
#define lsto_z 1
|
||||
#define lsto ((&data[2581]))
|
||||
"\010"
|
||||
#define xecc_z 15
|
||||
#define xecc ((&data[2582]))
|
||||
"\005\040\327\254\114\361\156\300\024\244\110\337\050\143\126\227"
|
||||
"\257"
|
||||
#define tst1_z 22
|
||||
#define tst1 ((&data[2603]))
|
||||
"\036\047\271\057\207\076\001\326\201\264\356\151\036\164\071\111"
|
||||
"\027\304\031\244\017\252\223\354\153\051\130\042\011\260"
|
||||
#define msg2_z 19
|
||||
#define msg2 ((&data[2632]))
|
||||
"\341\357\377\335\143\002\251\076\361\005\267\075\204\313\320\034"
|
||||
"\012\023\243\361\261\374\315\242"
|
||||
#define rlax_z 1
|
||||
#define rlax ((&data[2653]))
|
||||
"\121"
|
||||
#define opts_z 1
|
||||
#define opts ((&data[2654]))
|
||||
"\241"/* End of data[] */;
|
||||
#define hide_z 4096
|
||||
#define SETUID 0 /* Define as 1 to call setuid(0) at start of script */
|
||||
#define DEBUGEXEC 0 /* Define as 1 to debug execvp calls */
|
||||
#define TRACEABLE 1 /* Define as 1 to enable ptrace the executable */
|
||||
#define HARDENING 0 /* Define as 1 to disable ptrace/dump the executable */
|
||||
#define BUSYBOXON 0 /* Define as 1 to enable work with busybox */
|
||||
|
||||
#if HARDENING
|
||||
static const char * shc_x[] = {
|
||||
"/*",
|
||||
" * Copyright 2019 - Intika <intika@librefox.org>",
|
||||
" * Replace ******** with secret read from fd 21",
|
||||
" * Also change arguments location of sub commands (sh script commands)",
|
||||
" * gcc -Wall -fpic -shared -o shc_secret.so shc_secret.c -ldl",
|
||||
" */",
|
||||
"",
|
||||
"#define _GNU_SOURCE /* needed to get RTLD_NEXT defined in dlfcn.h */",
|
||||
"#define PLACEHOLDER \"********\"",
|
||||
"#include <dlfcn.h>",
|
||||
"#include <stdlib.h>",
|
||||
"#include <string.h>",
|
||||
"#include <unistd.h>",
|
||||
"#include <stdio.h>",
|
||||
"#include <signal.h>",
|
||||
"",
|
||||
"static char secret[128000]; //max size",
|
||||
"typedef int (*pfi)(int, char **, char **);",
|
||||
"static pfi real_main;",
|
||||
"",
|
||||
"// copy argv to new location",
|
||||
"char **copyargs(int argc, char** argv){",
|
||||
" char **newargv = malloc((argc+1)*sizeof(*argv));",
|
||||
" char *from,*to;",
|
||||
" int i,len;",
|
||||
"",
|
||||
" for(i = 0; i<argc; i++){",
|
||||
" from = argv[i];",
|
||||
" len = strlen(from)+1;",
|
||||
" to = malloc(len);",
|
||||
" memcpy(to,from,len);",
|
||||
" // zap old argv space",
|
||||
" memset(from,'\\0',len);",
|
||||
" newargv[i] = to;",
|
||||
" argv[i] = 0;",
|
||||
" }",
|
||||
" newargv[argc] = 0;",
|
||||
" return newargv;",
|
||||
"}",
|
||||
"",
|
||||
"static int mymain(int argc, char** argv, char** env) {",
|
||||
" //fprintf(stderr, \"Inject main argc = %d\\n\", argc);",
|
||||
" return real_main(argc, copyargs(argc,argv), env);",
|
||||
"}",
|
||||
"",
|
||||
"int __libc_start_main(int (*main) (int, char**, char**),",
|
||||
" int argc,",
|
||||
" char **argv,",
|
||||
" void (*init) (void),",
|
||||
" void (*fini)(void),",
|
||||
" void (*rtld_fini)(void),",
|
||||
" void (*stack_end)){",
|
||||
" static int (*real___libc_start_main)() = NULL;",
|
||||
" int n;",
|
||||
"",
|
||||
" if (!real___libc_start_main) {",
|
||||
" real___libc_start_main = dlsym(RTLD_NEXT, \"__libc_start_main\");",
|
||||
" if (!real___libc_start_main) abort();",
|
||||
" }",
|
||||
"",
|
||||
" n = read(21, secret, sizeof(secret));",
|
||||
" if (n > 0) {",
|
||||
" int i;",
|
||||
"",
|
||||
" if (secret[n - 1] == '\\n') secret[--n] = '\\0';",
|
||||
" for (i = 1; i < argc; i++)",
|
||||
" if (strcmp(argv[i], PLACEHOLDER) == 0)",
|
||||
" argv[i] = secret;",
|
||||
" }",
|
||||
"",
|
||||
" real_main = main;",
|
||||
"",
|
||||
" return real___libc_start_main(mymain, argc, argv, init, fini, rtld_fini, stack_end);",
|
||||
"}",
|
||||
"",
|
||||
0};
|
||||
#endif /* HARDENING */
|
||||
|
||||
/* rtc.c */
|
||||
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* 'Alleged RC4' */
|
||||
|
||||
static unsigned char stte[256], indx, jndx, kndx;
|
||||
|
||||
/*
|
||||
* Reset arc4 stte.
|
||||
*/
|
||||
void stte_0(void)
|
||||
{
|
||||
indx = jndx = kndx = 0;
|
||||
do {
|
||||
stte[indx] = indx;
|
||||
} while (++indx);
|
||||
}
|
||||
|
||||
/*
|
||||
* Set key. Can be used more than once.
|
||||
*/
|
||||
void key(void * str, int len)
|
||||
{
|
||||
unsigned char tmp, * ptr = (unsigned char *)str;
|
||||
while (len > 0) {
|
||||
do {
|
||||
tmp = stte[indx];
|
||||
kndx += tmp;
|
||||
kndx += ptr[(int)indx % len];
|
||||
stte[indx] = stte[kndx];
|
||||
stte[kndx] = tmp;
|
||||
} while (++indx);
|
||||
ptr += 256;
|
||||
len -= 256;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Crypt data.
|
||||
*/
|
||||
void arc4(void * str, int len)
|
||||
{
|
||||
unsigned char tmp, * ptr = (unsigned char *)str;
|
||||
while (len > 0) {
|
||||
indx++;
|
||||
tmp = stte[indx];
|
||||
jndx += tmp;
|
||||
stte[indx] = stte[jndx];
|
||||
stte[jndx] = tmp;
|
||||
tmp += stte[indx];
|
||||
*ptr ^= stte[tmp];
|
||||
ptr++;
|
||||
len--;
|
||||
}
|
||||
}
|
||||
|
||||
/* End of ARC4 */
|
||||
|
||||
#if HARDENING
|
||||
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/wait.h>
|
||||
#include <signal.h>
|
||||
#include <sys/prctl.h>
|
||||
#define PR_SET_PTRACER 0x59616d61
|
||||
|
||||
/* Seccomp Sandboxing Init */
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/prctl.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
#include <linux/filter.h>
|
||||
#include <linux/seccomp.h>
|
||||
#include <linux/audit.h>
|
||||
|
||||
#define ArchField offsetof(struct seccomp_data, arch)
|
||||
|
||||
#define Allow(syscall) \
|
||||
BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, SYS_##syscall, 0, 1), \
|
||||
BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW)
|
||||
|
||||
struct sock_filter filter[] = {
|
||||
/* validate arch */
|
||||
BPF_STMT(BPF_LD+BPF_W+BPF_ABS, ArchField),
|
||||
BPF_JUMP( BPF_JMP+BPF_JEQ+BPF_K, AUDIT_ARCH_X86_64, 1, 0),
|
||||
BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_KILL),
|
||||
|
||||
/* load syscall */
|
||||
BPF_STMT(BPF_LD+BPF_W+BPF_ABS, offsetof(struct seccomp_data, nr)),
|
||||
|
||||
/* list of allowed syscalls */
|
||||
Allow(exit_group), /* exits a process */
|
||||
Allow(brk), /* for malloc(), inside libc */
|
||||
Allow(mmap), /* also for malloc() */
|
||||
Allow(munmap), /* for free(), inside libc */
|
||||
|
||||
/* and if we don't match above, die */
|
||||
BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_KILL),
|
||||
};
|
||||
struct sock_fprog filterprog = {
|
||||
.len = sizeof(filter)/sizeof(filter[0]),
|
||||
.filter = filter
|
||||
};
|
||||
|
||||
/* Seccomp Sandboxing - Set up the restricted environment */
|
||||
void seccomp_hardening() {
|
||||
if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)) {
|
||||
perror("Could not start seccomp:");
|
||||
exit(1);
|
||||
}
|
||||
if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &filterprog) == -1) {
|
||||
perror("Could not start seccomp:");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
/* End Seccomp Sandboxing Init */
|
||||
|
||||
void shc_x_file() {
|
||||
FILE *fp;
|
||||
int line = 0;
|
||||
|
||||
if ((fp = fopen("/tmp/shc_x.c", "w")) == NULL ) {exit(1); exit(1);}
|
||||
for (line = 0; shc_x[line]; line++) fprintf(fp, "%s\n", shc_x[line]);
|
||||
fflush(fp);fclose(fp);
|
||||
}
|
||||
|
||||
int make() {
|
||||
char * cc, * cflags, * ldflags;
|
||||
char cmd[4096];
|
||||
|
||||
cc = getenv("CC");
|
||||
if (!cc) cc = "cc";
|
||||
|
||||
sprintf(cmd, "%s %s -o %s %s", cc, "-Wall -fpic -shared", "/tmp/shc_x.so", "/tmp/shc_x.c -ldl");
|
||||
if (system(cmd)) {remove("/tmp/shc_x.c"); return -1;}
|
||||
remove("/tmp/shc_x.c"); return 0;
|
||||
}
|
||||
|
||||
void arc4_hardrun(void * str, int len) {
|
||||
//Decode locally
|
||||
char tmp2[len];
|
||||
char tmp3[len+1024];
|
||||
memcpy(tmp2, str, len);
|
||||
|
||||
unsigned char tmp, * ptr = (unsigned char *)tmp2;
|
||||
int lentmp = len;
|
||||
int pid, status;
|
||||
pid = fork();
|
||||
|
||||
shc_x_file();
|
||||
if (make()) {exit(1);}
|
||||
|
||||
setenv("LD_PRELOAD","/tmp/shc_x.so",1);
|
||||
|
||||
if(pid==0) {
|
||||
|
||||
//Start tracing to protect from dump & trace
|
||||
if (ptrace(PTRACE_TRACEME, 0, 0, 0) < 0) {
|
||||
kill(getpid(), SIGKILL);
|
||||
_exit(1);
|
||||
}
|
||||
|
||||
//Decode Bash
|
||||
while (len > 0) {
|
||||
indx++;
|
||||
tmp = stte[indx];
|
||||
jndx += tmp;
|
||||
stte[indx] = stte[jndx];
|
||||
stte[jndx] = tmp;
|
||||
tmp += stte[indx];
|
||||
*ptr ^= stte[tmp];
|
||||
ptr++;
|
||||
len--;
|
||||
}
|
||||
|
||||
//Do the magic
|
||||
sprintf(tmp3, "%s %s", "'********' 21<<<", tmp2);
|
||||
|
||||
//Exec bash script //fork execl with 'sh -c'
|
||||
system(tmp2);
|
||||
|
||||
//Empty script variable
|
||||
memcpy(tmp2, str, lentmp);
|
||||
|
||||
//Clean temp
|
||||
remove("/tmp/shc_x.so");
|
||||
|
||||
//Sinal to detach ptrace
|
||||
ptrace(PTRACE_DETACH, 0, 0, 0);
|
||||
exit(0);
|
||||
}
|
||||
else {wait(&status);}
|
||||
|
||||
/* Seccomp Sandboxing - Start */
|
||||
seccomp_hardening();
|
||||
|
||||
exit(0);
|
||||
}
|
||||
#endif /* HARDENING */
|
||||
|
||||
/*
|
||||
* Key with file invariants.
|
||||
*/
|
||||
int key_with_file(char * file)
|
||||
{
|
||||
struct stat statf[1];
|
||||
struct stat control[1];
|
||||
|
||||
if (stat(file, statf) < 0)
|
||||
return -1;
|
||||
|
||||
/* Turn on stable fields */
|
||||
memset(control, 0, sizeof(control));
|
||||
control->st_ino = statf->st_ino;
|
||||
control->st_dev = statf->st_dev;
|
||||
control->st_rdev = statf->st_rdev;
|
||||
control->st_uid = statf->st_uid;
|
||||
control->st_gid = statf->st_gid;
|
||||
control->st_size = statf->st_size;
|
||||
control->st_mtime = statf->st_mtime;
|
||||
control->st_ctime = statf->st_ctime;
|
||||
key(control, sizeof(control));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if DEBUGEXEC
|
||||
void debugexec(char * sh11, int argc, char ** argv)
|
||||
{
|
||||
int i;
|
||||
fprintf(stderr, "shll=%s\n", sh11 ? sh11 : "<null>");
|
||||
fprintf(stderr, "argc=%d\n", argc);
|
||||
if (!argv) {
|
||||
fprintf(stderr, "argv=<null>\n");
|
||||
} else {
|
||||
for (i = 0; i <= argc ; i++)
|
||||
fprintf(stderr, "argv[%d]=%.60s\n", i, argv[i] ? argv[i] : "<null>");
|
||||
}
|
||||
}
|
||||
#endif /* DEBUGEXEC */
|
||||
|
||||
void rmarg(char ** argv, char * arg)
|
||||
{
|
||||
for (; argv && *argv && *argv != arg; argv++);
|
||||
for (; argv && *argv; argv++)
|
||||
*argv = argv[1];
|
||||
}
|
||||
|
||||
void chkenv_end(void);
|
||||
|
||||
int chkenv(int argc)
|
||||
{
|
||||
char buff[512];
|
||||
unsigned long mask, m;
|
||||
int l, a, c;
|
||||
char * string;
|
||||
extern char ** environ;
|
||||
|
||||
mask = (unsigned long)getpid();
|
||||
stte_0();
|
||||
key(&chkenv, (void*)&chkenv_end - (void*)&chkenv);
|
||||
key(&data, sizeof(data));
|
||||
key(&mask, sizeof(mask));
|
||||
arc4(&mask, sizeof(mask));
|
||||
sprintf(buff, "x%lx", mask);
|
||||
string = getenv(buff);
|
||||
#if DEBUGEXEC
|
||||
fprintf(stderr, "getenv(%s)=%s\n", buff, string ? string : "<null>");
|
||||
#endif
|
||||
l = strlen(buff);
|
||||
if (!string) {
|
||||
/* 1st */
|
||||
sprintf(&buff[l], "=%lu %d", mask, argc);
|
||||
putenv(strdup(buff));
|
||||
return 0;
|
||||
}
|
||||
c = sscanf(string, "%lu %d%c", &m, &a, buff);
|
||||
if (c == 2 && m == mask) {
|
||||
/* 3rd */
|
||||
rmarg(environ, &string[-l - 1]);
|
||||
return 1 + (argc - a);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
void chkenv_end(void){}
|
||||
|
||||
#if HARDENING
|
||||
|
||||
static void gets_process_name(const pid_t pid, char * name) {
|
||||
char procfile[BUFSIZ];
|
||||
sprintf(procfile, "/proc/%d/cmdline", pid);
|
||||
FILE* f = fopen(procfile, "r");
|
||||
if (f) {
|
||||
size_t size;
|
||||
size = fread(name, sizeof (char), sizeof (procfile), f);
|
||||
if (size > 0) {
|
||||
if ('\n' == name[size - 1])
|
||||
name[size - 1] = '\0';
|
||||
}
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
|
||||
void hardening() {
|
||||
prctl(PR_SET_DUMPABLE, 0);
|
||||
prctl(PR_SET_PTRACER, -1);
|
||||
|
||||
int pid = getppid();
|
||||
char name[256] = {0};
|
||||
gets_process_name(pid, name);
|
||||
|
||||
if ( (strcmp(name, "bash") != 0)
|
||||
&& (strcmp(name, "/bin/bash") != 0)
|
||||
&& (strcmp(name, "sh") != 0)
|
||||
&& (strcmp(name, "/bin/sh") != 0)
|
||||
&& (strcmp(name, "sudo") != 0)
|
||||
&& (strcmp(name, "/bin/sudo") != 0)
|
||||
&& (strcmp(name, "/usr/bin/sudo") != 0)
|
||||
&& (strcmp(name, "gksudo") != 0)
|
||||
&& (strcmp(name, "/bin/gksudo") != 0)
|
||||
&& (strcmp(name, "/usr/bin/gksudo") != 0)
|
||||
&& (strcmp(name, "kdesu") != 0)
|
||||
&& (strcmp(name, "/bin/kdesu") != 0)
|
||||
&& (strcmp(name, "/usr/bin/kdesu") != 0)
|
||||
)
|
||||
{
|
||||
printf("Operation not permitted\n");
|
||||
kill(getpid(), SIGKILL);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* HARDENING */
|
||||
|
||||
#if !TRACEABLE
|
||||
|
||||
#define _LINUX_SOURCE_COMPAT
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#if !defined(PT_ATTACHEXC) /* New replacement for PT_ATTACH */
|
||||
#if !defined(PTRACE_ATTACH) && defined(PT_ATTACH)
|
||||
#define PT_ATTACHEXC PT_ATTACH
|
||||
#elif defined(PTRACE_ATTACH)
|
||||
#define PT_ATTACHEXC PTRACE_ATTACH
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void untraceable(char * argv0)
|
||||
{
|
||||
char proc[80];
|
||||
int pid, mine;
|
||||
|
||||
switch(pid = fork()) {
|
||||
case 0:
|
||||
pid = getppid();
|
||||
/* For problematic SunOS ptrace */
|
||||
#if defined(__FreeBSD__)
|
||||
sprintf(proc, "/proc/%d/mem", (int)pid);
|
||||
#else
|
||||
sprintf(proc, "/proc/%d/as", (int)pid);
|
||||
#endif
|
||||
close(0);
|
||||
mine = !open(proc, O_RDWR|O_EXCL);
|
||||
if (!mine && errno != EBUSY)
|
||||
mine = !ptrace(PT_ATTACHEXC, pid, 0, 0);
|
||||
if (mine) {
|
||||
kill(pid, SIGCONT);
|
||||
} else {
|
||||
perror(argv0);
|
||||
kill(pid, SIGKILL);
|
||||
}
|
||||
_exit(mine);
|
||||
case -1:
|
||||
break;
|
||||
default:
|
||||
if (pid == waitpid(pid, 0, 0))
|
||||
return;
|
||||
}
|
||||
perror(argv0);
|
||||
_exit(1);
|
||||
}
|
||||
#endif /* !TRACEABLE */
|
||||
|
||||
char * xsh(int argc, char ** argv)
|
||||
{
|
||||
char * scrpt;
|
||||
int ret, i, j;
|
||||
char ** varg;
|
||||
char * me = argv[0];
|
||||
if (me == NULL) { me = getenv("_"); }
|
||||
if (me == 0) { fprintf(stderr, "E: neither argv[0] nor $_ works."); exit(1); }
|
||||
|
||||
ret = chkenv(argc);
|
||||
stte_0();
|
||||
key(pswd, pswd_z);
|
||||
arc4(msg1, msg1_z);
|
||||
arc4(date, date_z);
|
||||
if (date[0] && (atoll(date)<time(NULL)))
|
||||
return msg1;
|
||||
arc4(shll, shll_z);
|
||||
arc4(inlo, inlo_z);
|
||||
arc4(xecc, xecc_z);
|
||||
arc4(lsto, lsto_z);
|
||||
arc4(tst1, tst1_z);
|
||||
key(tst1, tst1_z);
|
||||
arc4(chk1, chk1_z);
|
||||
if ((chk1_z != tst1_z) || memcmp(tst1, chk1, tst1_z))
|
||||
return tst1;
|
||||
arc4(msg2, msg2_z);
|
||||
if (ret < 0)
|
||||
return msg2;
|
||||
varg = (char **)calloc(argc + 10, sizeof(char *));
|
||||
if (!varg)
|
||||
return 0;
|
||||
if (ret) {
|
||||
arc4(rlax, rlax_z);
|
||||
if (!rlax[0] && key_with_file(shll))
|
||||
return shll;
|
||||
arc4(opts, opts_z);
|
||||
#if HARDENING
|
||||
arc4_hardrun(text, text_z);
|
||||
exit(0);
|
||||
/* Seccomp Sandboxing - Start */
|
||||
seccomp_hardening();
|
||||
#endif
|
||||
arc4(text, text_z);
|
||||
arc4(tst2, tst2_z);
|
||||
key(tst2, tst2_z);
|
||||
arc4(chk2, chk2_z);
|
||||
if ((chk2_z != tst2_z) || memcmp(tst2, chk2, tst2_z))
|
||||
return tst2;
|
||||
/* Prepend hide_z spaces to script text to hide it. */
|
||||
scrpt = malloc(hide_z + text_z);
|
||||
if (!scrpt)
|
||||
return 0;
|
||||
memset(scrpt, (int) ' ', hide_z);
|
||||
memcpy(&scrpt[hide_z], text, text_z);
|
||||
} else { /* Reexecute */
|
||||
if (*xecc) {
|
||||
scrpt = malloc(512);
|
||||
if (!scrpt)
|
||||
return 0;
|
||||
sprintf(scrpt, xecc, me);
|
||||
} else {
|
||||
scrpt = me;
|
||||
}
|
||||
}
|
||||
j = 0;
|
||||
#if BUSYBOXON
|
||||
varg[j++] = "busybox";
|
||||
varg[j++] = "sh";
|
||||
#else
|
||||
varg[j++] = argv[0]; /* My own name at execution */
|
||||
#endif
|
||||
if (ret && *opts)
|
||||
varg[j++] = opts; /* Options on 1st line of code */
|
||||
if (*inlo)
|
||||
varg[j++] = inlo; /* Option introducing inline code */
|
||||
varg[j++] = scrpt; /* The script itself */
|
||||
if (*lsto)
|
||||
varg[j++] = lsto; /* Option meaning last option */
|
||||
i = (ret > 1) ? ret : 0; /* Args numbering correction */
|
||||
while (i < argc)
|
||||
varg[j++] = argv[i++]; /* Main run-time arguments */
|
||||
varg[j] = 0; /* NULL terminated array */
|
||||
#if DEBUGEXEC
|
||||
debugexec(shll, j, varg);
|
||||
#endif
|
||||
execvp(shll, varg);
|
||||
return shll;
|
||||
}
|
||||
|
||||
int main(int argc, char ** argv)
|
||||
{
|
||||
#if SETUID
|
||||
setuid(0);
|
||||
#endif
|
||||
#if DEBUGEXEC
|
||||
debugexec("main", argc, argv);
|
||||
#endif
|
||||
#if HARDENING
|
||||
hardening();
|
||||
#endif
|
||||
#if !TRACEABLE
|
||||
untraceable(argv[0]);
|
||||
#endif
|
||||
argv[1] = xsh(argc, argv);
|
||||
fprintf(stderr, "%s%s%s: %s\n", argv[0],
|
||||
errno ? ": " : "",
|
||||
errno ? strerror(errno) : "",
|
||||
argv[1] ? argv[1] : "<null>"
|
||||
);
|
||||
return 1;
|
||||
}
|
17
tool/ssaudit
17
tool/ssaudit
@ -26,19 +26,24 @@ fi
|
||||
|
||||
|
||||
DEBPATH=`realpath $1`
|
||||
|
||||
echo ----------------------------------------------------------------------------------
|
||||
try_run_output=$(aptss --dry-run install $DEBPATH)
|
||||
echo ------------------------------------------------------------
|
||||
try_run_output=$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh test-install-app "$DEBPATH")
|
||||
try_run_ret="$?"
|
||||
|
||||
if [ "$try_run_ret" -ne 0 ]
|
||||
then
|
||||
echo "Package manager quit with exit code.Here is the log"
|
||||
echo "包管理器以错误代码退出.日志如下"
|
||||
echo
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
echo -e "${try_run_output}"
|
||||
exit "$try_run_ret"
|
||||
fi
|
||||
|
||||
|
||||
dpkg -i "$DEBPATH" || aptss install -yf
|
||||
install_ret="$?"
|
||||
|
||||
|
||||
if [ "$install_ret" -ne 0 ]
|
||||
then
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
exit "$install_ret"
|
||||
fi
|
||||
|
@ -3,6 +3,14 @@
|
||||
source /opt/durapps/spark-store/bin/bashimport/transhell.amber
|
||||
load_transhell_debug
|
||||
|
||||
case `arch` in
|
||||
x86_64)
|
||||
STORE_URL="store"
|
||||
;;
|
||||
aarch64)
|
||||
STORE_URL="aarch64-store"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
@ -30,6 +38,40 @@ function zenity()
|
||||
|
||||
sudo -u $user DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus zenity "$@"
|
||||
}
|
||||
|
||||
function hash_check()
|
||||
{
|
||||
if [ ! -e "/var/lib/aptss/lists/d.spark-app.store_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ];then
|
||||
echo "接收星火仓库软件信息中..."
|
||||
aptss ssupdate
|
||||
fi
|
||||
|
||||
### 选择包信息位置
|
||||
|
||||
if [ -e "/var/lib/aptss/lists/d.spark-app.store_${STORE_URL}_Packages" ];then
|
||||
PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.spark-app.store_${STORE_URL}_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置"
|
||||
elif [ -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ];then
|
||||
PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置"
|
||||
else
|
||||
PACKAGES_DATA_PATH="/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是SDU镜像仓库配置"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
echo "正在计算hash并与星火仓库匹配..."
|
||||
|
||||
DEB_MD5SUM=`md5sum "$1" | cut -c -32`
|
||||
|
||||
IS_MD5SUM_CHECKD=`cat $PACKAGES_DATA_PATH | grep $DEB_MD5SUM`
|
||||
|
||||
|
||||
}
|
||||
|
||||
##########################################################################
|
||||
|
||||
#################检测文件是否存在
|
||||
if [ $# -eq 0 ];then
|
||||
echo "没有接收到参数,退出"
|
||||
@ -54,44 +96,25 @@ fi
|
||||
|
||||
DEBPATH=`realpath $1`
|
||||
|
||||
if [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_Packages" ] && [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" ] && [ ! -e "/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_store_Packages" ];then
|
||||
echo "接收星火仓库软件信息中..."
|
||||
hash_check "$DEBPATH"
|
||||
|
||||
if [ -z "$IS_MD5SUM_CHECKD" ];then
|
||||
echo "尝试更新仓库信息重新校验"
|
||||
aptss ssupdate
|
||||
hash_check "$DEBPATH"
|
||||
fi
|
||||
|
||||
### 选择包信息位置
|
||||
|
||||
if [ -e "/var/lib/apt/lists/d.spark-app.store_store_Packages" ];then
|
||||
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.spark-app.store_store_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置"
|
||||
elif [ -e "/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" ];then
|
||||
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置"
|
||||
else
|
||||
PACKAGES_DATA_PATH="/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_store_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是SDU镜像仓库配置"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
echo "正在计算hash并与星火仓库匹配..."
|
||||
|
||||
DEB_MD5SUM=`md5sum "$DEBPATH" | cut -c -32`
|
||||
|
||||
IS_MD5SUM_CHECKD=`cat $PACKAGES_DATA_PATH | grep $DEB_MD5SUM`
|
||||
if [ ! -z "$IS_MD5SUM_CHECKD" ];then
|
||||
if [ ! -z "$IS_MD5SUM_CHECKD" ];then
|
||||
|
||||
echo "校验成功,开始安装"
|
||||
echo ----------------------------------------------------------------------------------
|
||||
|
||||
try_run_output=$(aptss --dry-run install $DEBPATH)
|
||||
try_run_output=$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh test-install-app "$DEBPATH")
|
||||
try_run_ret="$?"
|
||||
|
||||
if [ "$try_run_ret" -ne 0 ]
|
||||
then
|
||||
echo "Package manager quit with exit code.Here is the log"
|
||||
echo "包管理器以错误代码退出.日志如下"
|
||||
echo
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
echo -e "${try_run_output}"
|
||||
exit "$try_run_ret"
|
||||
fi
|
||||
@ -99,11 +122,20 @@ try_run_ret="$?"
|
||||
|
||||
dpkg -i "$DEBPATH" || aptss install -yf
|
||||
|
||||
#### --delete
|
||||
if [ "$?" = "0" ] && [ "$2" = "--delete-after-install" ];then
|
||||
rm "$DEBPATH"
|
||||
echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}"
|
||||
else
|
||||
echo "${TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB}"
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
|
||||
zenity --info --icon-name=spark-store --height 270 --width 500 --text "${TRANSHELL_CONTENT_HASH_CHECK_FAILED}"
|
||||
|
||||
echo -e ${TRANSHELL_CONTENT_HASH_CHECK_FAILED}
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
|
||||
fi
|
||||
|
@ -12,7 +12,7 @@ case $1 in
|
||||
;;
|
||||
|
||||
upgradable-list)
|
||||
output=$(env LANGUAGE=en_US bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="/dev/null" -o APT::Get::List-Cleanup="0" | awk NR\>1)
|
||||
output=$(env LANGUAGE=en_US apt -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf list --upgradable -o Dir::Etc::sourcelist="/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="/dev/null" -o APT::Get::List-Cleanup="0" | awk NR\>1)
|
||||
|
||||
IFS_OLD="$IFS"
|
||||
IFS=$'\n'
|
||||
@ -33,18 +33,32 @@ case $1 in
|
||||
echo "$IS_UPGRADE_ERROR" > /tmp/spark-store-app-upgrade-status.txt
|
||||
;;
|
||||
test-install-app)
|
||||
try_run_output=$(aptss --dry-run install $2)
|
||||
try_run_ret="$?"
|
||||
|
||||
if [ "$try_run_ret" -ne 0 ]
|
||||
try_run_output=$(aptss --dry-run install $2)
|
||||
try_run_ret="$?"
|
||||
|
||||
if [ "$try_run_ret" -ne 0 ]
|
||||
then
|
||||
echo "Package manager quit with exit code.Here is the log"
|
||||
echo "包管理器以错误代码退出.日志如下"
|
||||
echo
|
||||
echo -e "${try_run_output}"
|
||||
exit "$try_run_ret"
|
||||
fi
|
||||
echo "Will try after run aptss update"
|
||||
echo "将会在aptss update之后再次尝试"
|
||||
aptss update
|
||||
echo ----------------------------------------------------------------------------
|
||||
try_run_output=$(aptss --dry-run install $2)
|
||||
try_run_ret="$?"
|
||||
if [ "$try_run_ret" -ne 0 ]
|
||||
then
|
||||
echo "Package manager quit with exit code.Here is the log"
|
||||
echo "包管理器以错误代码退出.日志如下"
|
||||
echo
|
||||
echo -e "${try_run_output}"
|
||||
exit "$try_run_ret"
|
||||
fi
|
||||
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
|
||||
|
@ -21,7 +21,7 @@ function notify-send() {
|
||||
}
|
||||
|
||||
# 检测网络链接畅通
|
||||
function network()
|
||||
function network-check()
|
||||
{
|
||||
# 超时时间
|
||||
local timeout=15
|
||||
@ -41,7 +41,7 @@ function network()
|
||||
fi
|
||||
}
|
||||
|
||||
network
|
||||
network-check
|
||||
if [ $? -ne 0 ] ; then
|
||||
echo "$TRANSHELL_CONTENT_NETWORK_FAIL"
|
||||
exit -1
|
||||
@ -50,9 +50,8 @@ fi
|
||||
# The code above is modified from https://blog.csdn.net/yaxuan88521/article/details/120516298
|
||||
|
||||
# 每日更新星火源文件
|
||||
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
||||
|
||||
|
||||
aptss update
|
||||
|
||||
updatetext=`aptss ssupdate 2>&1`
|
||||
|
||||
|
@ -10,9 +10,9 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="173"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="315"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="430"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="176"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="484"/>
|
||||
<source>Download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -175,51 +175,79 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="47"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="50"/>
|
||||
<source>Click Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="112"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="115"/>
|
||||
<source>Developer Mode Disabled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="158"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="331"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="403"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="161"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="334"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="457"/>
|
||||
<source>Reinstall</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="165"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="168"/>
|
||||
<source>Upgrade</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="320"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="379"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="433"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="328"/>
|
||||
<source>Installing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<source>Warning</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<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="416"/>
|
||||
<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="420"/>
|
||||
<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="424"/>
|
||||
<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="488"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="488"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -240,12 +268,12 @@
|
||||
<context>
|
||||
<name>DAboutDialog</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="138"/>
|
||||
<location filename="../src/application.cpp" line="139"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="148"/>
|
||||
<location filename="../src/application.cpp" line="149"/>
|
||||
<source>%1 is released under %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -299,9 +327,9 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="218"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -312,40 +340,40 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="218"/>
|
||||
<source>Installation complete.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="214"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="215"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="219"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="220"/>
|
||||
<source>Finish</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="222"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="227"/>
|
||||
<source>Retry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="225"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="226"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="230"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="231"/>
|
||||
<source>Error happened in dpkg progress , you can try it again</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="233"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="234"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="238"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="239"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -452,33 +480,33 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="186"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="187"/>
|
||||
<source>Submit App</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="187"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<source>Submit App with client(Recommanded)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="190"/>
|
||||
<source>APP Upgrade and Install Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="145"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="240"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="146"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="241"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="150"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="151"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -488,7 +516,7 @@
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="33"/>
|
||||
<location filename="../src/application.cpp" line="34"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="125"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -498,7 +526,7 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="145"/>
|
||||
<location filename="../src/application.cpp" line="146"/>
|
||||
<source>Spark Project</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -508,7 +536,7 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="243"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="244"/>
|
||||
<source>Show MainWindow</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -619,12 +647,12 @@
|
||||
<context>
|
||||
<name>TitleBarMenu</name>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="244"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<source>About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="246"/>
|
||||
<source>Exit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -10,9 +10,9 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="173"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="315"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="430"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="176"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="484"/>
|
||||
<source>Download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -175,51 +175,79 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="47"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="50"/>
|
||||
<source>Click Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="112"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="115"/>
|
||||
<source>Developer Mode Disabled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="158"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="331"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="403"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="161"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="334"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="457"/>
|
||||
<source>Reinstall</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="165"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="168"/>
|
||||
<source>Upgrade</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="320"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="379"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="433"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="328"/>
|
||||
<source>Installing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<source>Warning</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<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="416"/>
|
||||
<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="420"/>
|
||||
<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="424"/>
|
||||
<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="488"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="488"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -240,12 +268,12 @@
|
||||
<context>
|
||||
<name>DAboutDialog</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="138"/>
|
||||
<location filename="../src/application.cpp" line="139"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="148"/>
|
||||
<location filename="../src/application.cpp" line="149"/>
|
||||
<source>%1 is released under %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -299,9 +327,9 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="218"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -312,40 +340,40 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="218"/>
|
||||
<source>Installation complete.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="214"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="215"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="219"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="220"/>
|
||||
<source>Finish</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="222"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="227"/>
|
||||
<source>Retry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="225"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="226"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="230"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="231"/>
|
||||
<source>Error happened in dpkg progress , you can try it again</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="233"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="234"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="238"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="239"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -452,33 +480,33 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="186"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="187"/>
|
||||
<source>Submit App</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="187"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<source>Submit App with client(Recommanded)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="190"/>
|
||||
<source>APP Upgrade and Install Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="145"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="240"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="146"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="241"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="150"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="151"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -488,7 +516,7 @@
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="33"/>
|
||||
<location filename="../src/application.cpp" line="34"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="125"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -498,7 +526,7 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="145"/>
|
||||
<location filename="../src/application.cpp" line="146"/>
|
||||
<source>Spark Project</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -508,7 +536,7 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="243"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="244"/>
|
||||
<source>Show MainWindow</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -619,12 +647,12 @@
|
||||
<context>
|
||||
<name>TitleBarMenu</name>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="244"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<source>About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="246"/>
|
||||
<source>Exit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -10,9 +10,9 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="173"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="315"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="430"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="176"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="484"/>
|
||||
<source>Download</source>
|
||||
<translation>下载</translation>
|
||||
</message>
|
||||
@ -175,51 +175,79 @@
|
||||
<translation>软件官网</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="47"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="50"/>
|
||||
<source>Click Open</source>
|
||||
<translation>点击跳转</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="112"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="115"/>
|
||||
<source>Developer Mode Disabled</source>
|
||||
<translation>开发者模式未开启</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="158"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="331"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="403"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="161"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="334"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="457"/>
|
||||
<source>Reinstall</source>
|
||||
<translation>重新安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="165"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="168"/>
|
||||
<source>Upgrade</source>
|
||||
<translation>升级</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="320"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="379"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="433"/>
|
||||
<source>Install</source>
|
||||
<translation>安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="328"/>
|
||||
<source>Installing</source>
|
||||
<translation>正在安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<source>Warning</source>
|
||||
<translation>警告</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<source>The current application does not support deepin, there may be problems</source>
|
||||
<translation>当前应用不支持deepin,安装后可能会出现问题</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<source>The current application does not support UOS, there may be problems</source>
|
||||
<translation>当前应用不支持UOS,安装后可能会出现问题</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<source>The current application does not support Ubuntu, there may be problems</source>
|
||||
<translation>当前应用不支持Ubuntu,安装后可能会出现问题</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<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="488"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="488"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation>卸载成功</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation>链接已复制到剪贴板</translation>
|
||||
</message>
|
||||
@ -240,12 +268,12 @@
|
||||
<context>
|
||||
<name>DAboutDialog</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="138"/>
|
||||
<location filename="../src/application.cpp" line="139"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>版本:%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="148"/>
|
||||
<location filename="../src/application.cpp" line="149"/>
|
||||
<source>%1 is released under %2</source>
|
||||
<translation>%1遵循%2协议发布</translation>
|
||||
</message>
|
||||
@ -299,9 +327,9 @@
|
||||
<translation>下载完成.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="218"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
@ -312,40 +340,40 @@
|
||||
<translation>正在安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="218"/>
|
||||
<source>Installation complete.</source>
|
||||
<translation>安装完成.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="214"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="215"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="219"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="220"/>
|
||||
<source>Finish</source>
|
||||
<translation>完成</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="222"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="227"/>
|
||||
<source>Retry</source>
|
||||
<translation>重试</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||
<translation>安装被中止,可重新安装。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="225"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="226"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="230"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="231"/>
|
||||
<source>Error happened in dpkg progress , you can try it again</source>
|
||||
<translation>dpkg出现错误,可重新安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||
<translation>dpkg进程被中断,您可重试安装。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="233"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="234"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="238"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="239"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||
<translation>安装被中止,可重新安装</translation>
|
||||
</message>
|
||||
@ -452,33 +480,33 @@
|
||||
<translation>更新</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="186"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="187"/>
|
||||
<source>Submit App</source>
|
||||
<translation>投递应用</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="187"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<source>Submit App with client(Recommanded)</source>
|
||||
<translation>使用本地投稿器投递应用(推荐)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<source>Settings</source>
|
||||
<translation>设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="190"/>
|
||||
<source>APP Upgrade and Install Settings</source>
|
||||
<translation>应用更新和安装设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="145"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="240"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="146"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="241"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="150"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="151"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation>搜索或打开链接</translation>
|
||||
</message>
|
||||
@ -488,7 +516,7 @@
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="33"/>
|
||||
<location filename="../src/application.cpp" line="34"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="125"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
@ -498,7 +526,7 @@
|
||||
<translation><span style=' font-size:10pt;font-weight:60;'>一款由社区提供的应用商店</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>星火计划开发者</span></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="145"/>
|
||||
<location filename="../src/application.cpp" line="146"/>
|
||||
<source>Spark Project</source>
|
||||
<translation>星火计划</translation>
|
||||
</message>
|
||||
@ -508,7 +536,7 @@
|
||||
<translation>下载列表</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="243"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="244"/>
|
||||
<source>Show MainWindow</source>
|
||||
<translation>显示主窗口</translation>
|
||||
</message>
|
||||
@ -619,12 +647,12 @@
|
||||
<context>
|
||||
<name>TitleBarMenu</name>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="244"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<source>About</source>
|
||||
<translation>关于</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="246"/>
|
||||
<source>Exit</source>
|
||||
<translation>退出</translation>
|
||||
</message>
|
||||
|
@ -10,9 +10,9 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="173"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="315"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="430"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="176"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="484"/>
|
||||
<source>Download</source>
|
||||
<translation>下载</translation>
|
||||
</message>
|
||||
@ -175,51 +175,79 @@
|
||||
<translation>软件官网</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="47"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="50"/>
|
||||
<source>Click Open</source>
|
||||
<translation>点击跳转</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="112"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="115"/>
|
||||
<source>Developer Mode Disabled</source>
|
||||
<translation>开发者模式未开启</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="158"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="331"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="403"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="161"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="334"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="457"/>
|
||||
<source>Reinstall</source>
|
||||
<translation>重新安裝</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="165"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="168"/>
|
||||
<source>Upgrade</source>
|
||||
<translation>升级</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="320"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="379"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="433"/>
|
||||
<source>Install</source>
|
||||
<translation>安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="328"/>
|
||||
<source>Installing</source>
|
||||
<translation>正在安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<source>Warning</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<source>The current application does not support deepin, there may be problems</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<source>The current application does not support UOS, there may be problems</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<source>The current application does not support Ubuntu, there may be problems</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<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="488"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="488"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation>卸载成功</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation>链接已复制到剪贴板</translation>
|
||||
</message>
|
||||
@ -240,12 +268,12 @@
|
||||
<context>
|
||||
<name>DAboutDialog</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="138"/>
|
||||
<location filename="../src/application.cpp" line="139"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>版本:%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="148"/>
|
||||
<location filename="../src/application.cpp" line="149"/>
|
||||
<source>%1 is released under %2</source>
|
||||
<translation>%1遵循%2协议发布</translation>
|
||||
</message>
|
||||
@ -299,9 +327,9 @@
|
||||
<translation>下載完成.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="218"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
@ -312,40 +340,40 @@
|
||||
<translation>正在安裝</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="218"/>
|
||||
<source>Installation complete.</source>
|
||||
<translation>安裝完成.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="214"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="215"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="219"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="220"/>
|
||||
<source>Finish</source>
|
||||
<translation>完成</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="222"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="227"/>
|
||||
<source>Retry</source>
|
||||
<translation>重试</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||
<translation>安装被中止,可重新安装。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="225"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="226"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="230"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="231"/>
|
||||
<source>Error happened in dpkg progress , you can try it again</source>
|
||||
<translation>dpkg出现错误,可重新安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||
<translation>dpkg进程被中断,您可重试安装。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="233"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="234"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="238"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="239"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||
<translation>安装被中止,可重新安装</translation>
|
||||
</message>
|
||||
@ -452,33 +480,33 @@
|
||||
<translation>軟體更新</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="186"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="187"/>
|
||||
<source>Submit App</source>
|
||||
<translation>上傳軟體</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="187"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<source>Submit App with client(Recommanded)</source>
|
||||
<translation>從客戶端上傳軟體(推薦的)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<source>Settings</source>
|
||||
<translation>設定</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="190"/>
|
||||
<source>APP Upgrade and Install Settings</source>
|
||||
<translation>軟體升級 和 安裝設定</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="145"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="240"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="146"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="241"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="150"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="151"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation>搜索或打开链接</translation>
|
||||
</message>
|
||||
@ -488,7 +516,7 @@
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="33"/>
|
||||
<location filename="../src/application.cpp" line="34"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="125"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
@ -498,7 +526,7 @@
|
||||
<translation><span style=' font-size:10pt;font-weight:60;'>一款由社区提供的应用商店</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>星火计划开发者</span></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="145"/>
|
||||
<location filename="../src/application.cpp" line="146"/>
|
||||
<source>Spark Project</source>
|
||||
<translation>星火计划</translation>
|
||||
</message>
|
||||
@ -508,7 +536,7 @@
|
||||
<translation>下载列表</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="243"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="244"/>
|
||||
<source>Show MainWindow</source>
|
||||
<translation>显示主窗口</translation>
|
||||
</message>
|
||||
@ -619,12 +647,12 @@
|
||||
<context>
|
||||
<name>TitleBarMenu</name>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="244"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<source>About</source>
|
||||
<translation>关于</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="246"/>
|
||||
<source>Exit</source>
|
||||
<translation>退出</translation>
|
||||
</message>
|
||||
|
Loading…
x
Reference in New Issue
Block a user