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

* apt-pkg/cdrom.cc:
- do not link() but rename() the cdroms.list to cdroms.list~ as a backup
to ensure that apt-cdrom can be run multiple times (Closes: #676302)

David Kalnischkies лет назад: 14
Родитель
Сommit
c1cd1ac2fd
2 измененных файлов с 5 добавлено и 2 удалено
  1. 2 2
      apt-pkg/cdrom.cc
  2. 3 0
      debian/changelog

+ 2 - 2
apt-pkg/cdrom.cc

@@ -413,8 +413,8 @@ bool pkgCdrom::WriteDatabase(Configuration &Cnf)
 
 
    Out.close();
    Out.close();
 
 
-   if (FileExists(DFile) == true && link(DFile.c_str(),string(DFile + '~').c_str()) != 0)
-      return _error->Errno("link", "Failed to link %s to %s~", DFile.c_str(), DFile.c_str());
+   if (FileExists(DFile) == true)
+      rename(DFile.c_str(), string(DFile + '~').c_str());
    if (rename(NewFile.c_str(),DFile.c_str()) != 0)
    if (rename(NewFile.c_str(),DFile.c_str()) != 0)
       return _error->Errno("rename","Failed to rename %s.new to %s",
       return _error->Errno("rename","Failed to rename %s.new to %s",
 			   DFile.c_str(),DFile.c_str());
 			   DFile.c_str(),DFile.c_str());

+ 3 - 0
debian/changelog

@@ -29,6 +29,9 @@ apt (0.9.7.4) UNRELEASED; urgency=low
   * apt-pkg/indexcopy.cc:
   * apt-pkg/indexcopy.cc:
     - do not use atomic writing if the target is /dev/null as we don't want
     - do not use atomic writing if the target is /dev/null as we don't want
       to replace it, not even automically. (Closes: #683410)
       to replace it, not even automically. (Closes: #683410)
+  * apt-pkg/cdrom.cc:
+    - do not link() but rename() the cdroms.list to cdroms.list~ as a backup
+      to ensure that apt-cdrom can be run multiple times (Closes: #676302)
 
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Wed, 18 Jul 2012 11:45:57 +0200
  -- David Kalnischkies <kalnischkies@gmail.com>  Wed, 18 Jul 2012 11:45:57 +0200