Opened 15 years ago

Closed 15 years ago

#20666 closed enhancement (wontfix)

py26-matplotlib 0.99.0 - Set CocoaAgg backend as variant

Reported by: mdippery@… Owned by: skymoo (Adam Mercer)
Priority: Normal Milestone:
Component: ports Version: 1.7.1
Keywords: Cc:
Port: py26-matplotlib

Description

py26-matplotlib automatically builds with the CocoaAgg backend, which requires a large number of dependencies related to the PyObjC bridge, which aren't necessary if you're doing basic work with py26-matplotlib and don't want to use the CocoaAgg backend at all. In keeping with the port's convention, this patch creates a variant, "cocoa", that enables the CocoaAgg backend.

This patch also removes py26-configobj as a dependency, since it does not seem to be an actual dependency in this version of matplotlib.

Attachments (3)

Portfile.diff (1.3 KB) - added by mdippery@… 15 years ago.
A new version of the Portfile with changes from comments incorporated
patch-setup.diff (259 bytes) - added by mdippery@… 15 years ago.
A patch file for the existing patch-setup.cfg.diff. Should be applied to files/patch-setup.cfg.diff
patch-disable_optional_deps.diff (5.6 KB) - added by mdippery@… 15 years ago.
A replacement for the existing patch-disable_optional_deps.diff

Download all attachments as: .zip

Change History (10)

comment:1 Changed 15 years ago by skymoo (Adam Mercer)

Just removing the dependencies is not really sufficient as if cocoa bindings are installed the CocoaAgg backend will be built regardless of whether the cocoa variant is specified or not, the building of the the cocoa backend will need to be disabled unless the variant is specified. This is done for the other backend variants and it also needs to be done for the cocoa backend if it is going to be made a variant. See the various patches that are applied.

comment:2 Changed 15 years ago by mdippery@…

Are the Objective-C bridge dependencies necessary, then? I built and ran matplotlib without them, using the patch to the Portfile as given above.

comment:3 Changed 15 years ago by skymoo (Adam Mercer)

Only if you want the CocoaAgg backend. But my point is that if you have py26-cocoa, and friends, installed the CocoaAgg backend will be built regardless of whether the cocoa variant is specified. Therefore if you then remove the cocoa bindings port will not complain as they are not marked as dependencies for matplotlib but then the CocoaAgg backend will not longer function as the bindings will have been removed. If you want the CocoaAgg backend to be a variant then it needs to be disabled like the other interactive backends are.

Changed 15 years ago by mdippery@…

Attachment: Portfile.diff added

A new version of the Portfile with changes from comments incorporated

Changed 15 years ago by mdippery@…

Attachment: patch-setup.diff added

A patch file for the existing patch-setup.cfg.diff. Should be applied to files/patch-setup.cfg.diff

Changed 15 years ago by mdippery@…

A replacement for the existing patch-disable_optional_deps.diff

comment:4 Changed 15 years ago by skymoo (Adam Mercer)

Owner: changed from macports-tickets@… to ram@…
Status: newassigned

Thanks, I'll take a look at these. Initially they look OK.

comment:5 Changed 15 years ago by skymoo (Adam Mercer)

Cc: ram@… removed

comment:6 Changed 15 years ago by skymoo (Adam Mercer)

Looking at patch-setup.diff, this disables the MacOSX backend not the CocoaAgg backend. The reason the CocoaAgg backend is on by default is that I haven't found a way to disable it.

comment:7 Changed 15 years ago by skymoo (Adam Mercer)

Resolution: wontfix
Status: assignedclosed

Can't find a way to disable CocoaAgg backend.

Note: See TracTickets for help on using tickets.