Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package uwsm for openSUSE:Factory checked in 
at 2026-06-15 19:41:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/uwsm (Old)
 and      /work/SRC/openSUSE:Factory/.uwsm.new.1981 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "uwsm"

Mon Jun 15 19:41:32 2026 rev:6 rq:1359122 version:0.26.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/uwsm/uwsm.changes        2026-02-20 
17:52:12.567493295 +0100
+++ /work/SRC/openSUSE:Factory/.uwsm.new.1981/uwsm.changes      2026-06-15 
19:43:50.316406647 +0200
@@ -1,0 +2,7 @@
+Sat Jun 13 22:29:45 UTC 2026 - Alexey Kolos <[email protected]>
+
+- Update to version 0.26.5:
+  * fix(app): fall back to local file if exists on invalid entry ID, fixes #214
+  * fix(app): split explicitly by ".desktop:", abs path for SourcePath value
+
+-------------------------------------------------------------------

Old:
----
  uwsm-0.26.4.obscpio

New:
----
  uwsm-0.26.5.obscpio

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

Other differences:
------------------
++++++ uwsm.spec ++++++
--- /var/tmp/diff_new_pack.mo4jwI/_old  2026-06-15 19:43:52.512498675 +0200
+++ /var/tmp/diff_new_pack.mo4jwI/_new  2026-06-15 19:43:52.516498843 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           uwsm
-Version:        0.26.4
+Version:        0.26.5
 Release:        0
 Summary:        Universal Wayland Session Manager
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.mo4jwI/_old  2026-06-15 19:43:52.552500351 +0200
+++ /var/tmp/diff_new_pack.mo4jwI/_new  2026-06-15 19:43:52.556500519 +0200
@@ -2,7 +2,7 @@
   <service name="obs_scm" mode="manual">
     <param name="url">https://github.com/Vladimir-csp/uwsm.git</param>
     <param name="scm">git</param>
-    <param name="revision">v0.26.4</param>
+    <param name="revision">v0.26.5</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.mo4jwI/_old  2026-06-15 19:43:52.576501357 +0200
+++ /var/tmp/diff_new_pack.mo4jwI/_new  2026-06-15 19:43:52.576501357 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/Vladimir-csp/uwsm.git</param>
-              <param 
name="changesrevision">3294dd3163bf9f2334b787b3cde5a14e56491404</param></service></servicedata>
+              <param 
name="changesrevision">7bdc515bd85c8c252b6d99111527a1c2da9cb60c</param></service></servicedata>
 (No newline at EOF)
 

++++++ uwsm-0.26.4.obscpio -> uwsm-0.26.5.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uwsm-0.26.4/debian/changelog 
new/uwsm-0.26.5/debian/changelog
--- old/uwsm-0.26.4/debian/changelog    2026-02-19 20:20:36.000000000 +0100
+++ new/uwsm-0.26.5/debian/changelog    2026-06-13 15:44:19.000000000 +0200
@@ -1,5 +1,5 @@
-uwsm (0.26.4-1~local0) UNRELEASED; urgency=medium
+uwsm (0.26.5-1~local0) UNRELEASED; urgency=medium
 
   * Upstream build.
 
- -- Vladimir-csp <[email protected]>  Thu, 19 Feb 
2026 22:17:58 +0300
+ -- Vladimir-csp <[email protected]>  Sat, 13 Jun 
2026 16:44:19 +0300
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uwsm-0.26.4/uwsm/main.py new/uwsm-0.26.5/uwsm/main.py
--- old/uwsm-0.26.4/uwsm/main.py        2026-02-19 20:20:36.000000000 +0100
+++ new/uwsm-0.26.5/uwsm/main.py        2026-06-13 15:44:19.000000000 +0200
@@ -211,8 +211,9 @@
         # Desktop entry
         elif arg.endswith(".desktop") or ".desktop:" in arg:
             # separate action
