Compare commits

...

3 Commits
3.2 ... 3.2.1

Author SHA1 Message Date
af89e64478 !110 检测更新
* 文案修改
* update src/widget.ui.
* feat: 星火应用商店检测更新
2022-08-31 17:50:24 +00:00
971a5dcc63 安装时删除已有的源 2022-09-01 00:40:16 +08:00
a252e7b724 3.2.1 更新源服务器改为aptss 2022-09-01 00:29:37 +08:00
8 changed files with 61 additions and 127 deletions

7
debian/changelog vendored
View File

@@ -1,3 +1,10 @@
spark-store (3.2.1) stable; urgency=medium
* 更改刷新系统源的功能
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (3.2) stable; urgency=medium spark-store (3.2) stable; urgency=medium
* 新增 下载量统计功能 * 新增 下载量统计功能

View File

@@ -6,6 +6,11 @@ case "$1" in
# config for aptss # config for aptss
mkdir -p /etc/aptss/sources.list.d mkdir -p /etc/aptss/sources.list.d
ln -s -f /etc/apt/sources.list /etc/aptss/sources.list ln -s -f /etc/apt/sources.list /etc/aptss/sources.list
# Remove the sources.list file
if [ -e /etc/apt/sources.list.d/sparkstore.list ];then
rm /etc/apt/sources.list.d/sparkstore.list
fi
# Check if /usr/local/bin existed # Check if /usr/local/bin existed

View File

@@ -30,7 +30,7 @@ int main(int argc, char *argv[])
DAboutDialog dialog; DAboutDialog dialog;
a.setAboutDialog(&dialog); a.setAboutDialog(&dialog);
dialog.setLicense(QObject::tr("We publish this program under GPL V3")); dialog.setLicense(QObject::tr("We publish this program under GPL V3"));
dialog.setVersion(DApplication::buildVersion("Version 3.2")); dialog.setVersion(DApplication::buildVersion("Version 3.2.1"));
dialog.setProductIcon(QIcon::fromTheme("spark-store")); // 设置Logo dialog.setProductIcon(QIcon::fromTheme("spark-store")); // 设置Logo
dialog.setProductName(QLabel::tr("Spark Store")); dialog.setProductName(QLabel::tr("Spark Store"));
dialog.setDescription( dialog.setDescription(
@@ -51,7 +51,7 @@ int main(int argc, char *argv[])
a.setOrganizationName("spark-union"); a.setOrganizationName("spark-union");
a.setOrganizationDomain("https://www.deepinos.org/"); a.setOrganizationDomain("https://www.deepinos.org/");
a.setApplicationName("Spark Store"); //不需要翻译,否则 ~/.local/share/ 下文件夹名称也被翻译为中文 a.setApplicationName("Spark Store"); //不需要翻译,否则 ~/.local/share/ 下文件夹名称也被翻译为中文
a.setApplicationVersion(DApplication::buildVersion("3.2")); a.setApplicationVersion(DApplication::buildVersion("3.2.1"));
a.setApplicationAcknowledgementPage("https://gitee.com/deepin-community-store/spark-store"); a.setApplicationAcknowledgementPage("https://gitee.com/deepin-community-store/spark-store");
a.setApplicationDescription( a.setApplicationDescription(
QObject::tr( QObject::tr(

View File

@@ -1090,77 +1090,13 @@ void Widget::on_pushButton_updateApt_clicked()
ui->pushButton_updateApt->setEnabled(false); ui->pushButton_updateApt->setEnabled(false);
ui->label_aptserver->setText(tr("Updating, please wait...")); ui->label_aptserver->setText(tr("Updating, please wait..."));
std::fstream sourcesList, policy, update; QString storeSpk = "spk://store/tools/spark-store";
QDir tmpdir("/tmp"); openUrl(storeSpk);
auto tmpPath = QString::fromUtf8(TMP_PATH).toStdString(); ui->label_aptserver->setText(tr(""));
bool unknownError = true;
tmpdir.mkpath("spark-store");
sourcesList.open(tmpPath + "/sparkstore.list", std::ios::out);
// 商店已经下架会替换系统库的包,优先级 policy 弃用
// policy.open(tmpPath + "/sparkstore", std::ios::out);
if(sourcesList /*&& policy*/)
{
auto serverAddr = ui->comboBox_server->currentText();
sourcesList << "deb [by-hash=force] ";
sourcesList << serverAddr.toUtf8().toStdString();
sourcesList << " /";
sourcesList.close();
/*
* policy << "Package: *\n" << "Pin: origin *" <<
* serverAddr.mid(serverAddr.indexOf('.')).toUtf8().toStdString() << "\n" <<
* "Pin-Priority: 90"; // 降低星火源的优先级,防止从星火安装已存在的系统包,破坏依赖
* policy.close();
*/
update.open(tmpPath + "/update.sh", std::ios::out);
if(update)
{
unknownError = false;
update << "#!/bin/sh\n" <<
"mv " + tmpPath + "/sparkstore.list /etc/apt/sources.list.d/sparkstore.list && " <<
// "mv " + tmpPath + "/sparkstore /etc/apt/preferences.d/sparkstore && " <<
"apt update";
update.close();
system(("chmod +x " + tmpPath + "/update.sh").c_str());
QProcess runupdate;
runupdate.start("pkexec", QStringList() << QString::fromStdString(tmpPath + "/update.sh"));
runupdate.waitForFinished();
QString error = runupdate.readAllStandardError();
QStringList everyError = error.split("\n");
bool haveError = false;
for(int i = 0; i < everyError.size(); i++)
{
if(everyError[i].left(2) == "E:")
{
haveError = true;
}
}
if(!haveError)
{
ui->label_aptserver->setText("deb [by-hash=force] " + ui->comboBox_server->currentText().toUtf8() + " /");
}
else
{
ui->label_aptserver->setText(tr("Apt has reported an error. Please use apt update in terminal to locate the problem."));
}
}
}
if(unknownError)
{
ui->label_aptserver->setText(tr("Unknown error!"));
}
ui->pushButton_updateApt->setEnabled(true); ui->pushButton_updateApt->setEnabled(true);
}); });
} }
void Widget::on_pushButton_uninstall_clicked() void Widget::on_pushButton_uninstall_clicked()

