• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Upgrading and not replacing in a distribution package on Tiger or Leopard
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Upgrading and not replacing in a distribution package on Tiger or Leopard


  • Subject: Upgrading and not replacing in a distribution package on Tiger or Leopard
  • From: Dymyr Winicki <email@hidden>
  • Date: Fri, 27 Mar 2009 15:21:15 +1100

Theoretically Packages and Distributions can be made to upgrade and not just replace files however using PackageMaker from the gui I haven't yet been able to do this.

With Packages I have using Iceberg. I have had trouble using Iceberg with metapackages with large number of files in the – With a simple mockup it upgrades and doesn't downgrade except with Leopard where it just replaces the files anyway.

I have not seen any answer on the forum (either to my questions or to others) that have broached this – so I will post my answer in the hope it will help others.

Basically I had a modular system that could be added to in terms of content and reward games and these could be updated from time to time. In the example listed only the core module has been updated.

Product X = Core Module v1 + Content Module A and Games Module K

Product Y = Core Module v2 + Content Module B and Games Module L

So if you install Product Y after Product X then the installer will upgrade Core Module to v2 a nd copy the Content Modules and Game modules side by side.

I you install Product X after Product Y, what happens is that the Core Module is replaced from v2 to v1

So it seems the distribution replaces rather than upgrades. (In in gui for PackageMaker I have this problem with plain packages as well)

What I have done is implement an action to the distribution – I have had to manually do this at the distribution.dist level as the actions found in the PackageMaker gui are not sophicated enough.

I have basically added the following code to the script section and modified the choice.


function pm_choice1_selected() {

result = true;

if (!(system.files.fileExistsAtPath(my.target.mountpoint + '/Library/Receipts/btcc.pkg') == true)) {

result = true;

} else

result = result &amp;&amp; !(system.files.bundleAtPath('/Library/Receipts/btcc.pkg').CFBundleShortVersionString > '1.32');

return result;


and the corresponding choice


<choice id="choice1" title="btcc" Location="/Applications" selected="pm_choice1_selected()" enabled="false" start_enabled="false" > <pkg-ref id="com.edalive.btcc.pkg"/>

</choice>


This will select if the same or an upgrade but in all cases will not enable to be changed. I also changed customLocation to the keyword Location which means you cannot change the location of the install.

If there is an easier way of doing this I would like to know.

 _______________________________________________
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

  • Follow-Ups:
    • Re: Upgrading and not replacing in a distribution package on Tiger or Leopard
      • From: Iceberg-Dev <email@hidden>
    • RE: Upgrading and not replacing in a distribution package on Tiger orLeopard
      • From: Adam Peck <email@hidden>
  • Prev by Date: Crash using CLI packagemaker
  • Next by Date: updaters again
  • Previous by thread: Re: Crash using CLI packagemaker
  • Next by thread: RE: Upgrading and not replacing in a distribution package on Tiger orLeopard
  • Index(es):
    • Date
    • Thread