-            if ":" in arg:
-                self.entry_id, entry_action = arg.split(":", maxsplit=1)
+            if ".desktop:" in arg:
+                self.entry_id, entry_action = arg.split(".desktop:", 
maxsplit=1)
+                self.entry_id = self.entry_id + ".desktop"
                 if entry_action:
                     if not Val.action_id.search(entry_action):
                         raise ValueError(
@@ -239,7 +240,10 @@
 
             # validate id if not given as path
             if not Val.entry_id.search(self.entry_id):
-                if self.path is None:
+                if self.path is None and os.path.isfile(self.entry_id):
+                    # entry id is ivnalid, but points to existing file in PWD, 
make a path
+                    self.path = f"./{self.entry_id}"
+                elif self.path is None:
                     raise ValueError(f'Invalid Desktop Entry ID 
"{self.entry_id}"')
                 print_warning(f'Invalid Desktop Entry ID "{self.entry_id}"', 
notify=1)
 
@@ -1394,28 +1398,24 @@
     if waitenv_timeout != 30:
         update_unit(
             "[email protected]/50_timeout.conf",
-            dedent(
-                f"""
+            dedent(f"""
                 # injected by {BIN_NAME}, do not edit
                 [Unit]
                 X-UWSMMark=generic
                 [Service]
                 TimeoutStartSec={waitenv_timeout}
-                """
-            ),
+                """),
             rung=rung,
         )
         update_unit(
             "wayland-session-waitenv.service.d/50_timeout.conf",
-            dedent(
-                f"""
+            dedent(f"""
                 # injected by {BIN_NAME}, do not edit
                 [Unit]
                 X-UWSMMark=generic
                 [Service]
                 TimeoutStartSec={waitenv_timeout}
-                """
-            ),
+                """),
             rung=rung,
         )
     else:
@@ -1431,24 +1431,16 @@
         f"wayland-wm@{CompGlobals.id_unit_string}.service.d/50_custom.conf"
     )
     # initial data as lists for later joining
-    wm_specific_preloader_data = [
-        dedent(
-            f"""
+    wm_specific_preloader_data = [dedent(f"""
             # injected by {BIN_NAME}, do not edit
             [Unit]
             X-UWSMMark={CompGlobals.id}
-            """
-        )
-    ]
-    wm_specific_service_data = [
-        dedent(
-            f"""
+            """)]
+    wm_specific_service_data = [dedent(f"""
             # injected by {BIN_NAME}, do not edit
             [Unit]
             X-UWSMMark={CompGlobals.id}
-            """
-        )
-    ]
+            """)]
 
     # name or description is given
     if CompGlobals.name or CompGlobals.description:
@@ -1487,15 +1479,11 @@
             preloader_exec.append(CompGlobals.cmdline[0])
 
         # append to string list
-        wm_specific_preloader_data.append(
-            dedent(
-                f"""
+        wm_specific_preloader_data.append(dedent(f"""
                 [Service]
                 ExecStart=
                 ExecStart={shlex.join(preloader_exec_base + preloader_exec)}\n
-                """
-            )
-        )
+                """))
 
     # service exec needs ID and command line
     service_exec_base = [BIN_PATH, "aux", "exec", "--", "%I"]
@@ -1510,15 +1498,11 @@
 
     # append to string list
     if service_exec:
-        wm_specific_service_data.append(
-            dedent(
-                f"""
+        wm_specific_service_data.append(dedent(f"""
                 [Service]
                 ExecStart=
                 ExecStart={shlex.join(service_exec_base + service_exec)}\n
-                """
-            )
-        )
+                """))
 
     if len(wm_specific_preloader_data) > 1:
         # add preloader customization drop-in
@@ -1552,8 +1536,7 @@
     # ordering and slicing autostart apps
     update_unit(
         "[email protected]/slice-tweak.conf",
-        dedent(
-            f"""
+        dedent(f"""
             # injected by {BIN_NAME}, do not edit
             [Unit]
             X-UWSMMark=tweaks
@@ -1564,15 +1547,13 @@
             # also put them in special graphical app slice
             Slice=app-graphical.slice
             EnvironmentFile=-%t/{BIN_NAME}/env_session.conf
-            """
-        ),
+            """),
         rung=rung,
     )
     # ordering and slicing flatpaks
     update_unit(
         "app-flatpak-.scope.d/order-tweak.conf",
-        dedent(
-            f"""
+        dedent(f"""
             # injected by {BIN_NAME}, do not edit
             [Unit]
             X-UWSMMark=tweaks
@@ -1582,8 +1563,7 @@
             [Scope]
             # also put them in special graphical app slice
             Slice=app-graphical.slice
-            """
-        ),
+            """),
         rung=rung,
     )
     ## hotfix some portals
@@ -1591,14 +1571,12 @@
     # upstream is ordered after plasma-core.target which may be not installed
     update_unit(
         "plasma-xdg-desktop-portal-kde.service.d/order-tweak.conf",
-        dedent(
-            f"""
+        dedent(f"""
             # injected by {BIN_NAME}, do not edit
             [Unit]
             X-UWSMMark=tweaks
             After=graphical-session.target
-            """
-        ),
+            """),
         rung=rung,
     )
 
@@ -1672,24 +1650,20 @@
         # main parser with subcommands
         parsers["main"] = argparse.ArgumentParser(
             formatter_class=HelpFormatterNewlines,
-            description=dedent(
-                """
+            description=dedent("""
                 Universal Wayland Session Manager.\n
                 \n
                 Launches arbitrary wayland compositor via a set of systemd 
user units
                 to provide graphical user session with environment management,
                 XDG autostart support, scoped application launch helpers,
                 clean shutdown.
-                """
-            ),
+                """),
             # usage='%(prog)s [-h] action ...',
-            epilog=dedent(
-                f"""
+            epilog=dedent(f"""
                 See "{BIN_NAME} {{subcommand}} -h" for further help on each 
subcommand.\n
                 \n
                 See "man {BIN_NAME}" for more detailed info on integration and 
operation.\n
-                """
-            ),
+                """),
             exit_on_error=exit_on_error,
         )
         parsers["main_subparsers"] = parsers["main"].add_subparsers(
@@ -1710,15 +1684,13 @@
             "wm_cmdline",
             metavar="args",
             nargs="+",
-            help=dedent(
-                """
+            help=dedent("""
                 Compositor command line. The first argument acts as an ID and 
should be either one of:\n
                   - Executable name\n
                   - Desktop Entry ID (optionally with ":"-delimited action 
ID)\n
                   - Special value "select" or "default"\n
                 If given as path, hardcode mode is implied.\n
-                """
-            ),
+                """),
         )
 
         parsers["wm_args_raw"] = argparse.ArgumentParser(
@@ -1790,15 +1762,13 @@
             formatter_class=HelpFormatterNewlines,
             help="Select default compositor entry",
             description="Invokes whiptail menu for selecting wayland-sessions 
Desktop Entries.",
-            epilog=dedent(
-                f"""
+            epilog=dedent(f"""
                 Entries are selected from "wayland-sessions" XDG data 
hierarchy.
                 Default selection is read from first encountered 
"{BIN_NAME}/default-id" file in
                 XDG Config hierarchy and system part of XDG Data hierarchy. 
When selected, choice is
                 saved to user part of XDG Config hierarchy 
("${{XDG_CONFIG_HOME}}/{BIN_NAME}/default-id").
                 Nothing else is done.
-                """
-            ),
+                """),
         )
 
         # start subcommand
@@ -1808,16 +1778,14 @@
             help="Start compositor",
             description="Generates units for given compositor command line or 
Desktop Entry and starts compositor.",
             parents=[parsers["wm_args"], parsers["wm_meta"]],
-            epilog=dedent(
-                f"""
+            epilog=dedent(f"""
                 Compositor should either put WAYLAND_DISPLAY var into systemd 
user service environment
                 itself, or finalize its startup by running this:\n
                 \n
                   {BIN_NAME} finalize [VAR ...]\n
                 \n
                 Otherwise, the compositor's unit will terminate due to startup 
timeout.
-                """
-            ),
+                """),
         )
         unit_rung_preset = False
         unit_rung_default = os.getenv("UWSM_UNIT_RUNG", None)
