Skip to content

PDL::GIS::Proj can't load, Makefile has strange LD_RUN_PATH #391

Closed
@d-lamb

Description

@d-lamb

I after installing Alien::proj from CPAN, PDL tries to build PDL::GIS::Proj, but fails make test and even a simple module load:

$ perl -Mblib -MPDL::GIS::Proj -e'1;'
Can't load '/Users/derek/Build/PDL/blib/arch/auto/PDL/GIS/Proj/Proj.bundle' for module PDL::GIS::Proj: dlopen(/Users/derek/Build/PDL/blib/arch/auto/PDL/GIS/Proj/Proj.bundle, 0x0001): Library not loaded: @rpath/libproj.25.dylib
  Referenced from: /Users/derek/Build/PDL/blib/arch/auto/PDL/GIS/Proj/Proj.bundle
  Reason: tried: '/opt/local/lib:/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/lib/libproj.25.dylib' (no such file), '/opt/local/lib:/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/lib/libproj.25.dylib' (no such file), '/usr/local/lib/libproj.25.dylib' (no such file), '/usr/lib/libproj.25.dylib' (no such file) at /opt/local/lib/perl5/5.28/darwin-thread-multi-2level/DynaLoader.pm line 197.
 at -e line 0.
Compilation failed in require.
BEGIN failed--compilation aborted.

It is trying to find libproj.25.dylib in a directory with a colon in it:
/opt/local/lib:/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/lib/libproj.25.dylib.
The correct location is:
/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/lib/libproj.25.dylib.

blib/arch/auto/PDL/GIS/Proj/Proj.bundle has that same string in it.
Libtmp/GIS/Proj/Makefile has the line

LD_RUN_PATH = /opt/local/lib:/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/lib

Looking at the Makefile.PL, I don't see anything suspicious. The two values pulled from Alien::proj are correct:

$ perl -MAlien::proj -E 'say Alien::proj->cflags; say Alien::proj->libs;'
-I/opt/local/include -I/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/include -I/opt/local/include 
-L/opt/local/lib -lsqlite3 -L/Users/derek/local/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-proj/lib -lproj 

All the other Makefiles in the PDL tree have either empty or sensible LD_RUN_PATH values, such as /usr/local/lib or /opt/local/lib.
I'm using Perl 5.28.3, EUMM 7.64.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions