Re: Convert a pkg installer to a flat package installer?
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:in-reply-to:references :mime-version:content-type:message-id:cc:content-transfer-encoding :from:subject:date:to:x-mailer; bh=65uGmcCCmxC3n8JK6nFzRJXVNT3SMTVSib0/zILOWiM=; b=n5gzr/sgtUFWN5caQLWwL0Y9YjEaAZyL9Qbo+x0q1bEkz5lEyMRtHIEX+rcoBdeF5B twRBDjDtT4hmP/AbUAcn3BLhQqmFCeXO/XybmucUlhL0VCVq9n4fFflo/8sM1HUTE+tT 5an7Q835JUMigRc6lU5sq+hEyPpHnHazoP/Rc= Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=in-reply-to:references:mime-version:content-type:message-id:cc :content-transfer-encoding:from:subject:date:to:x-mailer; b=AtyXKy48AWliTRi7ebuXcL7UTvpdGjMaZP1eUN9Yws+DTBNruJs05NeH51e9FqARaw 9gMk/tU7uGadge7eQFTE3VEDC9j1tSUOikPSPEXSQ7ny6yhb/YaWlVzPQ4fkhpZ/MfP2 Le/iBnZ2TvyKc+vzgKmiFEnu5m1RecsED3Yw0= On Feb 13, 2010, at 2:29 AM, Don Montalvo wrote: There is no bijection between Flat and bundle packages. A.pkg contents look like this: A.pkg --+-- Contents --+-- Archive.bom | +-- Archive.pax.gz | +-- Info.plist | +-- PkgInfo | +-- Resources --+-- BundleVersions.plist | +-- preflight | +-- postupdate B.pkg "contents" will look like this: A.pkg --+-- Bom | +-- PackageInfo | +-- Payload | +-- Scripts Here is the mapping between the two: Archive.bom ---- Rename -----> Bom Archive.pax.gz ---- Rename -----> Payload Info.plist + BundleVersions.plist ---- Transform --> PackageInfo preflight + postflight ---- Archive as pax ---> Scripts _______________________________________________ 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... Is it possible to convert a standard pkg installer > flat pkg installer? I'm looking through Apple's (and of course Sudre's) documentation but don't see any way to do this. AFAIK, you can convert a flat package (that does not use undocumented options) to a bundle package but the opposite is not true. A bundle package contains properties that are available only in distribution script (such as the root volume only flag). Also a bundle package can contain VolumeCheck, InstallationCheck, preinstall, postinstall, preupdate, postupdate, preflight and postflight scripts whereas a flat package can only contain preinstall and postinstall scripts (the equivalent of the pre/post flight scripts). I don't know of any tool that converts a bundle package to a flat package (and if such things existed it would not work in all cases as seen above). That being said, it is possible to manually convert a bundle package to flat package by taking into account the above considerations. Let's say you have a bundle package A.pkg that you want to converts to a flat package B.pkg. post/preinstall + pre/postupdate + VolumeCheck + InstallationCheck --- Obsoleted ---> Nowhere Once you have the virtual hierarchy for the flat package, you can flatten it with the xar tool. This email sent to site_archiver@lists.apple.com
participants (1)
-
Iceberg-Dev