Просмотр исходного кода

ignore lost+found in private directory cleanup

In ce1f3a2c we started warning about failing unlinking, which we
consistently do for directories. That isn't a problem as directories
usually aren't in the places we do want to clean up – with the potential
exeception of "lost+found", so lets ignore it like we ignore our own
partial/ subdirectory.

Closes: 805424
David Kalnischkies лет назад: 10
Родитель
Сommit
6aef1942f4
5 измененных файлов с 10 добавлено и 4 удалено
  1. 1 0
      apt-pkg/acquire.cc
  2. 1 0
      apt-pkg/clean.cc
  3. 1 0
      methods/mirror.cc
  4. 2 2
      test/integration/framework
  5. 5 2
      test/integration/test-apt-get-clean

+ 1 - 0
apt-pkg/acquire.cc

@@ -688,6 +688,7 @@ bool pkgAcquire::Clean(string Dir)
       // Skip some files..
       if (strcmp(Dir->d_name,"lock") == 0 ||
 	  strcmp(Dir->d_name,"partial") == 0 ||
+	  strcmp(Dir->d_name,"lost+found") == 0 ||
 	  strcmp(Dir->d_name,".") == 0 ||
 	  strcmp(Dir->d_name,"..") == 0)
 	 continue;

+ 1 - 0
apt-pkg/clean.cc

@@ -54,6 +54,7 @@ bool pkgArchiveCleaner::Go(std::string Dir,pkgCache &Cache)
       // Skip some files..
       if (strcmp(Dir->d_name,"lock") == 0 ||
 	  strcmp(Dir->d_name,"partial") == 0 ||
+	  strcmp(Dir->d_name,"lost+found") == 0 ||
 	  strcmp(Dir->d_name,".") == 0 ||
 	  strcmp(Dir->d_name,"..") == 0)
 	 continue;

+ 1 - 0
methods/mirror.cc

@@ -106,6 +106,7 @@ bool MirrorMethod::Clean(string Dir)
       // Skip some files..
       if (strcmp(Dir->d_name,"lock") == 0 ||
 	  strcmp(Dir->d_name,"partial") == 0 ||
+	  strcmp(Dir->d_name,"lost+found") == 0 ||
 	  strcmp(Dir->d_name,".") == 0 ||
 	  strcmp(Dir->d_name,"..") == 0)
 	 continue;

+ 2 - 2
test/integration/framework

@@ -1766,8 +1766,8 @@ listcurrentlistsdirectory() {
 ### convenience hacks ###
 mkdir() {
 	# creating some directories by hand is a tedious task, so make it look simple
-	if [ "$*" = '-p rootdir/var/lib/apt/lists' ] || [ "$*" = "${TMPWORKINGDIRECTORY}/rootdir/var/lib/apt/lists" ] ||
-	   [ "$*" = '-p rootdir/var/lib/apt/lists/partial' ] || [ "$*" = "${TMPWORKINGDIRECTORY}/rootdir/var/lib/apt/lists/partial" ]; then
+	local PARAMS="$*"
+	if [ "$PARAMS" != "${PARAMS#*rootdir/var/lib/apt/lists}" ]; then
 		# only the last directory created by mkdir is effected by the -m !
 		command mkdir -m 755 -p "${TMPWORKINGDIRECTORY}/rootdir/var/lib/apt"
 		command mkdir -m 755 -p "${TMPWORKINGDIRECTORY}/rootdir/var/lib/apt/lists"

+ 5 - 2
test/integration/test-apt-get-clean

@@ -11,7 +11,10 @@ insertpackage 'testing' 'foo' 'all' '1'
 insertpackage 'unstable' 'foo' 'all' '2'
 insertinstalledpackage 'foo' 'all' '3'
 
-setupaptarchive
+setupaptarchive --no-update
+
+mkdir -p rootdir/var/lib/apt/lists/lost+found
+testsuccess apt update
 
 # nothing to do always works
 testsuccess aptget clean
@@ -19,7 +22,7 @@ testsuccess aptget clean -s
 
 # generate some dirt and clean it up
 touch rootdir/var/lib/apt/lists/partial/http.debian.net_debian_dists_sid_main_i18n_Translation-en
-mkdir -p rootdir/var/cache/apt/archives
+mkdir -p rootdir/var/cache/apt/archives/lost+found
 touch rootdir/var/cache/apt/archives/foo_1_all.deb
 touch rootdir/var/cache/apt/archives/foo_2_all.deb
 touch rootdir/var/cache/apt/archives/foo_3_all.deb