When building from the AUR with GCC-14, pywm will fail as it asks for wlroots v0.16, which fails to build with a "calloc sizes specified with sizeof in the earlier argument and not the later (-Werror=calloc-transposed-args)".
I think that was fixed on wlroots v0.17.2.
I managed to build using GCC-13, but maybe updating it to use more recent wlroots 0.17.3 or 0.18 instead would be better.
I wanted to test that before opening an issue, but I don't really know how to change submodule version, but I'll try to figure it out in the meantime. And if you need anything I'd be glad to help in any way I can!
Looks like it will need to be a help, changing submodule version if you are compiling it through pip involves cloning the pywm repo, going to
/subprojects/wlroots/
runninggit checkout master
and thenpip3 install --user --editable .
to installI tried this however, I got a massive error.
Yeah, here too. One of the first messages were about a wlr_output_damage type include, I looked up and this was removed from wlroots a year ago (9ef98452). So, updating wlroots I think might require some changes to pywm? I'll have pretty much all day tomorrow to try and figure something out. Also, I tried both
checkout master
and alsocheckout tags/0.17.3
, I think they gave the same errors. But should I focus on master (v 0.18.0-dev) or the more stable 0.17.3?
Another error building pywm subproject/wlroots/ with recent libavcodec (This is against
libavcodec-free-devel-6.1.1-3.fc39.x86_64
headers):../examples/dmabuf-capture.c:524:33: error: ‘frame_number’ is deprecated [-Werror=deprecated-declarations] 524 | ctx->avctx->frame_number, get_fifo_size(&ctx->vid_frames)); | ^~~
It's been fixed by https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/8db0d8289087d9e63438e01f810ef01d82170eb1 (included in wlroots tag 0.17.0 and later).
However that's for
examples/dmabuf-capture
and I'm not sure we really need the wlroots examples to build pywm.
Just to give some quick feedback. I've been trying to bump pywm to latest wlroots version. They released 0.18.0 recently. Big problem is this is way out of my league. But it's been fun to give it a try and I'll keep on it whenever I can.
So, following this sway commit Use wlr_damage_ring I replaced wlr_output_damage with the new wlr_damage_ring.
Lots of incomplete definition of pointer errors that I think were because those event structs were renamed uniformize events name, so I renamed them accordingly.
Currently I'm trying to fix some functions whose arguments changed, like some that needed no arg but now requires a wl_display. Still failing to build it, though...
I'm also still trying to figure out how wlroots and pywm works... which right now tbh I feel I'm just starting to get it... but well, last month I didn't even know what damage was in this context, so I got a lot to figure out still