@@ -1985,8 +1953,7 @@
             formatter_class=HelpFormatterNewlines,
             help="Export variables from compositor, notify systemd of unit 
startup.",
             description="For use inside compositor to export essential 
variables and complete compositor unit startup.",
-            epilog=dedent(
-                """
+            epilog=dedent("""
                 Exports variables to systemd user manager: WAYLAND_DISPLAY, 
DISPLAY,
                 and any optional variables mentioned by name as arguments, or 
listed
                 whitespace-separated in UWSM_FINALIZE_VARNAMES environment 
var.\n
@@ -1996,8 +1963,7 @@
                 If all is well, sends startup notification to systemd user 
manager,
                 so compositor unit is considered started and 
graphical-session.target
                 can be declared reached.
-                """
-            ),
+                """),
         )
         parsers["finalize"].add_argument(
             "env_names",
@@ -2055,42 +2021,36 @@
             formatter_class=HelpFormatterNewlines,
             help="Application unit launcher",
             description="Launches application as a scope or service in 
specific slice.",
-            epilog=dedent(
-                """
+            epilog=dedent("""
                 It is highly recommended to configure your compositor to 
launch apps
                 via this command to fully utilize user-level systemd unit 
management.\n
                 It would not be prudent to accumulate app processes in 
compositor's unit.
-                """
-            ),
+                """),
         )
         parsers["app"].add_argument(
             "cmdline",
             metavar="args",
             # allow empty cmdline if '-T' is given
             nargs=("*" if terminal_requested else "+"),
-            help=dedent(
-                """
+            help=dedent("""
                 Application command line. The first argument can be either one 
of:\n
                   - Executable name or path\n
                   - Desktop Entry ID (with optional ":"-delimited action ID)\n
                   - Path to Desktop Entry file (with optional ":"-delimited 
action ID)\n
-                """
-            ),
+                """),
         )
         parsers["app"].add_argument(
             "-s",
             dest="slice_name",
             metavar="{a,b,s,custom.slice}",
-            help=dedent(
-                f"""
+            help=dedent(f"""
                 Slice selector:\n
                   - {Styles.under}a{Styles.reset}pp-graphical.slice\n
                   - {Styles.under}b{Styles.reset}ackground-graphical.slice\n
                   - {Styles.under}s{Styles.reset}ession-graphical.slice\n
                   - custom by full name\n
                 (default: %(default)s)
-                """
-            ),
+                """),
             default="a",
         )
         app_unit_type_preset = False
