• [ports] Shouldn't we rebuild all dependant packages whenever a library

    From Robin Haberkorn@21:1/5 to All on Sat Oct 19 22:27:13 2024
    Hello!

    I stumbled across a strange glitch and not for the first time. Did a pkg upgrade, which updated Qt (new minor version). This breaks all Qt apps installed via pkg since they were built against a different minor version
    of Qt, but were not rebuilt and pushed to the repository along with Qt.
    Qt checks the library versions on startup, so you notice this immediately.
    The current behavior (or lack of behavior) however could affect __all__ applications, even those that link only against plain C libraries. It's
    rare, but you can't exclude that some minor library release breaks the API
    - ABI is of course not a problem in C, compared to C++.

    Workaround is to (re)build the corresponding application manually from the ports tree. This can take hours, so IMHO this is a serious issue.
    It is NOT sufficient to reinstall the package in question - it obviously
    didn't change in the repository.

    I would therefore think that every library change should result in a
    rebuild of all dependant packages and automatic bumping of the package version.

    Why is this not done? And where should we file a bug report?

    Best regards,
    Robin

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Levine@21:1/5 to robin.haberkorn@googlemail.com on Sat Oct 19 20:49:10 2024
    It appears that Robin Haberkorn <robin.haberkorn@googlemail.com> said: >applications, even those that link only against plain C libraries. It's
    rare, but you can't exclude that some minor library release breaks the API
    - ABI is of course not a problem in C, compared to C++.

    The difference between a minor and major version is that minor versions have the same interfaces. If the interfaces change, thaat's a major version.

    It sounds like the bug is that a breaking change was shipped as a minor version rather than a major one.

    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Robin Haberkorn@21:1/5 to John Levine on Mon Oct 21 20:06:43 2024
    On Sat, 19 Oct 2024, John Levine wrote:

    The difference between a minor and major version is that minor versions have the same interfaces. If the interfaces change, thaat's a major version.

    That's how it should be, but since the version comes from upstream, you
    can't be sure about it.

    It sounds like the bug is that a breaking change was shipped as a minor version
    rather than a major one.


    I am no longer that sure about it.
    I recompiled my VirtualBox port and it did __not__ resolve the issue.
    Then I did `pkg install --force qt5-style-plugins`.
    That did the job. Obviously the package already was automatically rebuilt,
    but the version was not bumped, so pkg upgrade wouldn't pick it up automatically. If the rebuild of VirtualBox really was necessary - who
    knows. At least force-reinstalling it via pkg wasn't enough.

    There definitely is some kind of bug.

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