[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Package with complex dependencies -- where to start, where to end?



Hi Dave,

On Tue, Dec 21, 2010 at 1:52 PM, Dave Mateer <dave_mateer@ntm.org> wrote:
>  - The application will have very limited appeal -- it is implementing a specific workflow for our organization, whose users are spread out across the world. Most of the documentation I am reading assumes you are putting something into a standard Debian repository. Is that right, or should I set up some kind of local repository on our web server?

Setting up your own repository is a good thing because you'll be able
to simply tell your users to update to the current available version
if needed. Most (if not all) steps you'll go through when packaging
this application will be the same regardless of how you're going to
make the packages available.

>  - I have a dependency on Qt version 4.7.0+ (libqt4-core, libqt4-gui, libgt4-xml, etc.). The versions I need are in the experimental distribution. Making it work on an earlier version is not an option. There is at least one bug fix that, for performance reasons, will render our application useless pre-4.7. And we are taking advantage of some new APIs in 4.7 as well. How do I include this dependency? Is there something that says, "it's OK to use the experimental distribution for this one?" Or do I build it and package it myself, perhaps with a prefixed name (myapp-libqt4-core?) Also, we are building Qt from source with some configuration options (such as -plugin-sql-sqlite). Are those guaranteed to be in the "official" library once it becomes stable? How can one tell? Or do I just drop my own version of the binary library which I know will work into some private folder and be done with it? If so, what folder would that be? /usr/???/myapp, /opt/???/myapp

Once Squeeze is out and the freeze is over (which will hopefully
happen soon), some (or maybe most) stable software in experimental
will be uploaded to unstable. Chances are that in a few weeks or
months Qt 4.7 will hit unstable.

If you need an specific version of Qt compiled with certain
parameters, you can either include a copy of Qt in your source and
build it together with your application, or created a custom Qt
package (with a custom prefix or version) and specify a dependency on
that custom package. Since this is not going to the official Debian
repositories, you can relax the restrictions of the Debian Policy.

>  - I also have a dependency on the ICU library, version 4.6. This is not even in the experimental distribution. So, the same questions apply. How to I include this dependency?

Same thing, either create your own package or bundle it with your
application, it's your call since it's a private package.

>  - A high percentage (~50%) of our users will have to install from a CD; they will not have an internet connection at the time of install. It looks like once the packages are set up, I can use APTonCD and then provide instructions on making our CD a valid software source. Is that correct?

It can be even simpler, I think you could just run dpkg -i /path/to/*.deb.

Regards,
Fernando


Reply to: