views:

204

answers:

4

I have content to be installed, but it's file and folder layout is determined by the brittle, old, Windows installer. I can't fundamentally alter the structure, and I'd prefer not to alter it at all. I can't put it in a PackageMaker package and somehow get the Windows installer to figure out how to read it, for example.

Is there a way to use PackageMaker without having to bundle up the real content at build time? Is there a way to build the package with symlinks and have PM honor them at run time?

I need to support 10.5-6.

edit: If I could use an uncompressed package, that might be able to share the content files between installers. Is there way to do that?

I'll try to give more info about what I'm doing, if something isn't clear please let me know. Please forgive any redundancy.

I need to create a Mac/PC DVD to install my application. The application consists of either a Mac or Windows "reader app", and about a GB of "content" files. There is an existing Windows installer that reads installs the Windows reader and the content files off the DVD and installs them. It is (unfortunately) not a possibility to change the Windows installer. Therefore, the shared content files on the DVD must remain exactly as they are on the disk, I can not zip or package them up, or anything.

I need to make a Mac installer that will install the Mac app and the content. So, the installer needs to install the content from the folder structure of the DVD, which it will have to look at during install-time. My understanding is that PackageMaker requires you to package up the installed files during the creation "build phase" of the installer. That won't work for me because I can't alter the content on disk.

Sunil said:

During creating installer using packagemaker we can attach both a file and a folder also we can specify the path it will be installed. If u want customized way of storing the installed data eg- in some directory structure then in pre installed script write the script to create directory to be created.

I am not able to "attach" files or folder to the installer when I create it. I need the installer to read the content off the DVD when the user runs the installer.

Let me know if there is something that needs to be clarified further.

A: 

Hi Peter Hosey, During creating installer using packagemaker we can attach both a file and a folder also we can specify the path it will be installed. If u want customized way of storing the installed data eg- in some directory structure then in pre installed script write the script to create directory to be created. Can you please describe your problem more deeply so that i may help you

Deepak
I tried to clarify in the first post. Let me know if you have more questions, thanks very much for taking an interest!
zekel
A: 

Write a postinstall or postflight script that copies the files off of the DVD.

Azeem.Butt
The problem with that is that it's 99% of the install time... the main progress bar will zip to completion and sit at post-install for 5-10 minutes...
zekel
+1  A: 

It sounds like you want the .pkg to copy the files right from the DVD, instead of having PackageMaker bundle the files into the .pkg, correct?

As far as I know a .pkg cannot do this natively. As NSD has mentioned you can do this in a postinstall/postflight script, but you want to display a proper progress bar. The only option left that I can see is to write a Cocoa app which not only copies the files off the DVD but also displays a progress bar in its GUI, and use that app as the postinstall "script".

Hongli
Exactly what I ended up doing.
zekel
Actually, I wrote an installer app, it doesn't run as a post install script, because that's that's the meat and potatoes.
zekel
A: 

Hi all

I have a similar problem but we need that the files can be modified before to run the .pkg. I have created a post install script (with a simple bash copy instructions) to copy the files. But the installer copy aleays the "orignal" version of the file. if i modified the files we need to re-built the .pkg file. How can avoid it?

Regards Sebastiano