@@ -2160,12 +2120,10 @@
             formatter_class=HelpFormatterNewlines,
             help="Performs state checks",
             description="Performs a check, returns 0 if true, 1 if false.",
-            epilog=dedent(
-                f"""
+            epilog=dedent(f"""
                 Use may-start checker to integrate startup into shell profile
                 See "{BIN_NAME} check may-start -h"
-                """
-            ),
+                """),
         )
         parsers["check_subparsers"] = parsers["check"].add_subparsers(
             title="Subcommands",
@@ -2194,8 +2152,7 @@
             formatter_class=HelpFormatterNewlines,
             help="Checks for start conditions",
             description="Checks whether it is OK to launch a wayland session.",
-            epilog=dedent(
-                """
+            epilog=dedent("""
                 Conditions:\n
                   - User's dbus is available
                   - Running from login shell\n
@@ -2204,8 +2161,7 @@
                   - Foreground and session's VT is among allowed (default: 1)\n
                 \n
                 This command is essential for integrating startup into shell 
profile.
-                """
-            ),
+                """),
         )
         parsers["may_start"].add_argument(
             "vtnr",
@@ -2318,8 +2274,7 @@
             formatter_class=HelpFormatterNewlines,
             help="Daemon for fast app argument generation.",
             description="Receives app arguments from a named pipe, returns 
shell code",
-            epilog=dedent(
-                f"""
+            epilog=dedent(f"""
                 Receives app arguments via 
"${{XDG_RUNTIME_DIR}}/uwsm-app-daemon-in" pipe.\n
                 Returns shell code to 
"${{XDG_RUNTIME_DIR}}/uwsm-app-daemon-out" pipe.
                 \n
@@ -2331,8 +2286,7 @@
                   app  the rest is processed the same as in "{BIN_NAME} app"\n
                   ping just "pong" is returned\n
                   stop daemon is stopped\n
-                """
-            ),
+                """),
         )
 
         parsers["version"] = parsers["main"].add_argument(
@@ -2785,8 +2739,7 @@
     random_mark = random_hex(16)
 
     # aux vars for env loader
-    aux_vars = dedent(
-        f"""
+    aux_vars = dedent(f"""
         # vars for plugins
         __SELF_NAME__={shlex.quote(BIN_NAME)}
         __WM_ID__={shlex.quote(CompGlobals.id)}
@@ -2801,8 +2754,7 @@
         __RANDOM_MARK__={random_mark}
         # context marker for profile scripting
         IN_UWSM_ENV_PRELOADER=true
-        """
-    )
+        """)
     aux_vars_file = os.path.join(
         BaseDirectory.get_runtime_dir(strict=True),
         BIN_NAME,
@@ -3399,7 +3351,7 @@
 
             entry = entries[0]
 
-        unit_properties.append(f"SourcePath={entry.filename}")
+        unit_properties.append(f"SourcePath={os.path.abspath(entry.filename)}")
 
         # request terminal
         if entry.getTerminal():
@@ -3509,10 +3461,11 @@
             print_debug("set app_name from DESKTOP_ENTRY_ID", app_name)
 
         if os.environ.get("DESKTOP_ENTRY_PATH", default=""):
-            
unit_properties.append(f"SourcePath={os.environ.get('DESKTOP_ENTRY_PATH')}")
+            source_path = os.path.abspath(os.environ.get("DESKTOP_ENTRY_PATH"))
+            unit_properties.append(f"SourcePath={source_path}")
             print_debug(
                 "set SourcePath property from DESKTOP_ENTRY_PATH",
-                os.environ.get("DESKTOP_ENTRY_PATH"),
+                source_path,
             )
 
         # get localized entry name for description if no override
@@ -4764,16 +4717,12 @@
                         )
                         sys.exit(1)
                     elif Args.parsed.gst_warn_seconds >= 0 and not 
NoStdOutFlag.nowarn:
-                        print_warning(
-                            dedent(
-                                """
+                        print_warning(dedent("""
                                 System has not reached graphical.target.
                                 It might be a good idea to check default 
system target or screen for this
                                 with a condition, i.e. via "uwsm check 
may-start".
                                 Will continue in 5 seconds...
-                                """
-                            )
-                        )
+                                """))
                         time.sleep(5)
 
             except Exception as caught_exception:
@@ -4807,18 +4756,14 @@
         try:
             fill_comp_globals()
 
-            print_normal(
-                dedent(
-                    f"""
+            print_normal(dedent(f"""
                     Selected compositor ID: {CompGlobals.id}
                               Command Line: {shlex.join(CompGlobals.cmdline)}
                           Plugin/binary ID: {CompGlobals.bin_id}
                      Initial Desktop Names: 
{':'.join(CompGlobals.desktop_names)}
                                       Name: {CompGlobals.name}
                                Description: {CompGlobals.description}
-                    """
-                )
-            )
+                    """))
 
             if is_active(verbose_active=True):
                 print_error(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uwsm-0.26.4/version.sh new/uwsm-0.26.5/version.sh
--- old/uwsm-0.26.4/version.sh  2026-02-19 20:20:36.000000000 +0100
+++ new/uwsm-0.26.5/version.sh  2026-06-13 15:44:19.000000000 +0200
@@ -4,7 +4,7 @@
 # or prints back UWSM_VERSION env if set,
 # or prints a fallback version if not in git repo.
 
-VERSION=0.26.4
+VERSION=0.26.5
 
 set -e
 

++++++ uwsm.obsinfo ++++++
--- /var/tmp/diff_new_pack.mo4jwI/_old  2026-06-15 19:43:52.836512253 +0200
+++ /var/tmp/diff_new_pack.mo4jwI/_new  2026-06-15 19:43:52.840512421 +0200
@@ -1,5 +1,5 @@
 name: uwsm
-version: 0.26.4
-mtime: 1771528836
-commit: 3294dd3163bf9f2334b787b3cde5a14e56491404
+version: 0.26.5
+mtime: 1781358259
+commit: 7bdc515bd85c8c252b6d99111527a1c2da9cb60c
 

Reply via email to