diff --git a/debian/changelog b/debian/changelog index f873e9c..519ee27 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +spark-store (3.1.2) stable; urgency=medium + + * Now let apt-fast method support all mirrors + * Now will download dependencies and upgrade with all mirrors + + -- shenmo Mon, 17 Jan 2022 00:00:00 +0800 + + + + spark-store (3.1.1) stable; urgency=medium * Now will delete the link of policy file after uninstall or upgrade diff --git a/debian/control b/debian/control index 2621f02..e83ab1f 100644 --- a/debian/control +++ b/debian/control @@ -34,7 +34,8 @@ Depends:${shlibs:Depends}, ${misc:Depends}, libdtkwidget5, libnotify4, curl, - dde-qt5integration + dde-qt5integration, + bubblewrap Description: Spark Store A community powered app store, based on DTK. Recommends: apt-fast diff --git a/debian/spark-store.postinst b/debian/spark-store.postinst index f4cf8d5..6e61ec2 100755 --- a/debian/spark-store.postinst +++ b/debian/spark-store.postinst @@ -11,6 +11,7 @@ case "$1" in 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/spark-dstore-patch /usr/local/bin/spark-dstore-patch + ln -s -f /opt/durapps/spark-store/bin/ss-apt-fast /usr/local/bin/ss-apt-fast diff --git a/debian/spark-store.prerm b/debian/spark-store.prerm index c089347..a71edca 100755 --- a/debian/spark-store.prerm +++ b/debian/spark-store.prerm @@ -6,6 +6,7 @@ rm /usr/local/bin/ssinstall rm /usr/local/bin/spark-dstore-patch rm /usr/local/bin/ussinstall rm /usr/local/bin/ussremove +rm /usr/local/bin/ss-apt-fast # Remove residual symbol links to stop upgrade detect if exist if [ -f /etc/xdg/autostart/spark-update-notifier.desktop ];then diff --git a/spark-store-project.pro b/spark-store-project.pro index 64d6ab8..59a3657 100644 --- a/spark-store-project.pro +++ b/spark-store-project.pro @@ -37,6 +37,7 @@ polkit-1.files +=pkg/usr/share/polkit-1/actions/store.spark-app.ssinstall.policy polkit-1.path = /usr/share/polkit-1/actions/ + icon.files += pkg/usr/share/icons/hicolor/scalable/apps/spark-store.svg icon.path = /usr/share/icons/hicolor/scalable/apps diff --git a/src/main.cpp b/src/main.cpp index b7a3d29..f070125 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -30,7 +30,7 @@ int main(int argc, char *argv[]) DAboutDialog dialog; a.setAboutDialog(&dialog); dialog.setLicense(QObject::tr("We publish this program under GPL V3")); - dialog.setVersion(DApplication::buildVersion("Version 3.1.1")); + dialog.setVersion(DApplication::buildVersion("Version 3.1.2")); dialog.setProductIcon(QIcon::fromTheme("spark-store")); // 设置Logo dialog.setProductName(QLabel::tr("Spark Store")); dialog.setDescription( @@ -51,7 +51,7 @@ int main(int argc, char *argv[]) a.setOrganizationName("spark-union"); a.setOrganizationDomain("https://www.deepinos.org/"); a.setApplicationName("Spark Store"); //不需要翻译,否则 ~/.local/share/ 下文件夹名称也被翻译为中文 - a.setApplicationVersion(DApplication::buildVersion("3.1.1")); + a.setApplicationVersion(DApplication::buildVersion("3.1.2")); a.setApplicationAcknowledgementPage("https://gitee.com/deepin-community-store/spark-store"); a.setApplicationDescription( QObject::tr( diff --git a/tool/apt-fast-conf/apt-fast.conf b/tool/apt-fast-conf/apt-fast.conf new file mode 100644 index 0000000..c184622 --- /dev/null +++ b/tool/apt-fast-conf/apt-fast.conf @@ -0,0 +1,147 @@ +################################################################### +# CONFIGURATION OPTIONS +################################################################### +# Every item has a default value besides MIRRORS (which is unset). + +# Use aptitude, apt-get, or apt? +# Note that apt-get is used as a fallback for outputting the +# package URI list for e.g. aptitude, which can't do this +# Optionally add the FULLPATH to apt-get or apt-rpm or aptitude +# e.g. /usr/bin/aptitude +# +# Default: apt-get +# +_APTMGR=apt + + +# Enable DOWNLOADBEFORE to suppress apt-fast confirmation dialog and download +# packages directly. +# +# Default: dialog enabled +# +DOWNLOADBEFORE=true + + +# Choose mirror list to speed up downloads from same archive. To select some +# mirrors take a look at your distribution's archive mirror lists. +# Debian: http://www.debian.org/mirror/list +# Ubuntu: https://launchpad.net/ubuntu/+archivemirrors +# +# It is required to add mirrors in the sources.list to this array as well, so +# apt-fast can destinguish between different distributions. +# +# Examples: +# +# Different distributions (as in operating systems): +# +# sources.list: +# deb http://deb.debian.org/debian/ unstable main non-free contrib +# deb http://de.archive.ubuntu.com/ubuntu/ bionic main universe +# +# apt-fast.conf: +# MIRRORS=( 'http://deb.debian.org/debian','http://ftp.debian.org/debian,http://ftp2.de.debian.org/debian,http://ftp.de.debian.org/debian,ftp://ftp.uni-kl.de/debian' +# 'http://archive.ubuntu.com/ubuntu,http://de.archive.ubuntu.com/ubuntu,http://ftp.halifax.rwth-aachen.de/ubuntu,http://ftp.uni-kl.de/pub/linux/ubuntu,http://mirror.informatik.uni-mannheim.de/pub/linux/distributions/ubuntu/' ) +# +# +# Single distribution: +# +# sources.list: +# deb http://fr.archive.ubuntu.com/ubuntu/ bionic main +# deb http://fr.archive.ubuntu.com/ubuntu/ artful main +# +# apt-fast.conf: +# MIRRORS=( 'http://fr.archive.ubuntu.com/ubuntu,http://bouyguestelecom.ubuntu.lafibre.info/ubuntu,http://mirror.ovh.net/ubuntu,http://ubuntu-archive.mirrors.proxad.net/ubuntu' ) +# +# Default: disabled +# +MIRRORS=( 'https://d.store.deepinos.org.cn/,https://d1.store.deepinos.org.cn/,https://d2.store.deepinos.org.cn/,https://d3.store.deepinos.org.cn/,https://d4.store.deepinos.org.cn/,https://d5.store.deepinos.org.cn/' ) + + +# Maximum number of connections +# You can use this value in _DOWNLOADER command. Escape with ${}: ${_MAXNUM} +# +# Default: 5 +# +_MAXNUM=5 + + +# Maximum number of connections per server +# Default: 10 +# +_MAXCONPERSRV=10 + + +# Download file using given number of connections +# If more than N URIs are given, first N URIs are used and remaining URIs are used for backup. +# If less than N URIs are given, those URIs are used more than once so that N connections total are made simultaneously. +# +_SPLITCON=8 + + +# Split size i.e. size of each piece +# Possible Values: 1M-1024M +# +_MINSPLITSZ=1M + + +# Piece selection algorithm to use +# Available values are: default, inorder, geom +# default: selects piece so that it reduces the number of establishing connection, reasonable for most cases +# inorder: selects pieces in sequential order starting from first piece +# geom: selects piece which has minimum index like inorder, but it exponentially increasingly keeps space from previously selected pieces +# +_PIECEALGO=default + + +# Downloadmanager listfile +# You can use this value in _DOWNLOADER command. Escape with ${}: ${DLLIST} +# +# Default: /tmp/apt-fast.list +# +DLLIST='/tmp/apt-fast.list' + + +# Download command to use. Temporary download list is designed for aria2. But +# you can choose another download command or download manager. It has to +# support following input file syntax (\t is tab character): +# +# # Comment +# MIRROR1\tMIRROR2\tMIRROR3... +# out=FILENAME1 +# MIRROR1\tMIRROR2\tMIRROR3... +# out=FILENAME2 +# ... +# +# Examples: +# aria2c with a proxy (set username, proxy, ip and password!) +# _DOWNLOADER='aria2c --no-conf -c -j ${_MAXNUM} -x ${_MAXCONPERSRV} -s ${_SPLITCON} --min-split-size=${_MINSPLITSZ} --stream-piece-selector=${_PIECEALGO} --http-proxy=http://username:password@proxy_ip:proxy_port -i ${DLLIST}' +# +# Default: _DOWNLOADER='aria2c --no-conf -c -j ${_MAXNUM} -x ${_MAXCONPERSRV} -s ${_SPLITCON} --min-split-size=${_MINSPLITSZ} --stream-piece-selector=${_PIECEALGO} -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0' +# +_DOWNLOADER='aria2c --no-conf -c -j ${_MAXNUM} -x ${_MAXCONPERSRV} -s ${_SPLITCON} --min-split-size=${_MINSPLITSZ} --stream-piece-selector=${_PIECEALGO} -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0' + + +# Download temp folder for Downloadmanager +# example /tmp/apt-fast. Standard is /var/cache/apt-fast +# +# Default: /var/cache/apt/apt-fast +# +DLDIR='/var/cache/apt/apt-fast' + + +# APT archives cache directory +# +# Default /var/cache/apt/archives +# (APT configuration items Dir::Cache and Dir::Cache::archives) +# +APTCACHE='/var/cache/apt/archives' + + +# apt-fast colors +# Colors are disabled when not using a terminal. +# +# Default colors are: +# cGreen='\e[0;32m' +# cRed='\e[0;31m' +# cBlue='\e[0;34m' +# endColor='\e[0m' diff --git a/tool/ss-apt-fast b/tool/ss-apt-fast new file mode 100755 index 0000000..a7d2ac4 --- /dev/null +++ b/tool/ss-apt-fast @@ -0,0 +1,8 @@ +#/bin/bash +DEPEND=`dpkg -l | grep apt-fast` +if [ "$DEPEND" = "" ] ; then +echo "未安装依赖:apt-fast 本脚本退出" +exit 0 +fi + +sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/apt-fast.conf' /etc/apt-fast.conf apt-fast "$@" \ No newline at end of file diff --git a/tool/ssinstall b/tool/ssinstall index ca6ff32..9331981 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -67,9 +67,9 @@ echo "$upass" | sudo -S dpkg -i $1 || apt install -yf || dpkg -P $1 fi if [ "$DEPEND" != "" ] && [ "$isuos" = "" ]; then -echo "检测到apt-fast,使用apt-fast进行多线程下载加速" +echo "检测到apt-fast,使用ss-apt-fast进行多线程下载加速" echo ---------------------------------------------------------------------------------- -echo "$upass" | sudo -S dpkg -i $1 || apt-fast install -yf || dpkg -P $1 +echo "$upass" | sudo -S dpkg -i $1 || ss-apt-fast install -yf || dpkg -P $1 fi echo "$upass" | sudo -S sed -i 's/500/400/g' /etc/apt/preferences.d/sparkstore @@ -99,9 +99,9 @@ dpkg -i $1 || apt install -yf || dpkg -P $1 fi if [ "$DEPEND" != "" ] && [ "$isuos" = "" ]; then -echo "检测到apt-fast,使用apt-fast进行多线程下载加速" +echo "检测到apt-fast,使用ss-apt-fast进行多线程下载加速" echo ---------------------------------------------------------------------------------- -dpkg -i $1 || apt-fast install -yf || dpkg -P $1 +dpkg -i $1 || ss-apt-fast install -yf || dpkg -P $1 fi sed -i 's/500/400/g' /etc/apt/preferences.d/sparkstore diff --git a/tool/update-upgrade/ss-do-upgrade.sh b/tool/update-upgrade/ss-do-upgrade.sh index 947af93..9bae2bd 100755 --- a/tool/update-upgrade/ss-do-upgrade.sh +++ b/tool/update-upgrade/ss-do-upgrade.sh @@ -5,5 +5,5 @@ echo "没有安装apt-fast,使用apt运行" sudo apt upgrade -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" else echo "已安装apt-fast,使用apt-fast加速运行" -sudo apt-fast upgrade -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" +ss-apt-fast upgrade -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" fi \ No newline at end of file diff --git a/tool/update-upgrade/ss-update-controler.sh b/tool/update-upgrade/ss-update-controler.sh index 05096e8..91256d4 100755 --- a/tool/update-upgrade/ss-update-controler.sh +++ b/tool/update-upgrade/ss-update-controler.sh @@ -29,6 +29,13 @@ echo "输入1 $text_update_open星火更新检测工具(如果开启则会在系 echo "输入2 查看可更新软件包列表并决定是否更新" echo "输入3 $text_auto_install_open点击安装免输入密码功能" echo "输入4 退出脚本" +echo +echo "小提示:建议安装apt-fast以提高下载速度。" +echo "安装过apt-fast的用户可在系统更新的时候使用ss-apt-fast代替apt-fast进行更新" +echo "比如 sudo ss-apt-fast update或者sudo ss-apt-fast upgrade" +echo +echo "UOS除外:UOS对下载源采取了禁止非APT应用多线程下载的策略" +echo "为了防止系统依赖包无法下载,在依赖下载时禁用了apt-fast." read option case $option in @@ -70,6 +77,7 @@ case $option in ;; 2) + echo "请注意:如果有些更新需要从系统获取更多依赖,你将需要手动操作 sudo ss-apt-fast upgrade" echo "执行以下操作需要授权..." /opt/durapps/spark-store/bin/update-upgrade/ss-upgrade-list.sh /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade.sh