Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package miriway for openSUSE:Factory checked in at 2026-10-10 14:59:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/miriway (Old) and /work/SRC/openSUSE:Factory/.miriway.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "miriway" Sat Oct 10 14:59:23 2026 rev:12 rq:1383882 version:26.08 Changes: -------- --- /work/SRC/openSUSE:Factory/miriway/miriway.changes 2026-06-27 18:06:30.632810290 +0200 +++ /work/SRC/openSUSE:Factory/.miriway.new.3698736/miriway.changes 2026-10-10 15:00:00.781570389 +0200 @@ -1,0 +2,8 @@ +Fri Oct 9 22:46:18 UTC 2026 - Shawn Dunn <[email protected]> + +- Update to 26.08 + * Updates the code to build with Mir API changes + * Fixes documentation of shell-component (gh#miriway/miriway#213) + * Fixes misuse of MIRIWAY_CONFIG_DIR (gh#miriway/miriway#214) + +------------------------------------------------------------------- Old: ---- Miriway-26.06.1.tar.gz New: ---- Miriway-26.08.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ miriway.spec ++++++ --- /var/tmp/diff_new_pack.yzJgM1/_old 2026-10-10 15:00:01.561603044 +0200 +++ /var/tmp/diff_new_pack.yzJgM1/_new 2026-10-10 15:00:01.563603128 +0200 @@ -21,7 +21,7 @@ %define _name Miriway Name: miriway -Version: 26.06.1 +Version: 26.08 Release: 0 Summary: Simple Wayland compositor built on Mir License: GPL-3.0-only ++++++ Miriway-26.06.1.tar.gz -> Miriway-26.08.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Miriway-26.06.1/CONFIGURING_MIRIWAY.md new/Miriway-26.08/CONFIGURING_MIRIWAY.md --- old/Miriway-26.06.1/CONFIGURING_MIRIWAY.md 2026-06-14 22:49:59.000000000 +0200 +++ new/Miriway-26.08/CONFIGURING_MIRIWAY.md 2026-08-09 17:12:38.000000000 +0200 @@ -39,9 +39,9 @@ of wallpaper, panels, etc). There are two types of shell component: Shell components that should be launched when the shell starts and restarted if -they fail are specified with `command_shell_component` in `mirway-shell.config`. For example, +they fail are specified with `shell-component` in `mirway-shell.config`. For example, - command_shell_component=swaybg --mode fill --output '*' --image /usr/share/lubuntu/wallpapers/lubuntu-default-wallpaper.jpg + shell-component=swaybg --mode fill --output '*' --image /usr/share/lubuntu/wallpapers/lubuntu-default-wallpaper.jpg Shell components that are launched by the user are specified by either `command_shell_meta` or `command_shell_ctrl_alt` in `mirway-shell.settings`. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Miriway-26.06.1/example-configs/miriway-config-alan_g.bash new/Miriway-26.08/example-configs/miriway-config-alan_g.bash --- old/Miriway-26.06.1/example-configs/miriway-config-alan_g.bash 2026-06-14 22:49:59.000000000 +0200 +++ new/Miriway-26.08/example-configs/miriway-config-alan_g.bash 2026-08-09 17:12:38.000000000 +0200 @@ -93,9 +93,9 @@ lockscreen-app=miriway-unsnap swaylock -i ${background} shell-component=miriway-unsnap systemd-run --user --scope --slice=background.slice synapse --startup -shell-component=systemd-run --user --scope --slice=background.slice swaybg --mode fill --output '*' --image ${background} -shell-component=systemd-run --user --scope --slice=background.slice swaync -shell-component=systemd-run --user --scope --slice=background.slice yambar +shell-component=miriway-unsnap systemd-run --user --scope --slice=background.slice swaybg --mode fill --output '*' --image ${background} +shell-component=miriway-unsnap systemd-run --user --scope --slice=background.slice swaync +shell-component=miriway-unsnap systemd-run --user --scope --slice=background.slice yambar shell-component=miriway-unsnap systemd-run --user --scope --slice=background.slice gnome-keyring-daemon --foreground shell-component=miriway-unsnap systemd-run --user --scope --slice=background.slice ${polkit_agent} EOT @@ -128,7 +128,7 @@ # Ensure we have a config file with the fixed options cat <<EOT > "${yambar_config}" awesome: &awesome Font Awesome 6 Free:style=solid:pixelsize=14 -ubuntu: &ubuntu Font Ubuntu 6 Free:style=solid:pixelsize=14 +ubuntu: &ubuntu Ubuntu:pixelsize=14 bar: location: top @@ -177,7 +177,6 @@ for wificard in /sys/class/net/wl* do cat <<EOT >> "${yambar_config}" - network: - name: $(basename "$wificard") content: map: deco: *greybg @@ -189,12 +188,10 @@ map: default: - string: {text: , font: *awesome, deco: *greybg} -# - string: {text: "{ssid} {dl-speed:mb}/{ul-speed:mb} Mb/s" } conditions: ipv4 == "": - string: {text: , font: *awesome} -# - string: {text: "{ssid} {dl-speed:mb}/{ul-speed:mb} Mb/s"} EOT done diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Miriway-26.06.1/miriway-run-shell.cpp new/Miriway-26.08/miriway-run-shell.cpp --- old/Miriway-26.06.1/miriway-run-shell.cpp 2026-06-14 22:49:59.000000000 +0200 +++ new/Miriway-26.08/miriway-run-shell.cpp 2026-08-09 17:12:38.000000000 +0200 @@ -20,7 +20,7 @@ #include <miral/keymap.h> #include <miral/runner.h> #include <miral/wayland_extensions.h> -#include <miral/minimal_window_manager.h> +#include <miral/floating_window_manager.h> #include <miral/set_window_management_policy.h> #include <miral/toolkit_event.h> #include <miral/x11_support.h> @@ -30,10 +30,10 @@ namespace { -class MiralRunWM : public MinimalWindowManager +class MiralRunWM : public FloatingWindowManager { public: - using MinimalWindowManager::MinimalWindowManager; + using FloatingWindowManager::FloatingWindowManager; void handle_request_move(WindowInfo& /*window_info*/, MirInputEvent const* /*input_event*/) override { @@ -74,11 +74,11 @@ output.left() + (output.size.width - modifications.size().value().width)/2, output.top() + (output.size.height - modifications.size().value().height)/2}; - MinimalWindowManager::handle_modify_window(window_info, modifications); + FloatingWindowManager::handle_modify_window(window_info, modifications); } else { - MinimalWindowManager::handle_modify_window(window_info, new_modifications); + FloatingWindowManager::handle_modify_window(window_info, new_modifications); } } }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Miriway-26.06.1/miriway-unsnap new/Miriway-26.08/miriway-unsnap --- old/Miriway-26.06.1/miriway-unsnap 2026-06-14 22:49:59.000000000 +0200 +++ new/Miriway-26.08/miriway-unsnap 2026-08-09 17:12:38.000000000 +0200 @@ -3,10 +3,11 @@ if [ "$SNAP_NAME" == "miriway" ]; then unset __EGL_VENDOR_LIBRARY_DIRS unset GBM_BACKENDS_PATH - unset LIBGL_DRIVERS_PATH + unset LD_LIBRARY_PATH unset LIBINPUT_QUIRKS_DIR unset DRIRC_CONFIGDIR unset XDG_DESKTOP_PORTAL_DIR + unset AMDGPU_ASIC_ID_TABLE_PATHS PATH="$(echo "$PATH" | sed "s#$SNAP[^:]*:##g")" fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Miriway-26.06.1/miriway.cpp new/Miriway-26.08/miriway.cpp --- old/Miriway-26.06.1/miriway.cpp 2026-06-14 22:49:59.000000000 +0200 +++ new/Miriway-26.08/miriway.cpp 2026-08-09 17:12:38.000000000 +0200 @@ -25,6 +25,7 @@ #include "miriway_ext_workspace_v1.h" #include <mir/abnormal_exit.h> +#include <mir/fatal.h> #include <miral/append_event_filter.h> #include <miral/bounce_keys.h> #include <miral/config_file.h> @@ -122,7 +123,7 @@ launch{std::move(launch)}, lockscreen_option{[this](mir::optional_value<std::string> const& app) { - if (app.is_set()) + if (app) { lockscreen_app = ExternalClientLauncher::split_command(app.value()); } @@ -224,7 +225,11 @@ } else { +#ifdef MIR_FATAL_ERROR + MIR_FATAL_ERROR("Invalid command option: {}", command); +#else mir::fatal_error("Invalid command option: %s", command.c_str()); +#endif } } } @@ -376,12 +381,6 @@ auto find_config_file(std::string const& config_file_name) -> std::optional<std::filesystem::path> { - if (auto const miriway_config_dir = getenv("MIRIWAY_CONFIG_DIR")) - { - auto const path = std::filesystem::path{miriway_config_dir} / config_file_name; - if (std::filesystem::exists(path)) return path; - } - auto const home_path = config_home / config_file_name; if (std::filesystem::exists(home_path)) return home_path; @@ -488,16 +487,16 @@ "Shell component to launch on startup (may be specified multiple times)"}; using miriway::Magnifier; // We want our Magnifier not the miral Magnifier - auto const settings_file = std::filesystem::path{runner.config_file()}.replace_extension("settings"); + auto const settings_file = config_home / std::filesystem::path{runner.config_file()}.replace_extension("settings"); // Migrate any shell command settings from .config to .settings before registering if (auto const config_file_path = find_config_file(runner.config_file())) { - migrate_config_to_settings(config_file_path.value(), config_home / settings_file); + migrate_config_to_settings(config_file_path.value(), settings_file); } live_config::IniFile config_store; - auto settings_store = std::make_unique<DocumentingStore>(config_store, config_home / settings_file); + auto settings_store = std::make_unique<DocumentingStore>(config_store, settings_file); CursorScale cursor_scale{*settings_store}; OutputFilter output_filter{*settings_store}; @@ -635,8 +634,6 @@ sticky_keys, hover_click, magnifier, -#ifdef MIRIWAY_USE_APP_SWITCHER app_switcher, -#endif }); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Miriway-26.06.1/miriway_workspace_manager.cpp new/Miriway-26.08/miriway_workspace_manager.cpp --- old/Miriway-26.06.1/miriway_workspace_manager.cpp 2026-06-14 22:49:59.000000000 +0200 +++ new/Miriway-26.08/miriway_workspace_manager.cpp 2026-08-09 17:12:38.000000000 +0200 @@ -257,8 +257,13 @@ }); } +#ifdef MIR_WINDOW_MANAGEMENT_POLICY_USE_SPAN +void miriway::WorkspaceManager::advise_adding_to_workspace(std::shared_ptr<Workspace> const& workspace, + std::span<Window const> windows) +#else void miriway::WorkspaceManager::advise_adding_to_workspace(std::shared_ptr<Workspace> const& workspace, std::vector<Window> const& windows) +#endif { if (windows.empty()) return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Miriway-26.06.1/miriway_workspace_manager.h new/Miriway-26.08/miriway_workspace_manager.h --- old/Miriway-26.06.1/miriway_workspace_manager.h 2026-06-14 22:49:59.000000000 +0200 +++ new/Miriway-26.08/miriway_workspace_manager.h 2026-08-09 17:12:38.000000000 +0200 @@ -29,6 +29,23 @@ namespace miral { class Workspace; } +// Make code compile during the migration from mir::optional_value to std::optional +#ifndef MIR_OPTIONAL_VALUE_H_ +namespace mir { template<class T> using optional_value = std::optional<T>; } +#endif + +namespace miriway +{ +// A level of indirection to work around the migration from mir::optional_value to std::optional +template<typename Optional> void reset_optional(Optional& opt); + +template<typename Optional> void reset_optional(Optional& opt) + requires requires { opt.reset(); } { opt.reset(); } + +template<typename Optional> void reset_optional(Optional& opt) + requires requires { opt.is_set(); opt.consume(); } { if (opt.is_set()) opt.consume(); } +} + namespace miriway { using miral::Window; @@ -64,9 +81,13 @@ void advise_new_window(const WindowInfo &window_info); +#ifdef MIR_WINDOW_MANAGEMENT_POLICY_USE_SPAN + void advise_adding_to_workspace(std::shared_ptr<Workspace> const& workspace, + std::span<Window const> windows); +#else void advise_adding_to_workspace(std::shared_ptr<Workspace> const& workspace, std::vector<Window> const& windows); - +#endif auto active_workspace() const -> std::shared_ptr<Workspace>; bool in_hidden_workspace(WindowInfo const& info) const; @@ -121,8 +142,13 @@ WorkspaceManager::advise_new_window(window_info); } +#ifdef MIR_WINDOW_MANAGEMENT_POLICY_USE_SPAN + void advise_adding_to_workspace(std::shared_ptr<Workspace> const& workspace, + std::span<Window const> windows) override +#else void advise_adding_to_workspace(std::shared_ptr<Workspace> const& workspace, std::vector<Window> const& windows) override +#endif { WMStrategy::advise_adding_to_workspace(workspace, windows); WorkspaceManager::advise_adding_to_workspace(workspace, windows); @@ -134,16 +160,23 @@ if (in_hidden_workspace(window_info)) { - // Don't allow state changes in hidden workspaces - if (mods.state().is_set()) mods.state().consume(); - - // Don't allow size changes in hidden workspaces - if (mods.size().is_set()) mods.size().consume(); + reset_optional(mods.state()); // Don't allow state changes in hidden workspaces + reset_optional(mods.size()); // Don't allow size changes in hidden workspaces } WMStrategy::handle_modify_window(window_info, mods); } +#if defined(MIRAL_USE_HANDLE_RAISE_WINDOW_IS_DEAD) + void handle_activate_window(WindowInfo& window_info) override + { + if (in_hidden_workspace(window_info)) + { + activate_workspace_containing(window_info.window()); + } + WMStrategy::handle_activate_window(window_info); + } +#else void handle_raise_window(WindowInfo& window_info) override { if (in_hidden_workspace(window_info)) @@ -152,7 +185,7 @@ } WMStrategy::handle_raise_window(window_info); } - +#endif virtual void advise_output_create(miral::Output const& output) override { WMHooks::on_output_create(output); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Miriway-26.06.1/snap/hooks/install new/Miriway-26.08/snap/hooks/install --- old/Miriway-26.06.1/snap/hooks/install 2026-06-14 22:49:59.000000000 +0200 +++ new/Miriway-26.08/snap/hooks/install 2026-08-09 17:12:38.000000000 +0200 @@ -43,7 +43,7 @@ mkdir -p -m 755 "$(dirname "${yambar_config}")" cat <<EOT > "${yambar_config}" awesome: &awesome Font Awesome 6 Free:style=solid:pixelsize=14 -ubuntu: &ubuntu Font Ubuntu 6 Free:style=solid:pixelsize=14 +ubuntu: &ubuntu Ubuntu:pixelsize=14 bar: location: top @@ -76,7 +76,6 @@ for wificard in /sys/class/net/wl* do cat <<EOT >> "${yambar_config}" - network: - name: $(basename "$wificard") content: map: deco: *greybg @@ -88,12 +87,10 @@ map: default: - string: {text: , font: *awesome, deco: *greybg} -# - string: {text: "{ssid} {dl-speed:mb}/{ul-speed:mb} Mb/s" } conditions: ipv4 == "": - string: {text: , font: *awesome} -# - string: {text: "{ssid} {dl-speed:mb}/{ul-speed:mb} Mb/s"} EOT done diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Miriway-26.06.1/snap/snapcraft.yaml new/Miriway-26.08/snap/snapcraft.yaml --- old/Miriway-26.06.1/snap/snapcraft.yaml 2026-06-14 22:49:59.000000000 +0200 +++ new/Miriway-26.08/snap/snapcraft.yaml 2026-08-09 17:12:38.000000000 +0200 @@ -22,7 +22,7 @@ source-code: https://github.com/Miriway/Miriway confinement: classic -base: core24 +base: core26 platforms: amd64: @@ -44,7 +44,7 @@ MIR_SERVER_PLATFORM_PATH: ${SNAP}/usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/mir/server-platform __EGL_VENDOR_LIBRARY_DIRS: ${SNAP}/etc/glvnd/egl_vendor.d:${SNAP}/usr/share/glvnd/egl_vendor.d GBM_BACKENDS_PATH: ${SNAP}/usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/gbm - LIBGL_DRIVERS_PATH: ${SNAP}/usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/dri + LD_LIBRARY_PATH: ${SNAP}/usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR} LIBINPUT_QUIRKS_DIR: ${SNAP}/usr/share/libinput PATH: ${SNAP}/bin/:${SNAP}/usr/bin/:${SNAP}/usr/local/bin/:${PATH} # Warning: This variable is used by xdg-desktop-portal to force it to look in @@ -54,10 +54,16 @@ # but we are abusing it for our purposes here. XDG_DESKTOP_PORTAL_DIR: ${SNAP}/usr/share/xdg-desktop-portal/portals/ DRIRC_CONFIGDIR: ${SNAP}/usr/share/drirc.d + AMDGPU_ASIC_ID_TABLE_PATHS: ${SNAP}/usr/share/libdrm${AMDGPU_ASIC_ID_TABLE_PATHS:+:$AMDGPU_ASIC_ID_TABLE_PATHS} session: - command-chain: *command_chain command: bin/miriway-session + + vnc-server: + command-chain: + - bin/miriway-unconfine + - bin/miriway.vnc-server + command: *_command environment: *_environment run: @@ -101,7 +107,6 @@ - libmiral-dev - mir-graphics-drivers-desktop - mir-platform-graphics-virtual - - mir-graphics-drivers-nvidia - libfreetype6 - xdg-desktop-portal # included in this part because they are used in the snap @@ -114,6 +119,8 @@ - yambar # And try to get _all_ the mesa drivers - libgl1-mesa-dri + - libdrm2 + - libdrm-common - libdrm-nouveau2 - libdrm-amdgpu1 - libdrm-radeon1 @@ -142,7 +149,6 @@ - -usr/share/doc - -usr/share/doc-base - -usr/share/icons - - -usr/share/libdrm - -usr/share/libwacom - -usr/share/lintian - -usr/share/man @@ -156,6 +162,8 @@ - -usr/lib/*/libmir*.so # The libgallium* library needs no-patchelf, so it comes from the mesa-unpatched part - -usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/libgallium* + # The libLLVM.so* library needs no-patchelf, so it comes from the mesa-unpatched part + - -usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/libLLVM.so* example-configs: plugin: dump @@ -180,10 +188,12 @@ plugin: nil stage-packages: - mesa-libgallium + - libllvm21 build-attributes: - no-patchelf # Otherwise snapcraft may strip the build ID and cause the driver to crash stage: - usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/libgallium* + - usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/libLLVM.so.* xdg-desktop-portal-wlr: plugin: meson @@ -204,3 +214,15 @@ - libinih1 - libwayland-cursor0 - libcairo2 + + wayvnc: + plugin: nil + stage-packages: + - wayvnc + stage: + # The libgallium* library needs no-patchelf, so it comes from the mesa-unpatched part + - -usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/libgallium* + # The libLLVM.so* library needs no-patchelf, so it comes from the mesa-unpatched part + - -usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/libLLVM.so* + build-attributes: + - enable-patchelf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Miriway-26.06.1/snap-utils/bin/miriway-session new/Miriway-26.08/snap-utils/bin/miriway-session --- old/Miriway-26.06.1/snap-utils/bin/miriway-session 2026-06-14 22:49:59.000000000 +0200 +++ new/Miriway-26.08/snap-utils/bin/miriway-session 2026-08-09 17:12:38.000000000 +0200 @@ -1,4 +1,5 @@ #!/bin/bash -l +PATH="$(echo "$PATH" | sed "s#$SNAP[^:]*:##g")" exec systemd-cat --identifier=miriway env MIRIWAY_SESSION_STARTUP="$SNAP/usr/libexec/miriway-session-startup-snap" MIRIWAY_SESSION_SHUTDOWN="$SNAP/usr/libexec/miriway-session-shutdown" miriway "$@" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Miriway-26.06.1/snap-utils/bin/miriway.vnc-server new/Miriway-26.08/snap-utils/bin/miriway.vnc-server --- old/Miriway-26.06.1/snap-utils/bin/miriway.vnc-server 1970-01-01 01:00:00.000000000 +0100 +++ new/Miriway-26.08/snap-utils/bin/miriway.vnc-server 2026-08-09 17:12:38.000000000 +0200 @@ -0,0 +1,27 @@ +#!/bin/bash -l + +if command -v ubuntu-frame-vnc > /dev/null +then + vnc_server=ubuntu-frame-vnc +else + echo "Warning: ubuntu-frame-vnc is NOT installed. Please run the following:" + echo " sudo snap install ubuntu-frame-vnc && sudo snap connect ubuntu-frame-vnc:wayland" + echo " falling back to wayvnc defaults" + vnc_server=wayvnc +fi + +miriway_local_config="${XDG_CONFIG_HOME:-$HOME/.config}/miriway-shell.config" +if [ -e "${miriway_local_config}" ] && grep -q ^shell-component= "${miriway_local_config}" +then + miriway_config_file="${miriway_local_config}" +else + miriway_config_file=/etc/xdg/xdg-miriway/miriway-shell.config +fi + +virtual_output="$(snapctl get virtual-output)" + +sed --quiet -e "s#^shell-component=\(.*\)#--shell-component=\'\1\'#p" \ +-e "s#^shell-add-wayland-extension=\(.*\)#--shell-add-wayland-extension=\'\1\'#p" "${miriway_config_file}"| \ +exec xargs env -u WAYLAND_DISPLAY -u DISPLAY "$@" --shell-component="${vnc_server}" \ +--platform-display-libs=mir:virtual --virtual-output="${virtual_output:-1280x1024}" \ +--shell-add-wayland-extension=zwp_virtual_keyboard_manager_v1 --shell-add-wayland-extension=zwlr_virtual_pointer_manager_v1
