Number: 982
Title: Problem in doing Layout on renaming the directory containing the library files
Submitter: Prantanu
Date: Wed Jul 26 07:11:29 2006
Subsys: Dot
Version: 2.9.20060719.0440
System: *-Linux-
Severity: major

   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.

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 ).

Now I have renamed the <install_dir>. ( Otherwise the problem will not be visible )

After that I have set the following environment variable. setenv PATH <CurrentDir>/scripts:$PATH setenv LD_LIBRARY_PATH <CurrentDir>/lib/graphviz:$LD_LIBRARY_PATH

Now going inside the <CurrentDir>/bin I am running dotty with the following command. dotty

At this time it is working fine.

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

Now I am trying to load the file in the previous way ( dotty ).

It is giving the following error. Error: Layout was not done. Missing layout plugins?

But ldd dot gives the following informations => <CurrentDir>/lib/Linux2/ (0x40017000) => <CurrentDir>/lib/Linux2/ (0x4008a000) => <CurrentDir>/lib/Linux2/ (0x40095000) => <CurrentDir>/lib/Linux2/ (0x4009a000) => /lib/tls/ (0x400b9000) => /usr/lib/ (0x400dc000) => /usr/lib/ (0x400fc000) => /lib/ (0x40103000) => /lib/tls/ (0x40106000) /lib/ => /lib/ (0x40000000)

Is there any way to remove this dependency ? Waiting for reply.

Thanks & regards, Prantanu
[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.
Owner: ellson
Status: *