[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Proposed MBF: wxwidgets3.2 transition



On Tue, 13 Sep 2022, Simon McVittie wrote:

For most libraries, the deciding factor would be: are library users
expected to find the library via a single pkg-config file that cannot
coexist with the other version (like libpng's libpng.pc and OpenSSL's
libssl.pc/libcrypto.pc/openssl.pc), or do they ship versioned pkg-config
files that can coexist (like GTK 2/3/4, Qt 4/5/6 and SDL 1/2)?

A more technology-neutral way to ask this question is: when the library
user names the library that they want, do they do so with a
major-version-qualified name, or with an unversioned name?

For libraries like GTK and SDL, the answer is that they normally use a
major-version-qualified name: Autotools PKG_CHECK_MODULES([GTK], [gtk+-3.0]),
Meson dependency('gtk4'), CMake find_package(SDL2 REQUIRED) or similar.
Because names are interfaces and interfaces are names, we package these
libraries with correspondingly versioned names: libgtk-3-dev, libgtk-4-dev,
libsdl2-dev and so on.

For libraries like libpng and OpenSSL, the answer is that they normally
use a non-versioned name: Autotools PKG_CHECK_MODULES([openssl]) or Meson
dependency('libpng') or similar. We package these libraries with unversioned
names: libssl-dev, libpng-dev and so on.

I think following that principle would make me lean towards a -dev package
without the major version, because library users seem to ask for it with
dependency('wxwidgets', modules: ['core']) or WX_CONFIG_CHECK([3.0])
or $(wx-config --cflags --libs core) or something like that - where the
3.0 is a minimum version, rather than a major version to select.

The answer is somewhere in between. wxWidgets major releases are designed to coexist with each other. The library user can select a specific version, by using the version-specific wx-config (e.g., wx-config-3.0 or wx-config-3.2), or using the generic wx-config with wx-config --version=x.y.

In any event, I don't plan to change the packaging design at this point (it's been this way forever, AFAIK). Maybe when wx 3.4 comes out in ~10 years we can reconsider. :)

Scott


Reply to: