[<search>] What's supposed to be the official behavior of a component type search?
site_archiver@lists.apple.com Delivered-To: installer-dev@lists.apple.com Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:mime-version :content-transfer-encoding:message-id:content-type:to:from:subject :date:x-mailer; bh=fd7YwG8vf04NikSkq/0HmkOW952YRC66x1cDymZt05k=; b=jfUw41UJYiUQ301K6tZmQ2e1gBKt1yAdJdMZgljjsyyrVvpO/NgbIA9owZE7vAEl1t Gqz7/YDEj5Wxxx/lVml3wM2rYVwEStNbnKa4DL/K5HTfu6dpfWHh9/sraUg/ReubwlZE Tk2ag1ZzqPE1RlPzUjyqvZ7xC6s5p8bDmNJd8= Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:content-transfer-encoding:message-id:content-type:to :from:subject:date:x-mailer; b=nE1x8zNfQVHZabD0RHFzDBx13nIruCKqzYCrT9eI2d9bd3ptStR/aJEf01cEUAV9VR IhuTDD501AVlqon3h2D7pMYJLlekeqhFRhXE7EG8BskBh+5qksZYhnasA+hShS9cgJGv aLvWKGpmM5CNMQwo/HYz3lnup+mEcrSpGbmIs= <search id="com.apple.dashboardlauncher.bundle" type="component"> <bundle CFBundleIdentifier="com.apple.dashboardlauncher"/> </search> and then it uses a script type search: This can mean many things among which: (a) the path attribute does not work. (b) the path provided is not checked first. Question: --------- Is it 'a', 'b' or 'c'? _______________________________________________ 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... If we look at the XML elements generated by PackageMaker, we can see that for a bundle, the search element looks something like this: <search id="someID" type="component"> <bundle CFBundleIdentifier="com.apple.dashboardlauncher" path="/Applications/Dashboard.app"/> </search> If we look at the XML element written for the Mac OS X 10.6.2 updater, the search element looks like this: <search id="com.apple.dashboardlauncher" type="script" script="search ()"> <script> function search() { var results = my.search.results['com.apple.dashboardlauncher.bundle']; if (typeof(results) == 'object') { if (results.length == 0) { return "/var/run/DoNotInstall"; } for (var i = 0; i < results.length; i++) { var result = results[i]; if (result == "/Applications/Dashboard.app") { return result; } } } return results; } </script> </search> (c) contrary to popular belief, the returned 'results' array is post- processed by some algorithm (version sorting for instance) and Installer.app won't just use the first item of the array. This email sent to site_archiver@lists.apple.com
participants (1)
-
Iceberg-Dev