[darwinbuild-changes] [744] branches/PR-7593824
source_changes at macosforge.org
source_changes at macosforge.org
Mon Mar 8 16:10:11 PST 2010
Revision: 744
http://trac.macosforge.org/projects/darwinbuild/changeset/744
Author: wsiegrist at apple.com
Date: 2010-03-08 16:10:11 -0800 (Mon, 08 Mar 2010)
Log Message:
-----------
Add superseded keyword for archives that have been fully replaced by newer roots.
Modified Paths:
--------------
branches/PR-7593824/darwinup/DB.cpp
branches/PR-7593824/darwinup/Depot.cpp
branches/PR-7593824/darwinup/Depot.h
branches/PR-7593824/darwinup/main.cpp
Property Changed:
----------------
branches/PR-7593824/
branches/PR-7593824/darwinbuild/darwinbuild.in
branches/PR-7593824/darwinbuild/darwinmaster.in
branches/PR-7593824/darwinbuild/installXcode.in
branches/PR-7593824/darwinbuild/packageRoots.in
branches/PR-7593824/darwinbuild/thinPackages.in
Property changes on: branches/PR-7593824
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/PR-4841388:399-419
/branches/PR-6358021:442-443
/branches/PR-6392966:423-427
/branches/PR-6398060:433-434
/branches/PR-6493844:460-461
/branches/PR-6497694:466-468,471
/branches/PR-6634286:632-650
/branches/PR-6688645:479-490
/branches/PR-6722857:495-499
/branches/PR-6729491:655-664
/branches/PR-7250612:635-650
/branches/PR-7341154:682-694
/branches/PR-7431723:660-664
/branches/PR-7461534:650-664
/branches/PR-7482850:670-671
/branches/PR-7489777:676-731
/branches/PR-7529688:692-694
/branches/PR-7598640:703-731
/trunk:432-434
+ /branches/PR-4841388:399-419
/branches/PR-6358021:442-443
/branches/PR-6392966:423-427
/branches/PR-6398060:433-434
/branches/PR-6493844:460-461
/branches/PR-6497694:466-468,471
/branches/PR-6634286:632-650
/branches/PR-6688645:479-490
/branches/PR-6722857:495-499
/branches/PR-6729491:655-664
/branches/PR-7250612:635-650
/branches/PR-7341154:682-694
/branches/PR-7431723:660-664
/branches/PR-7461534:650-664
/branches/PR-7482850:670-671
/branches/PR-7489777:676-731
/branches/PR-7529688:692-694
/branches/PR-7598640:703-731
/trunk:432-434,740
Property changes on: branches/PR-7593824/darwinbuild/darwinbuild.in
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/PR-4841388/darwinbuild/darwinbuild:399-419
/branches/PR-6358021/darwinbuild/darwinbuild:442-443
/branches/PR-6392966/darwinbuild/darwinbuild:423-427
/branches/PR-6398060/darwinbuild/darwinbuild:433-434
/branches/PR-6493844/darwinbuild/darwinbuild.in:460-461
/branches/PR-6497694/darwinbuild/darwinbuild.in:466-468,471
/branches/PR-6634286/darwinbuild/darwinbuild.in:632-650
/branches/PR-6688645/darwinbuild/darwinbuild.in:479-490
/branches/PR-6722857/darwinbuild/darwinbuild.in:495-499
/branches/PR-6729491/darwinbuild/darwinbuild.in:655-664
/branches/PR-7250612/darwinbuild/darwinbuild.in:635-650
/branches/PR-7341154/darwinbuild/darwinbuild.in:682-694
/branches/PR-7431723/darwinbuild/darwinbuild.in:660-664
/branches/PR-7461534/darwinbuild/darwinbuild.in:650-664
/branches/PR-7489777/darwinbuild/darwinbuild.in:676-731
/branches/PR-7529688/darwinbuild/darwinbuild.in:692-694
/branches/PR-7598640/darwinbuild/darwinbuild.in:703-731
/trunk/darwinbuild/darwinbuild:432-434
+ /branches/PR-4841388/darwinbuild/darwinbuild:399-419
/branches/PR-6358021/darwinbuild/darwinbuild:442-443
/branches/PR-6392966/darwinbuild/darwinbuild:423-427
/branches/PR-6398060/darwinbuild/darwinbuild:433-434
/branches/PR-6493844/darwinbuild/darwinbuild.in:460-461
/branches/PR-6497694/darwinbuild/darwinbuild.in:466-468,471
/branches/PR-6634286/darwinbuild/darwinbuild.in:632-650
/branches/PR-6688645/darwinbuild/darwinbuild.in:479-490
/branches/PR-6722857/darwinbuild/darwinbuild.in:495-499
/branches/PR-6729491/darwinbuild/darwinbuild.in:655-664
/branches/PR-7250612/darwinbuild/darwinbuild.in:635-650
/branches/PR-7341154/darwinbuild/darwinbuild.in:682-694
/branches/PR-7431723/darwinbuild/darwinbuild.in:660-664
/branches/PR-7461534/darwinbuild/darwinbuild.in:650-664
/branches/PR-7489777/darwinbuild/darwinbuild.in:676-731
/branches/PR-7529688/darwinbuild/darwinbuild.in:692-694
/branches/PR-7598640/darwinbuild/darwinbuild.in:703-731
/trunk/darwinbuild/darwinbuild:432-434
/trunk/darwinbuild/darwinbuild.in:740
Property changes on: branches/PR-7593824/darwinbuild/darwinmaster.in
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/PR-4841388/darwinbuild/darwinmaster.sh:399-419
/branches/PR-6358021/darwinbuild/darwinmaster.sh:442-443
/branches/PR-6392966/darwinbuild/darwinmaster.sh:423-427
/branches/PR-6398060/darwinbuild/darwinmaster.sh:433-434
/branches/PR-6493844/darwinbuild/darwinmaster.sh.in:460-461
/branches/PR-6497694/darwinbuild/darwinmaster.sh.in:466-468,471
/branches/PR-6634286/darwinbuild/darwinmaster.in:632-650
/branches/PR-6688645/darwinbuild/darwinmaster.sh.in:479-490
/branches/PR-6722857/darwinbuild/darwinmaster.sh.in:495-499
/branches/PR-6729491/darwinbuild/darwinmaster.in:655-664
/branches/PR-7250612/darwinbuild/darwinmaster.in:635-650
/branches/PR-7341154/darwinbuild/darwinmaster.in:682-694
/branches/PR-7431723/darwinbuild/darwinmaster.in:660-664
/branches/PR-7461534/darwinbuild/darwinmaster.in:650-664
/branches/PR-7489777/darwinbuild/darwinmaster.in:676-731
/branches/PR-7529688/darwinbuild/darwinmaster.in:692-694
/branches/PR-7598640/darwinbuild/darwinmaster.in:703-731
/trunk/darwinbuild/darwinmaster.sh:432-434
+ /branches/PR-4841388/darwinbuild/darwinmaster.sh:399-419
/branches/PR-6358021/darwinbuild/darwinmaster.sh:442-443
/branches/PR-6392966/darwinbuild/darwinmaster.sh:423-427
/branches/PR-6398060/darwinbuild/darwinmaster.sh:433-434
/branches/PR-6493844/darwinbuild/darwinmaster.sh.in:460-461
/branches/PR-6497694/darwinbuild/darwinmaster.sh.in:466-468,471
/branches/PR-6634286/darwinbuild/darwinmaster.in:632-650
/branches/PR-6688645/darwinbuild/darwinmaster.sh.in:479-490
/branches/PR-6722857/darwinbuild/darwinmaster.sh.in:495-499
/branches/PR-6729491/darwinbuild/darwinmaster.in:655-664
/branches/PR-7250612/darwinbuild/darwinmaster.in:635-650
/branches/PR-7341154/darwinbuild/darwinmaster.in:682-694
/branches/PR-7431723/darwinbuild/darwinmaster.in:660-664
/branches/PR-7461534/darwinbuild/darwinmaster.in:650-664
/branches/PR-7489777/darwinbuild/darwinmaster.in:676-731
/branches/PR-7529688/darwinbuild/darwinmaster.in:692-694
/branches/PR-7598640/darwinbuild/darwinmaster.in:703-731
/trunk/darwinbuild/darwinmaster.in:740
/trunk/darwinbuild/darwinmaster.sh:432-434
Property changes on: branches/PR-7593824/darwinbuild/installXcode.in
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/PR-4841388/darwinbuild/installXcode:399-419
/branches/PR-6358021/darwinbuild/installXcode:442-443
/branches/PR-6392966/darwinbuild/installXcode:423-427
/branches/PR-6398060/darwinbuild/installXcode:433-434
/branches/PR-6493844/darwinbuild/installXcode.in:460-461
/branches/PR-6497694/darwinbuild/installXcode.in:466-468,471
/branches/PR-6634286/darwinbuild/installXcode.in:632-650
/branches/PR-6688645/darwinbuild/installXcode.in:479-490
/branches/PR-6722857/darwinbuild/installXcode.in:495-499
/branches/PR-6729491/darwinbuild/installXcode.in:655-664
/branches/PR-7250612/darwinbuild/installXcode.in:635-650
/branches/PR-7341154/darwinbuild/installXcode.in:682-694
/branches/PR-7431723/darwinbuild/installXcode.in:660-664
/branches/PR-7461534/darwinbuild/installXcode.in:650-664
/branches/PR-7489777/darwinbuild/installXcode.in:676-731
/branches/PR-7529688/darwinbuild/installXcode.in:692-694
/branches/PR-7598640/darwinbuild/installXcode.in:703-731
/trunk/darwinbuild/installXcode:432-434
+ /branches/PR-4841388/darwinbuild/installXcode:399-419
/branches/PR-6358021/darwinbuild/installXcode:442-443
/branches/PR-6392966/darwinbuild/installXcode:423-427
/branches/PR-6398060/darwinbuild/installXcode:433-434
/branches/PR-6493844/darwinbuild/installXcode.in:460-461
/branches/PR-6497694/darwinbuild/installXcode.in:466-468,471
/branches/PR-6634286/darwinbuild/installXcode.in:632-650
/branches/PR-6688645/darwinbuild/installXcode.in:479-490
/branches/PR-6722857/darwinbuild/installXcode.in:495-499
/branches/PR-6729491/darwinbuild/installXcode.in:655-664
/branches/PR-7250612/darwinbuild/installXcode.in:635-650
/branches/PR-7341154/darwinbuild/installXcode.in:682-694
/branches/PR-7431723/darwinbuild/installXcode.in:660-664
/branches/PR-7461534/darwinbuild/installXcode.in:650-664
/branches/PR-7489777/darwinbuild/installXcode.in:676-731
/branches/PR-7529688/darwinbuild/installXcode.in:692-694
/branches/PR-7598640/darwinbuild/installXcode.in:703-731
/trunk/darwinbuild/installXcode:432-434
/trunk/darwinbuild/installXcode.in:740
Property changes on: branches/PR-7593824/darwinbuild/packageRoots.in
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/PR-4841388/darwinbuild/packageRoots.sh:399-419
/branches/PR-6358021/darwinbuild/packageRoots.sh:442-443
/branches/PR-6392966/darwinbuild/packageRoots.sh:423-427
/branches/PR-6398060/darwinbuild/packageRoots.sh:433-434
/branches/PR-6493844/darwinbuild/packageRoots.sh.in:460-461
/branches/PR-6497694/darwinbuild/packageRoots.sh.in:466-468,471
/branches/PR-6634286/darwinbuild/packageRoots.in:632-650
/branches/PR-6688645/darwinbuild/packageRoots.sh.in:479-490
/branches/PR-6722857/darwinbuild/packageRoots.sh.in:495-499
/branches/PR-6729491/darwinbuild/packageRoots.in:655-664
/branches/PR-7250612/darwinbuild/packageRoots.in:635-650
/branches/PR-7341154/darwinbuild/packageRoots.in:682-694
/branches/PR-7431723/darwinbuild/packageRoots.in:660-664
/branches/PR-7461534/darwinbuild/packageRoots.in:650-664
/branches/PR-7489777/darwinbuild/packageRoots.in:676-731
/branches/PR-7529688/darwinbuild/packageRoots.in:692-694
/branches/PR-7598640/darwinbuild/packageRoots.in:703-731
/trunk/darwinbuild/packageRoots.sh:432-434
+ /branches/PR-4841388/darwinbuild/packageRoots.sh:399-419
/branches/PR-6358021/darwinbuild/packageRoots.sh:442-443
/branches/PR-6392966/darwinbuild/packageRoots.sh:423-427
/branches/PR-6398060/darwinbuild/packageRoots.sh:433-434
/branches/PR-6493844/darwinbuild/packageRoots.sh.in:460-461
/branches/PR-6497694/darwinbuild/packageRoots.sh.in:466-468,471
/branches/PR-6634286/darwinbuild/packageRoots.in:632-650
/branches/PR-6688645/darwinbuild/packageRoots.sh.in:479-490
/branches/PR-6722857/darwinbuild/packageRoots.sh.in:495-499
/branches/PR-6729491/darwinbuild/packageRoots.in:655-664
/branches/PR-7250612/darwinbuild/packageRoots.in:635-650
/branches/PR-7341154/darwinbuild/packageRoots.in:682-694
/branches/PR-7431723/darwinbuild/packageRoots.in:660-664
/branches/PR-7461534/darwinbuild/packageRoots.in:650-664
/branches/PR-7489777/darwinbuild/packageRoots.in:676-731
/branches/PR-7529688/darwinbuild/packageRoots.in:692-694
/branches/PR-7598640/darwinbuild/packageRoots.in:703-731
/trunk/darwinbuild/packageRoots.in:740
/trunk/darwinbuild/packageRoots.sh:432-434
Property changes on: branches/PR-7593824/darwinbuild/thinPackages.in
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/PR-4841388/darwinbuild/thinPackages.sh:399-419
/branches/PR-6358021/darwinbuild/thinPackages.sh:442-443
/branches/PR-6392966/darwinbuild/thinPackages.sh:423-427
/branches/PR-6398060/darwinbuild/thinPackages.sh:433-434
/branches/PR-6493844/darwinbuild/thinPackages.sh.in:460-461
/branches/PR-6497694/darwinbuild/thinPackages.sh.in:466-468,471
/branches/PR-6634286/darwinbuild/thinPackages.in:632-650
/branches/PR-6688645/darwinbuild/thinPackages.sh.in:479-490
/branches/PR-6722857/darwinbuild/thinPackages.sh.in:495-499
/branches/PR-6729491/darwinbuild/thinPackages.in:655-664
/branches/PR-7250612/darwinbuild/thinPackages.in:635-650
/branches/PR-7341154/darwinbuild/thinPackages.in:682-694
/branches/PR-7431723/darwinbuild/thinPackages.in:660-664
/branches/PR-7461534/darwinbuild/thinPackages.in:650-664
/branches/PR-7489777/darwinbuild/thinPackages.in:676-731
/branches/PR-7529688/darwinbuild/thinPackages.in:692-694
/branches/PR-7598640/darwinbuild/thinPackages.in:703-731
/trunk/darwinbuild/thinPackages.sh:432-434
+ /branches/PR-4841388/darwinbuild/thinPackages.sh:399-419
/branches/PR-6358021/darwinbuild/thinPackages.sh:442-443
/branches/PR-6392966/darwinbuild/thinPackages.sh:423-427
/branches/PR-6398060/darwinbuild/thinPackages.sh:433-434
/branches/PR-6493844/darwinbuild/thinPackages.sh.in:460-461
/branches/PR-6497694/darwinbuild/thinPackages.sh.in:466-468,471
/branches/PR-6634286/darwinbuild/thinPackages.in:632-650
/branches/PR-6688645/darwinbuild/thinPackages.sh.in:479-490
/branches/PR-6722857/darwinbuild/thinPackages.sh.in:495-499
/branches/PR-6729491/darwinbuild/thinPackages.in:655-664
/branches/PR-7250612/darwinbuild/thinPackages.in:635-650
/branches/PR-7341154/darwinbuild/thinPackages.in:682-694
/branches/PR-7431723/darwinbuild/thinPackages.in:660-664
/branches/PR-7461534/darwinbuild/thinPackages.in:650-664
/branches/PR-7489777/darwinbuild/thinPackages.in:676-731
/branches/PR-7529688/darwinbuild/thinPackages.in:692-694
/branches/PR-7598640/darwinbuild/thinPackages.in:703-731
/trunk/darwinbuild/thinPackages.in:740
/trunk/darwinbuild/thinPackages.sh:432-434
Modified: branches/PR-7593824/darwinup/DB.cpp
===================================================================
--- branches/PR-7593824/darwinup/DB.cpp 2010-03-09 00:09:58 UTC (rev 743)
+++ branches/PR-7593824/darwinup/DB.cpp 2010-03-09 00:10:11 UTC (rev 744)
@@ -402,7 +402,7 @@
int res = this->get_all_ordered("get_archives",
data, count,
this->m_archives_table,
- this->m_archives_table->column(0), // order by path
+ this->m_archives_table->column(0), // order by serial
ORDER_BY_DESC,
1,
this->m_archives_table->column(2), // name
Modified: branches/PR-7593824/darwinup/Depot.cpp
===================================================================
--- branches/PR-7593824/darwinup/Depot.cpp 2010-03-09 00:09:58 UTC (rev 743)
+++ branches/PR-7593824/darwinup/Depot.cpp 2010-03-09 00:10:11 UTC (rev 744)
@@ -266,6 +266,36 @@
return list;
}
+Archive** Depot::get_superseded_archives(uint32_t* count) {
+ int res = DB_OK;
+ uint8_t** archlist;
+ res = this->m_db->get_archives(&archlist, count, false); // rollbacks cannot be superseded
+
+ Archive** list = (Archive**)malloc(sizeof(Archive*) * (*count));
+ if (!list) {
+ fprintf(stderr, "Error: ran out of memory in Depot::get_superseded_archives\n");
+ return NULL;
+ }
+
+ uint32_t i = 0;
+ uint32_t cur = i;
+ if (FOUND(res)) {
+ while (i < *count) {
+ Archive* archive = this->m_db->make_archive(archlist[i++]);
+ if (archive && this->is_superseded(archive)) {
+ list[cur++] = archive;
+ } else if (!archive) {
+ fprintf(stderr, "%s:%d: DB::make_archive returned NULL\n", __FILE__, __LINE__);
+ res = -1;
+ break;
+ }
+ }
+ }
+ // adjust count based on our is_superseded filtering
+ *count = cur;
+ return list;
+}
+
uint64_t Depot::count_archives() {
extern uint32_t verbosity;
uint64_t c = this->m_db->count_archives((bool)(verbosity & VERBOSE_DEBUG));
@@ -852,6 +882,9 @@
if (res == 0) res = this->prune_archive(archive);
+ if (res == 0) fprintf(stdout, "Uninstalled archive: %llu %s \n",
+ archive->serial(), archive->name());
+
(void)this->lock(LOCK_SH);
return res;
@@ -1025,6 +1058,23 @@
int Depot::is_locked() { return m_is_locked; }
+bool Depot::is_superseded(Archive* archive) {
+ int res = DB_OK;
+ uint8_t** filelist;
+ uint8_t* data;
+ uint32_t count;
+ res = this->m_db->get_files(&filelist, &count, archive);
+ if (FOUND(res)) {
+ for (uint32_t i=0; i < count; i++) {
+ File* file = this->m_db->make_file(filelist[i]);
+ res = this->m_db->get_next_file(&data, file, FILE_SUPERSEDED);
+ // XXX: need to send data to Table to free
+ if (!FOUND(res)) return false;
+ }
+ }
+ return true;
+}
+
int Depot::lock(int operation) {
int res = 0;
if (m_lock_fd == -1) {
@@ -1149,6 +1199,8 @@
if (strncasecmp(arg, "all", 3) == 0) {
list = this->get_all_archives(&count);
+ } else if (strncasecmp(arg, "superseded", 10) == 0) {
+ list = this->get_superseded_archives(&count);
} else {
// make a list of 1 Archive
list = (Archive**)malloc(sizeof(Archive*));
Modified: branches/PR-7593824/darwinup/Depot.h
===================================================================
--- branches/PR-7593824/darwinup/Depot.h 2010-03-09 00:09:58 UTC (rev 743)
+++ branches/PR-7593824/darwinup/Depot.h 2010-03-09 00:10:11 UTC (rev 744)
@@ -79,6 +79,7 @@
// returns a list of Archive*. Caller must free the list.
Archive** get_all_archives(uint32_t *count);
+ Archive** get_superseded_archives(uint32_t *count);
uint64_t count_archives();
int dump();
@@ -112,6 +113,7 @@
// test if the depot is currently locked
int is_locked();
+ bool is_superseded(Archive* archive);
protected:
Modified: branches/PR-7593824/darwinup/main.cpp
===================================================================
--- branches/PR-7593824/darwinup/main.cpp 2010-03-09 00:09:58 UTC (rev 743)
+++ branches/PR-7593824/darwinup/main.cpp 2010-03-09 00:10:11 UTC (rev 744)
@@ -72,12 +72,14 @@
fprintf(stderr, " xar, zip \n");
fprintf(stderr, " \n");
fprintf(stderr, "<archive> is one of: \n");
- fprintf(stderr, " <serial> the Serial number \n");
- fprintf(stderr, " <uuid> the UUID \n");
- fprintf(stderr, " <name> the last root installed with that name \n");
- fprintf(stderr, " newest the newest (last) root installed \n");
- fprintf(stderr, " oldest the oldest root installed \n");
- fprintf(stderr, " all all installed roots \n");
+ fprintf(stderr, " <serial> the Serial number \n");
+ fprintf(stderr, " <uuid> the UUID \n");
+ fprintf(stderr, " <name> the last root installed with that name \n");
+ fprintf(stderr, " newest the newest (last) root installed \n");
+ fprintf(stderr, " oldest the oldest root installed \n");
+ fprintf(stderr, " superseded all roots that have been fully replaced \n");
+ fprintf(stderr, " by newer roots \n");
+ fprintf(stderr, " all all installed roots \n");
fprintf(stderr, " \n");
exit(1);
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/darwinbuild-changes/attachments/20100308/1dd92f61/attachment-0001.html>
More information about the darwinbuild-changes
mailing list