[Dot] Problem in doing Layout on renaming the directory containing the library files
Ported Issue from Mantis Original ID: 1156 Reported By: Prantanu
SEVERITY: MAJOR Submitted: 2006-07-26 12:11:29
OS: *-LINUX-
VERSION: 2.9.20060719.0440
DESCRIPTION
Hi,
I am using graphviz-2.9.20060719.0440 .
Before installing this I have installed tcl8.4.2, tk8.4.13, zlib-1.1.4, jpeg-6b, freetype-2.2.1 & libpng-1.2.5 properly.
I have installed tcl8.4.2, tk8.4.13, zlib-1.1.4, jpeg-6b, & freetype-2.2.1 in the following way.
./configure --prefix=<install_dir>
make install
For libpng-1.2.5 I have used the following options.
cd libpng-1.2.5
cp scripts/makefile.linux .
mane install prefix=<install_dir>
Then I have installed graphviz-2.9.20060719.0440 in the following way.
./configure --disable-rpath --with-tclsh=<installdir>/bin/tclsh8.4 --with-wish=<install_dir>/bin/wish8.4
--with-freetype=<install_dir> --with-zincludedir=<install_dir>/include/ --with-zlibdir=<install_dir>/lib
--with-pngincludedir=<install_dir>/include/ --with-pnglibdir=<install_dir>/lib
--with-jpegincludedir=<install_dir>include/ --with-jpeglibdir=<install_dir>lib
--prefix=<install_dir>
make install
All the library files generated in this way will be automatically copied in the directory <install_dir>/lib/graphviz.
<br>
Now I have created another independent directory called "CurrentDir" which has three sub directories.
a) bin ( Here I have copied dot, dotty & lefty from <install_dir>/bin )
b) lib ( Here I have copied all the library files from <install_dir>/lib )
& c) scripts ( Here I have copied all the scripts from graphviz-2.9.20060719.0440/cmd/dotty ).
<br>
Now I have renamed the <install_dir>. ( Otherwise the problem will not be visible )
<br>
After that I have set the following environment variable.
setenv PATH <CurrentDir>/scripts:$PATH
setenv LD_LIBRARY_PATH <CurrentDir>/lib/graphviz:$LD_LIBRARY_PATH
<br>
Now going inside the <CurrentDir>/bin I am running dotty with the following command.
dotty abc.dot
<br>
At this time it is working fine.
<br>
Now the directory graphviz is renamed to Linux2 & the environment variable LD_LIBRARY_PATH is set to
setenv LD_LIBRARY_PATH <CurrentDir>/lib/Linux2:$LD_LIBRARY_PATH
<br>
Now I am trying to load the file abc.dot in the previous way ( dotty abc.dot ).
<br>
It is giving the following error.
` Error: Layout was not done. Missing layout plugins?`
<br>
But ldd dot gives the following informations
libgvc.so.3 => <CurrentDir>/lib/Linux2/libgvc.so.3 (0x40017000)
libgraph.so.3 => <CurrentDir>/lib/Linux2/libgraph.so.3 (0x4008a000)
libcdt.so.3 => <CurrentDir>/lib/Linux2/libcdt.so.3 (0x40095000)
libpathplan.so.3 => <CurrentDir>/lib/Linux2/libpathplan.so.3 (0x4009a000)
libm.so.6 => /lib/tls/libm.so.6 (0x400b9000)
libexpat.so.0 => /usr/lib/libexpat.so.0 (0x400dc000)
libltdl.so.3 => /usr/lib/libltdl.so.3 (0x400fc000)
libdl.so.2 => /lib/libdl.so.2 (0x40103000)
libc.so.6 => /lib/tls/libc.so.6 (0x40106000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
<br>
Is there any way to remove this dependency ?
Waiting for reply.
<br>
Thanks & regards,
Prantanu
ADDITIONAL INFORMATION
----------------------
[ellson] Assuming <install_dir> was the same for freetype, fontconfig etc., all you should need for graphviz is:
./configure --prefix=<install_dir>
It automatically looks under <install_dir> for includes and libraries of its dependencies.
Why are you using --disable-rpath? Take that off and you won't need to mess with LD_LIBRARY_PATH
Did you do a "make install" from graphviz? "dot -c" is run with installation priviledges during
"make install" to generate <install_dir>/lib/graphviz/config which registers all the plugins.
The "Missing layout plugins" implies that this was not done.
If you rename the <install_dir> then you will break rpaths and the plugin load mechanism. Just tell ./configure
where you really want to install it.
[north] Atrenta is a profit-making company that sells CAD software.
Their software is not freely available, as far as I can tell.
They should stop nagging us about problems of their own making.
We are not being paid by them to help them in their profit-making
activity. If they need to take the time to understand how to configure
and install the software, that does not make the situation a "major bug".
I doubt that most software with intrinsic paths to find plugins or DSOs
can just be copied around anywhere. If they want to do that Atrenta
should figure out how to build mostly-static binaries.