Thanks for the useful info Bill.
Following on from this, I’ve been playing around with
distribution packages on Panther, and it seems that when there is a VolumeCheck
script in the .mpkg, it runs it! I guess on Panther, it doesn’t
know what a .dist file is, so it assumes it’s dealing with a standard
meta-package, however I thought that InstallationCheck and VolumeCheck scripts
were ignored in meta-packages (because of what I read from the Software
Delivery Guide)…..
…Table 4.1 indicates that the
containing metapackage specifies package properties, installation properties,
and specify install operations. However, the only aspect of the metapackage
used in the installation process is its product information.
(http://developer.apple.com/documentation/DeveloperTools/Conceptual/SoftwareDistribution/Managed_Installs/chapter_5_section_2.html#//apple_ref/doc/uid/10000145i-CH6-DontLinkElementID_23)
So it seems that a VolumeCheck script can be included in a
distribution package which will obviously be ignored on Tiger and above because
of the .dist file, yet on Panther, it will run! I tried adding an
InstallationCheck script too for good measure, but this is ignored J
From: Bill Coderre [mailto:email@hidden]
Sent: 06 January 2009 07:51
To: Glover,David
Cc: Installer-Dev mailing-list
Subject: Re: Distribution packages and Panther
On Jan 2, 2009, at 6:28 AM, Glover,David wrote:
I have a question regarding preventing a distribution package from
installing on Panther… As Panther ignores .dist files and the
install/volume checks within it, and as .mpkgs cannot have their own install
and volume check scripts, how can a distribution package me made to fail at
runtime on Panther?
Mpkgs, in their Contents/Info.plist have
a IFPkgFlagPackageList, which can contain a "required" package.
The InstallationCheck and VolumeCheck files in that package can fail the
installation on Panther.
So for iLife '08.mpkg, which won't run on Panther, I have
this in the Info.plist:
<key>IFPkgFlagPackageList</key>
<key>IFPkgFlagPackageLocation</key>
<string>iLife '08.pkg</string>
<key>IFPkgFlagPackageSelection</key>
<string>required</string>
iLife '08.pkg/Contents/Resources/InstallationCheck just
returns an error code. Tiger and later, since there's a distribution file, the
entire InstallationCheck/VolumeCheck regime gets ignored. You can do
Panther/Tiger hybrids with Panther-only and Tiger-only packages by being
creative in this way.
Oh, and this will help, too:
<key>IFPkgFlagComponentDirectory</key>
<string>./Contents/Installers/</string>
(tell it where to find the subpackages -- they don't have to
be inside. If I recall correctly, prior to Panther, putting the packages inside
the mpkg was a bad idea.)
Promethean Limited is a company registered in England and Wales with company number 1308938 and VAT number GB 572 2599 18
Promethean Ltd and or associated and or subsidiary companies :
The views expressed in this communication may not necessarily be the views held by Promethean Ltd and or associated and or subsidiary companies.
This e-mail is for the exclusive use of the addressee(s). Unauthorised disclosure, copying or distribution is prohibited.
This e-mail message has been swept for the presence of computer viruses.
Promethean Ltd and or associated and or subsidiary companies accepts no liability for any loss resulting from this email transmission
Promethean, Promethean House, Lower Philips Road, Blackburn, Lancashire, BB1 5TH, UK.
*****************************************************************
This email has been checked by the e-Sweeper Service
*****************************************************************
|