[Slackbuilds-users] Error building inkscape-0.91
Duncan Roe
duncan_roe at acslink.net.au
Fri Feb 26 10:30:01 UTC 2016
On Fri, Feb 26, 2016 at 03:45:44PM +0700, Willy Sudiarto Raharjo wrote:
> >> This looks to me to be a problem for upstream. I'm posting here because of
> >> the
> >> workaround and also because I guess any bug report to upstream should come
> >> from
> >> the maintainer.
> >>
> >> At least on 32-bit, the SlackBuild terminates with this error:
> >>> CXXLD inkscape
> >>> /usr/lib/libdbus-glib-1.so.2: undefined reference to
> >> `dbus_message_iter_abandon_container'
> >>> collect2: error: ld returned 1 exit status
> >>> make[3]: *** [inkscape] Error 1
> >>
> >> In brief, the workaround is to complete the SlackBuild by hand, inserting
> >> "-ldbus-1" near the end of g++ lines that invoke ld (one for inkscape, one
> >> for
> >> inkview).
> >>
> >> THE WORKAROUND
> >>
> >> To get the g++ command line, as root cd to /tmp/SBo/inkscape-0.91 and run
> >>> make V=1
> >> redirecting output to a file. Edit this file into a shell script e.g.
> >>> #!/bin/sh
> >>> cd /tmp/SBo/inkscape-0.91/src
> >>> g++ -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual ...
> >>
> >> The g++ line above is over 16KB but vi copes. At the end, change
> >> > /usr/lib/libglib-2.0.so -pthread -fopenmp
> >> to
> >> > /usr/lib/libglib-2.0.so -ldbus-1 -pthread -fopenmp
> >>
> >> Now run make. It will fail similarly when loading inkview. Repeat steps
> >> above.
> >>
> >> Run make again. It will complete.
> >>
> >> Paste in to your root build xterm enough of the SlackBuild to set all the
> >> upper-case shell variables (i.e. from "TMP=" through "fi"). Set CWD to be
> >> the
> >> original directory containing inkscape.SlackBuild. Your curent working
> >> directory
> >> should still be /tmp/SBo/inkscape-0.91.
> >>
> >> To be safe, re-issue the mkdir -p at line 60 (I changed it to -pv and it
> >> claimed
> >> to make something).
> >>
> >> Paste in and execute everything from the make install on line 84 onwards.
> >>
> >> SOME KIND OF AN EXPLANATION
> >>
> >> The g++ line doesn't mention libdbus-glib-1. It seems some other .so is
> >> pulling
> >> it in as a dependency.
> >>
> >> As it happens, I have a tool, findit(*), which can investigate this sort of
> >> problem. It agreed with ld:
> >>> 23:45:32# findit /usr/lib/libdbus-glib-1.so.2
> >> dbus_message_iter_abandon_container
> >>> /usr/lib/libdbus-glib-1.so.2: undefined symbol:
> >> dbus_message_iter_abandon_container. (dlsym)
> >>
> >> /usr/lib/libdbus-glib-1.la advertises a number of dependencies:
> >>> # Libraries that this one depends upon.
> >>> dependency_libs=' /usr/lib/libdbus-1.la -lrt /usr/lib/libgio-2.0.la ...
> >>
> >> libdbus-1.la only shows -lpthread -lrt as dependencies. Ignoring that:
> >>> 23:58:31# findit -ldbus-1 /usr/lib/libdbus-glib-1.so.2
> >> dbus_message_iter_abandon_container
> >>> Found dbus_message_iter_abandon_container in
> >> /usr/lib/libdbus-glib-1.so.2 at 0xb75a9fb0
> >>
> >> It's been my experience in the past that shared libraries will sometimes
> >> provide
> >> a symbol without loading dependencies and sometimes they won't. Or the same
> >> shared library may provide some symbols and not others. Hence the
> >> workaround.
> >>
> >> WHERE IS THE BUG REALLY?
> >>
> >> I would say the fault lies with whatever library is pulling in
> >> libdbus-glib-1.
> >> It should also pull in libdbus-1. Maybe someone will "just know" which
> >> library
> >> "it" is.
>
> working fine here using sbopkg
>
> numpy:
> MD5SUM check for numpy-1.9.1.tar.gz ... OK
> Building package numpy-1.9.1-i486-1_SBo.tgz ... OK
> Installing package numpy-1.9.1-i486-1_SBo.tgz ... OK
>
> BeautifulSoup:
> MD5SUM check for BeautifulSoup-3.2.1.tar.gz ... OK
> Building package BeautifulSoup-3.2.1-i486-1_SBo.tgz ... OK
> Installing package BeautifulSoup-3.2.1-i486-1_SBo.tgz ... OK
>
> lxml:
> MD5SUM check for lxml-3.5.0.tar.gz ... OK
> Building package lxml-3.5.0-i486-1_SBo.tgz ... OK
> Installing package lxml-3.5.0-i486-1_SBo.tgz ... OK
>
> inkscape:
> MD5SUM check for inkscape-0.91.tar.bz2 ... OK
> Building package inkscape-0.91-i486-1_SBo.tgz ... OK
> Installing package inkscape-0.91-i486-1_SBo.tgz ... OK
>
>
> --
> Willy Sudiarto Raharjo
>
Thanks for trying that Willy.
I built a number of (optional(?)) dependencies:
gtkmm-2.24.4-i486-1_SBo
atkmm-2.22.7-i486-1_SBo
mm-common-0.9.7-noarch-1_SBo
pangomm-2.34.0-i486-1_SBo
cairomm-1.10.0-i486-1_SBo
glibmm-2.36.2-i486-1_SBo
libsigc++-2.2.11-i486-1_SBo
gsl-1.16-i486-1_SBo
libwpg-0.2.2-i486-1_SBo
IIRC, some of the packages you listed would not build for me w/out at least some
of the above.
I missed a numpy update - have numpy-1.8.0-i486-1_SBo installed here.
I can try in a freshly installed VM when I get Virtualbox working with kernel
4.4,
Cheers ... Duncan.
More information about the SlackBuilds-users
mailing list