[GRASSLIST:3870] GRASS 5.7 - now it compiles but can't run display manager

Dear friends of this list

I am trying to make GRASS 5.7 run on Slackware 10.0. until yesterday, I couldn't
compile it, so I download the CVS-HEAD for 5.3 and 5.7, used the configuration
script and it compiled OK. the problem now is that d.m won't run. here is the
error msg:

GRASS 5.7.cvs:~ > d.m &
[1] 25635
GRASS 5.7.cvs:~ > Error in startup script: ps.map: error while loading shared
libraries: libdfftw.so.2: cannot open shared object file: No such file or
directory
    while executing
"exec ps.map -p"
    (procedure "DmPrint::init" line 14)
    invoked from within
"DmPrint::init"
    (procedure "main" line 27)
    invoked from within
"main $argc $argv"
    (file "/usr/local/grass5.7.cvs-i686-pc-linux-gnu-10_07_2004/etc/dm/d.m.tcl"
line 773)

So, why it have to call ps.map? and why ps.map needs fftw? I have ftw versions
2.15 and 3.0.1 installed, but no libdfftw.so.2.
if I made a link to other file will it work? (like I have to do with tcl and tk
8.3 to get NVIZ working). I yes, from what file and where should the link be?

thanks all.

Grohmann

--
+-------------------------------------------------+
        Carlos Henrique Grohmann - Guano
  Geologist M.Sc - PhD Student at IGc-USP - Brazil
     Linux User #89721 - guano at usp dot br -
+-------------------------------------------------+

I've got an identical error from the Grass 5.7 installed from the
precompiled binaries on Mdk 10 Official.

From: "Carlos Henrique Grohmann" <guano@usp.br>

Dear friends of this list

I am trying to make GRASS 5.7 run on Slackware 10.0. until yesterday, I

couldn't

compile it, so I download the CVS-HEAD for 5.3 and 5.7, used the

configuration

script and it compiled OK. the problem now is that d.m won't run. here is

the

error msg:

GRASS 5.7.cvs:~ > d.m &
[1] 25635
GRASS 5.7.cvs:~ > Error in startup script: ps.map: error while loading

shared

libraries: libdfftw.so.2: cannot open shared object file: No such file or
directory
    while executing
"exec ps.map -p"
    (procedure "DmPrint::init" line 14)
    invoked from within
"DmPrint::init"
    (procedure "main" line 27)
    invoked from within
"main $argc $argv"
    (file

"/usr/local/grass5.7.cvs-i686-pc-linux-gnu-10_07_2004/etc/dm/d.m.tcl"

line 773)

So, why it have to call ps.map? and why ps.map needs fftw? I have ftw

versions

2.15 and 3.0.1 installed, but no libdfftw.so.2.
if I made a link to other file will it work? (like I have to do with tcl

and tk

8.3 to get NVIZ working). I yes, from what file and where should the link

be?

thanks all.

Grohmann

Carlos Henrique Grohmann wrote:

I am trying to make GRASS 5.7 run on Slackware 10.0. until
yesterday, I couldn't compile it, so I download the CVS-HEAD for 5.3
and 5.7, used the configuration script and it compiled OK. the
problem now is that d.m won't run. here is the error msg:

GRASS 5.7.cvs:~ > d.m &
[1] 25635
GRASS 5.7.cvs:~ > Error in startup script: ps.map: error while loading shared
libraries: libdfftw.so.2: cannot open shared object file: No such file or
directory
    while executing
"exec ps.map -p"

So, why it have to call ps.map?

It runs "ps.map -p", which outputs a list of the paper sizes which
ps.map understands. This list is used to initialise the "Paper format"
combo box in the print dialog.

and why ps.map needs fftw?

It is linked against the gmath library, which in turn requires FFTW.
However, I can't see an obvious reason for the gmath dependency.

I have ftw versions 2.15 and 3.0.1 installed, but no libdfftw.so.2.

One possibility is that libfftw was compiled as libdfftw.so.2 then
renamed to something else (e.g. libfftw.so.2). That won't work. Shared
libraries have their "soname" (shared object name) compiled into them,
and that name is stored in any executables which are linked against
it, and that is the name which the loader will look for when loading
the executables.

if I made a link to other file will it work?

Yes.

(like I have to do with
tcl and tk 8.3 to get NVIZ working). I yes, from what file

Whichever file the linker used when it linked libgrass_gmath.so. Look
for the definition of FFTWLIB in include/Make/Platform.make. That will
contain either "-lfftw" or "-ldfftw", possibly in addition to a -L
switch. For the former, you need to locate a symlink or file named
libfftw.so, typically in /usr/lib or /usr/local/lib; for the latter,
you need to locate libdfftw.so.

