]> git.saurik.com Git - apt.git/commitdiff
ensure InRelease->Release is transactional as well
authorMichael Vogt <mvo@debian.org>
Thu, 31 Jul 2014 16:40:05 +0000 (18:40 +0200)
committerMichael Vogt <mvo@debian.org>
Thu, 31 Jul 2014 16:40:05 +0000 (18:40 +0200)
apt-pkg/acquire-item.cc
test/integration/test-apt-update-rollback

index 31dc2073d591a558691b196b810db5462edd8b62..2d9328b6b7b9c72d1d2a1b28cdedef72c10b0865 100644 (file)
@@ -1888,6 +1888,7 @@ void pkgAcqMetaIndex::Failed(string /*Message*/,
       ReportMirrorFailure("GPGFailure");
    }
 #endif
+
    /* Always move the meta index, even if gpgv failed. This ensures
     * that PackageFile objects are correctly filled in */
    if (FileExists(DestFile)) {
@@ -1902,9 +1903,9 @@ void pkgAcqMetaIndex::Failed(string /*Message*/,
                                       "Release");
         SigFile = FinalFile;
       }
-      Rename(DestFile,FinalFile);
-      chmod(FinalFile.c_str(),0644);
 
+      // Done, queue for rename on transaction finished
+      PartialFile = DestFile;
       DestFile = FinalFile;
    }
 
index 9771f0edcc88bcfe1414a10b533036e8c36eda3f..c16e4f48079a49d0f99b274c7081dc51a5cf6c2d 100755 (executable)
@@ -150,6 +150,22 @@ E: Some index files failed to download. They have been ignored, or old ones used
 E: There are problems and -y was used without --force-yes" aptget install -qq -y old
 }
 
+test_inrelease_to_unauth_inrelease() {
+    msgmsg "Test InRelease to InRelease without sig"
+    create_fresh_archive
+    signreleasefiles 'Marvin Paranoid'
+    avoid_ims_hit
+    
+    testsuccess aptget update -qq
+
+    testequal "WARNING: The following packages cannot be authenticated!
+  old
+E: There are problems and -y was used without --force-yes" aptget install -qq -y old
+
+    testfailure ls rootdir/var/lib/apt/lists/*_InRelease
+    testsuccess ls rootdir/var/lib/apt/lists/*_Release
+}
+
 TESTDIR=$(readlink -f $(dirname $0))
 . $TESTDIR/framework
 
@@ -179,3 +195,5 @@ test_inreleae_to_valid_release
 test_inreleae_to_release_reverts_all
 
 test_unauthenticated_to_invalid_inrelease
+
+test_inrelease_to_unauth_inrelease