]> git.saurik.com Git - apt.git/commitdiff
ensure state-dir exists before coyping cdrom files
authorDavid Kalnischkies <kalnischkies@gmail.com>
Sun, 9 Jun 2013 16:58:34 +0000 (18:58 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Sun, 9 Jun 2013 17:06:12 +0000 (19:06 +0200)
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 …)

apt-pkg/cdrom.cc
debian/changelog
test/integration/framework
test/integration/test-apt-cdrom

index 9a9a854bf67bf7a081b48efe855953f78183fe2e..a5668a50af55f8ff7538296ee8157d93323fa3b4 100644 (file)
@@ -829,6 +829,14 @@ bool pkgCdrom::Add(pkgCdromStatus *log)                                    /*{{{*/
       log->Update(msg.str());
       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
    // (we do this before PackageCopy as it modifies "List" and "SourceList")
    SigVerify SignVerify;
index cde0aba2f4829c99c2de968b834cd757fb0c8dea..7582b4f35abab959ef5d7ca878fcc8192f760de8 100644 (file)
@@ -14,6 +14,7 @@ apt (0.9.8.3) UNRELEASED; urgency=low
   * don't explicitly init ExtractTar InFd with invalid fd
   * OpenDescriptor should autoclose fd always on error (Closes: #704608)
   * 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
 
index 7c2aed592cdee2fed0edbc573f7960a66b3c3817..5c50498a2ae91d68e8a4b07ad001a5c9543f4934 100644 (file)
@@ -692,9 +692,11 @@ setupaptarchive() {
                setupflataptarchive
        fi
        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() {
index 3394aa505a8cf865f512ef2b9cd15509b8c8ebc6..6e353315288fc862bb4031e1cdd62d86af041f77 100755 (executable)
@@ -7,7 +7,7 @@ setupenvironment
 configarchitecture 'amd64' 'i386'
 
 buildsimplenativepackage 'testing' 'amd64,i386' '0.8.15' 'stable'
-setupaptarchive
+setupaptarchive --no-update
 
 changetocdrom 'Debian APT Testdisk 0.8.15'