Re: Proposed MBF: wxwidgets3.2 transition
On Tue, 13 Sep 2022 at 19:55:01 +0100, 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.