• Re: Proposed MBF: wxwidgets3.2 transition

    From Mattia Rizzolo@21:1/5 to Scott Talbert on Tue Sep 13 19:40:01 2022
    On Mon, Sep 12, 2022 at 10:32:23PM -0400, Scott Talbert wrote:
    wxWidgets 3.2 (a new API/ABI stable release) has been released a few months ago and is now packaged in unstable as wxwidgets3.2. Upstream has stopped supporting wxWidgets 3.0, so the Debian wx team would like to migrate all wx package users to wxwidgets3.2 for bullseye, with the plan to remove wxwidgets3.0 before release.

    For most packages, the transition should be as simple as changing Build-Depends from libwxgtk3.0-gtk3-dev to libwxgtk3.2-dev. Some packages may require small patches; I'm happy to help with those (and I have some already from working on this transition in Fedora already).

    Question from somebody who doesn't know wxWidgets: if the update from
    one release to the other is so simple (at least, you make it sound very
    simple, and #1019416 has no blocking bugs, so I reckon everything
    works?) then why is this not packaged like pretty much any other library
    with an unversionde source package and an unversioned -dev binary
    package?

    --
    regards,
    Mattia Rizzolo

    GPG Key: 66AE 2B4A FCCF 3F52 DA18 4D18 4B04 3FCD B944 4540 .''`.
    More about me: https://mapreri.org : :' : Launchpad user: https://launchpad.net/~mapreri `. `'`
    Debian QA page: https://qa.debian.org/developer.php?login=mattia `-

    -----BEGIN PGP SIGNATURE-----

    iQIzBAEBCgAdFiEEi3hoeGwz5cZMTQpICBa54Yx2K60FAmMgv28ACgkQCBa54Yx2 K628+xAAvJYd8Y9Eo9UdCNL07gqJJ6CRlpeAw3QhdFFCwvLBYruYEJG2KMfQ1RyL tKdFEAvrwy5Lw8legBDJY3YBO3hrEQsndsx9B04IEDbDjZ0+dLT65zWmhymoyiBK 8ffJiSVQU6dxZ6H4u74eoKu6M2IOYEIM6Rr1t3e7fq+LUgLvsh8Lg0oLuxembE2F YpdTqkCtbXNHpjZDoZF21XIBnU7gDpABXwojlgZKL3oBUL9sDINHNhMzcdjiZW7D cdKQY11HrqmdwAzB9hSKQDdgJxo6JZAJhP9g4XjXV05jAe7Tj8lY4lzvhx6TftAd SHnBOIPD4Up75cDqIEjLXYboncLtGKVC9w/MfXmRraf9nxR3prrpiYxylm4iNSfj p04QKPFMJ+i5wF/NjxWIvvejNb3c9DyZcOgaV5HRbcj0x+OUc3T4ZiHR9JJD0ELi 19nK6zBhKR/qAz/dS96DmkbL2fHi/++iiEbvWePG4qbEB6n7zZ2FyC7AVTPA1njG sdkeyuzMBakrWshG6eR148zymlbcOxwIEqNC8ALt8y2o3l/Xdco
  • From Scott Talbert@21:1/5 to Mattia Rizzolo on Tue Sep 13 20:00:01 2022
    On Tue, 13 Sep 2022, Mattia Rizzolo wrote:

    On Mon, Sep 12, 2022 at 10:32:23PM -0400, Scott Talbert wrote:
    wxWidgets 3.2 (a new API/ABI stable release) has been released a few months >> ago and is now packaged in unstable as wxwidgets3.2. Upstream has stopped >> supporting wxWidgets 3.0, so the Debian wx team would like to migrate all wx >> package users to wxwidgets3.2 for bullseye, with the plan to remove
    wxwidgets3.0 before release.

    For most packages, the transition should be as simple as changing
    Build-Depends from libwxgtk3.0-gtk3-dev to libwxgtk3.2-dev. Some packages >> may require small patches; I'm happy to help with those (and I have some
    already from working on this transition in Fedora already).

    Question from somebody who doesn't know wxWidgets: if the update from
    one release to the other is so simple (at least, you make it sound very simple, and #1019416 has no blocking bugs, so I reckon everything
    works?) then why is this not packaged like pretty much any other library
    with an unversionde source package and an unversioned -dev binary
    package?

    Major wxWidgets releases are not API compatible, so there will be packages
    that will require changes (although there are not many
    backwards-incompatible API changes between 3.0 and 3.2). I would think of
    it more akin to GTK-2 vs GTK-3, although there are not as many API
    changes. Historically, there have been larger API changes between
    releases (e.g., 2.8 to 3.0).

    I suppose it would be technically possible to do it with a single -dev
    package, but that would lead to potentially extended breakages of unstable while the packages that require changes get updated.

    Scott

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon McVittie@21:1/5 to Scott Talbert on Tue Sep 13 21:00:01 2022
    On Tue, 13 Sep 2022 at 13:52:11 -0400, Scott Talbert wrote:
    Major wxWidgets releases are not API compatible, so there will be packages that will require changes (although there are not many
    backwards-incompatible API changes between 3.0 and 3.2). I would think of
    it more akin to GTK-2 vs GTK-3, although there are not as many API changes. Historically, there have been larger API changes between releases (e.g., 2.8 to 3.0).

    I suppose it would be technically possible to do it with a single -dev package, but that would lead to potentially extended breakages of unstable while the packages that require changes get updated.

    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)?
    If the former, then we'd normally expect to see a single -dev package like libpng-dev and libssl-dev; if the latter, then a -dev package per major
    version (whatever "major" might mean in this context), like libgtk-3-dev
    and libgtk-4-dev, preferably co-installable on the same system.

    wxWidgets doesn't seem to have a .pc file at all (?) and the 3.0 and
    3.2 versions seem to share wx-config(1) and wxwin.m4 in wx-common (?),
    so I'm not sure quite how that fits together, and whether it's more like
    the OpenSSL case or the GTK case.

    smcv

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon McVittie@21:1/5 to Simon McVittie on Tue Sep 13 21:20:01 2022
    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.

    smcv

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Talbert@21:1/5 to Simon McVittie on Tue Sep 13 21:40:01 2022
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From gregor herrmann@21:1/5 to Scott Talbert on Wed Sep 14 20:50:01 2022
    XPost: linux.debian.maint.perl

    On Mon, 12 Sep 2022 22:32:23 -0400, Scott Talbert wrote:

    wxWidgets 3.2 (a new API/ABI stable release) has been released a few months ago and is now packaged in unstable as wxwidgets3.2. …
    For most packages, the transition should be as simple as changing Build-Depends from libwxgtk3.0-gtk3-dev to libwxgtk3.2-dev. …

    Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
    libalien-wxwidgets-perl

    libalien-wxwidgets-perl (.69+dfsg-4 uploaded to experimental.

    Next step: check what libwx-perl [0] says and do a binNMU or sourceful
    upload (it needs to switch from wxperl-gtk-3-0-5-uni-gcc-3-4 to wxperl-gtk-3-2-0-uni-gcc-3-4).

    Reviews of the packaging changes welcome.


    Cheers,
    gregor

    [0] and maybe libwx-scintilla-perl as well

    --
    .''`. https://info.comodo.priv.at -- Debian Developer https://www.debian.org
    : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06
    `. `' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
    `-

    -----BEGIN PGP SIGNATURE-----

    iQKTBAEBCgB9FiEE0eExbpOnYKgQTYX6uzpoAYZJqgYFAmMiIgZfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEQx RTEzMTZFOTNBNzYwQTgxMDREODVGQUJCM0E2ODAxODY0OUFBMDYACgkQuzpoAYZJ qgb2jQ/+OFSPQz/Elc7GN0Sgjw73l5Nd2TYDVJ5rLhuRf0RO1tTgOW8qqY0ANNY4 ISUxWE8uEcWj3pNtJKY/K+Yp1me3+dYVWBOsCpor27WZJKnpRgc7sYTBDCvI1q+B 5nLkx4ts8vHeQl1tZpXuNnt5mPk1KrfrybFWezZrDjaSaNFQ0Y21TSWNRshTlwe3 f4e8BAsQfsYIJ92pePw1dBSroVDSbRdWt2zf66BWbgYiQlQ7NetSa41j0EtaoF5P IpZAI3vxxFKNzKbPZyHcNtCdsasopaiLi71wJW4vLtVAxhXsxza2MX0P5iN+hwqI q8JvfN8Agx0YVclTZU7KNGogTY+PhfMl7IM4wYM9/BcJo2xsNbVf/J8DsKQEWBjF ItpQgeiZqLjY04N3OBJl52yI8U5IgVIzQ1PqVXsSKS0hB/Dbc/p6co9d6d7ibLtN 9SCTN1IUkGdsB4pkkGmR5ewBtcltxxf2n5VDRsh00JTZ8L6VprvJviBkSjCiY0uR
    DPHLFOKy
  • From Scott Talbert@21:1/5 to gregor herrmann on Wed Sep 14 22:30:01 2022
    XPost: linux.debian.maint.perl

    This message is in MIME format. The first part should be readable text,
    while the remaining parts are likely unreadable without MIME-aware tools.

    On Wed, 14 Sep 2022, gregor herrmann wrote:

    On Mon, 12 Sep 2022 22:32:23 -0400, Scott Talbert wrote:

    wxWidgets 3.2 (a new API/ABI stable release) has been released a few months >> ago and is now packaged in unstable as wxwidgets3.2. …
    For most packages, the transition should be as simple as changing
    Build-Depends from libwxgtk3.0-gtk3-dev to libwxgtk3.2-dev. …

    Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
    libalien-wxwidgets-perl

    libalien-wxwidgets-perl (.69+dfsg-4 uploaded to experimental.

    Next step: check what libwx-perl [0] says and do a binNMU or sourceful
    upload (it needs to switch from wxperl-gtk-3-0-5-uni-gcc-3-4 to wxperl-gtk-3-2-0-uni-gcc-3-4).

    Reviews of the packaging changes welcome.

    Thanks! Looks fine, other than a Build-Depends on wx-common isn't
    necessary - libwxgtk3.2-dev will pull that in.

    Scott

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andreas Metzler@21:1/5 to swt@techie.net on Thu Sep 15 15:10:02 2022
    On 2022-09-13 Scott Talbert <swt@techie.net> wrote:
    Hi,

    wxWidgets 3.2 (a new API/ABI stable release) has been released a few months ago and is now packaged in unstable as wxwidgets3.2. Upstream has stopped supporting wxWidgets 3.0, so the Debian wx team would like to migrate all wx package users to wxwidgets3.2 for bullseye, with the plan to remove wxwidgets3.0 before release.

    For most packages, the transition should be as simple as changing Build-Depends from libwxgtk3.0-gtk3-dev to libwxgtk3.2-dev. Some packages may require small patches; I'm happy to help with those (and I have some already from working on this transition in Fedora already).
    [...]

    A successful build is no guarantee for a working packaging though. e.g.
    hugin errs out immediately when built with the newer wxWidgets.

    cu Andreas

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Talbert@21:1/5 to Andreas Metzler on Thu Sep 15 16:00:01 2022
    On Thu, 15 Sep 2022, Andreas Metzler wrote:

    On 2022-09-13 Scott Talbert <swt@techie.net> wrote:
    Hi,

    wxWidgets 3.2 (a new API/ABI stable release) has been released a few months >> ago and is now packaged in unstable as wxwidgets3.2. Upstream has stopped >> supporting wxWidgets 3.0, so the Debian wx team would like to migrate all wx >> package users to wxwidgets3.2 for bullseye, with the plan to remove
    wxwidgets3.0 before release.

    For most packages, the transition should be as simple as changing
    Build-Depends from libwxgtk3.0-gtk3-dev to libwxgtk3.2-dev. Some packages >> may require small patches; I'm happy to help with those (and I have some
    already from working on this transition in Fedora already).
    [...]

    A successful build is no guarantee for a working packaging though. e.g.
    hugin errs out immediately when built with the newer wxWidgets.

    That is certainly true - and probably another good reason we don't use the single-dev-package approach.

    Do you want help with those errors?

    Scott

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From gregor herrmann@21:1/5 to Scott Talbert on Thu Sep 15 17:40:02 2022
    XPost: linux.debian.maint.perl

    On Wed, 14 Sep 2022 16:00:32 -0400, Scott Talbert wrote:

    libalien-wxwidgets-perl (.69+dfsg-4 uploaded to experimental.

    Next step: check what libwx-perl [0] says and do a binNMU or sourceful upload (it needs to switch from wxperl-gtk-3-0-5-uni-gcc-3-4 to wxperl-gtk-3-2-0-uni-gcc-3-4).

    Reviews of the packaging changes welcome.

    Thanks! Looks fine, other than a Build-Depends on wx-common isn't necessary - libwxgtk3.2-dev will pull that in.

    Thanks for the review and the email!

    I noticed that wx-common gets pulled in, I just thought that it's
    "cleaner" to have an explicit build dependency on wx-common as we are
    using wx-config.

    But if this is an internal implementation detail of the wx* packages
    and we can be sure that we always get wx-config when we install
    libwxgtk*-dev I'm happy to remove the build dependency.

    Cheers,
    gregor


    --
    .''`. https://info.comodo.priv.at -- Debian Developer https://www.debian.org
    : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06
    `. `' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
    `-

    -----BEGIN PGP SIGNATURE-----

    iQKTBAEBCgB9FiEE0eExbpOnYKgQTYX6uzpoAYZJqgYFAmMjRbJfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEQx RTEzMTZFOTNBNzYwQTgxMDREODVGQUJCM0E2ODAxODY0OUFBMDYACgkQuzpoAYZJ qgYHNRAAs1YMsS81EgBQLbpk97k1cqc9vhOgHAn/zzKZymvfSzXd2ZZBGifpBfzE t0QL610JoDbsTGWqI/YVyF3II2KTojQD+KxnGyIryqaz5hs3p1Gj1Jv0goHLcx3v xuiseJausMogMcQKLzpJjZ8eOgMPub35V1xs4YMBuMrzceUeAKucLlQvd3wdiYJs Hr7M+N2izTO1MEGQqix5MZcMDfVEXJLZRZAuwJax4CWvGMZeK2tTABkHxs01Esut a1qWw2EOuA1H9rkpgPXo7Ln6E1CW097jSiQavMstZrgNSg49vV/lYC5IA93r3l6Q vFtTYzgRmSjLAVbL+LDtVBYsGHP77D19MvS3EtG9JcoilCad+sS/FEevwE7kN6ic t5242s+4b26Lgr7Wn0UZORMGpHqJhUdvFmHkR6kuCovILXf5Yixj0aTGYKMtLXw+ RvM8kONMif+Q5i5IYR3D+y5/lvgYidE9ViLLhICE5U7NNOzCpTzuf1SePKmSDzQB D56n0To3oPnMOJYl3EacL3H3N9dVbjFCS6QCY2MxdByDPtRuumFbnaFYy/zg8HcT Qn/hhnwoKIy6UOSuleowMA2J3QWPmiHId8514rrBrnICcpFikIkQGoqpmf95R6Ta jSM4uOAAfha8+oLqjIeAh/JFOZRCl7KfV/axBu1tYmf6Tg8GMOo=
    =9InT
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andreas Metzler@21:1/5 to swt@techie.net on Sun Sep 18 15:20:01 2022
    On 2022-09-15 Scott Talbert <swt@techie.net> wrote:
    On Thu, 15 Sep 2022, Andreas Metzler wrote:
    [...]
    A successful build is no guarantee for a working packaging though. e.g. hugin errs out immediately when built with the newer wxWidgets.

    That is certainly true - and probably another good reason we don't use the single-dev-package approach.

    Do you want help with those errors?

    Hello Scott,

    thanks for the offer, upstream has been uite helpful. However something
    else came up:
    | After starting up, klicking on [Preview
    | Panorama (OpenGL)] yields an error (and nothing else:
    |
    | ----------
    | Error initializing GLEW
    | Fast preview window cannot be opened.
    | ----------
    | with this message on the console:
    | ERROR: 14:13:49.978869 (./src/hugin1/hugin/GLViewer.cpp:133) SetUpContext(): Error initialising GLEW: Unknown error.
    |
    | Klicking on [Preview Panorama (OpenGL)] again succeeds.

    Upstream pointed me to hugin documentation which says:
    Note: On Linux wxWidgets 3.1.5 and later is by default compiled with EGL support for the wxGLCanvas class. In this case you need to activate EGL
    support explicitly also in GLEW, otherwise there are crashes when
    intializing the wxGLCanvas.

    Afaict from looking at Debian's glew 2.2.0 it is indeed built without
    EGL support (debian/rules does not use SYSTEM=...-egl).

    cu Andreas
    --
    `What a good friend you are to him, Dr. Maturin. His other friends are
    so grateful to you.'
    `I sew his ears on from time to time, sure'

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)