That is the question!
Okay, all silliness aside, I really am forced to make a difficult decision here. My application is written in C++ and allows other scripts to invoke methods via XML-RPC. One of these scripts is a Nautilus extension written in Python. The extension is packaged with the rest of the application and copied to the appropriate place when installed (
Now the problem is that the Nautilus extension requires the python-nautilus package to be installed to be operational. So therefore I have three options:
python-nautiluspackage a dependency. This option will ensure that anyone who installs my package will be able to use the Nautilus extension. However, this option will not be attractive to XFCE or KDE users - a ton of
python-nautilus's dependencies will be installed on their machines and take up a lot of space - even if they never use Nautilus.
python-nautiluspackage in the
recommends:field. This option provides the end-user with a way to avoid installing the
python-nautiluspackage (by providing the
apt-get). However, this won't work when the user installs the package in the Software Center. (I always get mixed up as to which of those two fields are installed by default.)
Prompt the user when the application is installed or first launched. This option is more complicated than the others but offers the best compromise between making it easy for the user to install
python-nautilus(without going into a technical explanation) and not installing it when the user doesn't need it (or want it). I guess the best way to implement this is a simple prompt that invokes
apt-getif the user would like the package installed.
Don't install the package at all. This option ensures that nobody has
python-nautilusinstalled on their machine unless they want it. However, this also means that my Nautilus extension will simply not run on the end-user's machine unless they manually install the package.
Which of these options seems the best choice? Have I missed any pros and cons for each of the options?