I'd like to modify DarwinBuild's behavior for downloading binaries to better support custom plists, and alleviate a lot of the server-side work that's needed to support roots downloads. In the current scheme, each release needs to have all roots available in one HTTP directory (we use symlinks on the server side). A better approach would be to use a search path when downloading roots. This would allow people providing custom plists to only host the roots which they've actually modified. Currently, the binary_sites URLs in the property lists are a base path, which DarwinBuild appends a build number to: 8C46.plist: binary_sites = ( "http://darwinsource.opendarwin.org/Roots/", ); Instead, I'd like to make the binary_sites URLs explicit for each build: 8C46.plist: binary_sites = ( "http://darwinsource.opendarwin.org/Roots/8C46/", ); The `darwinxref binary_sites` command would only print binary_sites URLs when the project being requested is actually present in that plist's projects dictionary. If URLs are printed, darwinbuild will attempt to download the root from that site. Otherwise, it will re- run the darwinxref command looking for the binary_sites property in the inherited plist. This scheme should work as long as all inherited builds are ABI compatible. This is certainly true of Apple's software update releases, though it would probably be best to never inherit across major releases (i.e. 8A48 inheriting from 7W98). Luckily major releases usually have enough differences that it wouldn't make sense to inherit in those cases anyway. I believe this would eliminate the most common cases for using the "- depsbuild" argument. After this change is made, we can maintain compatibility with older darwinbuilds by adding server-side symlinks like "8C46 -> ." - Kevin