<div dir="ltr">I am the maintainer for inkscape. I only run 64 bits.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 25, 2016 at 4:55 PM, Duncan Roe <span dir="ltr"><<a href="mailto:duncan_roe@acslink.net.au" target="_blank">duncan_roe@acslink.net.au</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
This looks to me to be a problem for upstream. I'm posting here because of the<br>
workaround and also because I guess any bug report to upstream should come from<br>
the maintainer.<br>
<br>
At least on 32-bit, the SlackBuild terminates with this error:<br>
>   CXXLD    inkscape<br>
> /usr/lib/libdbus-glib-1.so.2: undefined reference to `dbus_message_iter_abandon_container'<br>
> collect2: error: ld returned 1 exit status<br>
> make[3]: *** [inkscape] Error 1<br>
<br>
In brief, the workaround is to complete the SlackBuild by hand, inserting<br>
"-ldbus-1" near the end of g++ lines that invoke ld (one for inkscape, one for<br>
inkview).<br>
<br>
THE WORKAROUND<br>
<br>
To get the g++ command line, as root cd to /tmp/SBo/inkscape-0.91 and run<br>
> make V=1<br>
redirecting output to a file. Edit this file into a shell script e.g.<br>
> #!/bin/sh<br>
> cd /tmp/SBo/inkscape-0.91/src<br>
> g++ -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual ...<br>
<br>
The g++ line above is over 16KB but vi copes. At the end, change<br>
 > /usr/lib/<a href="http://libglib-2.0.so" rel="noreferrer" target="_blank">libglib-2.0.so</a> -pthread -fopenmp<br>
 to<br>
 > /usr/lib/<a href="http://libglib-2.0.so" rel="noreferrer" target="_blank">libglib-2.0.so</a> -ldbus-1 -pthread -fopenmp<br>
<br>
Now run make. It will fail similarly when loading inkview. Repeat steps above.<br>
<br>
Run make again. It will complete.<br>
<br>
Paste in to your root build xterm enough of the SlackBuild to set all the<br>
upper-case shell variables (i.e. from "TMP=" through "fi"). Set CWD to be the<br>
original directory containing inkscape.SlackBuild. Your curent working directory<br>
should still be /tmp/SBo/inkscape-0.91.<br>
<br>
To be safe, re-issue the mkdir -p at line 60 (I changed it to -pv and it claimed<br>
to make something).<br>
<br>
Paste in and execute everything from the make install on line 84 onwards.<br>
<br>
SOME KIND OF AN EXPLANATION<br>
<br>
The g++ line doesn't mention libdbus-glib-1. It seems some other .so is pulling<br>
it in as a dependency.<br>
<br>
As it happens, I have a tool, findit(*), which can investigate this sort of<br>
problem. It agreed with ld:<br>
> 23:45:32# findit /usr/lib/libdbus-glib-1.so.2 dbus_message_iter_abandon_container<br>
> /usr/lib/libdbus-glib-1.so.2: undefined symbol: dbus_message_iter_abandon_container. (dlsym)<br>
<br>
/usr/lib/<a href="http://libdbus-glib-1.la" rel="noreferrer" target="_blank">libdbus-glib-1.la</a> advertises a number of dependencies:<br>
> # Libraries that this one depends upon.<br>
> dependency_libs=' /usr/lib/<a href="http://libdbus-1.la" rel="noreferrer" target="_blank">libdbus-1.la</a> -lrt /usr/lib/<a href="http://libgio-2.0.la" rel="noreferrer" target="_blank">libgio-2.0.la</a> ...<br>
<br>
<a href="http://libdbus-1.la" rel="noreferrer" target="_blank">libdbus-1.la</a> only shows -lpthread -lrt as dependencies. Ignoring that:<br>
> 23:58:31# findit -ldbus-1 /usr/lib/libdbus-glib-1.so.2 dbus_message_iter_abandon_container<br>
> Found dbus_message_iter_abandon_container in /usr/lib/libdbus-glib-1.so.2 at 0xb75a9fb0<br>
<br>
It's been my experience in the past that shared libraries will sometimes provide<br>
a symbol without loading dependencies and sometimes they won't. Or the same<br>
shared library may provide some symbols and not others. Hence the workaround.<br>
<br>
WHERE IS THE BUG REALLY?<br>
<br>
I would say the fault lies with whatever library is pulling in libdbus-glib-1.<br>
It should also pull in libdbus-1. Maybe someone will "just know" which library<br>
"it" is.<br>
<br>
Cheers ... Duncan.<br>
<br>
(*) findit is part of <a href="https://github.com/duncan-roe/command_line_tools" rel="noreferrer" target="_blank">https://github.com/duncan-roe/command_line_tools</a><br>
    If you would like it, feel free to take a clone<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><br>------------<br>Regards,<br>    Fernando Lopez Jr.</div>
</div>