zyn-fusion-issues icon indicating copy to clipboard operation
zyn-fusion-issues copied to clipboard

Use newer version of pugl to drop python2 dependency

Open dvzrv opened this issue 6 years ago • 8 comments

As python2 is soon EOL, it would be wise to upgrade to a newer version of pugl, where the included waf version is compatible with python >= 3.6.

dvzrv avatar Apr 18 '19 11:04 dvzrv

How much work is that?

bonecountysheriff avatar Dec 05 '20 18:12 bonecountysheriff

Medium? Switching to a newer pugl would be good, though I could see there being some possible multi-platform issues (specifically thinking MacOS here). Grabbing the version out of DPF would perhaps be sufficient as that's going to see some more testing on that platform (I'd think). Additionally the ideal situation is to throw the waf bits out the window. Personally I'm not a huge waf fan and removing one of the build systems involved in deploying the new UI would be a good quality of life improvement.

Are you interested in trying to sort out the PUGL stuff?

fundamental avatar Dec 05 '20 18:12 fundamental

Maybe. What's a good starting point?

bonecountysheriff avatar Dec 05 '20 18:12 bonecountysheriff

github.com/mruby-zest/pugl should be the repo for PUGL. You can safely eliminate:

  • cairo (so those bits can be removed)
  • references to system openGL headers (we use headers generated to work with a specific OpenGL2.1+framebuffer version https://github.com/mruby-zest/mruby-nanovg/blob/master/src/gl_core.3.2.h and https://github.com/mruby-zest/mruby-nanovg/blob/master/src/gl_core.3.2.c )
  • Drag and drop support is partially implemented and to the best of my knowledge hasn't seen much use
  • dynamic builds are not needed
  • C++ wrapper is unused
  • Documentation and pugl tests are unused

Hopefully that's enough things that can be stripped off that the waf file can be translated down into a much more basic makefile with likely different ways of generating the static lib per platform.

fundamental avatar Dec 05 '20 18:12 fundamental

Also for building the UI, feel free to use these docker containers as either a general reference or as a way of running the build https://github.com/zynaddsubfx/zyn-fusion-build/tree/master/linux-system-testers I think I had them setup with development in mind (i.e. they copy a local repo into the container rather than cloning a version you don't control).

fundamental avatar Dec 05 '20 18:12 fundamental

Thanks for the info. MacOS would be a problem though. They got like a thousand firewalls.

bonecountysheriff avatar Dec 05 '20 18:12 bonecountysheriff

@kurtbusch420 Just checking in: Are you looking at this, or I should try to prioritize this issue myself?

fundamental avatar Dec 27 '20 18:12 fundamental

Just spent some time on the issue. Turns out this is amazingly trivial to resolve for Linux. I might leave the python2 dep for cross platform builds until I can sanity check them, though I'd expect windows to be similarly easy to work through.

fundamental avatar Jan 16 '21 20:01 fundamental