Re: Using AND and OR in package requirements
Re: Using AND and OR in package requirements
- Subject: Re: Using AND and OR in package requirements
- From: Iceberg-Dev <email@hidden>
- Date: Sat, 23 Jan 2010 00:48:28 +0100
On Jan 21, 2010, at 11:41 PM, Adam Mercer wrote:
On Thu, Jan 21, 2010 at 16:37, Iceberg-Dev <email@hidden>
wrote:
On Jan 21, 2010, at 9:50 PM, Adam Mercer wrote:
Hi
I'm creating an installer for some software that requires either
Snow
Leopard or Intel Leopard, but will only run on a Snow Leopard system
that has a Core 2 Duo processor, (its fine on Core Duo systems
running
Leopard). I'm trying to work out a way that I can specify this in
the
requirements section of PackageMaker.app but I can't find a way to
build up this requirement.
Is something like this possible with PackageMaker? If so how? If not
any ideas how I can achieve this another way?
This is possible but you need to write a custom JavaScript function.
I'm not sure a requirement based on a CPU sub family is a good
idea. So I
switched it to 2 cores or more.
I mean on Snow Leopard it'll not run on a Core Duo, i.e. on Snow
Leopard it requires a 64 bit capable machine, but on Intel Leopard
it'll run on a 32bit or 64bit capable machine. The number of cores is
irrelevant.
That being said, it could look like this:
function complexRequirement()
{
if ((system.compareVersions(system.version.ProductVersion,
'10.6') >=
0)
{
// Snow Leopard
if (system.sysctl('hw.ncpu')>=2)
{
return true;
}
}
else if ((system.compareVersions
(system.version.ProductVersion,
'10.5') >= 0)
{
// Leopard
// Leopard can run on PowerPC so we need to exclude
them
if (system.sysctl('hw.cputype')==7)
{
if (system.sysctl('hw.ncpu')>=2)
{
return true;
}
}
}
return false;
}
Use the value returned by system.sysctl('hw.optional.64bitops') then
instead of the one returned by system.sysctl('hw.ncpu').
How do I go about using such a custom function?
With PackageMaker:
1. Go to the requirements pane
2. Add a requirement
3. Select Result of JavaScript
4. Type the name of the function
5. Set the true/false popupbutton to the value that makes sense.
6. Click on the button to display the text editor. You will probably
want to write the code in a separate text editor as the text view is
very small.
7. Copy the code
You can define the error message in case the requirement is not set.
It can not be localized easily.
I'm writing this from the top of my mind so the names of the button
may be a little bit different.
With Packages:
1. Go to the Requirements & Resources pane
2. Add a requirement
3. Select a JavaScript requirement
4. Write the function
5. Select the function name in the popup menu.
You can define an error message. It can be localized easily.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Installer-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden