File README.SUSE of Package wxWidgets-2_9

wxWidgets in SUSE
=================

There are many 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 (wx container and ANSI).

Additionally, some compatibility flags also change ABI, so applications
compiled against library with compatibility support enabled must be used
with libraries with compatibility support enabled, not depending whether
they use compatibility calls or not.

Because STL, wx container and compatibility variant 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:


default = stl:  API compatible with modern applications, ABI compatible with wxGTK in openSUSE == 11.1

wxcontainer:    API compatible with older applications, ABI compatible with wxGTK in openSUSE <= 11.3 except 11.1

wxcontainer24c: API compatible with modern applications since since version 2.4, ABI compatible with Fedora

ansi:           API compatible with historical applications without Unicode support

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

This API is compatible with modern applications.


wxcontainer: 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:         lib...u....so.*

This API is compatible with older applications.


wxcontainer24c: Old wx containers + Unicode + 2.4 compatibility (deprecated)
==============  -----------------------------------------------
This is a variant above using wx containers, which has 2.4 compatibility
enabled. Use with and only with applications that were linked against
libraries with 2.4 compatibility enabled (e. g. Fedora packages).
devel package name:    wxWidgets[-{mi_nor}]-wxcontainer24c-devel
libdir:                wx-{minor}-wxcontainer24c
library package names: lib...u...-wxcontainer24c
library names:         lib...u....so.*

This API is compatible with old applications since since version 2.4.


ansi: 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:         lib.......so.*

This API is compatible with historical applications expecting 8-bit
characters.


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.
openSUSE Build Service is sponsored by