diff options
author | David Kalnischkies <david@kalnischkies.de> | 2015-11-19 16:19:15 +0100 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2015-11-19 17:56:07 +0100 |
commit | 6aef1942f441e6e667982b92802907026d8cc7c6 (patch) | |
tree | 5b51b71e213a321db6f8ac7c8903aa021ba4442b | |
parent | 87d6947d51717e8b0e975d913986161598a7259a (diff) |
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
-rw-r--r-- | apt-pkg/acquire.cc | 1 | ||||
-rw-r--r-- | apt-pkg/clean.cc | 1 | ||||
-rw-r--r-- | methods/mirror.cc | 1 | ||||
-rw-r--r-- | test/integration/framework | 4 | ||||
-rwxr-xr-x | test/integration/test-apt-get-clean | 7 |
5 files changed, 10 insertions, 4 deletions
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index fb1210750..e61f4192d 100644 --- a/apt-pkg/acquire.cc +++ b/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; diff --git a/apt-pkg/clean.cc b/apt-pkg/clean.cc index ebe8a8a53..8e6bd6255 100644 --- a/apt-pkg/clean.cc +++ b/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; diff --git a/methods/mirror.cc b/methods/mirror.cc index 56362d317..01eed09f0 100644 --- a/methods/mirror.cc +++ b/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; diff --git a/test/integration/framework b/test/integration/framework index 7a56a9acd..de8a65d7a 100644 --- a/test/integration/framework +++ b/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" diff --git a/test/integration/test-apt-get-clean b/test/integration/test-apt-get-clean index 31e9900c9..00f9d4e60 100755 --- a/test/integration/test-apt-get-clean +++ b/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 |