View File

@@ -1220,7 +1220,7 @@
<string notr="true">color:#808080</string> <string notr="true">color:#808080</string>
</property> </property>
<property name="text"> <property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The role of the source server is to ensure that the software is updated, and supports the use of the apt tool to get the software. We usually prefer that you use the first line as the update source, which is generally the most stable. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Check update for Spark Store. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="wordWrap"> <property name="wordWrap">
<bool>true</bool> <bool>true</bool>
@@ -1237,7 +1237,7 @@
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label_6"> <widget class="QLabel" name="label_6">
<property name="text"> <property name="text">
<string>Source Server</string> <string>Spark Store Update</string>
</property> </property>
</widget> </widget>
</item> </item>

View File

@@ -150,7 +150,7 @@
<message> <message>
<location filename="../src/widget.ui" line="547"/> <location filename="../src/widget.ui" line="547"/>
<location filename="../src/widget.cpp" line="910"/> <location filename="../src/widget.cpp" line="910"/>
<location filename="../src/widget.cpp" line="1183"/> <location filename="../src/widget.cpp" line="1119"/>
<source>Install</source> <source>Install</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@@ -347,11 +347,6 @@
<source>Refresh</source> <source>Refresh</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../src/widget.ui" line="1223"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The role of the source server is to ensure that the software is updated, and supports the use of the apt tool to get the software. We usually prefer that you use the first line as the update source, which is generally the most stable. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../src/widget.ui" line="1233"/> <location filename="../src/widget.ui" line="1233"/>
<source>Update</source> <source>Update</source>
@@ -359,7 +354,7 @@
</message> </message>
<message> <message>
<location filename="../src/widget.ui" line="1240"/> <location filename="../src/widget.ui" line="1240"/>
<source>Source Server</source> <source>Spark Store Update</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@@ -427,6 +422,11 @@
<source>Take effect when restart</source> <source>Take effect when restart</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../src/widget.ui" line="1223"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Check update for Spark Store. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../src/widget.ui" line="1334"/> <location filename="../src/widget.ui" line="1334"/>
<source>0B</source> <source>0B</source>
@@ -493,17 +493,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/widget.cpp" line="1152"/> <location filename="../src/widget.cpp" line="1123"/>
<source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widget.cpp" line="1159"/>
<source>Unknown error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widget.cpp" line="1187"/>
<source>Uninstall succeeded</source> <source>Uninstall succeeded</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@@ -518,12 +508,12 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/widget.cpp" line="1209"/> <location filename="../src/widget.cpp" line="1145"/>
<source>Temporary cache was cleaned</source> <source>Temporary cache was cleaned</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/widget.cpp" line="1291"/> <location filename="../src/widget.cpp" line="1227"/>
<source>The URL has been copied to the clipboard</source> <source>The URL has been copied to the clipboard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@@ -211,7 +211,7 @@ Nous sommes nés pour le changement.</translation>
<message> <message>
<location filename="../src/widget.ui" line="547"/> <location filename="../src/widget.ui" line="547"/>
<location filename="../src/widget.cpp" line="910"/> <location filename="../src/widget.cpp" line="910"/>
<location filename="../src/widget.cpp" line="1183"/> <location filename="../src/widget.cpp" line="1119"/>
<source>Install</source> <source>Install</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@@ -370,7 +370,7 @@ Nous sommes nés pour le changement.</translation>
</message> </message>
<message> <message>
<location filename="../src/widget.ui" line="1223"/> <location filename="../src/widget.ui" line="1223"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The role of the source server is to ensure that the software is updated, and supports the use of the apt tool to get the software. We usually prefer that you use the first line as the update source, which is generally the most stable. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Check update for Spark Store. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@@ -380,7 +380,7 @@ Nous sommes nés pour le changement.</translation>
</message> </message>
<message> <message>
<location filename="../src/widget.ui" line="1240"/> <location filename="../src/widget.ui" line="1240"/>
<source>Source Server</source> <source>Spark Store Update</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@@ -557,15 +557,15 @@ Nous sommes nés pour le changement.</translation>
<translation type="vanished">Redémarrez pour prendre effet</translation> <translation type="vanished">Redémarrez pour prendre effet</translation>
</message> </message>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;使apt工具获取软件使线&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="vanished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Le rôle du serveur source est de s&apos;assurer que le logiciel est mis à jour et prend en charge l&apos;utilisation de l&apos;outil apt pour obtenir le logiciel. Nous préférons généralement que vous utilisiez la première ligne comme source de mise à jour, qui est généralement la plus stable. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation type="vanished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Le rôle du serveur source est de s&apos;assurer que le logiciel est mis à jour et prend en charge l&apos;utilisation de l&apos;outil apt pour obtenir le logiciel. Nous préférons généralement que vous utilisiez la première ligne comme source de mise à jour, qui est généralement la plus stable. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<source></source> <source></source>
<translation type="vanished">Mettre à jour la source APT</translation> <translation type="vanished">Mettre à jour la source APT</translation>
</message> </message>
<message> <message>
<source></source> <source></source>
<translation type="vanished">Source APT: </translation> <translation type="vanished">Source APT: </translation>
</message> </message>
<message> <message>
@@ -676,27 +676,17 @@ Nous sommes nés pour le changement.</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/widget.cpp" line="1152"/> <location filename="../src/widget.cpp" line="1123"/>
<source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widget.cpp" line="1159"/>
<source>Unknown error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widget.cpp" line="1187"/>
<source>Uninstall succeeded</source> <source>Uninstall succeeded</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/widget.cpp" line="1209"/> <location filename="../src/widget.cpp" line="1145"/>
<source>Temporary cache was cleaned</source> <source>Temporary cache was cleaned</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/widget.cpp" line="1291"/> <location filename="../src/widget.cpp" line="1227"/>
<source>The URL has been copied to the clipboard</source> <source>The URL has been copied to the clipboard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@@ -205,7 +205,7 @@
<message> <message>
<location filename="../src/widget.ui" line="547"/> <location filename="../src/widget.ui" line="547"/>
<location filename="../src/widget.cpp" line="910"/> <location filename="../src/widget.cpp" line="910"/>
<location filename="../src/widget.cpp" line="1183"/> <location filename="../src/widget.cpp" line="1119"/>
<source>Install</source> <source>Install</source>
<translation></translation> <translation></translation>
</message> </message>
@@ -379,19 +379,18 @@
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="../src/widget.ui" line="1223"/> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Jump to the Spark app store home page to check for updates. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The role of the source server is to ensure that the software is updated, and supports the use of the apt tool to get the software. We usually prefer that you use the first line as the update source, which is generally the most stable. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <translation type="vanished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;使apt工具获取软件使线&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location filename="../src/widget.ui" line="1233"/> <location filename="../src/widget.ui" line="1233"/>
<source>Update</source> <source>Update</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/widget.ui" line="1240"/> <location filename="../src/widget.ui" line="1240"/>
<source>Source Server</source> <source>Spark Store Update</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/widget.ui" line="1260"/> <location filename="../src/widget.ui" line="1260"/>
@@ -476,13 +475,18 @@
<message> <message>
<location filename="../src/widget.ui" line="912"/> <location filename="../src/widget.ui" line="912"/>
<source>Request Update</source> <source>Request Update</source>
<translation type="unfinished">/</translation> <translation>/</translation>
</message> </message>
<message> <message>
<location filename="../src/widget.ui" line="1194"/> <location filename="../src/widget.ui" line="1194"/>
<source>Take effect when restart</source> <source>Take effect when restart</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<location filename="../src/widget.ui" line="1223"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Check update for Spark Store. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation></translation>
</message>
<message> <message>
<location filename="../src/widget.ui" line="1334"/> <location filename="../src/widget.ui" line="1334"/>
<source>0B</source> <source>0B</source>
@@ -518,6 +522,10 @@
<source>Not Exist</source> <source>Not Exist</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Update finished</source>
<translation type="obsolete"></translation>
</message>
<message> <message>
<location filename="../src/widget.cpp" line="139"/> <location filename="../src/widget.cpp" line="139"/>
<location filename="../src/widget.cpp" line="409"/> <location filename="../src/widget.cpp" line="409"/>
@@ -599,14 +607,12 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/widget.cpp" line="1152"/>
<source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source> <source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source>
<translation>使apt update来查看错误原因</translation> <translation type="vanished">使apt update来查看错误原因</translation>
</message> </message>
<message> <message>
<location filename="../src/widget.cpp" line="1159"/>
<source>Unknown error!</source> <source>Unknown error!</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<source>Yes</source> <source>Yes</source>
@@ -656,17 +662,17 @@ Click yes to continue.</source>
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="../src/widget.cpp" line="1187"/> <location filename="../src/widget.cpp" line="1123"/>
<source>Uninstall succeeded</source> <source>Uninstall succeeded</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/widget.cpp" line="1209"/> <location filename="../src/widget.cpp" line="1145"/>
<source>Temporary cache was cleaned</source> <source>Temporary cache was cleaned</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/widget.cpp" line="1291"/> <location filename="../src/widget.cpp" line="1227"/>
<source>The URL has been copied to the clipboard</source> <source>The URL has been copied to the clipboard</source>
<translation></translation> <translation></translation>
</message> </message>