Creating software for Linux with Qt: distros, desktop environments and other decisions

761 views Asked by At

I want to start working on a personal project and I want to make it cross-platform. All of my Linux work was done for business customers, so the target distro was specified in advance, but this is different.

The project will be open source and use Qt. Here's what I'm wondering:

  1. Is it enough if I do my dev + testing on one distro or should I test on multiple ones? In my experience, if it's not tested it doesn't work, but on the other hand I can't afford to build & test for every distro out there, especially since it will be a hobby project.

  2. Let's say that I pick distro X that uses KDE. How difficult would you say it is for someone that uses distro Y with Gnome to use my program?

  3. Will people that use Gnome use my Qt program or be put off by the fact that it's written with Qt? Let's assume that they find it useful. How good is the Qt-Gnome integration?

  4. Do I have to ship the binaries too? What is the current trend nowadays: source or source + bin?

I would appreciate personal examples about working with Qt open source projects on Linux. Thanks.

2

There are 2 answers

0
Tomislav Nakic-Alfirevic On
  1. I would test on a a few different distributions using different packaging systems (apt, rpm etc.) Anything else should be on a case-by-case basis.

  2. An example of a Qt application is the umbrello UML modeling tool. All a ubuntu user has to do is sudo apt-get install umbrello. Even if you don't have a package ready, a similar command could set up Qt so that your binary can be executed.

  3. My impression is that people tend to stick to one widget toolkit (GTK for gnome and Qt for KDE), but on the other hand, I would be surprised to see that someone isn't using a good application he/she needs just because of the toolkit.

  4. Separate packages for source and binaries. Binaries go with user docs, source with dev docs.

0
Symbiosoft On
  1. I think you should test it on different distro. May be stick with the most popular : Ubuntu, Fedora, OpenSuse, Slackware, CentOS/RHE. You can use VirtualBox or VMWare player and freely available virtual machines to test other distros (instead of having 5+ separate partitions). Another alternative, is to provide only the binaries for the distro you are developping on and source code + instructions (how-to build) for the other distros.

  2. If you use some package manager (RPM, APT-GET) to distribute your binaries, it will install missing packages if they are not already installed (ex: Qt4 on a distro using Gnome by default). Have a look at CheckInstall which can be used to produce packages for Debian, RedHat and Slackware with little effort.

  3. I don't think it is a show stopper. If your application is robust, well designed and useful, desktop look-and-feel integration should not be a problem... You could also use QtGtKStyle to make sure your application look right on Gnome.

  4. Most Open Source project offer binaries for the most popular distros and also the source code for the other distros (so they can build the application by hand).