]> git.saurik.com Git - cydia.git/commitdiff
Wrap extended_states update using a symbolic link.
authorJay Freeman (saurik) <saurik@saurik.com>
Thu, 2 Jul 2015 15:46:27 +0000 (08:46 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Thu, 2 Jul 2015 15:46:27 +0000 (08:46 -0700)
MobileCydia.mm

index 75d28421a7ac3b0025ea9056dc326c22603eff11..95e5a40de75150b5c5a264989c90936800e782f2 100644 (file)
@@ -4090,7 +4090,14 @@ class CydiaLogCleaner :
 
     delock_ = nil;
 
+    NSString *oextended(@"/var/lib/apt/extended_states");
+    NSString *nextended(Cache("extended_states"));
     pkgPackageManager::OrderResult result(manager_->DoInstall(statusfd_));
+    system([[NSString stringWithFormat:@"/usr/libexec/cydia/cydo /bin/mv -f %@ %@", nextended, oextended] UTF8String]);
+    system([[NSString stringWithFormat:@"/usr/libexec/cydia/cydo /bin/chown 0:0 %@", oextended] UTF8String]);
+    unlink([nextended UTF8String]);
+    symlink([oextended UTF8String], [nextended UTF8String]);
+
     if ([self popErrorWithTitle:title])
         return;
 
@@ -10435,6 +10442,9 @@ int main(int argc, char *argv[]) {
     mkdir([Cache("archives/partial") UTF8String], 0755);
     _config->Set("Dir::Cache", [Cache_ UTF8String]);
 
+    symlink("/var/lib/apt/extended_states", [Cache("extended_states") UTF8String]);
+    _config->Set("Dir::State", [Cache_ UTF8String]);
+
     mkdir([Cache("lists") UTF8String], 0755);
     mkdir([Cache("lists/partial") UTF8String], 0755);
     mkdir([Cache("periodic") UTF8String], 0755);