Opened 7 months ago

Closed 6 months ago

Last modified 6 months ago

#71433 closed defect (invalid)

p5.34-perlmagick @6.9.13-16 does not build when ImageMagick has been modified to enable HDRI

Reported by: ballapete (Peter "Pete" Dyballa) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.10.5
Keywords: Cc: ryandesign@…
Port: p5-perlmagick

Description

The C compiler tries to link inexistent shared libraries from a directory that does not even exist:

258 warnings generated.
rm -f ../blib/arch/auto/Image/Magick/Q16/Q16.bundle
LD_RUN_PATH="/usr/lib" /usr/bin/clang -Wl,-rpath,"/usr/lib" -L../../magick/.libs -lMagickCore-6.Q16   -bundle -undefined dynamic_lookup -L/opt/local/lib -Wl,-headerpad_max_install_names   -fstack-protector-strong -L/usr/X11/lib  Q16.o -arch x86_64 -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -o ../blib/arch/auto/Image/Magick/Q16/Q16.bundle  \
	   -lm -L/opt/local/lib/perl5/5.34/darwin-thread-multi-2level/CORE   \
	  
ld: warning: search path '../../magick/.libs' not found
ld: library 'MagickCore-6.Q16' not found
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [../blib/arch/auto/Image/Magick/Q16/Q16.bundle] Error 1
make[1]: Leaving directory `/opt/local/var/macports/build/rsync.macports.org_macports_release_tarballs_ports_perl_p5-perlmagick/p5.34-perlmagick/work/ImageMagick-6.9.13-16/PerlMagick/quantum'
make: *** [subdirs] Error 2
make: Leaving directory `/opt/local/var/macports/build/rsync.macports.org_macports_release_tarballs_ports_perl_p5-perlmagick/p5.34-perlmagick/work/ImageMagick-6.9.13-16/PerlMagick'

Attachments (2)

main.log (715.4 KB) - added by ballapete (Peter "Pete" Dyballa) 7 months ago.
Main.log from intel macOS Sonoma, 14.7.1
main.2.log (1.1 MB) - added by ballapete (Peter "Pete" Dyballa) 7 months ago.
Main.log from intel High Sierra 10.13.6, built from a cop

Download all attachments as: .zip

Change History (11)

Changed 7 months ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.log added

Main.log from intel macOS Sonoma, 14.7.1

Changed 7 months ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.2.log added

Main.log from intel High Sierra 10.13.6, built from a cop

comment:1 Changed 6 months ago by ballapete (Peter "Pete" Dyballa)

The problem is that I had installed the HDRI variant of ImageMagick. Its libraries contain the four letter word HDRI:

  /opt/local/lib/libMagick++-6.Q16HDRI.9.dylib
  /opt/local/lib/libMagick++-6.Q16HDRI.a
  /opt/local/lib/libMagick++-6.Q16HDRI.dylib
  /opt/local/lib/libMagick++-6.Q16HDRI.la
  /opt/local/lib/libMagickCore-6.Q16HDRI.7.dylib
  /opt/local/lib/libMagickCore-6.Q16HDRI.a
  /opt/local/lib/libMagickCore-6.Q16HDRI.dylib
  /opt/local/lib/libMagickCore-6.Q16HDRI.la
  /opt/local/lib/libMagickWand-6.Q16HDRI.7.dylib
  /opt/local/lib/libMagickWand-6.Q16HDRI.a
  /opt/local/lib/libMagickWand-6.Q16HDRI.dylib
  /opt/local/lib/libMagickWand-6.Q16HDRI.la
  /opt/local/lib/pkgconfig/ImageMagick++-6.Q16HDRI.pc
  /opt/local/lib/pkgconfig/ImageMagick-6.Q16HDRI.pc
  /opt/local/lib/pkgconfig/Magick++-6.Q16HDRI.pc
  /opt/local/lib/pkgconfig/MagickCore-6.Q16HDRI.pc
  /opt/local/lib/pkgconfig/MagickWand-6.Q16HDRI.pc
  /opt/local/lib/pkgconfig/Wand-6.Q16HDRI.pc

Could be PerlMagick behaves better when pre-configured with --enable-hdri

comment:2 Changed 6 months ago by ballapete (Peter "Pete" Dyballa)

No, t/montage.t has problems:

t/jpeg/write.t .... ok
t/montage.t ....... 
Failed 2/19 subtests 
t/openjp2/read.t .. ok
…
Test Summary Report
-------------------
t/montage.t     (Wstat: 0 Tests: 19 Failed: 2)
  Failed tests:  12-13
Files=24, Tests=356, 16 wallclock secs ( 0.15 usr  0.06 sys +  2.72 cusr  1.18 csys =  4.11 CPU)
Result: FAIL
Failed 1/24 test programs. 2/356 subtests failed.

comment:3 in reply to:  1 Changed 6 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to ballapete:

The problem is that I had installed the HDRI variant of ImageMagick.

The ImageMagick port doesn't have an hdri variant. It was removed over 11 years ago precisely because it changes the library names which breaks every port that uses ImageMagick.

comment:4 Changed 6 months ago by ballapete (Peter "Pete" Dyballa)

OK, I did not choose a variant but enabled the HDRI option in Portfile.

comment:5 Changed 6 months ago by ryandesign (Ryan Carsten Schmidt)

Keywords: sonoma highsierra removed
Resolution: invalid
Status: newclosed
Summary: p5.34-perlmagick @6.9.13-16 does not build from source on intel Sonoma and High Sierrap5.34-perlmagick @6.9.13-16 does not build when ImageMagick has been modified to enable HDRI

Ok, that's the reason. You'll have to undo that change and reinstall an unmodified ImageMagick.

Alternately, you can make the same modification to p5-perlmagick if the HDRI feature is important to you and you want to maintain these modifications.

comment:6 Changed 6 months ago by ballapete (Peter "Pete" Dyballa)

I already tried that after understanding the problem, but then tests in t/montage.t fail: https://rt.cpan.org/Ticket/Display.html?id=158029.

comment:7 Changed 6 months ago by ballapete (Peter "Pete" Dyballa)

Just saw that Portfile was updated: I'll try again with HDRI option.

comment:8 Changed 6 months ago by ballapete (Peter "Pete" Dyballa)

Still trying without HDRI. The only left patch does not seem to do what it was meant for (guessing from its name): /usr/X11 is back. With Perl 5.38. There are also ld crashes when building executables in configure phase, from CrashReporter:

Application Specific Information:
ld64-409.12
ld -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch x86_64 -macosx_version_min 10.13.0 -o conftest /opt/local/var/macports/build/_Users_alpha_ports_perll_p5-perlmagick/p5.38-perlmagick/work/.tmp/conftest-11e096.o -lbz2 -lm -lpthread /usr/X11/lib -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/10.0.0/lib/darwin/libclang_rt.osx.a 
abort() called
*** error for object 0x7fbb51d012f0: pointer being freed was not allocated

I would like to find environment variables or configure options to prevent /usr/X11…

comment:9 Changed 6 months ago by ballapete (Peter "Pete" Dyballa)

Adding --x-includes=/opt/local/include --x-libraries=/opt/local/lib to the system statement in pre-configure block helps.

Note: See TracTickets for help on using tickets.