Re: IFRequirementDicts doesn't work properly from metapkg in Tiger
site_archiver@lists.apple.com Delivered-To: installer-dev@lists.apple.com We know about this bug and will try to get it fixed as soon as we can. Chris Mac OS X Installation & Setup Team Rich, Can you send me your packages in whole that have this problem? Chris At 10:58 AM -0700 6/10/05, Christopher Ryan wrote: Chris, Rich Rich, <!-- NOTE LESS THAN OPERATOR --> Anyways, removing the comment will give you the correct behavior. Chris Mac OS X Installation & Setup Team In the other, I check that the version of XCode is 2.0. thanks --Sincerely, Rich Kubota rkubota@apple.com (408) 974-6212 -- Sincerely, Rich Kubota rkubota@apple.com (408) 974-6212 _______________________________________________ Do not post admin requests to the list. They will be ignored. Installer-dev mailing list (Installer-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/installer-dev/site_archiver%40lists.a... I talked with Rich offline, and he is correct, there is actually a bug in the Tiger Installer causing the IFRequirement to not actually fail the package the first time you click the volume. If you select another volume and reselect the volume it then works as expected. On my system with Xcode 2.1, the first package is not enabled, but the second is, so it does indeed work. I placed the comments in to hilight the use of the operator. In the actual script, these comments are not present. Interestingly, I'm hearing that the same problem happens for the "file" SpecType, but if I use a SpecType of "gestalt", things works and the appropriate script is not selected. Your comments in the Info.plist are not legal xml comments. Because of this, the Installer is not reading the Info.plist correctly and it is ignoring the IFRequirements. The Installer should not let you open these packages at all, but that is another issue. If you want to put a comment in the xml plist file, you can do something like: I have a metapackage which has 2 packages. Each package has an IFRequirementDicts script. In one package I check for the presence of XCode 1.2 (really less than 2.0) <key>IFRequirementDicts</key> <array> <dict> <key>Level</key> <string>requires</string> <key>SpecType</key> <string>bundle</string> <key>SpecArgument</key> <string>/Developer/Applications/ Xcode.app</string> <key>SpecProperty</key> <string>CFBundleVersion</string> <key>TestOperator</key> <string><</string> // NOTE LESS THAN OPERATOR <key>TestObject</key> <string>500</string> </dict> </array> <key>IFRequirementDicts</key> <array> <dict> <key>Level</key> <string>requires</string> <key>SpecType</key> <string>bundle</string> <key>SpecArgument</key> <string>/Developer/Applications/ Xcode.app</string> <key>SpecProperty</key> <string>CFBundleVersion</string> <key>TestOperator</key> <string>>=</string> // NOTE Greater than/equal <key>TestObject</key> <string>500</string> </dict> </array> When I run this metapackage under OS X 10.4.1, both packages are selectable. Is there a better way to do this, other than using a Distribution Script. This email sent to site_archiver@lists.apple.com
participants (1)
-
Christopher Ryan