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-01-30 18:22:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/miriway (Old)
 and      /work/SRC/openSUSE:Factory/.miriway.new.1995 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "miriway"

Fri Jan 30 18:22:54 2026 rev:10 rq:1329914 version:26.01

Changes:
--------
--- /work/SRC/openSUSE:Factory/miriway/miriway.changes  2025-11-01 
23:35:56.101780529 +0100
+++ /work/SRC/openSUSE:Factory/.miriway.new.1995/miriway.changes        
2026-01-30 18:23:00.163331816 +0100
@@ -1,0 +2,8 @@
+Thu Jan 29 17:33:42 UTC 2026 - Shawn Dunn <[email protected]>
+
+- Update version 26.01
+  * Fix ext-workspace implementation
+  * Remove obselete workaround for Mir Bug
+  * Add a default wallpaper
+
+-------------------------------------------------------------------

Old:
----
  Miriway-25.12.tar.gz

New:
----
  Miriway-26.01.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ miriway.spec ++++++
--- /var/tmp/diff_new_pack.TeMFFs/_old  2026-01-30 18:23:02.107413402 +0100
+++ /var/tmp/diff_new_pack.TeMFFs/_new  2026-01-30 18:23:02.123414074 +0100
@@ -21,7 +21,7 @@
 %define _name Miriway
 
 Name:           miriway
-Version:        25.12
+Version:        26.01
 Release:        0
 Summary:        Simple Wayland compositor built on Mir
 License:        GPL-3.0-only
@@ -90,6 +90,7 @@
 %license LICENSE
 %doc README.md CONFIGURING_MIRIWAY.md example-configs
 %{_bindir}/%{name}*
+%{_datadir}/backgrounds/
 %dir %{_sysconfdir}/xdg/xdg-%{name}
 %config(noreplace) %{_sysconfdir}/xdg/xdg-%{name}/%{name}-shell.config
 

++++++ Miriway-25.12.tar.gz -> Miriway-26.01.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Miriway-25.12/CMakeLists.txt 
new/Miriway-26.01/CMakeLists.txt
--- old/Miriway-25.12/CMakeLists.txt    2025-11-01 15:57:09.000000000 +0100
+++ new/Miriway-26.01/CMakeLists.txt    2026-01-26 11:01:07.000000000 +0100
@@ -85,6 +85,10 @@
     DESTINATION ${CMAKE_INSTALL_DATADIR}/wayland-sessions/
 )
 
+install(FILES ${CMAKE_SOURCE_DIR}/backgrounds/miriway.png
+    DESTINATION ${CMAKE_INSTALL_DATADIR}/backgrounds/
+)
+
 install(FILES ${CMAKE_SOURCE_DIR}/miriway-shell.config
     DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/xdg/xdg-miriway
 )
Binary files old/Miriway-25.12/backgrounds/miriway.png and 
new/Miriway-26.01/backgrounds/miriway.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Miriway-25.12/miriway-background 
new/Miriway-26.01/miriway-background
--- old/Miriway-25.12/miriway-background        2025-11-01 15:57:09.000000000 
+0100
+++ new/Miriway-26.01/miriway-background        2026-01-26 11:01:07.000000000 
+0100
@@ -1,8 +1,12 @@
 #! /bin/bash
 set -e
 
+bindir=$(dirname $0)
+
 if [ -e "$1" ]; then
   exec swaybg --image "$1" --mode fill --output '*'
+elif [ -e "${bindir}/../share/backgrounds/miriway.png" ]; then
+  exec swaybg --image "${bindir}/../share/backgrounds/miriway.png" --mode fill 
--output '*'
 else
   exec swaybg --color '#3f3f3f' --output '*'
 fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Miriway-25.12/miriway-session.in 
new/Miriway-26.01/miriway-session.in
--- old/Miriway-25.12/miriway-session.in        2025-11-01 15:57:09.000000000 
+0100
+++ new/Miriway-26.01/miriway-session.in        2026-01-26 11:01:07.000000000 
+0100
@@ -1,4 +1,4 @@
-#!/bin/sh -eu
+#!/bin/bash -l
 
 exec systemd-cat --identifier=miriway env 
MIRIWAY_SESSION_STARTUP="@CMAKE_INSTALL_FULL_LIBEXECDIR@/miriway-session-startup"
 
