[darwinbuild] proposed binary_sites change
Kevin Van Vechten
kevin at opendarwin.org
Wed Aug 31 16:43:29 PDT 2005
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
More information about the darwinbuild-dev
mailing list