How to configure an installer of Max objects?

aengus's icon

Hi,

I may be missing some documentation, or tutorial somewhere, and if so, my apologies.

On OS X, I'd like to create an installer (using PackageMaker) for some Max objects including ones written in C and others which are mxj objects in .jar files and associated help patchers and pdf docs. Is there a suggested "best" way to do this? Can I just install them all to /Applications/MyStuff and if so, how do I tell Max about them short of instructing the user to add the folder to the Max search path?

Thanks,

Aengus.

$Adam's icon

Hi,

the last time when I made an installer I simply included every needed file in my installer and set their appropriate expected locations (for example, I remember using /Applications/Max5/Cycling '74/third-party/MyStuff for externals etc). However, it turned out that the installer caused more trouble than benefits, so my personal opinion is that for Max-externals the best way of installing them is the manual one. Here are my two main reasons to consider:

- if you release your externals in a non-commercial way (eg. GPL or Creative Commons), the following scenario is quite likely to happen: software A and software B use your externals. You, and software A and software B all make their installers. Now, when an user installs at least two of these (let's say, your original external AND software A), the user would end up with two instances of the same external (and there's no way to tell Max that the 'original' is the one located in folder xxx) or worse: software A can easily overwrite your external with a probably older version of the same stuff. This scenario is constantly happening with my externals and independent projects using them...

- Creating a good installer for a Max external requires a lot of effort (to make sure that everything goes to its appropriate place, that nothing gets overwritten by your installer that is not supposed to get overwritten or, for example, that the XMLs containing the objects in the refdocs of Max 5 will be modified just as expected). If you have the time for this, fine. But If you don't/can't put this effort, your installer might simply erase/overwrite other third-party externals or break the refdocs structure etc. etc. etc.

To tell the truth, I have never seen an installer for any Max project that at the end of the day would have saved me time (if compared to the simply 'copy everything to the appropriate folder' approach).

Just my 2¢...
Ádám

aengus's icon

Hi,

Thanks for the response.

My reason for wanting an installer of some kind is that I need to be able to conveniently install/update the externals and related files on entire labs of university computers without having to ask system administrators to do me too many favours--and I think going around to each machine and manually changing the Max search path is too much to ask. However, I certainly don't want to break anything either.

This is for a study I'm running, not for commercial purposes.

Would it be safe to have an installer simply copy the files to some standard location (/Applications/MyStuff) and create a link to that folder inside /Applications/Max6/Cycling '74/max-externals ? (I'm not too worried about refdocs or the like, just so long as Max can find the files and help files.)

If not, is there no way to make this process easier?

$Adam's icon

Hi,

I don't know about Max 6 (I bought it a while ago but I still didn't even have the time to install it), but in Max 5 that wouldn't work. This was a change from Max 4 to Max 5: symlinks are not followed by Max, even if you put them in the search path.

I think the easiest solution would then be if you just made a shell script that copies everything to a certain location within the Cycling '74 folder (I'm not very familiar with the *nix shells, but I think 'sudo cp -fr /Applications/Max5/Cycling '74/' should do the trick -- you will need the sudo only in the case when Max was installed by the root user). You can also create the installer to do basically the same (you just need to include every file that you need and specify the destination folders), but sysadmins normally appreciate more if they just need to run a shell command then if they have to run an installer and click several times on the screen before the magic starts to happen. ;-)

HTH,
Ádám

aengus's icon

Yes, I suspect you're right: a shell script to copy the files into the Max6 folder structure. Simple is probably best!

Thanks for the advice,

Aengus.

around's icon

Hi Aengus,

Doing a Max package (https://cycling74.com/articles/max-6-feature-packages/) may be nice and simple for the end user. For example, see the hoalibrary package : http://www.mshparisnord.fr/hoalibrary/telechargements/max/

Cheers