project-repo / cagebreak

Cagebreak: A Wayland Tiling Compositor Inspired by Ratpoison
MIT License
286 stars 19 forks source link

Fails to build with wlroots 0.16.2 #65

Closed jbeich closed 11 months ago

jbeich commented 11 months ago

Despite what the following claims https://github.com/project-repo/cagebreak/blob/61fb97b070b65335bab573daed4caeab97ad9a46/meson.build#L58 building with wlroots 0.16 fails with

cagebreak.c:371:54: error: too many arguments to function call, expected single argument 'display', have 2 arguments
        backend = wlr_backend_autocreate(server.wl_display, &server.session);
                  ~~~~~~~~~~~~~~~~~~~~~~                    ^~~~~~~~~~~~~~~
keybinding.c:1628:3: error: implicit declaration of function 'wlr_cursor_set_xcursor' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                wlr_cursor_set_xcursor(seat->cursor, seat->xcursor_manager,
                ^
output.c:168:40: error: too many arguments to function call, expected single argument 'scene_output', have 2 arguments
        wlr_scene_output_commit(scene_output, NULL);
        ~~~~~~~~~~~~~~~~~~~~~~~               ^~~~
seat.c:212:9: error: implicit declaration of function 'wlr_scene_surface_try_from_buffer' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                                    wlr_scene_surface_try_from_buffer(
                                    ^
xdg_shell.c:30:7: error: implicit declaration of function 'wlr_xdg_surface_try_from_wlr_surface' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                    wlr_xdg_surface_try_from_wlr_surface(popup->parent);
                    ^
xwayland.c:184:43: error: no member named 'map' in 'struct wlr_surface::(unnamed at /usr/local/wlroots016/include/wlr/types/wlr_compositor.h:145:2)'
        wl_signal_add(&xsurface->surface->events.map, &xwayland_view->map);
                       ~~~~~~~~~~~~~~~~~~~~~~~~~ ^

Moreover, wlroots doesn't break API during patch-level releases like 0.15.0 vs. 0.15.1 or 0.16.1 vs. 0.16.2. The strict check is fine for validation but may cause unnecessary bustage downstream if wlroots 0.17.1 is released.

project-repo commented 11 months ago

Hi jbeich

we are sorry. We were busy updating cagebreak to wlroots 0.17.0 as quickly as possible since several users reported issues regarding the mismatched versions.

Our meson.build is indeed not correct in this respect.

would ['>=0.17.0', '< 0.18.0'] work for you?

In that case we might complete another patch release tomorrow to fix this.

cheers and sorry for the inconvenience project-repo

jbeich commented 11 months ago

would ['>=0.17.0', '< 0.18.0'] work for you?

Yep, matches downstream patch.

project-repo commented 11 months ago

Hi jbeich

m̀eson.build is adjusted in 2.2.3.

We have also added a check to our procedure, so that this won't reoccur.

cheers and thank you for pointing this out project-repo