MIRIWAY_SESSION_SHUTDOWN="@CMAKE_INSTALL_FULL_LIBEXECDIR@/miriway-session-shutdown"
 miriway "$@"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Miriway-25.12/miriway.cpp 
new/Miriway-26.01/miriway.cpp
--- old/Miriway-25.12/miriway.cpp       2025-11-01 15:57:09.000000000 +0100
+++ new/Miriway-26.01/miriway.cpp       2026-01-26 11:01:07.000000000 +0100
@@ -57,10 +57,6 @@
 #include <functional>
 #include <iostream>
 
-#if MIRAL_VERSION < MIR_VERSION_NUMBER(5, 6, 0)
-#define MIRAL_HAS_BROKEN_INPUT_CONFIGURATION
-#endif
-
 using namespace miral;
 using namespace miriway;
 
@@ -255,263 +251,6 @@
     }
     return Decorations::prefer_csd();
 }
-
-#ifdef MIRAL_HAS_BROKEN_INPUT_CONFIGURATION
-class FixedInputConfiguration
-{
-public:
-    FixedInputConfiguration(live_config::Store& store);
-
-    void operator()(mir::Server& server);
-
-private:
-    class DeduplicatingStore : public live_config::Store
-    {
-    public:
-        explicit DeduplicatingStore(Store& underlying) :
-            underlying{underlying}
-        {
-        }
-
-        void add_int_attribute(const live_config::Key& key, std::string_view 
description, HandleInt handler) override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_int_attribute(key, description, handler);
-            }
-        }
-        void add_ints_attribute(const live_config::Key& key, std::string_view 
description, HandleInts handler) override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_ints_attribute(key, description, handler);
-            }
-        }
-        void add_bool_attribute(const live_config::Key& key, std::string_view 
description, HandleBool handler) override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_bool_attribute(key, description, handler);
-            }
-        }
-        void add_float_attribute(const live_config::Key& key, std::string_view 
description, HandleFloat handler) override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_float_attribute(key, description, handler);
-            }
-        }
-        void add_floats_attribute(const live_config::Key& key, 
std::string_view description, HandleFloats handler) override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_floats_attribute(key, description, handler);
-            }
-        }
-        void add_string_attribute(const live_config::Key& key, 
std::string_view description, HandleString handler) override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_string_attribute(key, description, handler);
-            }
-        }
-        void add_strings_attribute(const live_config::Key& key, 
std::string_view description,
-            HandleStrings handler) override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_strings_attribute(key, description, handler);
-            }
-        }
-        void add_int_attribute(const live_config::Key& key, std::string_view 
description, int preset,
-            HandleInt handler) override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_int_attribute(key, description, preset, 
handler);
-            }
-        }
-        void add_ints_attribute(const live_config::Key& key, std::string_view 
description, std::span<int const> preset,
-            HandleInts handler) override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_ints_attribute(key, description, preset, 
handler);
-            }
-        }
-        void add_bool_attribute(const live_config::Key& key, std::string_view 
description, bool preset,
-            HandleBool handler) override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_bool_attribute(key, description, preset, 
handler);
-            }
-        }
-        void add_float_attribute(const live_config::Key& key, std::string_view 
description, float preset,
-            HandleFloat handler) override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_float_attribute(key, description, preset, 
handler);
-            }
-        }
-        void add_floats_attribute(const live_config::Key& key, 
std::string_view description, std::span<float const> preset,
-            HandleFloats handler) override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_floats_attribute(key, description, preset, 
handler);
-            }
-        }
-        void add_string_attribute(const live_config::Key& key, 
std::string_view description, std::string_view preset,
-            HandleString handler) override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_string_attribute(key, description, preset, 
handler);
-            }
-        }
-        void add_strings_attribute(const live_config::Key& key, 
std::string_view description,
-            std::span<std::string const> preset, HandleStrings handler) 
override
-        {
-            if (known_keys.insert(key).second)
-            {
-                underlying.add_strings_attribute(key, description, preset, 
handler);
-            }
-        }
-        void on_done(HandleDone handler) override
-        {
-            underlying.on_done(handler);
-        }
-
-    private:
-        Store& underlying;
-        std::set<live_config::Key> known_keys;
-    };
-
-    struct Self
-    {
-        Self(live_config::Store& store) : ic{store} {}
-
-        InputConfiguration::Keyboard keyboard;
-        InputConfiguration::Mouse mouse;
-        InputConfiguration::Touchpad touchpad;
-
-        InputConfiguration ic;
-
-        void done()
-        {
-            ic.keyboard(keyboard); keyboard = { };
-            ic.mouse(mouse); mouse = { };
-            ic.touchpad(touchpad); touchpad = { };
-        }
-
-        void acceleration(live_config::Key const& key, 
std::optional<std::string_view> opt_val)
-        {
-            if (opt_val.has_value())
-            {
-                auto val = *opt_val;
-
-                if (val == "none")
-                {
-                    mouse.acceleration(mir_pointer_acceleration_none);
-                }
-                else if (val == "adaptive")
-                {
-                    mouse.acceleration(mir_pointer_acceleration_adaptive);
-                }
-                else
-                {
-                    std::cerr <<
-                        std::format("Miriway [Warning]: Config key '{}' has 
invalid value:{}", key.to_string(), val) <<
-                        std::endl;
-                }
-            }
-        };
-
-        void acceleration_bias(live_config::Key const&, std::optional<float> 
opt_val)
-        {
-            if (opt_val.has_value())
-            {
-                mouse.acceleration_bias(std::clamp(*opt_val, -1.0f, 1.0f));
-            }
-        };
-
-        void scroll_mode(live_config::Key const& key, 
std::optional<std::string_view> opt_val)
-        {
-            if (opt_val.has_value())
-            {
-                auto val = *opt_val;
-
-                if (val == "none")
-                {
-                    touchpad.scroll_mode(mir_touchpad_scroll_mode_none);
-                }
-                else if (val == "edge")
-                {
-                    touchpad.scroll_mode(mir_touchpad_scroll_mode_edge_scroll);
-                }
-                else if (val == "two-finger")
-                {
-                    
touchpad.scroll_mode(mir_touchpad_scroll_mode_two_finger_scroll);
-                }
-                else if (val == "button-down")
-                {
-                    
touchpad.scroll_mode(mir_touchpad_scroll_mode_button_down_scroll);
-                }
-                else
-                {
-                    std::cerr <<
-                        std::format("Miriway [Warning]: Config key '{}' has 
invalid value:{}", key.to_string(), val) <<
-                        std::endl;
-                }
-            }
-        };
-
-        void tap_to_click(live_config::Key const&, std::optional<bool> opt_val)
-        {
-            if (opt_val.has_value())
-            {
-                touchpad.tap_to_click(*opt_val);
-            }
-        }
-    };
-    std::shared_ptr<DeduplicatingStore> dedup_store;
-    std::shared_ptr<Self> self;
-};
-
-void FixedInputConfiguration::operator()(mir::Server& server)
-{
-    self->ic(server);
-}
-
-FixedInputConfiguration::FixedInputConfiguration(live_config::Store& store) :
-    dedup_store(std::make_shared<DeduplicatingStore>(store)),
-    self{std::make_shared<Self>(*dedup_store)}
-{
-    dedup_store->on_done([self=self]() { self->done(); });
-
-    dedup_store->add_string_attribute(
-        live_config::Key{"pointer", "acceleration"},
-        "Acceleration profile for mice and trackballs [none, adaptive]",
-        [self=self](auto... args) { self->acceleration(args...); });
-
-    dedup_store->add_float_attribute(
-        live_config::Key{"pointer", "acceleration_bias"},
-        "Acceleration speed of mice within a range of [-1.0, 1.0]",
-        [self=self](auto... args) { self->acceleration_bias(args...); });
-
-    dedup_store->add_string_attribute(
-        live_config::Key{"touchpad", "scroll_mode"},
-        "Scroll mode for touchpads: [edge, two-finger, button-down]",
-        [self=self](auto... args) { self->scroll_mode(args...); });
-
-    dedup_store->add_bool_attribute(
-        live_config::Key{"touchpad", "tap_to_click"},
-        "1, 2, 3 finger tap mapping to left, right, middle click, respectively 
[true, false]",
-        [self=self](auto... args) { self->tap_to_click(args...); });
-}
-#endif
 }
 
 int main(int argc, char const* argv[])
