diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d42c0d36..caa54a33 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -93,15 +93,10 @@ jobs: sed -i '/^Types/ s/deb/& deb-src/' /etc/apt/sources.list.d/debian.sources apt-get update apt-get upgrade -y - apt-get install -y git gcc clang gdb xwayland meson pkgconf - apt-get build-dep -y libwlroots-0.20-dev - # Debian Testing temporarily removed labwc due to wlroots 0.20 transition - #apt-get build-dep -y labwc - # Install the deps manually - apt-get install -y libxml2-dev liblzma-dev libglib2.0-dev \ - libcairo2-dev libpango1.0-dev libinput-dev libpng-dev \ - librsvg2-dev wayland-protocols libxkbcommon-dev libdrm-dev \ - scdoc gettext libwlroots-0.20-dev libsfdo-dev + apt-get install -y git gcc clang gdb xwayland + apt-get build-dep -y labwc + apt-get build-dep -y libwlroots-0.19-dev + apt-get build-dep -y libxkbcommon-dev - name: Install FreeBSD dependencies if: matrix.name == 'FreeBSD' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c1c70b47..1a2251ad 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,8 +19,7 @@ - [6. Unit Tests](#unit-tests) - [7. Submitting Patches](#submitting-patches) - [8. Native Language Support](#native-language-support) -- [9. Tools](#tools) -- [10. Upversion](#upversion) +- [9. Upversion](#upversion) # How to Contribute @@ -473,29 +472,6 @@ This generates a new pot file at `po/labwc.pot` 3. Copy the header from the original `labwc.pot` to the new one, keeping the newly generated dates, check for sanity and commit. -# Tools - -We permit LLM and AI-assisted tooling, but only on the basis that humans remain -fully accountable. Contributors must use an `Assisted-by:` tag in the commit -logs if AI tools generated or significantly assisted with any part of the code -or documentation. Humans retain full legal and technical responsibility for the -resulting work, including any defects. - -We have received Pull Requests where the submitter clearly did not understand -the code, could not reason about it, and would be unable to maintain it. This -is not acceptable. - -Any AI-generated code contribution must be compatible with the GPL-2.0-only -license. - -While LLMs can be useful for triage, review, clean-up, API refactoring and -similar tasks, we strongly discourage AI slop. Code review effort is usually the -project's primary bottleneck, and submitting unreviewed, AI-generated garbage -wastes reviewer time, slows development, and harms the overall health of the -project. Likewise, AI-generated commit messages and AI-written text in issues -and discussions are strongly discouraged and may be treated as sabotage on this -basis. - # Upversion It is generally only the lead-maintainer who will upversion, but in order diff --git a/NEWS.md b/NEWS.md index 845451a1..ad71a1df 100644 --- a/NEWS.md +++ b/NEWS.md @@ -9,9 +9,7 @@ The format is based on [Keep a Changelog] | Date | All Changes | wlroots version | lines-of-code | |------------|---------------|-----------------|---------------| -| 2026-06-15 | [0.20.1] | 0.20.1 | 28337 | | 2026-05-25 | [0.20.0] | 0.20.1 | 28313 | -| 2026-06-11 | [0.9.8] | 0.19.3 | 29284 | | 2026-04-17 | [0.9.7] | 0.19.2 | 29277 | | 2026-03-15 | [0.9.6] | 0.19.2 | 29271 | | 2026-03-04 | [0.9.5] | 0.19.2 | 29251 | @@ -47,9 +45,7 @@ The format is based on [Keep a Changelog] | 2021-03-05 | [0.1.0] | 0.12.0 | 4627 | [unreleased]: NEWS.md#unreleased -[0.20.1]: NEWS.md#0201---2026-06-15 [0.20.0]: NEWS.md#0200---2026-05-25 -[0.9.8]: NEWS.md#098---2026-06-11 [0.9.7]: NEWS.md#097---2026-04-17 [0.9.6]: NEWS.md#096---2026-03-15 [0.9.5]: NEWS.md#095---2026-03-04 @@ -88,35 +84,6 @@ The format is based on [Keep a Changelog] [unreleased-commits] -## Notes on wlroots-0.20 - -There are some regression warnings worth noting for the switch to wlroots 0.20: - -- lxqt-panel auto-hiding does not work with a panel size greater than 40 [#3600] - [wlroots-5392] -- Some Wine game windows disappear after alt-tab. It is not yet clear where the - bug is, but the issue manifests itself when running wlroots-0.20 [#3615] - [wlroots-4103] - -[wlroots-5392]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5392 -[wlroots-4103]: https://gitlab.freedesktop.org/wlroots/wlroots/-/work_items/4103 - -## 0.20.1 - 2026-06-15 - -[0.20.1-commits] - -This is a small bug fix release. - -### Fixed - -- Handle titles with no visible characters, for example the left-to-right mark - (‎) @Consolatis [#3630] -- Protect against SIGABRT when TTY switching in unusual circumstances by - ensuring that xdg-shell windows have sensible width and height before trying - to set size on configure. This protects against an edge case experienced when - switching between labwc on one TTY and Xfce on XOrg on another TTY. - @johanmalm @Tamaranch [#3617] - ## 0.20.0 - 2026-05-25 [0.20.0-commits] @@ -250,16 +217,6 @@ There are some regression warnings worth noting for the switch to wlroots 0.19: [wlroots-5098]:https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5098 [gtk-8792]: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8792 -## 0.9.8 - 2026-06-11 - -[0.9.8-commits] - -### Fixed - -- Handle titles with no visible characters @Consolatis [#3631] -- Save window position on initial placement to fix Raspberry Pi pygame SDL - XWayland window starting off-screen. @tokyo4j [#3433] [#3625] [#3616] - ## 0.9.7 - 2026-04-17 [0.9.7-commits] @@ -2813,10 +2770,8 @@ Compile with wlroots 0.12.0 and wayland-server >=1.16 ShowMenu [Keep a Changelog]: https://keepachangelog.com/en/1.0.0/ -[unreleased-commits]: https://github.com/labwc/labwc/compare/0.20.1...HEAD -[0.20.1-commits]: https://github.com/labwc/labwc/compare/0.20.0..0.20.1 +[unreleased-commits]: https://github.com/labwc/labwc/compare/0.20.0...HEAD [0.20.0-commits]: https://github.com/labwc/labwc/compare/0.9.5..0.20.0 -[0.9.8-commits]: https://github.com/labwc/labwc/compare/0.9.7...0.9.8 [0.9.7-commits]: https://github.com/labwc/labwc/compare/0.9.6...0.9.7 [0.9.6-commits]: https://github.com/labwc/labwc/compare/0.9.5...0.9.6 [0.9.5-commits]: https://github.com/labwc/labwc/compare/0.9.4...0.9.5 @@ -3268,7 +3223,6 @@ Compile with wlroots 0.12.0 and wayland-server >=1.16 [#2956]: https://github.com/labwc/labwc/pull/2956 [#2965]: https://github.com/labwc/labwc/pull/2965 [#2967]: https://github.com/labwc/labwc/pull/2967 -[#2968]: https://github.com/labwc/labwc/pull/2968 [#2970]: https://github.com/labwc/labwc/pull/2970 [#2971]: https://github.com/labwc/labwc/pull/2971 [#2972]: https://github.com/labwc/labwc/pull/2972 @@ -3363,7 +3317,6 @@ Compile with wlroots 0.12.0 and wayland-server >=1.16 [#3428]: https://github.com/labwc/labwc/pull/3428 [#3429]: https://github.com/labwc/labwc/pull/3429 [#3430]: https://github.com/labwc/labwc/pull/3430 -[#3433]: https://github.com/labwc/labwc/pull/3433 [#3439]: https://github.com/labwc/labwc/pull/3439 [#3440]: https://github.com/labwc/labwc/pull/3440 [#3441]: https://github.com/labwc/labwc/pull/3441 @@ -3390,14 +3343,4 @@ Compile with wlroots 0.12.0 and wayland-server >=1.16 [#3543]: https://github.com/labwc/labwc/pull/3543 [#3547]: https://github.com/labwc/labwc/pull/3547 [#3567]: https://github.com/labwc/labwc/pull/3567 -[#3576]: https://github.com/labwc/labwc/pull/3576 -[#3577]: https://github.com/labwc/labwc/pull/3577 -[#3581]: https://github.com/labwc/labwc/pull/3581 [#3595]: https://github.com/labwc/labwc/pull/3595 -[#3600]: https://github.com/labwc/labwc/pull/3600 -[#3615]: https://github.com/labwc/labwc/pull/3615 -[#3616]: https://github.com/labwc/labwc/pull/3616 -[#3617]: https://github.com/labwc/labwc/pull/3617 -[#3625]: https://github.com/labwc/labwc/pull/3625 -[#3630]: https://github.com/labwc/labwc/pull/3630 -[#3631]: https://github.com/labwc/labwc/pull/3631 diff --git a/README.md b/README.md index 4fa5c0e4..80796af7 100644 --- a/README.md +++ b/README.md @@ -153,7 +153,7 @@ Build dependencies include: - meson, ninja, gcc/clang - wayland-protocols -Disable xwayland with `meson setup -Dxwayland=disabled build/` +Disable xwayland with `meson -Dxwayland=disabled build/` For OS/distribution specific details see [wiki]. diff --git a/src/buffer.c b/src/buffer.c index a9fa717e..04ca4328 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -95,7 +95,6 @@ buffer_adopt_cairo_surface(cairo_surface_t *surface) buffer->surface = surface; buffer->data = cairo_image_surface_get_data(buffer->surface); - assert(buffer->data); buffer->format = DRM_FORMAT_ARGB8888; buffer->stride = cairo_image_surface_get_stride(buffer->surface); buffer->logical_width = width; @@ -108,12 +107,6 @@ buffer_adopt_cairo_surface(cairo_surface_t *surface) struct lab_data_buffer * buffer_create_cairo(uint32_t logical_width, uint32_t logical_height, float scale) { - if (!logical_width || !logical_height) { - wlr_log(WLR_ERROR, "Failed to create cairo buffer of %ux%u: dimensions must be > 0", - logical_width, logical_height); - return NULL; - } - /* Create an image surface with the scaled size */ cairo_surface_t *surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, @@ -149,7 +142,6 @@ buffer_create_from_data(void *pixel_data, uint32_t width, uint32_t height, buffer->logical_width = width; buffer->logical_height = height; buffer->data = pixel_data; - assert(buffer->data); buffer->format = DRM_FORMAT_ARGB8888; buffer->stride = stride; buffer->surface = cairo_image_surface_create_for_data( @@ -196,10 +188,6 @@ buffer_resize(struct lab_data_buffer *src_buffer, int width, int height, struct lab_data_buffer *buffer = buffer_create_cairo(width, height, scale); - if (!buffer) { - wlr_log(WLR_INFO, "Failed to resize buffer to %dx%d", width, height); - return NULL; - } cairo_t *cairo = cairo_create(buffer->surface); struct wlr_box container = { diff --git a/src/common/font.c b/src/common/font.c index 642f864d..5162d284 100644 --- a/src/common/font.c +++ b/src/common/font.c @@ -82,7 +82,6 @@ font_buffer_create(struct lab_data_buffer **buffer, int max_width, cairo_pattern_t *bg_pattern, double scale, bool use_markup) { if (string_null_or_empty(text)) { - *buffer = NULL; return; } @@ -92,13 +91,6 @@ font_buffer_create(struct lab_data_buffer **buffer, int max_width, height = computed_height; } - if (height <= 0 || width <= 0) { - wlr_log(WLR_INFO, "Refusing to create invisible font buffer of %dx%d", - width, height); - *buffer = NULL; - return; - } - *buffer = buffer_create_cairo(width, height, scale); if (!*buffer) { wlr_log(WLR_ERROR, "Failed to create font buffer"); diff --git a/src/scaled-buffer/scaled-font-buffer.c b/src/scaled-buffer/scaled-font-buffer.c index b85a79ff..c748c00c 100644 --- a/src/scaled-buffer/scaled-font-buffer.c +++ b/src/scaled-buffer/scaled-font-buffer.c @@ -29,7 +29,7 @@ _create_buffer(struct scaled_buffer *scaled_buffer, double scale) &self->font, self->color, bg_pattern, scale, self->use_markup); if (!buffer) { - wlr_log(WLR_INFO, "font_buffer_create() failed"); + wlr_log(WLR_ERROR, "font_buffer_create() failed"); } zfree_pattern(solid_bg_pattern); diff --git a/src/xdg.c b/src/xdg.c index ccba0de1..03035d63 100644 --- a/src/xdg.c +++ b/src/xdg.c @@ -621,24 +621,7 @@ xdg_toplevel_view_configure(struct view *view, struct wlr_box geo) if (geo.width != view->pending.width || geo.height != view->pending.height) { if (toplevel->base->initialized) { - /* - * geo.{width,height} are checked here to guard against - * an odd edge-case reported in #3608 which involves TTY - * switching between labwc and Xfce running on X.Org on - * another TTY. It is not yet clear what causes this, - * but hitting wlroots assert() is not great, so let's - * protect against it. - * - * Ref: - * - https://github.com/labwc/labwc/issues/3608 - */ - if (geo.width > 0 && geo.height > 0) { - serial = wlr_xdg_toplevel_set_size(toplevel, - geo.width, geo.height); - } else { - wlr_log(WLR_ERROR, "cannot set size %dx%d", - geo.width, geo.height); - } + serial = wlr_xdg_toplevel_set_size(toplevel, geo.width, geo.height); } else { /* * This may happen, for example, when a panel resizes because a