Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package wayback for openSUSE:Factory checked in at 2026-04-13 23:21:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wayback (Old) and /work/SRC/openSUSE:Factory/.wayback.new.21863 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wayback" Mon Apr 13 23:21:48 2026 rev:3 rq:1346491 version:0.3 Changes: -------- --- /work/SRC/openSUSE:Factory/wayback/wayback.changes 2025-12-26 14:37:39.162802371 +0100 +++ /work/SRC/openSUSE:Factory/.wayback.new.21863/wayback.changes 2026-04-13 23:23:06.262566800 +0200 @@ -1,0 +2,19 @@ +Sat Apr 11 23:40:41 UTC 2026 - Stefan Dirsch <[email protected]> + +- 0001-wayback-session-fix-sesscmd-handling.patch + 0002-CI-Drop-Arch-Linux-build.patch + 0003-CI-fedora-Force-repos-and-gpg-keys-to-be-updated.patch + 0004-Wayback-is-now-in-Debian.patch + 0005-common-wayback_log-add-support-for-setting-verbosity.patch + 0006-wayback-compositor-add-support-for-setting-verbosity.patch + 0007-Xwayback-properly-handle-and-parse-verbose-option.patch + 0008-Xwayback-coding-style-fixes.patch + 0009-build-allow-build-with-wlroots-0.20.patch + 0010-meson-Drop-support-for-wlroots-0.18.patch + 0011-meson-Simplify-wlroots-dependency-to-a-single-array.patch + 0012-CI-add-build-jobs-to-build-against-wlroots-0.20.patch + 0013-common-optparse-extract-optmatch-for-consistent-opti.patch + 0014-Xwayback-use-optmatch-in-the-argument-forwarding-loo.patch + * adding latest changes from git to match current wlroots + +------------------------------------------------------------------- New: ---- 0001-wayback-session-fix-sesscmd-handling.patch 0002-CI-Drop-Arch-Linux-build.patch 0003-CI-fedora-Force-repos-and-gpg-keys-to-be-updated.patch 0004-Wayback-is-now-in-Debian.patch 0005-common-wayback_log-add-support-for-setting-verbosity.patch 0006-wayback-compositor-add-support-for-setting-verbosity.patch 0007-Xwayback-properly-handle-and-parse-verbose-option.patch 0008-Xwayback-coding-style-fixes.patch 0009-build-allow-build-with-wlroots-0.20.patch 0010-meson-Drop-support-for-wlroots-0.18.patch 0011-meson-Simplify-wlroots-dependency-to-a-single-array.patch 0012-CI-add-build-jobs-to-build-against-wlroots-0.20.patch 0013-common-optparse-extract-optmatch-for-consistent-opti.patch 0014-Xwayback-use-optmatch-in-the-argument-forwarding-loo.patch ----------(New B)---------- New: - 0001-wayback-session-fix-sesscmd-handling.patch 0002-CI-Drop-Arch-Linux-build.patch New:- 0001-wayback-session-fix-sesscmd-handling.patch 0002-CI-Drop-Arch-Linux-build.patch 0003-CI-fedora-Force-repos-and-gpg-keys-to-be-updated.patch New: 0002-CI-Drop-Arch-Linux-build.patch 0003-CI-fedora-Force-repos-and-gpg-keys-to-be-updated.patch 0004-Wayback-is-now-in-Debian.patch New: 0003-CI-fedora-Force-repos-and-gpg-keys-to-be-updated.patch 0004-Wayback-is-now-in-Debian.patch 0005-common-wayback_log-add-support-for-setting-verbosity.patch New: 0004-Wayback-is-now-in-Debian.patch 0005-common-wayback_log-add-support-for-setting-verbosity.patch 0006-wayback-compositor-add-support-for-setting-verbosity.patch New: 0005-common-wayback_log-add-support-for-setting-verbosity.patch 0006-wayback-compositor-add-support-for-setting-verbosity.patch 0007-Xwayback-properly-handle-and-parse-verbose-option.patch New: 0006-wayback-compositor-add-support-for-setting-verbosity.patch 0007-Xwayback-properly-handle-and-parse-verbose-option.patch 0008-Xwayback-coding-style-fixes.patch New: 0007-Xwayback-properly-handle-and-parse-verbose-option.patch 0008-Xwayback-coding-style-fixes.patch 0009-build-allow-build-with-wlroots-0.20.patch New: 0008-Xwayback-coding-style-fixes.patch 0009-build-allow-build-with-wlroots-0.20.patch 0010-meson-Drop-support-for-wlroots-0.18.patch New: 0009-build-allow-build-with-wlroots-0.20.patch 0010-meson-Drop-support-for-wlroots-0.18.patch 0011-meson-Simplify-wlroots-dependency-to-a-single-array.patch New: 0010-meson-Drop-support-for-wlroots-0.18.patch 0011-meson-Simplify-wlroots-dependency-to-a-single-array.patch 0012-CI-add-build-jobs-to-build-against-wlroots-0.20.patch New: 0011-meson-Simplify-wlroots-dependency-to-a-single-array.patch 0012-CI-add-build-jobs-to-build-against-wlroots-0.20.patch 0013-common-optparse-extract-optmatch-for-consistent-opti.patch New: 0012-CI-add-build-jobs-to-build-against-wlroots-0.20.patch 0013-common-optparse-extract-optmatch-for-consistent-opti.patch 0014-Xwayback-use-optmatch-in-the-argument-forwarding-loo.patch New: 0013-common-optparse-extract-optmatch-for-consistent-opti.patch 0014-Xwayback-use-optmatch-in-the-argument-forwarding-loo.patch * adding latest changes from git to match current wlroots ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wayback.spec ++++++ --- /var/tmp/diff_new_pack.BCIzyb/_old 2026-04-13 23:23:08.390654599 +0200 +++ /var/tmp/diff_new_pack.BCIzyb/_new 2026-04-13 23:23:08.414655590 +0200 @@ -24,10 +24,24 @@ Group: Development/Libraries/C and C++ URL: https://gitlab.freedesktop.org/wayback/wayback Source: https://gitlab.freedesktop.org/wayback/wayback/-/archive/%version/wayback-%version.tar.gz +Patch1: 0001-wayback-session-fix-sesscmd-handling.patch +Patch2: 0002-CI-Drop-Arch-Linux-build.patch +Patch3: 0003-CI-fedora-Force-repos-and-gpg-keys-to-be-updated.patch +Patch4: 0004-Wayback-is-now-in-Debian.patch +Patch5: 0005-common-wayback_log-add-support-for-setting-verbosity.patch +Patch6: 0006-wayback-compositor-add-support-for-setting-verbosity.patch +Patch7: 0007-Xwayback-properly-handle-and-parse-verbose-option.patch +Patch8: 0008-Xwayback-coding-style-fixes.patch +Patch9: 0009-build-allow-build-with-wlroots-0.20.patch +Patch10: 0010-meson-Drop-support-for-wlroots-0.18.patch +Patch11: 0011-meson-Simplify-wlroots-dependency-to-a-single-array.patch +Patch12: 0012-CI-add-build-jobs-to-build-against-wlroots-0.20.patch +Patch13: 0013-common-optparse-extract-optmatch-for-consistent-opti.patch +Patch14: 0014-Xwayback-use-optmatch-in-the-argument-forwarding-loo.patch BuildRequires: c++_compiler BuildRequires: meson BuildRequires: pkg-config -BuildRequires: wlroots-devel >= 0.19 +BuildRequires: wlroots-devel >= 0.20 BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-cursor) BuildRequires: pkgconfig(wayland-egl) ++++++ 0001-wayback-session-fix-sesscmd-handling.patch ++++++ >From 2d6ec1cd496c57616fbb4ee257b9be6784e86a89 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz <[email protected]> Date: Wed, 31 Dec 2025 14:16:29 -0500 Subject: [PATCH 01/14] wayback-session: fix -sesscmd handling Signed-off-by: Yaakov Selkowitz <[email protected]> --- wayback-session/wayback-session.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wayback-session/wayback-session.c b/wayback-session/wayback-session.c index 3568d9f..e220bce 100644 --- a/wayback-session/wayback-session.c +++ b/wayback-session/wayback-session.c @@ -63,7 +63,7 @@ int main(int argc, char *argv[]) const struct optcmd opts[] = { { .name = "-sesscmd", .description = "run custom session command", - .flag = OPT_NOFLAG, + .flag = OPT_OPERAND, .ignore = false }, { .name = "-showconfig", .description = "alias to -version", -- 2.51.0 ++++++ 0002-CI-Drop-Arch-Linux-build.patch ++++++ >From 90a8b0751686632b274506ac9ff047b1bed61f85 Mon Sep 17 00:00:00 2001 From: Neal Gompa <[email protected]> Date: Thu, 12 Feb 2026 05:14:27 -0500 Subject: [PATCH 02/14] CI: Drop Arch Linux build This has been failing for quite some time on issues we cannot fix. Moreover, it is effectively a duplicate of what the Fedora Rawhide image provides. --- .gitlab-ci.yml | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7905e3c..688fa55 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -37,28 +37,6 @@ alpine: - branches - merge_requests -arch: - image: ghcr.io/archlinux/archlinux:base-devel - stage: build - cache: - key: pacman-cache - paths: - - pacman-cache/ - script: | - pacman --cachedir=`pwd`/pacman-cache -Syu --needed --noconfirm \ - libxkbcommon \ - meson \ - wayland \ - wayland-protocols \ - wlroots0.19 \ - xorg-xwayland \ - scdoc - meson setup --fatal-meson-warnings builddir/ -Dgenerate_manpages=enabled - meson compile -C builddir/ -v - only: - - branches - - merge_requests - fedora: image: quay.io/fedora/fedora:rawhide stage: build -- 2.51.0 ++++++ 0003-CI-fedora-Force-repos-and-gpg-keys-to-be-updated.patch ++++++ >From dc140d7512ca3307b59aa8f0f73838286e3bf07a Mon Sep 17 00:00:00 2001 From: Neal Gompa <[email protected]> Date: Thu, 12 Feb 2026 05:23:57 -0500 Subject: [PATCH 03/14] CI: fedora: Force repos and gpg keys to be updated The GitLab runner pull policy is keeping the images from being updated properly, which means we need to force it to do the right thing. --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 688fa55..59a0e18 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -45,6 +45,7 @@ fedora: paths: - dnf-cache/ script: | + dnf --setopt=cachedir=`pwd`/dnf-cache --assumeyes --nogpgcheck upgrade fedora-repos fedora-gpg-keys dnf --setopt=cachedir=`pwd`/dnf-cache --assumeyes install \ meson \ gcc \ -- 2.51.0 ++++++ 0004-Wayback-is-now-in-Debian.patch ++++++ >From 1bd155556bb023275746e3edf179bdc21611c16f Mon Sep 17 00:00:00 2001 From: Edward Betts <[email protected]> Date: Sat, 7 Feb 2026 11:17:06 +0000 Subject: [PATCH 04/14] Wayback is now in Debian --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 40b30db..a177d94 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ are still applicable to the latest code.*** - Alpine Linux: [`wayback`][alpine-pkg] (in `community` repo) - ALT Linux: [`wayback`][alt-pkg] - Arch Linux: [`wayback-x11-git`][aur-pkg] in the AUR +- Debian: [`wayback`][debian-pkg] - Fedora Linux: [`wayback`][fedora-pkg] - Gentoo GURU: [`gui-wm/wayback`][gentoo-guru] - Nixpkgs: [`wayback-x11`][nixpkgs-pkg] @@ -59,6 +60,7 @@ are still applicable to the latest code.*** [alpine-pkg]: https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/community/wayback [alt-pkg]: https://packages.altlinux.org/en/sisyphus/srpms/wayback/ [aur-pkg]: https://aur.archlinux.org/packages/wayback-x11-git +[debian-pkg]: https://packages.debian.org/experimental/wayback [fedora-pkg]: https://src.fedoraproject.org/rpms/wayback [gentoo-guru]: https://wiki.gentoo.org/wiki/Project:GURU/Information_for_End_Users [nixpkgs-pkg]: https://search.nixos.org/packages?channel=unstable&show=wayback-x11 -- 2.51.0 ++++++ 0005-common-wayback_log-add-support-for-setting-verbosity.patch ++++++ >From 179095d626c2a69f302e2402a4e39abaa49d451c Mon Sep 17 00:00:00 2001 From: Ferass El Hafidi <[email protected]> Date: Wed, 28 Jan 2026 12:16:24 +0000 Subject: [PATCH 05/14] common/wayback_log: add support for setting verbosity at runtime Signed-off-by: Ferass El Hafidi <[email protected]> --- common/wayback_log.c | 5 +++++ common/wayback_log.h | 1 + 2 files changed, 6 insertions(+) diff --git a/common/wayback_log.c b/common/wayback_log.c index f5715c6..6358ab3 100644 --- a/common/wayback_log.c +++ b/common/wayback_log.c @@ -68,6 +68,11 @@ void wayback_log_init(char *ctx, logging_use_color = false; } +void wayback_log_verbosity(enum wayback_log_level max_verbosity) +{ + logging_max_verbosity = max_verbosity; +} + void wayback_vlog(enum wayback_log_level verbosity, const char *format, va_list args) { logging_func(verbosity, format, args); diff --git a/common/wayback_log.h b/common/wayback_log.h index fee3271..0a35c5d 100644 --- a/common/wayback_log.h +++ b/common/wayback_log.h @@ -24,6 +24,7 @@ void wayback_log_init(char *ctx, enum wayback_log_level max_verbosity, wayback_log_func_t log_function); +void wayback_log_verbosity(enum wayback_log_level max_verbosity); void wayback_vlog(enum wayback_log_level verbosity, const char *format, va_list args); void wayback_log(enum wayback_log_level verbosity, const char *format, ...); -- 2.51.0 ++++++ 0006-wayback-compositor-add-support-for-setting-verbosity.patch ++++++ >From 3302127d38d4c84a753fd4439ab769f5d865d548 Mon Sep 17 00:00:00 2001 From: Ferass El Hafidi <[email protected]> Date: Wed, 28 Jan 2026 12:18:37 +0000 Subject: [PATCH 06/14] wayback-compositor: add support for setting verbosity Signed-off-by: Ferass El Hafidi <[email protected]> --- wayback-compositor/wayback-compositor.c | 46 +++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/wayback-compositor/wayback-compositor.c b/wayback-compositor/wayback-compositor.c index 5ea49b5..4570cf5 100644 --- a/wayback-compositor/wayback-compositor.c +++ b/wayback-compositor/wayback-compositor.c @@ -785,14 +785,54 @@ static void wayback_wlr_vlog(enum wayback_log_level verbosity, const char *fmt, int main(int argc, char *argv[]) { - wlr_log_init(WLR_DEBUG, NULL); - wayback_log_init("wayback-compositor", LOG_INFO, wayback_wlr_vlog); + enum wayback_log_level wayback_log_verb = LOG_INFO; + enum wlr_log_importance wlr_log_verb = WLR_INFO; + if (argc == 4) { + // workaround errno being set to ESPIPE on startup? + errno = 0; + // set verbosity level + const long verbosity = strtol(argv[3], NULL, 10); + if (verbosity < 0 || verbosity > 20 || errno) { + wayback_log_init("wayback-compositor", wayback_log_verb, NULL); + if (errno) { + wayback_log(LOG_ERROR, "Failed to parse verbosity level: %s", strerror(errno)); + } else { + wayback_log(LOG_ERROR, "Verbosity level must be between 0 and 20"); + } + exit(EXIT_FAILURE); + } + + // verbosity levels subject to change + switch (verbosity) { + case 0: + wayback_log_verb = LOG_ERROR; + wlr_log_verb = WLR_ERROR; + break; + case 1: + case 2: + case 3: + wayback_log_verb = LOG_WARN; + wlr_log_verb = WLR_ERROR; + break; + case 4: + case 5: + wayback_log_verb = LOG_INFO; + wlr_log_verb = WLR_INFO; + break; + default: // case 6: + wayback_log_verb = LOG_DEBUG; + wlr_log_verb = WLR_DEBUG; + break; + } + } + wlr_log_init(wlr_log_verb, NULL); + wayback_log_init("wayback-compositor", wayback_log_verb, wayback_wlr_vlog); if (argc < 3) { wayback_log(LOG_INFO, "Wayback <https://wayback.freedesktop.org/> X.Org compatibility layer"); wayback_log(LOG_INFO, "Version %s", WAYBACK_VERSION); - wayback_log(LOG_INFO, "Usage: %s <socket xwayback> <socket xwayland>", argv[0]); + wayback_log(LOG_INFO, "Usage: %s <socket xwayback> <socket xwayland> [verbosity]", argv[0]); exit(EXIT_FAILURE); } -- 2.51.0 ++++++ 0007-Xwayback-properly-handle-and-parse-verbose-option.patch ++++++ >From 8ffb4e5786f1e7ac7f1c7ada862f3480d378156f Mon Sep 17 00:00:00 2001 From: Ferass El Hafidi <[email protected]> Date: Wed, 28 Jan 2026 12:19:34 +0000 Subject: [PATCH 07/14] Xwayback: properly handle and parse -verbose option -verbose has been previously ignored by Xwayback. Handle it by setting wayback_log verbosity accordingly and passing it to the compositor and Xwayland. Signed-off-by: Ferass El Hafidi <[email protected]> --- xwayback/xwayback.c | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/xwayback/xwayback.c b/xwayback/xwayback.c index b22296d..ea4c86e 100644 --- a/xwayback/xwayback.c +++ b/xwayback/xwayback.c @@ -235,6 +235,10 @@ int main(int argc, char *argv[]) .description = "show Xwayback version", .flag = OPT_NOFLAG, .ignore = false }, + { .name = "-verbose", + .description = "set verbosity level for information printed on stderr", + .flag = OPT_OPERAND, + .ignore = false }, { .name = "-novtswitch", .description = "do not switch VTs on startup (default)", .flag = OPT_NOFLAG, @@ -298,6 +302,7 @@ int main(int argc, char *argv[]) wayback_log_init("Xwayback", LOG_INFO, NULL); + long verbosity = 0; int cur_opt = 0; while (cur_opt = optparse(argc, argv, opts, ARRAY_SIZE(opts)), cur_opt != -1) { if (strcmp(argv[cur_opt], "-version") == 0 || strcmp(argv[cur_opt], "-showconfig") == 0) { @@ -305,6 +310,36 @@ int main(int argc, char *argv[]) "Wayback <https://wayback.freedesktop.org/> X.Org compatibility layer"); wayback_log(LOG_INFO, "Version %s", WAYBACK_VERSION); exit(EXIT_SUCCESS); + } else if (strcmp(argv[cur_opt], "-verbose") == 0) { + // set verbosity level + verbosity = strtol(argv[cur_opt + 1], NULL, 10); + if (verbosity < 0 || verbosity > 20 || errno) { + if (errno) { + wayback_log(LOG_ERROR, "Failed to parse verbosity level: %s", strerror(errno)); + } else { + wayback_log(LOG_ERROR, "Verbosity level must be between 0 and 20"); + } + exit(EXIT_FAILURE); + } + + // verbosity levels subject to change + switch (verbosity) { + case 0: + wayback_log_verbosity(LOG_ERROR); + break; + case 1: + case 2: + case 3: + wayback_log_verbosity(LOG_WARN); + break; + case 4: + case 5: + wayback_log_verbosity(LOG_INFO); + break; + default: // case 6: + wayback_log_verbosity(LOG_DEBUG); + break; + } } } @@ -347,8 +382,10 @@ int main(int argc, char *argv[]) posix_spawn_file_actions_addclose(&file_actions, socket_xwayback[1]); posix_spawn_file_actions_addclose(&file_actions, socket_xwayland[1]); + char verbstr[4] = ""; char fd_xwayback[64]; char fd_xwayland[64]; + snprintf(verbstr, sizeof(verbstr), "%ld", verbosity); snprintf(fd_xwayback, sizeof(fd_xwayback), "%d", socket_xwayback[0]); snprintf(fd_xwayland, sizeof(fd_xwayland), "%d", socket_xwayland[0]); @@ -356,7 +393,7 @@ int main(int argc, char *argv[]) wayback_compositor_path, &file_actions, NULL, - (char *[]){ (char *)wayback_compositor_path, fd_xwayback, fd_xwayland, NULL }, + (char *[]){ (char *)wayback_compositor_path, fd_xwayback, fd_xwayland, verbstr, NULL }, environ) != 0) { wayback_log(LOG_ERROR, "Failed to launch wayback-compositor: %s", strerror(errno)); exit(EXIT_FAILURE); @@ -410,6 +447,8 @@ int main(int argc, char *argv[]) "3", "-geometry", geometry, + "-verbose", + verbstr, }; snprintf(geometry, -- 2.51.0 ++++++ 0008-Xwayback-coding-style-fixes.patch ++++++ >From 2aee5d6772366818760f9f8aea6c076a361a7e26 Mon Sep 17 00:00:00 2001 From: Ferass El Hafidi <[email protected]> Date: Wed, 28 Jan 2026 12:27:14 +0000 Subject: [PATCH 08/14] Xwayback: coding style fixes No functional changes. Signed-off-by: Ferass El Hafidi <[email protected]> --- xwayback/xwayback.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/xwayback/xwayback.c b/xwayback/xwayback.c index ea4c86e..ffb9c49 100644 --- a/xwayback/xwayback.c +++ b/xwayback/xwayback.c @@ -389,12 +389,13 @@ int main(int argc, char *argv[]) snprintf(fd_xwayback, sizeof(fd_xwayback), "%d", socket_xwayback[0]); snprintf(fd_xwayland, sizeof(fd_xwayland), "%d", socket_xwayland[0]); - if (posix_spawn(&comp_pid, - wayback_compositor_path, - &file_actions, - NULL, - (char *[]){ (char *)wayback_compositor_path, fd_xwayback, fd_xwayland, verbstr, NULL }, - environ) != 0) { + if (posix_spawn( + &comp_pid, + wayback_compositor_path, + &file_actions, + NULL, + (char *[]){ (char *)wayback_compositor_path, fd_xwayback, fd_xwayland, verbstr, NULL }, + environ) != 0) { wayback_log(LOG_ERROR, "Failed to launch wayback-compositor: %s", strerror(errno)); exit(EXIT_FAILURE); } @@ -443,12 +444,7 @@ int main(int argc, char *argv[]) char geometry[4096] = ""; const char *xwayback_args[] = { - "-terminate", - "3", - "-geometry", - geometry, - "-verbose", - verbstr, + "-terminate", "3", "-geometry", geometry, "-verbose", verbstr, }; snprintf(geometry, -- 2.51.0 ++++++ 0009-build-allow-build-with-wlroots-0.20.patch ++++++ >From 4d2ca97c00f3a59ab950585ad60b54dc96a63d2d Mon Sep 17 00:00:00 2001 From: Achill Gilgenast <[email protected]> Date: Sat, 29 Nov 2025 00:21:38 +0100 Subject: [PATCH 09/14] build: allow build with wlroots-0.20 to test builds against wlroots master --- meson.build | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 3563ac5..b5bb37e 100644 --- a/meson.build +++ b/meson.build @@ -22,10 +22,13 @@ wayland_egl = dependency('wayland-egl') wayland_protos = dependency('wayland-protocols', version: '>=1.14') xkbcommon = dependency('xkbcommon') xwayland = dependency('xwayland', version: '>=24.1') -wlroots = dependency('wlroots-0.19', version: '>=0.19', required: false) +wlroots = dependency('wlroots-0.20', version: '>=0.20', required: false) if not wlroots.found() - wlroots = dependency('wlroots-0.18', version: '>=0.18') + wlroots = dependency('wlroots-0.19', version: '>=0.19', required: false) + if not wlroots.found() + wlroots = dependency('wlroots-0.18', version: '>=0.18') + endif endif xwayland_executable_path = xwayland.get_variable(pkgconfig: 'xwayland') -- 2.51.0 ++++++ 0010-meson-Drop-support-for-wlroots-0.18.patch ++++++ >From bc1fd154cfddc664d439ecf2d3c31148f97488df Mon Sep 17 00:00:00 2001 From: Neal Gompa <[email protected]> Date: Sun, 15 Feb 2026 15:16:25 -0500 Subject: [PATCH 10/14] meson: Drop support for wlroots-0.18 Now that we support wlroots 0.20, we do not need to keep support for wlroots-0.18 anymore. --- meson.build | 3 --- 1 file changed, 3 deletions(-) diff --git a/meson.build b/meson.build index b5bb37e..3ee77c7 100644 --- a/meson.build +++ b/meson.build @@ -26,9 +26,6 @@ xwayland = dependency('xwayland', version: '>=24.1') wlroots = dependency('wlroots-0.20', version: '>=0.20', required: false) if not wlroots.found() wlroots = dependency('wlroots-0.19', version: '>=0.19', required: false) - if not wlroots.found() - wlroots = dependency('wlroots-0.18', version: '>=0.18') - endif endif xwayland_executable_path = xwayland.get_variable(pkgconfig: 'xwayland') -- 2.51.0 ++++++ 0011-meson-Simplify-wlroots-dependency-to-a-single-array.patch ++++++ >From 664473ee94237f0913efcd281f996a94d27bf10e Mon Sep 17 00:00:00 2001 From: Neal Gompa <[email protected]> Date: Sun, 15 Feb 2026 15:23:00 -0500 Subject: [PATCH 11/14] meson: Simplify wlroots dependency to a single array This lets us ensure the wlroots dependency is correctly marked as a required dependency, while still retaining the flexibility to use different supported versions of wlroots. --- meson.build | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index 3ee77c7..15d21be 100644 --- a/meson.build +++ b/meson.build @@ -23,10 +23,10 @@ wayland_protos = dependency('wayland-protocols', version: '>=1.14') xkbcommon = dependency('xkbcommon') xwayland = dependency('xwayland', version: '>=24.1') -wlroots = dependency('wlroots-0.20', version: '>=0.20', required: false) -if not wlroots.found() - wlroots = dependency('wlroots-0.19', version: '>=0.19', required: false) -endif +wlroots = dependency([ +'wlroots-0.20', +'wlroots-0.19', +]) xwayland_executable_path = xwayland.get_variable(pkgconfig: 'xwayland') add_global_arguments('-DXWAYLAND_EXEC_PATH="@0@"'.format(xwayland_executable_path), language : 'c') -- 2.51.0 ++++++ 0012-CI-add-build-jobs-to-build-against-wlroots-0.20.patch ++++++ >From 623596debb23587e8dee4a719dffc50c7acf43fb Mon Sep 17 00:00:00 2001 From: Achill Gilgenast <[email protected]> Date: Sun, 15 Feb 2026 20:54:52 +0100 Subject: [PATCH 12/14] CI: add build jobs to build against wlroots 0.20 Signed-off-by: Achill Gilgenast <[email protected]> --- .gitlab-ci.yml | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 59a0e18..48cb641 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,10 +15,11 @@ clang-format: only: - merge_requests -alpine: +.alpine: image: docker.io/alpine:edge stage: build script: | + echo "https://ftp.halifax.rwth-aachen.de/alpine/edge/testing/" >> /etc/apk/repositories apk update apk upgrade apk add \ @@ -28,16 +29,26 @@ alpine: meson \ wayland-dev \ wayland-protocols \ - wlroots-dev \ xwayland-dev \ - scdoc + scdoc \ + $WLROOTS meson setup --fatal-meson-warnings builddir/ -Dgenerate_manpages=enabled meson compile -C builddir/ -v only: - branches - merge_requests -fedora: +alpine-wlroots0.19: + extends: .alpine + variables: + WLROOTS: wlroots0.19-dev + +alpine-wlroots0.20: + extends: .alpine + variables: + WLROOTS: wlroots0.20-dev + +.fedora: image: quay.io/fedora/fedora:rawhide stage: build cache: @@ -55,11 +66,21 @@ fedora: 'pkgconfig(wayland-egl)' \ 'pkgconfig(wayland-protocols)' \ 'pkgconfig(wayland-server)' \ - 'pkgconfig(wlroots-0.19)' \ 'pkgconfig(xkbcommon)' \ - 'pkgconfig(xwayland)' + 'pkgconfig(xwayland)' \ + "$WLROOTS" meson setup --fatal-meson-warnings builddir/ -Dgenerate_manpages=enabled meson compile -C builddir/ -v only: - branches - merge_requests + +fedora-wlroots0.19: + extends: .fedora + variables: + WLROOTS: pkgconfig(wlroots-0.19) + +fedora-wlroots0.20: + extends: .fedora + variables: + WLROOTS: pkgconfig(wlroots-0.20) -- 2.51.0 ++++++ 0013-common-optparse-extract-optmatch-for-consistent-opti.patch ++++++ >From 7636bfab38516477670f2b580c592e8c1a2f2168 Mon Sep 17 00:00:00 2001 From: Joan Torres Lopez <[email protected]> Date: Fri, 10 Apr 2026 13:48:30 +0200 Subject: [PATCH 13/14] common/optparse: extract optmatch() for consistent option matching Extract the option matching logic into a public optmatch() function and refactor optparse() to use it, merging the previously separate exact-match and OPT_NUM branches into a single code path. --- common/optparse.c | 27 +++++++++++++-------------- common/optparse.h | 1 + 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/common/optparse.c b/common/optparse.c index dced8c8..0bcc200 100644 --- a/common/optparse.c +++ b/common/optparse.c @@ -17,6 +17,13 @@ int optind = 0, optpos = 0, optoper = 0; +bool optmatch(const char *arg, const struct optcmd *opt) +{ + if (opt->flag == OPT_NUM) + return strncmp(arg, opt->name, strlen(opt->name)) == 0; + return strcmp(opt->name, arg) == 0; +} + int optparse(int argc, char *argv[], const struct optcmd opts[], uint32_t optlen) { optpos++; @@ -45,12 +52,14 @@ int optparse(int argc, char *argv[], const struct optcmd opts[], uint32_t optlen } } exit(EXIT_SUCCESS); - } else if (strcmp(argv[optpos], opts[i].name) == 0) { - if (((opts[i].flag == OPT_OPERAND) && (((optpos + 1) >= argc || !argv[optpos + 1]))) || - opts[i].flag == OPT_NUM) { + } else if (optmatch(argv[optpos], &opts[i])) { + if ((opts[i].flag == OPT_OPERAND && ((optpos + 1) >= argc || !argv[optpos + 1])) || + (opts[i].flag == OPT_NUM && strlen(argv[optpos]) == strlen(opts[i].name))) { wayback_log(LOG_ERROR, "Option %s requires operand", argv[optpos]); exit(EXIT_FAILURE); - } else if (opts[i].ignore == true) { + } + + if (opts[i].ignore == true) { if (strcmp(opts[i].description, "") != 0) wayback_log(LOG_WARN, "%s: %s", argv[optpos], opts[i].description); else @@ -63,16 +72,6 @@ int optparse(int argc, char *argv[], const struct optcmd opts[], uint32_t optlen } optind++; break; - } else if (opts[i].flag == OPT_NUM && - strncmp(argv[optpos], opts[i].name, strlen(opts[i].name)) == 0) { - if (opts[i].ignore == true) { - if (strcmp(opts[i].description, "") != 0) - wayback_log(LOG_WARN, "%s: %s", argv[optpos], opts[i].description); - else - wayback_log(LOG_WARN, "Option %s ignored", argv[optpos]); - } - optind++; - break; } } return optpos; diff --git a/common/optparse.h b/common/optparse.h index 6f3cdd5..81b777f 100644 --- a/common/optparse.h +++ b/common/optparse.h @@ -31,6 +31,7 @@ struct optcmd #define IGNORE_OPT_DESC(s, f, d) { .name = s, .description = d, .flag = f, .ignore = true } #define IGNORE_OPT(s, f) IGNORE_OPT_DESC(s, f, "") +bool optmatch(const char *arg, const struct optcmd *opt); int optparse(int argc, char *argv[], const struct optcmd opts[], uint32_t optlen); #endif -- 2.51.0 ++++++ 0014-Xwayback-use-optmatch-in-the-argument-forwarding-loo.patch ++++++ >From d690296d35134735991607149515525207e348ce Mon Sep 17 00:00:00 2001 From: Joan Torres Lopez <[email protected]> Date: Fri, 10 Apr 2026 13:57:08 +0200 Subject: [PATCH 14/14] Xwayback: use optmatch() in the argument forwarding loop Use the newly extracted optmatch() to apply the same matching logic as optparse() when filtering Xwayback-handled options before passing the rest to Xwayland. This fixes OPT_NUM options like "vt" (where the number is part of the argument, e.g. "vt2") leaking through to Xwayland, which does not recognize them and fatally errors out. --- xwayback/xwayback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xwayback/xwayback.c b/xwayback/xwayback.c index ffb9c49..dcf5b22 100644 --- a/xwayback/xwayback.c +++ b/xwayback/xwayback.c @@ -461,7 +461,7 @@ int main(int argc, char *argv[]) for (int i = 1; i < argc; i++) { size_t j = 0; for (; j < ARRAY_SIZE(opts); j++) { - if (strcmp(opts[j].name, argv[i]) == 0) { + if (optmatch(argv[i], &opts[j])) { if (opts[j].flag == OPT_OPERAND && (i + 1) < argc) { i++; } -- 2.51.0 ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.BCIzyb/_old 2026-04-13 23:23:09.626705596 +0200 +++ /var/tmp/diff_new_pack.BCIzyb/_new 2026-04-13 23:23:09.630705761 +0200 @@ -1,5 +1,5 @@ -mtime: 1766699508 -commit: 1d0a4c7d22dfaf98e2c1caedd2f7dc156f254425dca05bcbd57d7145c64342f1 +mtime: 1775951392 +commit: 2514f95f8463e069180ddcd9a9ddd5f4dbb2756bd23cecd97e8c3ee42828ff04 url: https://src.opensuse.org/jengelh/wayback revision: master
