Opened 11 years ago

Last modified 10 years ago

#40207 closed enhancement

py-pyface: use proper variant(s) for wxPython — at Version 11

Reported by: jjstickel (Jonathan Stickel) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: wxwidgets haspatch Cc: mojca@…, Peter.Danecek@…
Port: py-pyface

Description (last modified by mojca (Mojca Miklavec))

Removing wx variant from py-pyface until wxwidgets/wxpython issues get sorted out. See #38375. Patch attached. Note that py-pyface is a graphical backend dependency for several Enthought ports including py-mayavi.

See also #40333.

Change History (12)

Changed 11 years ago by jjstickel (Jonathan Stickel)

Attachment: py-pyface_Portfile.diff added

comment:1 Changed 11 years ago by mojca (Mojca Miklavec)

Do you need a revision increase for this?

comment:2 Changed 11 years ago by jjstickel (Jonathan Stickel)

Hmm, hadn't thought about it. I don't think so -- if someone is successfully using the wx variant, they might as well continue. But maybe that would break when you commit your changes to the wx ports, so maybe yes. Your call.

comment:3 Changed 11 years ago by mojca (Mojca Miklavec)

Just to clarify things a bit ...

My main question is: do you plan to keep support for wxWidgets in the future?

If you plan to remove support for wxWidgets, I can easily commit the change now.

But if you would like to keep the option, there is no urgency to remove the option just for the sake of easier transition (even though I can also do that if you are ok with it and if you have no time to test). If you plan to keep support, the best thing to do would be to test the port now. The main question is whether the port is compatible with wxWidgets 2.9. In case it is, the situation is trivial - the dependency gets switched to py${python.version}-wxpython-3.0 and that's all. In case it is not, an additional variant might be needed to distinguish between dependencies on wxWidgets 2.8 and wxGTK 2.8.

There is one more thing I noticed now. All the port does is depend on wxpython. Shouldn't the port disable wxpython support when wxpython is installed, but the variant is not selected?

comment:4 in reply to:  3 Changed 11 years ago by jjstickel (Jonathan Stickel)

Replying to mojca@…:

Just to clarify things a bit ...

My main question is: do you plan to keep support for wxWidgets in the future? The main question is whether the port is compatible with wxWidgets 2.9. In case it is, the situation is trivial - the dependency gets switched to py${python.version}-wxpython-3.0 and that's all. In case it is not, an additional variant might be needed to distinguish between dependencies on wxWidgets 2.8 and wxGTK 2.8.

From what I can tell, and what I experienced the last time I tested, Enthought software is not compatible with wx-2.9. This may change with 3.0, but I don't know for sure. If it does work with 3.0, then the variant should exist.

There is one more thing I noticed now. All the port does is depend on wxpython. Shouldn't the port disable wxpython support when wxpython is installed, but the variant is not selected?

Yes, you are right about this. If wxpython is around, py-pyface tries to use it even if pyqt4 is installed. This should be fixed, but I don't have much time to investigate.

comment:5 Changed 11 years ago by mojca (Mojca Miklavec)

Resolution: fixed
Status: newclosed
Version: 2.2.0

r110279. The wxWidgets transition is done. Feel free to submit whatever patch is needed to keep the port working in the desired way.

comment:6 Changed 11 years ago by su1shi4fu3@…

Resolution: fixed
Status: closedreopened

Hi, I just commented in the previously removed "wx" variant like this:

 variant wx description {Use wxWidgets backend} {
     if {$subport != $name} {
         depends_lib-append      port:py${python.version}-wxpython-2.8
     }
 }

(Didn't change anything but the commenting...) because I needed the port in the "wx" variant to build py27-mayavi. This might be of general interest.

comment:7 Changed 11 years ago by mojca (Mojca Miklavec)

  • Do you have any thoughts about #40333?
  • Are you willing to investigate how to avoid opportunistic use of wxPython? (Even when wx is disabled and you have wxPython installed, it will use wxPython)
  • Can you please tell me how to test this wx?
  • I wanted to ask if wxPython 2.9 works, but I saw https://github.com/enthought/traitsui/issues/106

I have no problem uncommenting this again, you only need to be aware that until someone suggests a proper solution for #40333, this wx option will be conditionally broken.

comment:8 in reply to:  7 Changed 11 years ago by jjstickel (Jonathan Stickel)

Replying to mojca@…:

  • Do you have any thoughts about #40333?
  • Are you willing to investigate how to avoid opportunistic use of wxPython? (Even when wx is disabled and you have wxPython installed, it will use wxPython)

Sorry, I am very busy at work and at home right now, and don't have the time to dig deep into these issues.

  • Can you please tell me how to test this wx?

I am not quite sure what you are asking. To test pyXX-pyface, I usually also install pyXX-mayavi and run it.

Right, wxpython-2.9 does not work with pyface (at least not yet). Enought developers seem to have put this as a low priority, considering that pyqt4 works well.

I have no problem uncommenting this again, you only need to be aware that until someone suggests a proper solution for #40333, this wx option will be conditionally broken.

Fine with me, too. At a minimum, a message could be displayed about using compatible variants for wxwidgets/wxpython.

comment:9 Changed 11 years ago by petrrr

Cc: Peter.Danecek@… added

Cc Me!

comment:10 Changed 10 years ago by mojca (Mojca Miklavec)

comment:11 Changed 10 years ago by mojca (Mojca Miklavec)

Description: modified (diff)
Summary: remove wx variant from py-pyfacepy-pyface: use proper variant(s) for wxPython
Note: See TracTickets for help on using tickets.