• Re: [gentoo-user] Cannot mix incompatible Qt library

    From tea@21:1/5 to Helmut Jarausch on Sun Oct 13 16:50:01 2024
    On Sun, 13 Oct 2024 16:22:16 +0200
    Helmut Jarausch <jarausch@skynet.be> wrote:

    Hi,

    I have somewhat broken my GenToo system.
    (Nearly) all applications based on qt:5 die with

    Cannot mix incompatible Qt library (5.15.13) with this library
    (5.15.14)
    kde-*
    I have re-emerged all packages in dev-qt/ in slot 5, which didn't
    help. I've tried strace but couldn't find the culprit.

    Does anybody know a means to find an old library or plugin which
    causes this problem?

    Many thanks for your help,
    Helmut


    when i had that problem last it was a style plugin[1] that wasn't
    rebuilt automatically. if you have eix installed, you could try
    `eix -I -S qt`, or have a look in the kde-* categories.

    kind regards, tea

    [1] dev-qt/qtstyleplugins if i remember correctly

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jack Ostroff@21:1/5 to Helmut Jarausch on Sun Oct 13 17:10:02 2024
    On 10/13/24 10:22 AM, Helmut Jarausch wrote:
    Hi,

    I have somewhat broken my GenToo system.
    (Nearly) all applications based on qt:5 die with

    Cannot mix incompatible Qt library (5.15.13) with this library (5.15.14)

    I have re-emerged all packages in dev-qt/ in slot 5, which didn't help.
    I've tried strace but couldn't find the culprit.

    Does anybody know a means to find an old library or plugin which causes
    this problem?

    Many thanks for your help,
    Helmut
    What needs rebuilding is not the underlying libraries but the
    applications which call on them.  Try rebuilding one of the applications
    that generates the error and see if it helps.  If it's not the app
    itself then likely targets are packages in kde-frameworks and  kde-plasma.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Helmut Jarausch@21:1/5 to All on Sun Oct 13 16:30:01 2024
    Hi,

    I have somewhat broken my GenToo system.
    (Nearly) all applications based on qt:5 die with

    Cannot mix incompatible Qt library (5.15.13) with this library (5.15.14)

    I have re-emerged all packages in dev-qt/ in slot 5, which didn't help.
    I've tried strace but couldn't find the culprit.

    Does anybody know a means to find an old library or plugin which causes
    this problem?

    Many thanks for your help,
    Helmut

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arthur R.@21:1/5 to Helmut Jarausch on Sun Oct 13 18:20:02 2024
    This is a multi-part message in MIME format.
    On 10/13/24 21:22, Helmut Jarausch wrote:
    Does anybody know a means to find an old library or plugin which causes
    this problem?
    Yes, you can use equery <https://wiki.gentoo.org/wiki/Equery> (located
    in gentoolkit package). Command should look something like this:
    /equery d =dev-qt/qtcore-5.15.13/

    --
    Arthur

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 10/13/24 21:22, Helmut Jarausch
    wrote:<br>
    </div>
    <blockquote type="cite"
    cite="mid:MSHLIOYS.GLXOAF5Z.T6ZMRJFH@FLYG7GCN.YUGQFR3K.IC2C6EAL">Does
    anybody know a means to find an old library or plugin which causes
    <br>
    this problem?
    <br>
    </blockquote>
    Yes, you can use <a href="https://wiki.gentoo.org/wiki/Equery">equery</a>
    (located in gentoolkit package). Command should look something like
    this:<br>
    <i>equery d =dev-qt/qtcore-5.15.13</i><br>
    <pre class="moz-signature" cols="72">--
    Arthur</pre>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Eli Schwartz@21:1/5 to Helmut Jarausch on Mon Oct 14 06:30:02 2024
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------VsnpU8tq7ZdIJKpi6OPAz600
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    On 10/13/24 10:22 AM, Helmut Jarausch wrote:
    Hi,

    I have somewhat broken my GenToo system.
    (Nearly) all applications based on qt:5 die with

    Cannot mix incompatible Qt library (5.15.13) with this library (5.15.14)

    I have re-emerged all packages in dev-qt/ in slot 5, which didn't help.
    I've tried strace but couldn't find the culprit.

    Does anybody know a means to find an old library or plugin which causes
    this problem?

    Many thanks for your help,
    Helmut


    The general issue here is that applications which use Qt can do it via
    one of two methods:

    - link to Qt regularly, and only require a specific major version, i.e.
    all 5.* versions are valid and work fine.

    - link to Qt's private API, which means you must build against a
    specific PV and use that at runtime, and to enforce this, the
    resulting code will perform a check at runtime to see whether you are
    mixing versions, and if you are mixing versions it will error out with
    "Cannot mix incompatible Qt library (5.xx.xx) with this library
    (5.xx.xx)"


    You may recognize the latter error message. :)

    It is explicitly documented in the Gentoo policy for Qt packaging: https://wiki.gentoo.org/wiki/Project:Qt/Policies#Dependencies

    Packages which use private API headers of Qt *must* depend on a binding
    subslot operator to enforce that they are rebuilt every time Qt is
    updated. Packages which do NOT use private API headers should never
    depend on binding subslot operators, as they should not be rebuilt.

    In theory, all packages in ::gentoo should be correctly annotated as
    such. Maybe not all of them actually are...

    You can detect which ones have the issue. They will link to symbols such
    as "XXXXX@Qt_6_PRIVATE_API".

    I have a script which can detect that for existing binaries: https://git.sr.ht/~eschwartz/dotfiles/tree/master/item/bin/pkg-list-linked-libraries

    e.g.

    pkg-list-linked-libraries -s /usr/lib64 Qt_6_PRIVATE_API

    It will report a bunch of results for dev-qt/* packages too, but with a
    bit of filtering you can see what's relevant?


    --
    Eli Schwartz

    --------------VsnpU8tq7ZdIJKpi6OPAz600--

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

    wnsEABYIACMWIQTnFNnmK0TPZHnXm3qEp9ErcA0vVwUCZwydAgUDAAAAAAAKCRCEp9ErcA0vV+cT AP9AYLBq4h65oWV144SJaTgX2vSFaDteqnpY/WW9eqIRdAD8DnCdiY9lof8ajf9ov93zg+ItMgeD lnOuJwaoqDU/uwE=
    =GD2D
    -----END PGP SIGNATURE-----

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