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

ensure state-dir exists before coyping cdrom files

We do the same in the acquire system which handles the 'normal'
downloads, so do it here as well even though its unlikely anyone
will ever notice (beside testcases of course …)
David Kalnischkies лет назад: 13
Родитель
Сommit
b2ea1a4753
4 измененных файлов с 15 добавлено и 4 удалено
  1. 8 0
      apt-pkg/cdrom.cc
  2. 1 0
      debian/changelog
  3. 5 3
      test/integration/framework
  4. 1 1
      test/integration/test-apt-cdrom

+ 8 - 0
apt-pkg/cdrom.cc

@@ -829,6 +829,14 @@ bool pkgCdrom::Add(pkgCdromStatus *log)					/*{{{*/
       log->Update(msg.str());
       log->Update(msg.str());
       log->Update(_("Copying package lists..."), STEP_COPY);
       log->Update(_("Copying package lists..."), STEP_COPY);
    }
    }
+
+   // check for existence and possibly create state directory for copying
+   string const listDir = _config->FindDir("Dir::State::lists");
+   string const partialListDir = listDir + "partial/";
+   if (CreateAPTDirectoryIfNeeded(_config->FindDir("Dir::State"), partialListDir) == false &&
+       CreateAPTDirectoryIfNeeded(listDir, partialListDir) == false)
+      return _error->Errno("cdrom", _("List directory %spartial is missing."), listDir.c_str());
+
    // take care of the signatures and copy them if they are ok
    // take care of the signatures and copy them if they are ok
    // (we do this before PackageCopy as it modifies "List" and "SourceList")
    // (we do this before PackageCopy as it modifies "List" and "SourceList")
    SigVerify SignVerify;
    SigVerify SignVerify;

+ 1 - 0
debian/changelog

@@ -14,6 +14,7 @@ apt (0.9.8.3) UNRELEASED; urgency=low
   * don't explicitly init ExtractTar InFd with invalid fd
   * don't explicitly init ExtractTar InFd with invalid fd
   * OpenDescriptor should autoclose fd always on error (Closes: #704608)
   * OpenDescriptor should autoclose fd always on error (Closes: #704608)
   * fail in CopyFile if the FileFds have error flag set
   * fail in CopyFile if the FileFds have error flag set
+  * ensure state-dir exists before coyping cdrom files
 
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 09 Jun 2013 15:06:24 +0200
  -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 09 Jun 2013 15:06:24 +0200
 
 

+ 5 - 3
test/integration/framework

@@ -692,9 +692,11 @@ setupaptarchive() {
 		setupflataptarchive
 		setupflataptarchive
 	fi
 	fi
 	signreleasefiles
 	signreleasefiles
-	msgninfo "\tSync APT's cache with the archive… "
-	aptget update -qq
-	msgdone "info"
+	if [ "$1" != '--no-update' ]; then
+		msgninfo "\tSync APT's cache with the archive… "
+		aptget update -qq
+		msgdone "info"
+	fi
 }
 }
 
 
 signreleasefiles() {
 signreleasefiles() {

+ 1 - 1
test/integration/test-apt-cdrom

@@ -7,7 +7,7 @@ setupenvironment
 configarchitecture 'amd64' 'i386'
 configarchitecture 'amd64' 'i386'
 
 
 buildsimplenativepackage 'testing' 'amd64,i386' '0.8.15' 'stable'
 buildsimplenativepackage 'testing' 'amd64,i386' '0.8.15' 'stable'
-setupaptarchive
+setupaptarchive --no-update
 
 
 changetocdrom 'Debian APT Testdisk 0.8.15'
 changetocdrom 'Debian APT Testdisk 0.8.15'