How can I know more info about the update beyond the info on sucatalog? What triggers the client software update?

36 views
Skip to first unread message

Alexandre C. Torres

unread,
Mar 1, 2012, 3:09:29 PM3/1/12
to repo...@googlegroups.com

I have a question a little out of the purpose of reposado list:


Yesterday 041-4372 iMac Graphic Firmware Update v3.0 was only for iMac mid-2011/late-2011 21,5" with Radeon 6750M. I had to open the AMD/ATI binary firmware and look to the IDs on the ROM to know this. 


I'm trying to understand how the software update on the Mac knows that it had to get the update and install it. How can I know more info about the update beyond the info on sucatalog? What triggers the client software update? 


Can anybody point me in the right direction on this, please? Some ADC doc?


Thanks in advance.


me Alexandre Torres. Editor & NetAdmin.
AppleSpotlight | Twitter: Apple_Spotlight |
Pessoal: Alexandre Torres | Twitter: AlexandreTorres | AppleSpotlight




Greg Neagle

unread,
Mar 1, 2012, 3:34:00 PM3/1/12
to repo...@googlegroups.com
On Mar 1, 2012, at 12:09 PM, Alexandre C. Torres wrote:

I have a question a little out of the purpose of reposado list:

Yesterday 041-4372 iMac Graphic Firmware Update v3.0 was only for iMac mid-2011/late-2011 21,5" with Radeon 6750M. I had to open the AMD/ATI binary firmware and look to the IDs on the ROM to know this. 

I'm trying to understand how the software update on the Mac knows that it had to get the update and install it. How can I know more info about the update beyond the info on sucatalog? What triggers the client software update? 

On a softwareupdate run, each client downloads a catalog of available updates. Each update has a "distribution" file, which is processed to determine if the update is needed/applicable for the machine. That's why a softwareupdate run takes so incredibly long -- it's processing requirements for EVERY SINGLE UPDATE in the catalog. 

So start reading the Dist files. Some JavaScript knowledge is helpful.

Tim Sutton

unread,
Mar 1, 2012, 3:47:40 PM3/1/12
to reposado
I added a --dist option to repoutil a while back so that I could
quickly check the contents of a dist to satisfy my curiosity about an
update's logic. Not sure if anyone got a chance to take a look:

https://github.com/wdas/reposado/pull/10

If anyone has any suggestions of a better way this could be
implemented, I'm all ears.


-Tim

On Mar 1, 3:34 pm, Greg Neagle <gregnea...@mac.com> wrote:
> On Mar 1, 2012, at 12:09 PM, Alexandre C. Torres wrote:
>
> > I have a question a little out of the purpose of reposado list:
>
> > Yesterday 041-4372 iMac Graphic Firmware Update v3.0 was only for iMac mid-2011/late-2011 21,5" with Radeon 6750M. I had to open the AMD/ATI binary firmware and look to the IDs on the ROM to know this.
>
> > I'm trying to understand how the software update on the Mac knows that it had to get the update and install it. How can I know more info about the update beyond the info on sucatalog? What triggers the client software update?
>
> On a softwareupdate run, each client downloads a catalog of available updates. Each update has a "distribution" file, which is processed to determine if the update is needed/applicable for the machine. That's why a softwareupdate run takes so incredibly long -- it's processing requirements for EVERY SINGLE UPDATE in the catalog.
>
> So start reading the Dist files. Some JavaScript knowledge is helpful.
>
>
>
>
>
>
>
>
>
> > Can anybody point me in the right direction on this, please? Some ADC doc?
>
> > Thanks in advance.
>

Alexandre C. Torres

unread,
Mar 1, 2012, 3:48:38 PM3/1/12
to repo...@googlegroups.com
Thanks, indeed all the info are on the English.dist:

function InstallationCheck(prefix) {
	var models = ['iMac12,1',];
	var model = system.sysctl('hw.model');
	if (models.indexOf(model) == -1) {
		my.result.message = system.localizedString('ERROR_1');
		my.result.type = 'Fatal';
		return false;
	}
	if (system.compareVersions(system.version.ProductVersion, '10.7') &lt; 0) {
		my.result.message = system.localizedStringWithFormat('ERROR_0', '10.7');
		my.result.type = 'Fatal';
		return false;
	}
	if (compareBuildVersions(system.version.ProductBuildVersion, '11A511a') &lt; 0) {
		my.result.message = system.localizedString('ERROR_1');
		my.result.type = 'Fatal';
		return false;
	}
	my.result.message = system.localizedString('ERROR_1');
	if (!Script0("/")) {
		my.result.type = 'Fatal';
		return false;
	}
	return true;
Could some day repoutil show this info? 
Thx, 
Alexandre

Greg Neagle

unread,
Mar 1, 2012, 5:01:26 PM3/1/12
to repo...@googlegroups.com
Thanks for reminding me about this. I've pulled your changes. I'll do a few minor tweaks and push them back to the master branch.

-Greg

Greg Neagle

unread,
Mar 1, 2012, 7:03:55 PM3/1/12
to repo...@googlegroups.com
Available now from the current GitHub revision.

repoutil --dist <product_id> will print the dist file for <product_id> in your preferred language(s).

Thanks to Tim Sutton for the submission.

-Greg

Timothy Sutton

unread,
Mar 1, 2012, 10:21:17 PM3/1/12
to repo...@googlegroups.com
I realized after I posted this that the name "--dist" doesn't follow
the style of the other options, so thanks for amending that, and
adding the exception handling.


-Tim

Reply all
Reply to author
Forward
0 new messages