@@ -648,9 +387,6 @@
         });
 
     using miriway::Magnifier;   // We want our Magnifier not the miral 
Magnifier
-#ifdef MIRAL_HAS_BROKEN_INPUT_CONFIGURATION
-    using InputConfiguration = ::FixedInputConfiguration;
-#endif
     auto const settings_file = 
std::filesystem::path{runner.config_file()}.replace_extension("settings");
 
     live_config::IniFile config_store;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Miriway-25.12/miriway.desktop 
new/Miriway-26.01/miriway.desktop
--- old/Miriway-25.12/miriway.desktop   2025-11-01 15:57:09.000000000 +0100
+++ new/Miriway-26.01/miriway.desktop   2026-01-26 11:01:07.000000000 +0100
@@ -1,6 +1,6 @@
 [Desktop Entry]
 Name=Miriway
 Comment=Mir/Wayland desktop environment
-Exec=sh -lc miriway-session
+Exec=miriway-session
 Type=Application
 TryExec=miriway-session
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Miriway-25.12/miriway_child_control.cpp 
new/Miriway-26.01/miriway_child_control.cpp
--- old/Miriway-25.12/miriway_child_control.cpp 2025-11-01 15:57:09.000000000 
+0100
+++ new/Miriway-26.01/miriway_child_control.cpp 2026-01-26 11:01:07.000000000 
+0100
@@ -30,6 +30,7 @@
 #include <format>
 #include <iostream>
 #include <map>
