How to distribute a production .qtz that requires additional plug-ins?

nonstopdj's picture

I created an iTunes Visualiser composition which utilizes: FileTools.plugin; CoGeWebkit.plugin; FreeboardPatch.plugin.

I want to release my .qtz by making it available for download.

Please forgive my newbie ignorance but do I need to provide the plugins separately and instruct the user to install them somewhere, or does my .qtz automatically include the plugins?

My .qtz is destined for /Library/iTunes/iTunes Plug-ins folder on the user's machine. The user will not necessarily have Quartz Composer installed, and they should not be required to install it.

If I am to include the plugins separately, where will they need to be located on the user's computer?

Does the user require anything else to be installed in order for this to work (on a MAC)?

nonstopdj's picture
Re: How to distribute a production .qtz that requires ...

Note that the following thread does not answer my question since I am not distributing a .app, just a .qtz destined for the user's /Library/iTunes/iTunes Plug-ins folder:

dust's picture
Re: How to distribute a production .qtz that requires ...

That thread is actually helpful if your wanting to include a plugin in your app bundle, although not necessary for your case. There are a few ways to do this. First I would consult any licensing the plugins may have in regards to distribution and gather up any files that you need to include with the plugin if any. Once that is compete you would more than likely want to make a disc image to encapsulate all the files in. I'm not sure if you have downloaded any of the v002 plugs but vade does this drag n drop to an alias folder type of thing inside his disk image. So you could have instructions to drag n drop the plugs and qtz file the correct folders from the disc image.

Another way could be to make an apple script or something similar to double click and have the computer install for you. This is fairly trivial if your using a disc image because you will know the path of the files to install. Meaning if you just made a zip file the user could download it to any folder making it hard to know where the file depedcies are you want to move.

The way I do it when using qtz for my homework is using a package maker located in your dev apps utilities folder. I do it this way so all the user has to do is open the disc image and double click the installer. By creating a package things are tidy you can present the user with any kind of licensing agreement you want etc.. plus the user has to agree and put in there password which is required to install something in system folder. You would more than likely want the plugs to go to users home library but the qtz file to go to system repository.

It is fairly trivial to create package with the utilitity. You will still need to use the terminal and write some bash script I think it's called. Follow apples documentation and or do a tutorial plus test and make sure it is working on a clean system and or user.

It is a bit tricky but basically you need to make a root folder then make the hierarchy structure of the folders you want to install to. Place the files you want to install in those folders with the correct permissions. Remember this is one of the most important steps setting file permissions. I think you just need to do a chmod 775.

You may also want to wipe out the files that your system tags your files with so that they will be fresh when someone else installs them. Next step is to add them to your package manager as well as your install script. Just remember you be installing from /volume or disc image. In the end you should have a one click installer inside a disc image with a hidden package. It doesn't matter if you hide the package but for tidy sake you should hide it with the terminal because if someone copies the package from the disc image the installer breaks so it's best to hide it.

All this will make your distribution look professional. Just remember to consult licenses if your trying to commercially distribute your files. Also if your wanting to distribute this on the app store that wouldn't be possible one because kineme uses private apple methods, two because you can not write to the system folder and three because you can not use the packager manager distributing for Mac app store.

You could always just zip up a folder and include text file saying this is my awesome screens saver place these files here and these files there to make this work. Like I said I make a package so people can not screw things up. I have had in the past done some homework and have teachers not be able to run because of file dependicies so even though I'm the only student that makes installer packages I don't have that I couldn't run your file from the terminal problems anymore.

nonstopdj's picture
Re: How to distribute a production .qtz that requires ...

UAUUU Dust, thank you for your information and the effort to give a full reply! I'm going to follow-up and make some tests, and will report back soon. Just great!

nonstopdj's picture
Re: How to distribute a production .qtz that requires ...

I find the zip option suitable for this, thank you. Its all working fine and tested it on another machine OK :-)