and where should the link be?

Anywhere that the loader will find it, i.e. in /usr/lib or in any of
the directories listed in /etc/ld.so.conf. Also, you need to run
ldconfig once the link has been added.

--
Glynn Clements <glynn.clements@virgin.net>

On Sun, Jul 11, 2004 at 04:33:20PM -0300, Carlos Henrique Grohmann wrote:

Dear friends of this list

I am trying to make GRASS 5.7 run on Slackware 10.0. until yesterday, I couldn't
compile it, so I download the CVS-HEAD for 5.3 and 5.7, used the configuration
script and it compiled OK. the problem now is that d.m won't run. here is the
error msg:

GRASS 5.7.cvs:~ > d.m &
[1] 25635
GRASS 5.7.cvs:~ > Error in startup script: ps.map: error while loading shared
libraries: libdfftw.so.2: cannot open shared object file: No such file or
directory
    while executing
"exec ps.map -p"
    (procedure "DmPrint::init" line 14)
    invoked from within
"DmPrint::init"
    (procedure "main" line 27)
    invoked from within
"main $argc $argv"
    (file "/usr/local/grass5.7.cvs-i686-pc-linux-gnu-10_07_2004/etc/dm/d.m.tcl"
line 773)

So, why it have to call ps.map? and why ps.map needs fftw?

I think ps.map depends on fftw because it uses libgis which depends on libgmath
which can be compiled with fftw support.

I have ftw versions 2.15 and 3.0.1 installed, but no libdfftw.so.2.

Note: You can only use FFTW 2.x with GRASS.

Markus

So, for those with the ps.map problem with d.m in grass 5.7, it is possible to
fix by installing fftw2.15, which will provide libfftw.so.2, and will be
necessary to make a link to it named lidfftw.so.2, in /usr/lib.
the package can be found in rpm format (I guess that mandrake uses it) and in
tgz (for slack users).

if anyone needs the tgz package, I can send it.

cheers

Carlos
--
+-------------------------------------------------+
        Carlos Henrique Grohmann - Guano
  Geologist M.Sc - PhD Student at IGc-USP - Brazil
     Linux User #89721 - guano at usp dot br -
+-------------------------------------------------+

Citando Glynn Clements <glynn.clements@virgin.net>:

Carlos Henrique Grohmann wrote:

> I am trying to make GRASS 5.7 run on Slackware 10.0. until
> yesterday, I couldn't compile it, so I download the CVS-HEAD for 5.3
> and 5.7, used the configuration script and it compiled OK. the
> problem now is that d.m won't run. here is the error msg:
>
> GRASS 5.7.cvs:~ > d.m &
> [1] 25635
> GRASS 5.7.cvs:~ > Error in startup script: ps.map: error while loading
shared
> libraries: libdfftw.so.2: cannot open shared object file: No such file or
> directory
> while executing
> "exec ps.map -p"

> So, why it have to call ps.map?

It runs "ps.map -p", which outputs a list of the paper sizes which
ps.map understands. This list is used to initialise the "Paper format"
combo box in the print dialog.

> and why ps.map needs fftw?

It is linked against the gmath library, which in turn requires FFTW.
However, I can't see an obvious reason for the gmath dependency.

> I have ftw versions 2.15 and 3.0.1 installed, but no libdfftw.so.2.

One possibility is that libfftw was compiled as libdfftw.so.2 then
renamed to something else (e.g. libfftw.so.2). That won't work. Shared
libraries have their "soname" (shared object name) compiled into them,
and that name is stored in any executables which are linked against
it, and that is the name which the loader will look for when loading
the executables.

> if I made a link to other file will it work?

Yes.

> (like I have to do with
> tcl and tk 8.3 to get NVIZ working). I yes, from what file

Whichever file the linker used when it linked libgrass_gmath.so. Look
for the definition of FFTWLIB in include/Make/Platform.make. That will
contain either "-lfftw" or "-ldfftw", possibly in addition to a -L
switch. For the former, you need to locate a symlink or file named
libfftw.so, typically in /usr/lib or /usr/local/lib; for the latter,
you need to locate libdfftw.so.

> and where should the link be?

Anywhere that the loader will find it, i.e. in /usr/lib or in any of
the directories listed in /etc/ld.so.conf. Also, you need to run
ldconfig once the link has been added.

--
Glynn Clements <glynn.clements@virgin.net>