[3dprinter-general] Printrun dependencies issue

Gregor Riepl onitake at gmail.com
Mon Aug 21 12:13:35 BST 2023

>> Are you working to fix the issue, and do you need help?
>> I'm not familiar with either printrun or pyglet, but I can offer some=20
>> Python and OGL experience.
> I wasn't but I guess I'll need to make this a priority now. I'm not
> familiar with pyglet either to be honest so any help will be
> welcomed. Though it is something that needs to be dealt with upstream
> first really.

I started working on porting printrun to pyglet 2 / modern OpenGL.
As you might have guessed, it's a pretty large task due to the 
fundamental differences between OpenGL fixed function and programmable 

pyglet 2 has a built-in render pipeline that can be used as-is, 
customized or completely overridden. Each approach has different 
advantages and limitations. The current pipeline in printrun is mostly 
custom (with respect to pyglet), so I think a hybrid approach would be 
most appropriate.

Other options:
* Completely refactor printrun and rely on pyglet 2 features only. It 
would simplify the code greatly, but reduce flexibility, and I'm not 
sure if it's possible at all.
* Use an OpenGL compatibility profile and rely on the emulated fixed 
function pipeline. This would require the least amount of changes on the 
existing render code, but I'm not sure if it will play well with pyglet 
2. Also, the required functionality is only available up to OpenGL 3.0, 
and was completely left out of OpenGL ES 2+. I'd only take this approach 
as a temporary workaround until printrun is completely ported.

> A manual removal from testing solves a) and an RC bug would solve b) but
> feels a bit over the top to me because the package is still usable just
> some features don't work.

What about removing the features in printrun that require pyglet 1?
As far as I can see, this only affects pronterface. printcore and 
pronsole would still be usable, so how about just not installing 
pronterface and removing the pyglet 1 dependency from the Debian package?

This would keep the package in Debian and "solve" the compatibility 
issue until pyglet 2 support is available.

More information about the 3dprinter-general mailing list