Closed SKUDSIEH closed 11 years ago
Yes, it probably would. I pushed a quick fix for #4 to keep brigadier from being completely broken, and haven't yet made time to revisit it. I should get to it this week, but patches also are always accepted. :smile:
Now realizing you said 'sucatalog' and not 'dist', I'm not convinced relying on PostDate is the best approach, since old updates can be re-posted. It's more correct that what's currently being done, which is nothing, but I'd rather try to determine what Boot Camp Assistant would do as of 10.8.3.
(WWBCAD?)
The dist for the most recent 5.0.x update:
./repoutil --dist=041-7018
function InstallationCheck(prefix) {
var models = ['MacBookAir4,1','MacBookAir4,2','MacBookAir5,1','MacBookAir5,2','MacBookPro6,1','MacBookPro6,2','MacBookPro8,1','MacBookPro8,2','MacBookPro8,3','MacBookPro9,1','MacBookPro9,2','MacBookPro10,1','MacBookPro10,2','MacPro4,1','MacPro5,1','Macmini5,1','Macmini5,2','Macmini5,3','Macmini6,1','Macmini6,2','iMac11,3','iMac12,1','iMac12,2','iMac13,1','iMac13,2',];
The last 4.x update that applies to basically everything 2011 and earlier:
./repoutil --dist=041-2011
function InstallationCheck(prefix) {
var models = ['MacBook2,1','MacBook3,1','MacBook4,1','MacBook5,1','MacBook5,2','MacBook5,3','MacBook6,1','MacBook7,1','MacBookAir1,1','MacBookAir2,1','MacBookAir3,1','MacBookAir3,2','MacBookPro2,1','MacBookPro2,2','MacBookPro3,1','MacBookPro4,1','MacBookPro5,1','MacBookPro5,2','MacBookPro5,3','MacBookPro5,4','MacBookPro5,5','MacBookPro6,1','MacBookPro6,2','MacBookPro7,1','MacBookPro8,1','MacBookPro8,2','MacBookPro8,3','MacPro1,1','MacPro2,1','MacPro3,1','MacPro4,1','MacPro5,1','Macmini2,1','Macmini3,1','Macmini4,1','iMac5,1','iMac6,1','iMac7,1','iMac8,1','iMac9,1','iMac10,1','iMac11,1','iMac11,2','iMac11,3','iMac12,1','iMac12,2',];
There are a few overlapping models - I'll try to see what BCA does with the overlapping iMac models.
Also, from BCA's Info.plist file in its .app bundle:
<key>32BitSupportedModels</key>
<array>
<string>MacBook7,1</string>
<string>MacBookAir5,2</string>
<string>MacBookPro10,1</string>
<string>MacPro5,1</string>
<string>Macmini5,3</string>
<string>iMac12,2</string>
</array>
<key>PreUSBBootSupportedModels</key>
<array>
<string>MacBook7,1</string>
<string>MacBookAir3,2</string>
<string>MacBookPro8,3</string>
<string>MacPro5,1</string>
<string>Macmini4,1</string>
<string>iMac12,2</string>
</array>
<key>Win7OnlyModels</key>
<array>
<string>MacBook7,1</string>
<string>MacBookAir3,2</string>
<string>MacBookPro5,5</string>
<string>MacPro2,1</string>
<string>Macmini4,1</string>
<string>iMac10,1</string>
</array>
These seem to be "upper limit" model numbers. For example, an iMac13,1 is 64-bit only and also USB-boot-supported, ie. no optical drive.
An iMac12,1 also pulls the 5.0-series driver with BCA rather than the 4.x-series driver. Despite mangling these model plist arrays to try to trick it into downloading the older one, it always seemed to prefer the 5.0-series driver.
So, two reasonable options (for now) for the few cases where one model exists in multiple ESDs:
It would be ideal to be able to pick the most recent as perhaps it may be possible in the future that 2 ESD's exist with overlapping models and both dist's with the autoupdate tag. However i did not see any other date field or any field for that matter that could indicate a more recent version in sucatalog or dist, and you mentioned the post date can be updated.
Part of the purpose of the unattend here seems to be for providing bluetooth and Intel HD drivers for the install process. I recall years ago they had to make manual instructions for putting AutoUnattend.xml on a USB stick for 27" iMacs in order for the graphics driver to show anything during the installation.
Hard to say whether this will be the norm going forward. Either way, I'm thinking that the PostDate may just be the simplest option for now, and if not, having an option to override which product gets pulled, or pull them both, or something.
I see that an update was made to handle the overlapping ESDs by searching for the bootcampautoupdate tag, however in doing this brigadier will download the older package. The sucatalog file does have a date field. Instead Would it be a good idea to use the date field to compare which package is the newest and download that one?