Subject: | the installed shared libs link against build directory |
Alien::ImageMagick installs some shared libraries that end up using the MagicCore library from the build directory. Cleaning up after the build breaks the installed module.
This is especially fun with cpanm, because the module seems to work, until 7 days later when cpanm autocleans its work directories.
$ perl Build.PL
Creating new 'MYMETA.yml' with configuration results
Creating new 'Build' script for 'Alien-ImageMagick' version '0.02'
$ ./Build
...snip...
$ ./Build test
...snip...
$ ./Build install
...snip...
$ perl -wE 'use Image::Magick; say "ok"'
ok
$ ldd ~/perl5/perlbrew/perls/perl-5.12.5-ext/lib/site_perl/5.12.5/x86_64-linux/auto/Image/Magick/Q16/Q16.so
linux-vdso.so.1 => (0x00007fffe11ff000)
libMagickCore-6.Q16.so.2 => /home/jep/src/Alien-ImageMagick-0.02/_alien/ImageMagick-6.8.9-7/PerlMagick/quantum/../../magick/.libs/libMagickCore-6.Q16.so.2 (0x00007f4203768000)
...snip...
$ ./Build clean
Cleaning up build files
$ perl -wE 'use Image::Magick; say "ok"'
Can't load '/home/jep/perl5/perlbrew/perls/perl-5.12.5-ext/lib/site_perl/5.12.5/x86_64-linux/auto/Image/Magick/Q16/Q16.so' for module Image::Magick::Q16: libMagickCore-6.Q16.so.2: cannot open shared object file: No such file or directory at /home/jep/perl5/perlbrew/perls/perl-5.12.5-ext/lib/5.12.5/x86_64-linux/DynaLoader.pm line 200.
at /home/jep/perl5/perlbrew/perls/perl-5.12.5-ext/lib/5.12.5/parent.pm line 20
Compilation failed in require at /home/jep/perl5/perlbrew/perls/perl-5.12.5-ext/lib/5.12.5/parent.pm line 20.
BEGIN failed--compilation aborted at /home/jep/perl5/perlbrew/perls/perl-5.12.5-ext/lib/site_perl/5.12.5/x86_64-linux/Image/Magick.pm line 22.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
&Image::Magick::Q16::constant not defined. The required ImageMagick libraries are not installed or not installed properly.
END failed--call queue aborted at -e line 1.
:-(
Subject: | build.log |
Message body not shown because it is not plain text.
Subject: | install.log |
Message body not shown because it is not plain text.
Subject: | ldd.log |
Message body not shown because it is not plain text.
Subject: | test.log |
Message body not shown because it is not plain text.