File README.SUSE of Package wxWidgets.import4971

wxWidgets in SUSE

There are six possible wxWidgets variants that can be built from single
source spec file.

The STL + Unicode is the most modern variant of wxWidgets. But there are
still applications that don't compile correctly with this model, so
wxWidgets provide way to compile these applications against deprecated
versions of libraries.

Because STL and wx container versions have the same soname but they are
binary incompatible, variant libraries are installed to dedicated
directories. Applications then need to use RPATH during the compile time
(wx-config does this automatically) or LD_LIBRARY_PATH in runtime
(applications compiled against third party wxWidgets packages need
proper variant of -compat-lib-config package and packages need also
-compat-lib packages).

To make dependencies correct, please use %wx_requires in the the
preamble of your spec file:

%define _use_internal_dependency_generator 0
%define __find_requires %wx_requires

These lines must be placed below any BuildRoot preamble line.

If you compile wxWidgets variant-specific libraries or wxWidgets
modules, you also need to use:

%define __find_provides %wx_provides

If you don't do it, rpm would not be able to identify library variant
package your package is linked with.

There may be more than one version of wxWidgets. Some of them may be
discriminated by the minor version number appended to the name with "."
replaced with "_".

Here is the wxWidgets variant list:

STL + Unicode (recommended)
devel package name:    wxWidgets-devel / wxWidgets[-{mi_nor}]-devel
libdir:                wx-{minor}-stl
library package names: lib...u...-stl
library names:*

Old wx containers + Unicode (deprecated)
wxWidgets originally used dedicated wx containers class. Now it allows
to be compiled with standard STL classes.  However some applications
were not written in respect to this compile time option and won't
compile. This is reason why we still may need wx containers
compatibility version. This version also contains wxWidgets-2.6.x
compatibility support.
devel package name:    wxWidgets[-{mi_nor}]-wxcontainer-devel
libdir:                wx-{minor}-wxcontainer
library package names: lib...u...-wxcontainer
library names:*

Old wx containers + ANSI (strongly deprecated)
wxWidgets allows to be compiled in unicode mode. This is needed for some
controls to work correctly with unicode locales. However some
applications were not written in respect to this compile time option and
won't compile due to incorrect wxString manipulation. This is reason why
we still may need ANSI version. ANSI version uses wx containers, as STL
was introduced much later than Unicode.
devel package name:    wxWidgets[-{mi_nor}]-ansi-devel
libdir:                wx-{minor}-wxcontainer
library package names: lib......-wxcontainer
library names:*

Each variant can enable or disable debugging. Debug versions of
libraries contain lots of asserts that help in debugging of poorly
written applications.

Please pick correct devel version if you want to compile your
application with the deprecated variant of wxWidgets.

Passing parameter --unicode=[yes|no] to wx-config to select wanted
wxWidgets variant may work as well, as long as all needed shared
libraries are installed. Note that you cannot mix packages using
different libdir.