Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package xwayland-run for openSUSE:Factory 
checked in at 2026-06-02 16:10:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xwayland-run (Old)
 and      /work/SRC/openSUSE:Factory/.xwayland-run.new.1937 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xwayland-run"

Tue Jun  2 16:10:13 2026 rev:5 rq:1356709 version:0.0.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/xwayland-run/xwayland-run.changes        
2024-07-15 19:49:54.633080924 +0200
+++ /work/SRC/openSUSE:Factory/.xwayland-run.new.1937/xwayland-run.changes      
2026-06-02 16:11:31.360771361 +0200
@@ -1,0 +2,17 @@
+Tue Jun  2 09:34:23 UTC 2026 - Enrico Belleri <[email protected]>
+
+- Update to 0.0.6:
+  + xwfb-run: Send the command errors to standrd stderr
+  + wlheadless: Use the first configuration file found
+  + wlheadless: Consider and prefer XDG_CONFIG_HOME
+  + Support the phoc compositor
+  + mutter: Check for different virtual monitor syntax
+  + wlheadless: Set sensible defaults for XDG dirs
+  + wlheadless: Wait for the compositor up to 150 secs
+  + weston: Add support for the "--fake-seat" option in weston 15
+- Add phoc to available possible compositors
+- Fix python3 shebang
+- Delete 0001-wlheadless-Ignore-os.waitpid-1-0-error.patch:
+  merged upstream
+
+-------------------------------------------------------------------

Old:
----
  0001-wlheadless-Ignore-os.waitpid-1-0-error.patch
  xwayland-run-0.0.4.tar.gz

New:
----
  xwayland-run-0.0.6.tar.gz

----------(Old B)----------
  Old:- Fix python3 shebang
- Delete 0001-wlheadless-Ignore-os.waitpid-1-0-error.patch:
  merged upstream
----------(Old E)----------

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

Other differences:
------------------
++++++ xwayland-run.spec ++++++
--- /var/tmp/diff_new_pack.bUXcxT/_old  2026-06-02 16:11:31.904793587 +0200
+++ /var/tmp/diff_new_pack.bUXcxT/_new  2026-06-02 16:11:31.908793751 +0200
@@ -17,24 +17,21 @@
 
 
 Name:           xwayland-run
-Version:        0.0.4
+Version:        0.0.6
 Release:        0
 Summary:        Set of utilities to run headless X/Wayland clients
-
 License:        GPL-2.0-or-later
 URL:            https://gitlab.freedesktop.org/ofourdan/xwayland-run
 Source0:        %{url}/-/archive/%{version}/%{name}-%{version}.tar.gz
 
-# https://gitlab.freedesktop.org/ofourdan/xwayland-run/-/merge_requests/19
-Patch0001:      0001-wlheadless-Ignore-os.waitpid-1-0-error.patch
-
 BuildArch:      noarch
 
 BuildRequires:  meson >= 0.60.0
-BuildRequires:  git-core
 BuildRequires:  python3-devel
-Requires:       (weston or cage or kwin6 or kwin5 or mutter or gnome-kiosk)
+
+Requires:       (weston or cage or kwin6 or kwin5 or mutter or gnome-kiosk or 
phoc)
 Requires:       xorg-x11-server-wayland
+
 %if 0%{?suse_version} && 0%{?suse_version} < 1600
 Requires:       dbus-1
 %else
@@ -57,19 +54,16 @@
 xwayland-run contains a set of small utilities revolving around running
 Xwayland and various Wayland compositor headless.
 
-
 %prep
-%autosetup -S git
-
+%autosetup
 
 %build
 %meson %{?sle_version:-Dcompositor=mutter}
 %meson_build
 
-
 %install
 %meson_install
-
+%python3_fix_shebang
 
 %files
 %license COPYING
@@ -83,4 +77,3 @@
 %{_mandir}/man1/xwfb-run.1*
 %{python3_sitelib}/wlheadless/
 
-

