Opened 4 years ago

Closed 22 months ago

#60232 closed defect (worksforme)

gdk-pixbuf2 @2.40.0_1 +universal doesn't compile with jpeg and jasper

Reported by: someuser12 Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version:
Keywords: pending Cc: git@…, evanmiller (Evan Miller), barracuda156
Port: gdk-pixbuf2

Description (last modified by mf2k (Frank Schima))

Under Mac OS 10.13 and 10.11, while configuring gdk-pixbuf2 @2.40.0_1 with +universal variant set, the build tool meson tries to detect the libraries JPEG and jasper by launching clang on a minimal C program involving only proprocessor directives:

Command line:  /usr/bin/clang -I/opt/local/include /opt/local/var/macports/build
/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_po
rts_graphics_gdk-pixbuf2/gdk-pixbuf2/work/build/meson-private/tmp9kj3a3pw/testfi
le.c -pipe -E -P -Os -arch x86_64 -arch i386 -P -O0 -std=c99

Since clang is launched with the flags -E -arch x86_64 -arch i386, it fails with message clang: error: cannot use 'cpp-output' output with multiple -arch options and meson concludes erroneously that the jpeg library is absent.

The same happens with jasper later on.

As a consequence, all software built again the resulting gdk-pixbuf2 (e.g. qiv) will be unable to load or display any JPEG file.

Ugly workaround:

  • sudo port extract gdk-pixbuf2 +x11+universal
  • Manually edit `port work gdk-pixbuf2`/gdk-pixbuf-2.40.0/meson.build to replace, on line 312, cc.has_header('jpeglib.h') with 1==1 and, on line 363, cc.has_header('jasper/jasper.h') with true
  • sudo port install gdk-pixbuf2 .

Change History (11)

comment:1 Changed 4 years ago by someuser12

Description: modified (diff)

comment:2 Changed 4 years ago by mf2k (Frank Schima)

In the future, please add the port maintainer(s) to Cc (port info --maintainers gdk-pixbuf2), if any.

comment:3 Changed 4 years ago by mf2k (Frank Schima)

Owner: set to dbevans
Status: newassigned

comment:4 Changed 4 years ago by mf2k (Frank Schima)

Description: modified (diff)

comment:5 Changed 4 years ago by kencu (Ken)

two options that come immediately to mind would be to try adding the "muniversal 1.0" portgroup, or alternately to null out the extra CPP flags and leave it to the (non-universal archs) default CPP flags.

The muniversal PG is probably more reliable, I would think.

comment:6 Changed 2 years ago by mascguy (Christopher Nielsen)

Owner: changed from dbevans to mascguy

Take over Dave's tickets for GTK and friends, now that he's formally dropped maintainership. Boo! ;-)

comment:7 Changed 22 months ago by mascguy (Christopher Nielsen)

Keywords: pending added

comment:8 Changed 22 months ago by mascguy (Christopher Nielsen)

Cc: evanmiller barracuda156 added

Evan/Sergey, do you folks have this port installed with +universal anywhere?

Don't waste any time on building, if you don't have it already. But just curious whether our current state is better now, as many changes/updates have occurred over the past two years.

comment:9 Changed 22 months ago by mascguy (Christopher Nielsen)

@someuser12 is this still an issue, as of today?

comment:10 Changed 22 months ago by someuser12

I can't reproduce the issue any more since configuring gdk-pixbuf2 2.42.8 (the present version) on Mac OS 10.13 with the +universal variant makes no difference with the default variant.

comment:11 in reply to:  10 Changed 22 months ago by mascguy (Christopher Nielsen)

Resolution: worksforme
Status: assignedclosed

Replying to someuser12:

I can't reproduce the issue any more since configuring gdk-pixbuf2 2.42.8 (the present version) on Mac OS 10.13 with the +universal variant makes no difference with the default variant.

Great, glad the issue is resolved!

Note: See TracTickets for help on using tickets.