Opened 8 years ago

Closed 8 years ago

#49584 closed defect (fixed)

ufraw @0.22: Cannot (re-)build on 10.11.1 using gtk2 +quartz

Reported by: p-bro Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: ufraw

Description

Hi,

I've run into issues with ufraw after migrating to El Capitan (from Yosemite) following the migration guide. At the end of the update process (various interruptions to account e.g. for the broken gcc48, and one hard reboot), there were a number of broken packages:

--->  Found 20 broken file(s), matching files to ports   
--->  Found 7 broken port(s), determining rebuild order
--->  Rebuilding in order
     ufraw @0.22 
     xsane @0.998 
     gimp-lqr-plugin @0.7.2 
     gutenprint @5.2.10 
     icns-gimp @0.1 
     gimp-jp2 @2.2.0 
     gtk-nodoka-engine @0.7.5 

This re-build now fails in the build stage (log attached) when compiling uf_gtk.cc:

uf_gtk.cc:171:9: warning: 'CMProfileRef' is deprecated: first deprecated in OS X 10.6 [-Wdeprecated-declarations]
        CMProfileRef prof = NULL;
        ^
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/ColorSyncDeprecated.h:1001:41: note: 'CMProfileRef' has been explicitly marked deprecated here
typedef struct OpaqueCMProfileRef*      CMProfileRef DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER;
                                        ^
uf_gtk.cc:172:9: error: use of undeclared identifier 'CMGetProfileByAVID'
        CMGetProfileByAVID(monitor, &prof);
        ^
uf_gtk.cc:177:16: error: use of undeclared identifier 'CMProfileCopyICCData'
        data = CMProfileCopyICCData(NULL, prof);
               ^
uf_gtk.cc:178:9: error: use of undeclared identifier 'CMCloseProfile'
        CMCloseProfile(prof);
        ^
1 warning and 3 errors generated.

I managed to repair all other broken ports by force-uninstalling ufraw, then doing a port rev-upgrade. However, ufraw still fails to install with the same error.

I must probably have deleted something that was present originally (perhaps when doing a port uninstall inactive?), when the build succeeded (unfortunately no data left but the scrollback in my terminal, which tells me ufraw succeeded), but it's obviously not something on the required port list.

I verified that all rdeps are installed and active.

Attachments (2)

ufraw.main.log (259.0 KB) - added by p-bro 8 years ago.
main.log from ufraw build directory.
ufraw.install (18.3 KB) - added by p-bro 8 years ago.
stdout from port install -d ufraw

Download all attachments as: .zip

Change History (8)

Changed 8 years ago by p-bro

Attachment: ufraw.main.log added

main.log from ufraw build directory.

Changed 8 years ago by p-bro

Attachment: ufraw.install added

stdout from port install -d ufraw

comment:1 Changed 8 years ago by mko0815@…

I have the same problem after migrating from Yosemite. Migration went smooth for me, except that I had to apply a proposed patch to the qt5-mac package.

Ufraw fails to build with error :

 uf_gtk.cc:172:9: error: use of undeclared identifier 'CMGetProfileByAVID'
        CMGetProfileByAVID(monitor, &prof);

All of my other ports build successfully, i.e. I did not suffer any broken package during migration except qt5-mac. Ufraw is the last one I wanted to build...

Last edited 8 years ago by mko0815@… (previous) (diff)

comment:2 Changed 8 years ago by dbevans (David B. Evans)

The undeclared identifiers are deprecated ColorSync API items that have been removed from ApplicationServices in 10.11. See ColorSyncDeprecated.h under https://developer.apple.com/library/mac/releasenotes/General/APIDiffsMacOSX10_11/Objective-C/ApplicationServices.html. No simple work around available AFAICT.

Forwarding this upstream to the ufraw developers who need rewrite the offending code to avoid using the removed API items.

comment:3 Changed 8 years ago by dbevans (David B. Evans)

Cc: devans@… removed
Owner: changed from macports-tickets@… to devans@…
Status: newassigned
Summary: ufraw @0.22: Cannot (re-)build on 10.11.1ufraw @0.22: Cannot (re-)build on 10.11.1 using gtk2 +quartz
Version: 2.3.4

Note that this problem is specific to builds of ufraw using gtk2 +quartz. Builds using gtk2 +x11 are not effected.

comment:4 Changed 8 years ago by p-bro

This would explain why I was able to build ufraw initially - I somehow had gtk2 +x11 installed, later got gtk2 +quartz and removed the x11 variant with port uninstall inactive (which then broke ufraw, I suppose)

Unfortunately this is now a showstopper for gimp +quartz - unless one can avoid this whole mess somehow.

comment:5 Changed 8 years ago by dbevans (David B. Evans)

Agreed. After looking things over for a while, I have an idea on how to proceed and will be working on that later this evening. So no ones giving up as yet.

comment:6 Changed 8 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: assignedclosed

Fix committed in r142168. ufraw now has +x11 +quartz variants to keep track of which version is being built and the +quartz variant now builds properly on all supported os versions including 10.11. Successfully tested both ufraw stand alone and the gimp plugin on El Capitan 10.11.2 public beta. Default variant is still +x11 so if you are building with gtk2 +quartz be sure to install ufraw +quartz to match.

Note: See TracTickets for help on using tickets.