+#include <mutex>
 #include <numeric>
 
 class miriway::ChildControl::Self
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Miriway-25.12/miriway_ext_workspace_v1.cpp 
new/Miriway-26.01/miriway_ext_workspace_v1.cpp
--- old/Miriway-25.12/miriway_ext_workspace_v1.cpp      2025-11-01 
15:57:09.000000000 +0100
+++ new/Miriway-26.01/miriway_ext_workspace_v1.cpp      2026-01-26 
11:01:07.000000000 +0100
@@ -23,6 +23,8 @@
 #include <miral/wayland_tools.h>
 #include <miral/wayland_extensions.h>
 
+#include <mir/wayland/weak.h>
+
 #include <cstring>
 #include <format>
 #include <list>
@@ -78,7 +80,7 @@
 
 private:
     miral::WaylandExtensions::Context const* const context;
-    std::vector<ExtWorkspaceManagerV1*> the_workspace_managers;
+    std::vector<mir::wayland::Weak<ExtWorkspaceManagerV1>> 
the_workspace_managers;
     miral::WaylandTools* const wltools;
 };
 
@@ -191,7 +193,7 @@
 {
     {
         std:: lock_guard lock(all_the_outputs_mutex);
-        all_the_outputs.insert(output);
+        all_the_outputs.erase(output);
     }
     std::lock_guard lock{all_the_globals_mutex};
     for (auto const& global : all_the_globals)
@@ -233,8 +235,11 @@
     {
         for (auto const& the_workspace_manager : the_workspace_managers)
         {
-            the_workspace_manager->output_deleted(wltools, output);
-            the_workspace_manager->send_done_event();
+            if (the_workspace_manager)
+            {
+                the_workspace_manager.value().output_deleted(wltools, output);
+                the_workspace_manager.value().send_done_event();
+            }
         }
     });
 }
