I'd have to figure out the required dependencies for every distribution. I don't want to write a specific package for every possible distribution out there. Providing distribution specific packages is a job for the packaging community, not for me as a developer.
I totally agree with you, offering the source package is a must. But those packages are for more advanced users or package builders. I want to offer a package for the convenient users, who don't care about installing the software a "proper way", who just wants to be able to run the software somehow. As far as I can see, a .spec file will always be for a specific distribution because of the dependencies. And then again, not every distribution is using rpm or deb...The best way is to provide source code of your application. This is compatible with every linux distro. You can even provide a .spec file for your package that will build the package by calling qmake, make and make install on every possible rpm-based distro.
That's why sticking to LSB is the best choice if you want to distribute your application in a binary form.
You can't satisfy them all. You can provide an installer script that will call qmake (or cmake), make and optionally make install and will build the application in the background. If your application only depends on Qt, this shouldn't be a problem (even if you want to distribute a .spec file). But in general unless you build your application statically, there is a chance your application won't work on some of the distros. And even that won't make your application run on different architectures. Sometimes people tend to forget the world is something more than just x86.I totally agree with you, offering the source package is a must. But those packages are for more advanced users or package builders. I want to offer a package for the convenient users, who don't care about installing the software a "proper way", who just wants to be able to run the software somehow. As far as I can see, a .spec file will always be for a specific distribution because of the dependencies. And then again, not every distribution is using rpm or deb...
Hello,
I asked (and still think about it) myself the same questions.
You are right and I already posted about it on this forum, the best Linux distro to build an app is CentOS / RHEL because this is the only one that is maintained for 7 years so you can run a security updated OS with old libs.
So, you can be sure that all the other Linux distros maintained will use fresher libs.
I used until recently CentOS 3 but with Qt 4.5, it began to be a pain to compile Qt so I switched to CentOS 4. CentOS 3 will expire next year so it was not so important to stick with it.
Next, how to distribute your app. If you don't use exotic libs, I think all dependencies will be met if someone install a popular Linux distro in a standard way (without stream-lined it too much).
So the bash wrapper script with LD_LIBRARY_PATH could be the best (if you need to link dynamically, it's required if you want to use the LGPL release of Qt) and it will be simple for users to untar and unzip it and use it without the need to be root to install the software.
But in case of explicit needs when you really need dependencies or doing some stuffs on the system when installing, I have wrapped binary and Qt libs (all build on the CentOS 4) in a deb file on the latest Debian (it run fine both on Debian & Ubuntu) and on a RPM that seems to be generic enough to run both on Red Hat / Mandriva & SuSE systems
Bookmarks