From: David Empson on
JF Mezei <jfmezei.spamnot(a)vaxination.ca> wrote:

> Another aspect is that there are components that are needed only by
> certain machines. A MacPro won't need stuff that is specific to laptops.

That is not correct, except in one special situation.

If you install Mac OS X from a retail DVD, you have a universal system
which is compatible with all supported Mac models. The same applies
after you install a minor update like 10.6.3 (via any method).

When a new Mac model is released, it usually comes with a special build
of Mac OS X that has additional support files required for that model.
Those files do not exist in the "general" release of the same version of
Mac OS X.

For example, the late 2009 iMac came with a special build of 10.6.1. It
won't officially work with a standard retail install of 10.6.1 or
earlier (it might work, but some features may not function correctly,
and Apple hasn't tested it).

If you subsequently installed the 10.6.2 update (or later) on one of
those iMacs, the resulting system is identical to any other 10.6.2
installation, and supports any model compatible with the general release
of 10.6.2.

Similarly, a 10.6 system installed elsewhere and updated to 10.6.2 or
later will fully support a late 2009 iMac.

The special build of Mac OS X that comes with a new Mac will generally
be compatible with older Mac models, but might not be compatible with
other models released during the lifetime of the same minor version of
Mac OS X.

For example, the early 2009 models came with a special build of 10.5.6,
and the iMac 10.5.6 might not support a Mac Pro (or vice versa). Once
either of them was updated to 10.5.7 or later, the system would be fully
compatible with the other computer.

> When you download the kit from the web, you get a comprehensive package
> that include all possibilities and updates, and when you install, those
> that are not needed on your machine are not installed.

Nope. Every variant of a Mac OS X update installs every file in the
update, whether or not it is needed by your computer.

I have a bunch of ATI drivers installed on my MacBook Pro, which I
cannot possibly use (it has an NVIDIA chipset). They came with 10.6 and
were updated as required by 10.6.1 and 10.6.2.

If I clone my MacBook Pro's system and use it to boot another Mac with
an ATI video controller (or boot the other Mac directly from my MacBook
Pro's hard drive via Firewire Target Mode), those drivers will be used.

> When you use software update, it "creates" a kit for your machine with
> only the components that are needed, hence the much smaller file size.

No, it is just able to select a specific smaller "patch" variant of the
update based on what updates were previously installed.

In the case of the first update after a newly released model, there is
often a much smaller update available, because the special build of the
previous system already had many of the changes included in the next
version.

For example, a late 2009 iMac came with a heavily modified 10.6.1 and
probably had a relatively small update to get the rest of the way to
10.6.2.


Given that Apple haven't released any new Macs today, it is now very
likely that the next new models will be supplied with 10.6.3. If they
come out in the next couple of weeks, they may even be using the same
build of 10.6.3 which Apple just released (10D573). If they need to make
any further changes it will be a custom build with a four digit number
after the 10D, or possibly a 10E if kernel changes are required.

> BTW, as usual, the X11 becomes broken due to the xinitrc file protection
> being reset to prevent the user from accessing it (when you start X11
> manually).


--
David Empson
dempson(a)actrix.gen.nz
From: JF Mezei on
David Empson wrote:

> Nope. Every variant of a Mac OS X update installs every file in the
> update, whether or not it is needed by your computer.

I stand corrected then.

Would it be fair to state that the update process does look at
previously applied patches and omits those from the download if they
have already been installed, whereas if you download the kit from the
web, you get an all inclusive package that contains previous patches
whether or not you had installed them ?

It seems to me that software update spends considerable amount of time
looking and what is on a system before telling me what patches are
available.
From: David Empson on
JF Mezei <jfmezei.spamnot(a)vaxination.ca> wrote:

> David Empson wrote:
>
> > Nope. Every variant of a Mac OS X update installs every file in the
> > update, whether or not it is needed by your computer.
>
> I stand corrected then.
>
> Would it be fair to state that the update process does look at
> previously applied patches and omits those from the download if they
> have already been installed, whereas if you download the kit from the
> web, you get an all inclusive package that contains previous patches
> whether or not you had installed them ?

Sort of.

In general, Apple will make at least three variants of a 10.x.y update
(just considering Mac OS X client: there will be a similar set for Mac
OS X Server).

From biggest to smallest:

- Combo update: 10.x.0 thru 10.x.(y-1) -> 10.x.y
- Delta update: 10.x.(y-1) -> 10.x.y
- Patch update: 10.x.(y-1) + interim updates -> 10.x.y

The first two can be downloaded manually. Software Update presents the
smallest possible one of the three which is sufficient to update your
system to 10.x.y.

You are only eligible for the patch update if you have installed all of
the interim updates it requires. The relevant interim updates include
all those which modify files that make up part of the system update.
For example, printer drivers and iLife application updates are
independent of system updates, but security updates, certain targetted
patches and QuickTime updates would typically be included in the check.

If there were two or more interim updates after the previous minor
system update, and you had only installed one of them, Software Update
would probably offer you the much bigger delta update, because Apple
didn't prepared a patch update for that particular combination.

If you were at least two minor system versions out of date, Software
Update will offer you the even bigger combo update.

There is no mechanism for Software Update to pick and choose between
different subsets of several interim updates or earlier version updates
which might be missing.

On some occasions, Apple will make additional variants of the patch
update, if there is likely to be a particularly large subset of
computers that would benefit from it. The most common case is if there
was a newly released Mac model which has modified files, thus requiring
a different set of patches.

It is worth noting that for printer driver updates, Snow Leopard's
Software Update can download a relatively small update which only
contain drivers for the relevant printers. I expect these are handled by
logically subdividing the full printer driver update into a "common
files" subset, and a multitude of driver files for specific printers,
probably as a multi-package with lots of individual packages inside.
Software Update can selectively download the portion of the update which
includes the required common files and the drivers used on your
computer.

System updates are a more complex situation because there are too many
interdependent files and overlapped updates to achieve something
similar.

> It seems to me that software update spends considerable amount of time
> looking and what is on a system before telling me what patches are
> available.

It is processing everything in the /Library/Receipts database, and
communicating with various Apple servers to identify prior installed
updates, available updates and determining prerequisites.

It may also be doing random checks of files in the system to see if
enough of it looks the same as what was installed, so it is safe to do a
patch update.

--
David Empson
dempson(a)actrix.gen.nz