]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/cdrom.cc
cherry pick 39a07ec8f2c612a5af234c7713571362f7ca90b4
[apt.git] / apt-pkg / cdrom.cc
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;