From 9a7a80223ae85a794e0af986a5476c23fc10a7b5 Mon Sep 17 00:00:00 2001
From: shenmo <jifengshenmo@outlook.com>
Date: Mon, 6 Mar 2023 21:45:12 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BD=BB=E5=BA=95=E6=8A=9B=E5=BC=83bwr?=
 =?UTF-8?q?ap=EF=BC=8C=E6=8F=90=E5=8D=87aptss=E5=93=8D=E5=BA=94=E9=80=9F?=
 =?UTF-8?q?=E5=BA=A6=E3=80=82=E7=8E=B0=E5=B7=B2=E5=8F=AF=E5=B0=86aptss?=
 =?UTF-8?q?=E5=BD=93apt=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 debian/changelog                              |  5 +++
 debian/control                                |  1 -
 debian/spark-store.postinst                   |  2 +-
 debian/spark-store.prerm                      |  1 +
 .../share/bash-completion/completions/aptss   | 10 +++---
 tool/apt-fast-conf/aptss-apt.conf             | 15 +++++++++
 tool/aptss                                    | 31 ++++++-------------
 tool/ssinstall                                | 12 +++----
 8 files changed, 43 insertions(+), 34 deletions(-)
 create mode 100644 tool/apt-fast-conf/aptss-apt.conf

diff --git a/debian/changelog b/debian/changelog
index bb00667..9066894 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,8 @@
+spark-store (4.2.3.2~Reason4) stable; urgency=medium
+  * aptss不再使用bwrap
+
+
+
 spark-store (4.2.3.2~Reason3) stable; urgency=medium
   * 现在可在x86上编译,使用同一套代码
   * 暂时在aarch64上使用旧web----等待柚子
diff --git a/debian/control b/debian/control
index f9e41de..b92714e 100644
--- a/debian/control
+++ b/debian/control
@@ -39,7 +39,6 @@ Depends:${shlibs:Depends}, ${misc:Depends},
  curl,
  openssl,
  dde-qt5integration,
- bubblewrap,
  aria2,
  gcc,
  zenity,
diff --git a/debian/spark-store.postinst b/debian/spark-store.postinst
index bbac1c1..4c27a5a 100755
--- a/debian/spark-store.postinst
+++ b/debian/spark-store.postinst
@@ -14,7 +14,7 @@ case "$1" in
 		esac
 
 		
-
+		mkdir -p /var/lib/aptss/lists
 
 
 		#  Remove the sources.list file
diff --git a/debian/spark-store.prerm b/debian/spark-store.prerm
index 3fc06e4..a86cb91 100755
--- a/debian/spark-store.prerm
+++ b/debian/spark-store.prerm
@@ -20,6 +20,7 @@ if [ "$1" = "remove" ] || [ "$1" = "purge" ] ; then
 	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
diff --git a/pkg/usr/share/bash-completion/completions/aptss b/pkg/usr/share/bash-completion/completions/aptss
index 4afc938..087c51e 100644
--- a/pkg/usr/share/bash-completion/completions/aptss
+++ b/pkg/usr/share/bash-completion/completions/aptss
@@ -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
                 ;;
diff --git a/tool/apt-fast-conf/aptss-apt.conf b/tool/apt-fast-conf/aptss-apt.conf
new file mode 100644
index 0000000..7d2268f
--- /dev/null
+++ b/tool/apt-fast-conf/aptss-apt.conf
@@ -0,0 +1,15 @@
+Debug::RunScripts true;
+
+Dir::Cache "/var/lib/aptss/";
+Dir::Etc::SourceParts "/etc/apt/sources.list.d/";
+Dir::Etc::SourceList "/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list";
+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;
diff --git a/tool/aptss b/tool/aptss
index adaaff1..83c6e1c 100755
--- a/tool/aptss
+++ b/tool/aptss
@@ -37,7 +37,7 @@ curl  --silent -o  /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.c
 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${STORE_LIST_URL}.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"
+sudo apt update -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
 
 #只更新星火源
 
@@ -53,17 +53,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
@@ -71,9 +69,7 @@ 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
 
@@ -85,7 +81,8 @@ curl  --silent -o  /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.c
 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${STORE_LIST_URL}.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"
+sudo cp -r /var/lib/apt/lists/* /var/lib/aptss/lists/
+sudo apt update -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
 
 #只更新星火源
 
@@ -100,18 +97,10 @@ 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
 
 
diff --git a/tool/ssinstall b/tool/ssinstall
index 66e2cc8..a8262bb 100755
--- a/tool/ssinstall
+++ b/tool/ssinstall
@@ -62,21 +62,21 @@ fi
 
 DEBPATH=`realpath $1`
 
-if [ ! -e "/var/lib/apt/lists/d.spark-app.store_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ];then
+if [ ! -e "/var/lib/aptss/lists/d.spark-app.store_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ];then
 echo "接收星火仓库软件信息中..."
 aptss ssupdate
 fi
 
 ### 选择包信息位置
 
-if [ -e "/var/lib/apt/lists/d.spark-app.store_${STORE_URL}_Packages" ];then
-PACKAGES_DATA_PATH="/var/lib/apt/lists/d.spark-app.store_${STORE_URL}_Packages"
+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/apt/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ];then
-PACKAGES_DATA_PATH="/var/lib/apt/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages"
+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/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages"
+PACKAGES_DATA_PATH="/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages"
 echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是SDU镜像仓库配置"
 fi