FTBFS in Oneiric because of failing to load progress_indicator.so

Bug #828304 reported by Fabrice Coutadeur
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
calibre
Invalid
Undecided
Unassigned
calibre (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Hi,

when recompiling calibre to fix #826835, I'm getting the following error, and even if I think this may be linked to --as-needed flag, I'm not able to fix it. The relevant part of the compilation log is:
...
g++ -m64 -Wl,-O1 -shared -Wl,-soname,libprogress_indicator.so.1 -o libprogress_indicator.so.1.0.0 QProgressIndicator.o moc_QProgressIndicator.o -L/usr/lib/x86_64-linux-gnu -lQtGui -lQtCore -lpthread
...
Setting up bash completion...

____________________ WARNING ____________________
Setting up completion failed with error:
__________________________________________________
 Traceback (most recent call last):
   File "/build/fabrice-calibre_0.8.8+dfsg-1build1-amd64-dRCsvd/calibre-0.8.8+dfsg/src/calibre/linux.py", line 184, in setup_completion
     from calibre.gui2.lrf_renderer.main import option_parser as lrfviewerop
   File "/build/fabrice-calibre_0.8.8+dfsg-1build1-amd64-dRCsvd/calibre-0.8.8+dfsg/src/calibre/gui2/lrf_renderer/main.py", line 18, in <module>
     from calibre.gui2.search_box import SearchBox2
   File "/build/fabrice-calibre_0.8.8+dfsg-1build1-amd64-dRCsvd/calibre-0.8.8+dfsg/src/calibre/gui2/search_box.py", line 20, in <module>
     from calibre.gui2.dialogs.search import SearchDialog
   File "/build/fabrice-calibre_0.8.8+dfsg-1build1-amd64-dRCsvd/calibre-0.8.8+dfsg/src/calibre/gui2/dialogs/search.py", line 8, in <module>
     from calibre.gui2.dialogs.search_ui import Ui_Dialog
   File "/build/fabrice-calibre_0.8.8+dfsg-1build1-amd64-dRCsvd/calibre-0.8.8+dfsg/src/calibre/gui2/dialogs/search_ui.py", line 223, in <module>
     from calibre.gui2.widgets import EnLineEdit
   File "/build/fabrice-calibre_0.8.8+dfsg-1build1-amd64-dRCsvd/calibre-0.8.8+dfsg/src/calibre/gui2/widgets.py", line 23, in <module>
     from calibre.gui2.progress_indicator import ProgressIndicator as _ProgressIndicator
   File "/build/fabrice-calibre_0.8.8+dfsg-1build1-amd64-dRCsvd/calibre-0.8.8+dfsg/src/calibre/gui2/progress_indicator/__init__.py", line 15, in <module>
     pi_error)
 RuntimeError: Failed to load the Progress Indicator plugin: /build/fabrice-calibre_0.8.8+dfsg-1build1-amd64-dRCsvd/calibre-0.8.8+dfsg/src/calibre/plugins/progress_indicator.so: undefined symbol: _ZTI7QWidget

Any help is welcome. Thanks,

Fabrice

Related branches

Revision history for this message
Kovid Goyal (kovid) wrote : Re: calibre bug 828304

That error is saying that the linker cannot find the symbol _ZTI7QWidget. That
symbol is defined in libQtGui.so.4. Use the LD_DEBUG environment variable to
get information on why the linker is unable to find and load that symbol on
your system.

 status invalid

Changed in calibre:
status: New → Invalid
Revision history for this message
Jason Conti (jconti) wrote :

I'm getting the same build failure here. It seems to be caused by the sip4 package not being updated for http://wiki.debian.org/ToolChain/DSOLinking . Here's the relevant method in siputils.py:

 851 def platform_lib(self, clib, framework=0):
 852 """Return a library name in platform specific form.
 853
 854 clib is the library name in cannonical form.
 855 framework is set of the library is implemented as a MacOS framework.
 856 """
 857 ##################################################################
 858 # Generally, the linker is intelligent enough not to need this #
 859 # additional information! #
 860 # And Qt4's pkg-config and prl files are broken #
 861 # Changed for Debian packaging, Torsten Marek <email address hidden> #
 862 ##################################################################
 863
 864 return []
 865
 866 if self.generator in ("MSVC", "MSVC.NET", "MSBUILD", "BMAKE"):
 867 plib = clib + ".lib"
 868 elif sys.platform == "darwin" and framework:
 869 plib = "-framework " + clib
 870 else:
 871 plib = "-l" + clib
 872
 873 return plib

Commenting out line 864 includes -lQtGui -lQtCore when building progress_indicator.so and allows the build to complete successfully.

Changed in calibre (Ubuntu):
status: New → Confirmed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package calibre - 0.8.8+dfsg-1ubuntu1

---------------
calibre (0.8.8+dfsg-1ubuntu1) oneiric; urgency=low

  * fix_ftbfs_as-needed.patch: add missing QtGui lib when linking
    progress_indicator with --as-needed. This fixes a FTBFS (LP: #828304) and
    allow calibre to run (LP: #826835). Thanks Jason Conti for the help!
 -- Fabrice Coutadeur <email address hidden> Thu, 18 Aug 2011 22:12:26 +0200

Changed in calibre (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.