@@ -356,36 +361,28 @@
 
 void miriway::ExtWorkspaceManagerV1::Global::bind(wl_resource* 
new_ext_workspace_manager_v1)
 {
-    the_workspace_managers.emplace_back(new 
ExtWorkspaceManagerV1{new_ext_workspace_manager_v1});
+    auto const the_workspace_manager = new 
ExtWorkspaceManagerV1{new_ext_workspace_manager_v1};
+    the_workspace_managers.emplace_back(the_workspace_manager);
     {
         std::lock_guard lock(all_the_outputs_mutex);
         for (auto const &output: all_the_outputs)
         {
-            for (auto const& the_workspace_manager : the_workspace_managers)
-            {
-                the_workspace_manager->output_added(wltools, output);
-            }
+            the_workspace_manager->output_added(wltools, output);
         }
     }
     {
         std::lock_guard lock(all_the_workspaces_mutex);
         for (auto const& [wksp, state]: all_the_workspaces)
         {
-            for (auto const& the_workspace_manager : the_workspace_managers)
-            {
-                the_workspace_manager->workspace_created(wksp);
-                if (state == WkspState::active)
-                    the_workspace_manager->workspace_activated(wksp);
-                else
-                    the_workspace_manager->workspace_deactivated(wksp);
-            }
+            the_workspace_manager->workspace_created(wksp);
+            if (state == WkspState::active)
+                the_workspace_manager->workspace_activated(wksp);
+            else
+                the_workspace_manager->workspace_deactivated(wksp);
         }
     }
 
-    for (auto const& the_workspace_manager : the_workspace_managers)
-    {
-        the_workspace_manager->send_done_event();
-    }
+    the_workspace_manager->send_done_event();
 }
 
 void miriway::ExtWorkspaceManagerV1::Global::output_added(miral::Output const& 
output)
@@ -394,8 +391,11 @@
     {
         for (auto const& the_workspace_manager : the_workspace_managers)
         {
-            the_workspace_manager->output_added(wltools, output);
-            the_workspace_manager->send_done_event();
+            if (the_workspace_manager)
+            {
+                the_workspace_manager.value().output_added(wltools, output);
+                the_workspace_manager.value().send_done_event();
+            }
         }
     });
 }
@@ -406,8 +406,11 @@
         {
             for (auto const& the_workspace_manager : the_workspace_managers)
             {
-                the_workspace_manager->workspace_destroyed(wksp);
-                the_workspace_manager->send_done_event();
+                if (the_workspace_manager)
+                {
+                    the_workspace_manager.value().workspace_destroyed(wksp);
+                    the_workspace_manager.value().send_done_event();
+                }
             }
         });
 }
@@ -418,8 +421,11 @@
         {
             for (auto const& the_workspace_manager : the_workspace_managers)
             {
-                the_workspace_manager->workspace_deactivated(wksp);
-                the_workspace_manager->send_done_event();
+                if (the_workspace_manager)
+                {
+                    the_workspace_manager.value().workspace_deactivated(wksp);
+                    the_workspace_manager.value().send_done_event();
+                }
             }
         });
 }
@@ -430,8 +436,11 @@
         {
             for (auto const& the_workspace_manager : the_workspace_managers)
             {
-                the_workspace_manager->workspace_activated(wksp);
-                the_workspace_manager->send_done_event();
+                if (the_workspace_manager)
+                {
+                    the_workspace_manager.value().workspace_activated(wksp);
+                    the_workspace_manager.value().send_done_event();
+                }
             }
         });
 }
@@ -442,8 +451,11 @@
         {
             for (auto const& the_workspace_manager : the_workspace_managers)
             {
-                the_workspace_manager->workspace_created(wksp);
-                the_workspace_manager->send_done_event();
+                if (the_workspace_manager)
+                {
+                    the_workspace_manager.value().workspace_created(wksp);
+                    the_workspace_manager.value().send_done_event();
+                }
             }
         });
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Miriway-25.12/snap-utils/bin/miriway-session 
new/Miriway-26.01/snap-utils/bin/miriway-session
--- old/Miriway-25.12/snap-utils/bin/miriway-session    2025-11-01 
15:57:09.000000000 +0100
+++ new/Miriway-26.01/snap-utils/bin/miriway-session    2026-01-26 
11:01:07.000000000 +0100
@@ -1,4 +1,4 @@
-#!/bin/sh -eu
+#!/bin/bash -l
 
 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-25.12/snap-utils/bin/miriway-unconfine 
new/Miriway-26.01/snap-utils/bin/miriway-unconfine
--- old/Miriway-25.12/snap-utils/bin/miriway-unconfine  2025-11-01 
15:57:09.000000000 +0100
+++ new/Miriway-26.01/snap-utils/bin/miriway-unconfine  2026-01-26 
11:01:07.000000000 +0100
@@ -1,7 +1,12 @@
 #! /bin/bash
 set -e
-if command -v aa-exec > /dev/null
+if [ -d /sys/kernel/security/apparmor ]
 then
-  exec aa-exec -p unconfined "$@"
+  if command -v aa-exec > /dev/null
+  then
+    exec aa-exec -p unconfined "$@"
+  else
+    echo "WARNING: AppArmor is installed, but aa-exec cannot found (needed to 
unconfine Miriway)"
+  fi
 fi
 exec "$@"
\ No newline at end of file

Reply via email to