++++++ xwayland-run-0.0.4.tar.gz -> xwayland-run-0.0.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-run-0.0.4/README.md 
new/xwayland-run-0.0.6/README.md
--- old/xwayland-run-0.0.4/README.md    2024-06-28 15:57:52.000000000 +0200
+++ new/xwayland-run-0.0.6/README.md    2026-04-28 17:01:07.000000000 +0200
@@ -29,6 +29,7 @@
  * [kwin](https://invent.kde.org/plasma/kwin)
  * [gnome-kiosk](https://gitlab.gnome.org/GNOME/gnome-kiosk)
  * [mutter](https://gitlab.gnome.org/GNOME/mutter)
+ * [phoc](https://gitlab.gnome.org/World/Phosh/phoc)
 
 It should be possible to add more compositors to this list by creating 
additional
 modules for supporting those.
@@ -82,7 +83,7 @@
 ```
 
 The compositor must be supported by `wlheadless-run`, which currently includes
-the following compositors: `weston`, `cage`, `kwin`, `mutter`, `gnome-kiosk`.
+the following compositors: `weston`, `cage`, `kwin`, `mutter`, `gnome-kiosk`, 
`phoc`.
 
 The given compositor arguments must be supported by the specified Wayland 
compositor
 and will be added to the command line when starting the compositor. That 
allows for
@@ -219,7 +220,8 @@
 ```
 
 The file is searched in `wlheadless/` relative to the paths specified in the
-standard environment variables `XDG_DATA_HOME` and `XDG_DATA_DIRS`.
+standard environment variables `XDG_CONFIG_HOME`, `XDG_DATA_HOME` and
+`XDG_DATA_DIRS`.
 
 Building
 --------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-run-0.0.4/man/wlheadless-run.man 
new/xwayland-run-0.0.6/man/wlheadless-run.man
--- old/xwayland-run-0.0.4/man/wlheadless-run.man       2024-06-28 
15:57:52.000000000 +0200
+++ new/xwayland-run-0.0.6/man/wlheadless-run.man       2026-04-28 
17:01:07.000000000 +0200
@@ -40,8 +40,8 @@
 Sets the default compositor to use.
 .PP
 The file is searched in \fBwlheadless\fP directory relative to the paths
-specified in the standard environment variables \fBXDG_DATA_HOME\fP and
-\fBXDG_DATA_DIRS\fP.
+specified in the standard environment variables \fBXDG_CONFIG_HOME\fP,
+\fBXDG_DATA_HOME\fP and \fBXDG_DATA_DIRS\fP.
 .PP
 .NF
 [DEFAULT]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-run-0.0.4/man/xwfb-run.man 
new/xwayland-run-0.0.6/man/xwfb-run.man
--- old/xwayland-run-0.0.4/man/xwfb-run.man     2024-06-28 15:57:52.000000000 
+0200
+++ new/xwayland-run-0.0.6/man/xwfb-run.man     2026-04-28 17:01:07.000000000 
+0200
@@ -72,8 +72,8 @@
 Sets the default compositor to use.
 .PP
 The file is searched in \fBwlheadless\fP directory relative to the paths
-specified in the standard environment variables \fBXDG_DATA_HOME\fP and
-\fBXDG_DATA_DIRS\fP.
+specified in the standard environment variables \fBXDG_CONFIG_HOME\fP,
+\fBXDG_DATA_HOME\fP and \fBXDG_DATA_DIRS\fP.
 .PP
 .NF
 [DEFAULT]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-run-0.0.4/meson.build 
new/xwayland-run-0.0.6/meson.build
--- old/xwayland-run-0.0.4/meson.build  2024-06-28 15:57:52.000000000 +0200
+++ new/xwayland-run-0.0.6/meson.build  2026-04-28 17:01:07.000000000 +0200
@@ -1,5 +1,5 @@
 project('xwayland-run',
-        version: '0.0.4',
+        version: '0.0.6',
         license: 'GPL-2.0-or-later',
         meson_version: '>= 0.60.0')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-run-0.0.4/src/wlheadless/cage.py 
new/xwayland-run-0.0.6/src/wlheadless/cage.py
--- old/xwayland-run-0.0.4/src/wlheadless/cage.py       2024-06-28 
15:57:52.000000000 +0200
+++ new/xwayland-run-0.0.6/src/wlheadless/cage.py       2026-04-28 
17:01:07.000000000 +0200
@@ -44,7 +44,7 @@
 
 
     def spawn_client(self, command_args):
-        """Helper function to spawn mutter and the client at once."""
+        """Helper function to spawn the compositor and the client at once."""
         environ['WLR_BACKENDS'] = 'headless'
         compositor=self.compositor
         compositor.extend(self.compositor_args)
@@ -54,7 +54,7 @@
 
 
     def spawn_xwayland(self, xserver_args=[]):
-        """Helper function to spawn mutter and Xwayland at once."""
+        """Helper function to spawn the compositor and Xwayland at once."""
         environ['WLR_BACKENDS'] = 'headless'
         compositor=self.compositor
         compositor.extend(self.compositor_args)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-run-0.0.4/src/wlheadless/gnome-kiosk.py 
new/xwayland-run-0.0.6/src/wlheadless/gnome-kiosk.py
--- old/xwayland-run-0.0.4/src/wlheadless/gnome-kiosk.py        2024-06-28 
15:57:52.000000000 +0200
+++ new/xwayland-run-0.0.6/src/wlheadless/gnome-kiosk.py        2026-04-28 
17:01:07.000000000 +0200
@@ -69,7 +69,7 @@
         wayland_display = 'wayland-' + format(getpid())
         environ['WAYLAND_DISPLAY'] = wayland_display
         # Add at least one virtual monitor if none is specified
-        if not '--virtual-monitor' in compositor_args:
+        if not any('--virtual-monitor' in args for args in compositor_args):
             compositor_args.extend(['--virtual-monitor', '1024x768'])
         compositor = self.compositor
         # The option '--no-x11' might not be supported if mutter was built
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-run-0.0.4/src/wlheadless/meson.build 
new/xwayland-run-0.0.6/src/wlheadless/meson.build
--- old/xwayland-run-0.0.4/src/wlheadless/meson.build   2024-06-28 
15:57:52.000000000 +0200
+++ new/xwayland-run-0.0.6/src/wlheadless/meson.build   2026-04-28 
17:01:07.000000000 +0200
@@ -4,6 +4,7 @@
     'gnome-kiosk.py',
     'kwin.py',
     'mutter.py',
+    'phoc.py',
     'weston.py',
     'wlheadless_common.py',
     'xwayland.py'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-run-0.0.4/src/wlheadless/mutter.py 
new/xwayland-run-0.0.6/src/wlheadless/mutter.py
--- old/xwayland-run-0.0.4/src/wlheadless/mutter.py     2024-06-28 
15:57:52.000000000 +0200
+++ new/xwayland-run-0.0.6/src/wlheadless/mutter.py     2026-04-28 
17:01:07.000000000 +0200
@@ -83,7 +83,7 @@
     def run_compositor(self, compositor_args = []):
         """Starts the Wayland compositor."""
         # Add at least one virtual monitor if none is specified
-        if not '--virtual-monitor' in compositor_args:
+        if not any('--virtual-monitor' in args for args in compositor_args):
             compositor_args.extend(['--virtual-monitor', '1024x768'])
         # Just save the given args for when we shall actually spawn the 
compositor.
         self.compositor_args = compositor_args
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-run-0.0.4/src/wlheadless/phoc.py 
new/xwayland-run-0.0.6/src/wlheadless/phoc.py
--- old/xwayland-run-0.0.4/src/wlheadless/phoc.py       1970-01-01 
01:00:00.000000000 +0100
+++ new/xwayland-run-0.0.6/src/wlheadless/phoc.py       2026-04-28 
17:01:07.000000000 +0200
@@ -0,0 +1,71 @@
+#
+# Copyright © 2025 The Phosh Developers
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+#
+#   Guido Günther <[email protected]>
+#
+
+""" Abstraction for running a Wayland client on phoc headless. """
+
+from os import environ, getpid
+from wlheadless.wlheadless_common import WlheadlessCommon
+from wlheadless.xwayland import Xwayland
+
+
+class Wlheadless:
+
+    """
+    Abstraction for running a Wayland client on phoc headless.
+    """
+
+    def __call__(self):
+        return self
+
+    def __init__(self):
+        self.compositor_args = []
+        self.compositor = [
+            'phoc',
+        ]
+        self.wlheadless_common = WlheadlessCommon()
+        self.xwayland = Xwayland()
+
+
+    def spawn_client(self, command_args):
+        """Helper function to spawn the Wayland client."""
+        return self.wlheadless_common.run_command(command_args)
+
+
+    def spawn_xwayland(self, xserver_args = []):
+        """Helper function to spawn Xwayland."""
+        xserver_args.extend(['-fullscreen'])
+        return self.xwayland.spawn_xwayland(xserver_args)
+
+
+    def wait_compositor(self):
+        """Waits for the compositor to start."""
+        return self.wlheadless_common.wait_compositor()
+
+
+    def run_compositor(self, compositor_args = []):
+        """Helper function to spawn phoc."""
+        wayland_display = 'wayland-' + format(getpid())
+        environ['WAYLAND_DISPLAY'] = wayland_display
+        environ['WLR_BACKENDS'] = 'headless'
+        compositor = self.compositor
+        compositor.extend(self.compositor_args)
+        compositor.extend(['--socket', format(wayland_display)])
+        return self.wlheadless_common.run_compositor(compositor)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-run-0.0.4/src/wlheadless/weston.py 
new/xwayland-run-0.0.6/src/wlheadless/weston.py
--- old/xwayland-run-0.0.4/src/wlheadless/weston.py     2024-06-28 
15:57:52.000000000 +0200
+++ new/xwayland-run-0.0.6/src/wlheadless/weston.py     2026-04-28 
17:01:07.000000000 +0200
@@ -45,6 +45,7 @@
         ]
         self.wlheadless_common = WlheadlessCommon()
         self.xwayland = Xwayland()
+        self.options = self.wlheadless_common.get_command_output(['weston', 
'-h'])
 
 
     def spawn_client(self, command_args):
@@ -68,5 +69,9 @@
         environ['WAYLAND_DISPLAY'] = wayland_display
         compositor = self.compositor
         compositor.extend(compositor_args)
+        if '--fake-seat' in self.options:
+            compositor.extend(['--fake-seat'])
+        else:
+            print('Warning, "weston" does not support the "--fake-seat" 
option\n')
         compositor.extend(['--socket', format(wayland_display)])
         return self.wlheadless_common.run_compositor(compositor)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xwayland-run-0.0.4/src/wlheadless/wlheadless_common.py 
new/xwayland-run-0.0.6/src/wlheadless/wlheadless_common.py
--- old/xwayland-run-0.0.4/src/wlheadless/wlheadless_common.py  2024-06-28 
15:57:52.000000000 +0200
+++ new/xwayland-run-0.0.6/src/wlheadless/wlheadless_common.py  2026-04-28 
17:01:07.000000000 +0200
@@ -76,10 +76,17 @@
     def get_compositor(self):
         """ Read the configuration for the default compositor """
         dirs = []
-        dirs.extend(os.getenv('XDG_DATA_HOME', '').split(':'))
-        dirs.extend(os.getenv('XDG_DATA_DIRS', '').split(':'))
+        home = os.getenv('HOME', '')
+        xdg_config_home = home + '/.config'
+        xdg_data_home = home + '/.local/share'
+        xdg_data_dirs = '/usr/local/share/:/usr/share/'
+        dirs.extend(os.getenv('XDG_CONFIG_HOME', xdg_config_home).split(':'))
+        dirs.extend(os.getenv('XDG_DATA_HOME', xdg_data_home).split(':'))
+        dirs.extend(os.getenv('XDG_DATA_DIRS', xdg_data_dirs).split(':'))
         config = configparser.ConfigParser()
-        config.read([os.path.join(d, 'wlheadless', 'wlheadless.conf') for d in 
dirs])
+        for d in dirs:
+            if config.read(os.path.join(d, 'wlheadless', 'wlheadless.conf')):
+                break
         return config.get('DEFAULT', 'Compositor', fallback = 'weston')
 
 
@@ -108,7 +115,7 @@
 
     def wait_compositor(self):
         """ Waits for the compositor to start """
-        for _ in range(0, 3):
+        for _ in range(0, 150):
             try:
                 self.__try_connect()
                 return 0
@@ -133,7 +140,10 @@
     def __cleanup_tempdir(self):
         """ Removes our temporary XDG_RUNTIME_DIR directory if empty. """
         if self.xdg_runtime_dir:
-            os.waitpid(-1, 0)
+            try:
+                os.waitpid(-1, 0)
+            except ChildProcessError:
+                pass
             try:
                 rmtree(self.xdg_runtime_dir)
             except OSError as error:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-run-0.0.4/src/xwfb-run.py 
new/xwayland-run-0.0.6/src/xwfb-run.py
--- old/xwayland-run-0.0.4/src/xwfb-run.py      2024-06-28 15:57:52.000000000 
+0200
+++ new/xwayland-run-0.0.6/src/xwfb-run.py      2026-04-28 17:01:07.000000000 
+0200
@@ -113,6 +113,7 @@
 if args.server_num:
     xserver_args.append(':' + args.server_num)
 
+saved_stderr_fd = os.dup(sys.stderr.fileno())
 with open(args.error_file, 'a') as logfile:
     os.close(sys.stderr.fileno())
     os.dup2(logfile.fileno(), sys.stderr.fileno())
@@ -135,6 +136,8 @@
 
     sleep(args.wait)
     status = os.EX_DATAERR
+    os.dup2(saved_stderr_fd, sys.stderr.fileno())
+    os.close(saved_stderr_fd)
     try:
         status = wlheadless_common.run_command(args.command)
     except Exception as error:

Reply via email to