Sign in to follow this  
deavik

How are Binary packages distributed + wxWidgets Licence

Recommended Posts

deavik    570
Hi, I just moved to Linux and am trying to make a cross-platform wxWidgets app. Now, the first thing is that can someone please take the time to explain to me (in layman terms) what the conditions of their licence is:
Quote:
The wxWindows Licence is essentially the L-GPL (Library General Public Licence), with an exception stating that derived works in binary form may be distributed on the user's own terms. This is a solution that satisfies those who wish to produce GPL'ed software using wxWidgets, and also those producing proprietary software.
Under this I plan to make an open-source application, but also have a binary distribution for those who want to download and use. 1. What do I have to do either way, and 2. what do I gain or lose by linking statically or dynamically to wxWidgets? 3. The other thing is, how are dynamically linked binaries genrally distributed on Linux? Copy the binaries and helper files to one directory and put the .so files in /usr/lib? Thanks,

Share this post


Link to post
Share on other sites
Bregma    9214
First, understand Linux is a OS kernel, not an OS. Question about how to distribute software on Linux are not answerable. You need to ask how to distribute binaries for a particular Linux-based OS, known colloquially as a 'distribution.'

That said, the most popular way of distributing a binary for a Linux distro is called a 'package.' The most popular package mechs are RPM (used by Red Hat Linus and its progeny) and DEB (used by Debian Linux and its progeny). There is also source distribution.

I can't tell you much about RPMs, but DEB files consist of just your files plus a list of dependencies that need to be installed first. You wouldn't, for example, install any wxwidgets libraries, you would specify that a particular version of those libraries ust be installed first, and the installer tools will take care of making sure the dependencies are fulfilled before your stuff gets installed.

As to where the actual files get installed, eash distro is different but there are standards followed by most of the big ones (google "fhs").

As to the licensing issue, the wxwidgets guys seem to be saying you can use the library any way you want for whatever you want under whatever license you desire, but if you modify the wxwidgets library itself you have to distribute it under the LGPL (ie, make binaries and source available to whoever wants it, without additional restriction).

Share this post


Link to post
Share on other sites
deavik    570
Thanks, that was a very complete answer. But I still have a couple of questions

Quote:
Original post by Bregma
First, understand Linux is a OS kernel, not an OS. Question about how to distribute software on Linux are not answerable. You need to ask how to distribute binaries for a particular Linux-based OS, known colloquially as a 'distribution.'

You're right, now that I think of it, most free software list their software as packages, but there are exceptions. Firefox lets you download it as a tar.gz (which is a binary distribution). That was actually the kind of thing I was first thinking about.

Quote:
You wouldn't, for example, install any wxwidgets libraries, you would specify that a particular version of those libraries ust be installed first, and the installer tools will take care of making sure the dependencies are fulfilled before your stuff gets installed.

The problem with that is that the wxWidgets library files need to be compiled with the same settings as that used by the app (eg. unicode, release version, OpenGL support, etc). How do I ensure that? Things should be easier for the source distribution, do I provide my own Makefiles for both my program and the wx library?

Quote:
As to where the actual files get installed, eash distro is different but there are standards followed by most of the big ones (google "fhs").

That was very informative, thanks!

Quote:
As to the licensing issue, the wxwidgets guys seem to be saying you can use the library any way you want for whatever you want under whatever license you desire, but if you modify the wxwidgets library itself you have to distribute it under the LGPL (ie, make binaries and source available to whoever wants it, without additional restriction).

That's all it is?! That's not strict at all! [smile]

Share this post


Link to post
Share on other sites
Sander    1332
Firefox uses a *very* nonstandard way of installing software. There are two reasons they can get away with this:

- They provide all their own components. E.g. XUL instead of your favourite widget manager
- Everybody is repackaging it. Hardly anyone uses the Mozilla tar.gz files. The majority use the forfox package that was compiled for their own distribution.

Firefox is very popular, so there are many volunteers maintaining distro specific packages for it. Your application will not be so popular (well, some day maybe, but not now) so you should provide these packages yourself.

As for the WxWidget compiling settings, does it really matter? Why won't a debug version work? If OpenGL support is not compiled, will WxWidget emulate (slow, but still works). Maybe your app won't work the best/fastest without certain WxWidget compile flags, but as long as it runs at all it doesn't matter. Just make a note in the readme that these flags are preferred.

Also, check the major distro's for wgat WxWidget packages are supplied. Maybe they have multiple versions, e.g. wxwidget and wxwidget-opengl. In that case, use wxwidget-opengl as a dependency. PHP and Apache are two other packages that use a similar setup: multiple packages for different compiler settings.

If you can't make it work, you can always consider providing a wxwidget package yourself alongside your application.

Share this post


Link to post
Share on other sites
Sign in to follow this