Bug 182177 - scim-qtimm NEEDSWORK for libstdc++so7 compat
Summary: scim-qtimm NEEDSWORK for libstdc++so7 compat
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: scim-qtimm
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jens Petersen
QA Contact:
URL:
Whiteboard:
: 181297 (view as bug list)
Depends On:
Blocks: FC6Target SCIM 171491
TreeView+ depends on / blocked
 
Reported: 2006-02-20 21:36 UTC by Warren Togami
Modified: 2007-11-30 22:11 UTC (History)
5 users (show)

Fixed In Version: scim-qtimm-0.9.4-3
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-04-28 01:24:15 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Warren Togami 2006-02-20 21:36:57 UTC
Following Bug #166041 where scim* is now built against libstdc++so7.  It was
simple for all other scim* packages, however it is more complicated to do so for
scim-qtimm because it also links to qt which uses the regular libstdc++.

Lower Priority
==============
FC5test3 shipped with scim linked against libstdc++so7, but scim-qtimm we were
unable to rebuild for this reason.  Package scim contains this hack in
/etc/X11/xinit/xinput.d/scim:

SCIM_QTIMM_XINPUT=/etc/X11/xinit/xinput.d/scim-qtimm
[ -r "${SCIM_QTIMM_XINPUT}" ] && . ${SCIM_QTIMM_XINPUT}
unset SCIM_QTIMM_XINPUT
# override with xim for now
QT_IM_MODULE=xim

The effect of this is for KDE and qt apps to use the XIM interface to scim,
which works fine with or without the currently disfunctional scim-qtimm
installed.  We can survive using the XIM interface for now until scim-qtimm is
fixed.

How to Fix It
=============
Jakub said that special work must be taken in order to build scim-qt because
some parts of it links against libstdc++.so.6 and the scim parts need
libstdc++7.  Here are some notes where he describes what is necessary. 

<jakub> warren: probably split the sources, so that there are some source files
that are using KDE/Qt headers (and those are compiled with g++)
<jakub> warren: then these files comunicate over a C API (well, it can be e.g.
some C++ classes, but they must never contain any STL stuff)
<jakub> warren: with other C++ files that use the SCIM headers and are compiled
with libstdc++so7-g++
<jakub> warren: finally, the link line will be slighly complicated, as you need
to link against both libstdc++'s
<jakub> warren: guess something like libstdc++so7-g++ ... -shared ... `g++
$CXXFLAGS -print-file-name=libstdc++.so`

Comment 2 Jens Petersen 2006-02-21 05:30:38 UTC
*** Bug 181297 has been marked as a duplicate of this bug. ***

Comment 3 Warren Togami 2006-02-21 05:43:13 UTC
Maybe this should be done with a script that takes the upstream source, splits
it and builds each side separately, and combines the object files in the desired
way.  What we don't want is manually hacked sources that would need to be redone
from scratch when new versions are released upstream.  The goal deliverable here
would be a script that splits and builds it in this unique way.


Comment 4 Lawrence Lim 2006-02-28 01:43:02 UTC
Tried the latest scim-qtimm (scim-qtimm-0.9.4-2.1.1) with kedit, does not work
very well. However, with XIM bridge, it is still possible to input.


Starting program: /usr/bin/kedit
Reading symbols from shared object read from target memory...done.
Loaded system supplied DSO at 0x321000
[Thread debugging using libthread_db enabled]
[New Thread -1208310096 (LWP 29756)]
Detaching after fork from child process 29760.
kbuildsycoca running...
ScimInputContextPlugin()
kedit: symbol lookup error: /usr/lib/qt-3.3/plugins/inputmethods/libqscim.so:
undefined symbol: _ZN4scim24scim_get_locale_languageERKSs

Program exited with code 0177.


Comment 6 Jens Petersen 2006-03-31 10:16:11 UTC
scim-1.4.4-11 has been built without libstdc++so7 so this may no longer
be necessary.

Comment 7 Lawrence Lim 2006-04-28 01:24:15 UTC
Looks good. Tried with scim-qtimm-0.9.4-3 and scim-1.4.4-15 with qt-3.3.6. Works
without a glitch. :-)


Note You need to log in before you can comment on or make changes to this bug.