Bug#912423: codelite: fails to start: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

2018-11-02 Thread James Cowgill
Control: reassign -1 libwxsqlite3-3.0-0 3.4.1~dfsg-2
Control: tags -1 - confirmed
Control: retitle -1 libwxsqlite3-3.0-0: switch to gtk3 breaks the ABI
Control: affects -1 src:codelite src:maitreya

Hi,

On 31/10/2018 13:15, James Cowgill wrote:
> Control: severity -1 grave
> Control: tags -1 confirmed
> Control: retitle -1 codelite: fails to start: GTK+ 2.x symbols detected. 
> Using GTK+ 2.x and GTK+ 3 in the same process is not supported
> 
> Hi,
> 
> On 31/10/2018 11:50, Larus wrote:
>> Package: codelite
>> Version: 10.0+dfsg-3
>> Severity: important
>>
>> Dear Maintainer,
>> when starting codelite the process shuts down directly when starting.
>> Reason:
>> (codelite:1081): Gtk-ERROR **: 12:48:04.992: GTK+ 2.x symbols detected. 
>> Using GTK+ 2.x and GTK+ 3 in the same process is not supported
>> Sadly I haven't been able to resolve this.
> 
> Indeed I cannot start codelite in unstable either. As well as the above,
> I also get a lot of other errors when trying to run it (below).

This was caused by wxsqlite3 switching to GTK+3. This comes into
conflict with codelite which is built against GTK+2. As the error above
states, you cannot load the GTK+2 and GTK+3 libraries into the same process.

This change is pretty much guaranteed to break all reverse dependencies
of wxsqlite3 (because any existing rdep must have been compiled against
GTK+2 to function). I think it makes most sense to handle this like a
normal package transition and either rename the package, or add extra
packages (like wxwidgets3.0 did). If you don't do that, you'll need to
add a Breaks for all your rdeps (but this won't help if any user
programs outside Debian link against wxsqlite).

In theory, codelite does support building against GTK+3, but I haven't
tried it. The other rdep is maitreya which doesn't link against any GTK+
version directly, so in theory changing the build dependencies to the
GTK+3 versions should "Just Work" :)  This means you can probably get
away with a rename instead of adding extra packages.

It's unfortunate this took a month to discover. I guess there's not many
people using these packages :/

James



signature.asc
Description: OpenPGP digital signature


Bug#912423: codelite: fails to start: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

2018-10-31 Thread James Cowgill
Control: severity -1 grave
Control: tags -1 confirmed
Control: retitle -1 codelite: fails to start: GTK+ 2.x symbols detected. Using 
GTK+ 2.x and GTK+ 3 in the same process is not supported

Hi,

On 31/10/2018 11:50, Larus wrote:
> Package: codelite
> Version: 10.0+dfsg-3
> Severity: important
> 
> Dear Maintainer,
> when starting codelite the process shuts down directly when starting.
> Reason:
> (codelite:1081): Gtk-ERROR **: 12:48:04.992: GTK+ 2.x symbols detected. Using 
> GTK+ 2.x and GTK+ 3 in the same process is not supported
> Sadly I haven't been able to resolve this.

Indeed I cannot start codelite in unstable either. As well as the above,
I also get a lot of other errors when trying to run it (below).

Unfortunately I don't have a lot of time to maintain codelite anymore
(see the open RFA bug), so any help from anyone in debugging this would
be appreciated. From the log, it's going to be something related to
wxWidgets. Maybe trying some older wxWidgets versions might help??

Thanks for reporting!
James

Log:
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxCommandEvent" already in RTTI table - have you 
used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxNotifyEvent" already in RTTI table - have you 
used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxScrollEvent" already in RTTI table - have you 
used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxScrollWinEvent" already in RTTI table - have you 
used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxMouseEvent" already in RTTI table - have you 
used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxKeyEvent" already in RTTI table - have you used 
IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxSizeEvent" already in RTTI table - have you used 
IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxPaintEvent" already in RTTI table - have you 
used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxNcPaintEvent" already in RTTI table - have you 
used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxEraseEvent" already in RTTI table - have you 
used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxMoveEvent" already in RTTI table - have you used 
IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxFocusEvent" already in RTTI table - have you 
used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxChildFocusEvent" already in RTTI table - have 
you used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file 
twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxCloseEvent" already in RTTI table - have you 
used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxShowEvent" already in RTTI table - have you used 
IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxMaximizeEvent" already in RTTI table - have you 
used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
../src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" 
failed in Register(): Class "wxIconizeEvent" already in RTTI table - have you 
used