Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package vdu_controls for openSUSE:Factory checked in at 2026-08-09 21:42:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/vdu_controls (Old) and /work/SRC/openSUSE:Factory/.vdu_controls.new.16738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vdu_controls" Sun Aug 9 21:42:15 2026 rev:23 rq:1370277 version:2.6.9 Changes: -------- --- /work/SRC/openSUSE:Factory/vdu_controls/vdu_controls.changes 2026-08-05 17:50:51.475021019 +0200 +++ /work/SRC/openSUSE:Factory/.vdu_controls.new.16738/vdu_controls.changes 2026-08-09 21:45:14.562533575 +0200 @@ -1,0 +2,6 @@ +Thu Aug 6 21:04:53 UTC 2026 - Michael Hamilton <[email protected]> + +- Version 2.6.9 + * Fix Qt session restoration state (X11 only feature) - really fix this time. + +------------------------------------------------------------------- Old: ---- vdu_controls-2.6.8.tar.gz New: ---- vdu_controls-2.6.9.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ vdu_controls.spec ++++++ --- /var/tmp/diff_new_pack.pcMgmL/_old 2026-08-09 21:45:15.206555558 +0200 +++ /var/tmp/diff_new_pack.pcMgmL/_new 2026-08-09 21:45:15.206555558 +0200 @@ -17,7 +17,7 @@ # Name: vdu_controls -Version: 2.6.8 +Version: 2.6.9 Release: 0 Summary: Visual Display Unit virtual control panel License: GPL-3.0-or-later ++++++ vdu_controls-2.6.8.tar.gz -> vdu_controls-2.6.9.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.6.8/CHANGELOG.md new/vdu_controls-2.6.9/CHANGELOG.md --- old/vdu_controls-2.6.8/CHANGELOG.md 2026-08-05 02:57:02.000000000 +0200 +++ new/vdu_controls-2.6.9/CHANGELOG.md 2026-08-06 09:25:41.000000000 +0200 @@ -4,6 +4,9 @@ --> # Changelog +## Unreleased 2.6.9 +- Fix Qt session restoration state (X11 only feature) - really fix this time. + ## Version 2.6.8 <small>(2026-08-05)</small> - Fix Qt session restoration state - set executable to be wrapper-script. - Fix gnome QTextBrowser external http link following. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.6.8/README.md new/vdu_controls-2.6.9/README.md --- old/vdu_controls-2.6.8/README.md 2026-08-05 02:57:02.000000000 +0200 +++ new/vdu_controls-2.6.9/README.md 2026-08-06 09:25:41.000000000 +0200 @@ -12,7 +12,7 @@ > > [!TIP] -> Laptop-panels are supported in version 2.6 (see [options](https://github.com/digitaltrails/vdu_controls#laptop-panel-brightness-controls) below). +> Laptop-panels are supported in version 2.6 ([see below](#laptop-panel-brightness-controls)). ## Description diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.6.8/packaging/PKGBUILD new/vdu_controls-2.6.9/packaging/PKGBUILD --- old/vdu_controls-2.6.8/packaging/PKGBUILD 2026-08-05 02:57:02.000000000 +0200 +++ new/vdu_controls-2.6.9/packaging/PKGBUILD 2026-08-06 09:25:41.000000000 +0200 @@ -1,6 +1,6 @@ # Maintainer: Mark Wagie <mark dot wagie at proton dot me> pkgname=vdu_controls -pkgver=2.6.8 +pkgver=2.6.9 pkgrel=1 pkgdesc="Visual Display Unit virtual control panel - a GUI front end to ddcutil" arch=('any') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.6.8/packaging/vdu_controls.spec new/vdu_controls-2.6.9/packaging/vdu_controls.spec --- old/vdu_controls-2.6.8/packaging/vdu_controls.spec 2026-08-05 02:57:02.000000000 +0200 +++ new/vdu_controls-2.6.9/packaging/vdu_controls.spec 2026-08-06 09:25:41.000000000 +0200 @@ -17,7 +17,7 @@ # Name: vdu_controls -Version: 2.6.8 +Version: 2.6.9 Release: 0 Summary: Visual Display Unit virtual control panel License: GPL-3.0-or-later diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.6.8/pyproject.toml new/vdu_controls-2.6.9/pyproject.toml --- old/vdu_controls-2.6.8/pyproject.toml 2026-08-05 02:57:02.000000000 +0200 +++ new/vdu_controls-2.6.9/pyproject.toml 2026-08-06 09:25:41.000000000 +0200 @@ -7,7 +7,7 @@ [project] name = "vdu_controls" -version = "2.6.8" +version = "2.6.9" description = "Visual Display Unit virtual control panel" requires-python = ">=3.9" dependencies = [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.6.8/src/vdu_controls/constants.py new/vdu_controls-2.6.9/src/vdu_controls/constants.py --- old/vdu_controls-2.6.8/src/vdu_controls/constants.py 2026-08-05 02:57:02.000000000 +0200 +++ new/vdu_controls-2.6.9/src/vdu_controls/constants.py 2026-08-06 09:25:41.000000000 +0200 @@ -38,7 +38,7 @@ # the version reported in the About Dialog). In this way, wider packaging # doesn't require hacks to copy with rc/beta suffixes which we are # never going to appear in delivered distro releases. -VDU_CONTROLS_VERSION = '2.6.8' +VDU_CONTROLS_VERSION = '2.6.9' VDU_CONTROLS_VERSION_TUPLE = tuple(int(i) for i in _re.split(r'[.-]', VDU_CONTROLS_VERSION)[:3]) VDU_CONTROLS_BASE_VERSION = VDU_CONTROLS_VERSION.split('-')[0] VDU_CONTROLS_PRE_RELEASE = (VDU_CONTROLS_VERSION.split('-') + [ '' ])[1] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.6.8/src/vdu_controls/installer.py new/vdu_controls-2.6.9/src/vdu_controls/installer.py --- old/vdu_controls-2.6.8/src/vdu_controls/installer.py 2026-08-05 02:57:02.000000000 +0200 +++ new/vdu_controls-2.6.9/src/vdu_controls/installer.py 2026-08-06 09:25:41.000000000 +0200 @@ -14,7 +14,7 @@ from vdu_controls.svg import VDU_CONTROLS_ICON_SVG -def install_as_desktop_application(uninstall: bool = False) -> None: +def install_as_desktop_application(python_script_name: str, uninstall: bool = False) -> None: """ Self install this script in the current Linux user's bin directory and desktop applications->settings menu. @@ -54,15 +54,16 @@ if installed_script_path.exists(): log.warning(f"reinstalling {installed_script_path.as_posix()}, assuming an upgrade is required.") - origin_script_path = Path(sys.argv[0]) + script_path_str = python_script_name + origin_script_path = Path(script_path_str) if origin_script_path.name == "__main__.py" and origin_script_path.parent.name == 'vdu_controls': import zipapp log.info(f"Creating zipapp {installed_script_path.as_posix()}") zipapp.create_archive(origin_script_path.parent.parent, target=installed_script_path, main='vdu_controls.__main__:main', interpreter=sys.executable) elif origin_script_path.name.endswith(".pyz"): - log.info(f"Copying existing zipapp {sys.argv[0]} to {installed_script_path.as_posix()}") - shutil.copy2(sys.argv[0], installed_script_path) + log.info(f"Copying existing zipapp {script_path_str} to {installed_script_path.as_posix()}") + shutil.copy2(script_path_str, installed_script_path) else: log.error(f"Unrecognized installable: {origin_script_path}") sys.exit(0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vdu_controls-2.6.8/src/vdu_controls/vdu_controls_application.py new/vdu_controls-2.6.9/src/vdu_controls/vdu_controls_application.py --- old/vdu_controls-2.6.8/src/vdu_controls/vdu_controls_application.py 2026-08-05 02:57:02.000000000 +0200 +++ new/vdu_controls-2.6.9/src/vdu_controls/vdu_controls_application.py 2026-08-06 09:25:41.000000000 +0200 @@ -1619,20 +1619,24 @@ return app_instance -def fix_session_restoration_path(sys_args: List[str]) -> List[str]: +def edit_session_restoration_path() -> str: """ - Ensure that sys.argv[0] points to the wrapper script (blah/bin/vdu_controls) + if VDU_CONTROLS_WRAPPER is set, ensure that sys.argv[0] points to the + wrapper script defined by the env variable (blah/bin/vdu_controls) instead of the full path to __main__.py. This fixes session restoration on all desktop environments (KDE, GNOME, XFCE, LXQt, etc.) by ensuring the session manager saves the correct restart command. + + Return: original python sys.argv[0] for use by the --install option """ # Prefer the environment variable set by the wrapper. wrapper = getenv_logged("VDU_CONTROLS_WRAPPER", '') + python_script_name = sys.argv[0] + log.info(f"ArgvEdit: {python_script_name=}") if wrapper: - log.info(f"Wrapper script in use. Session restart executable: VDU_CONTROLS_WRAPPER={wrapper}.") - return [ wrapper ] + sys_args[1:] - log.info(f"Not started by wrapper script. Session restart executable: {sys.argv[0]}") - return sys_args + log.info(f"ArgvEdit: session restart executable: VDU_CONTROLS_WRAPPER={wrapper}.") + sys.argv[0] = wrapper + return python_script_name def main() -> None: @@ -1673,8 +1677,10 @@ QGuiApplication.setDesktopFileName("vdu_controls") # Wayland needs this set to find/use the app's desktop icon. # Call QApplication before parsing arguments, it will parse and remove Qt session restoration arguments. - restartable_argv = fix_session_restoration_path(sys.argv) - app = QApplication(restartable_argv) + log.info(f"Original: {sys.argv=}") + python_script_name = edit_session_restoration_path() + app = QApplication(sys.argv) + log.info(f"Final: {sys.argv=}") assert app is not None app.setApplicationName('vdu_controls') app_thread = app.thread() @@ -1685,7 +1691,7 @@ global unix_signal_handler unix_signal_handler = SignalWakeupHandler(app) - log.info(f"{APPNAME} {VDU_CONTROLS_VERSION} {restartable_argv[0]} ") + log.info(f"{APPNAME} {VDU_CONTROLS_VERSION} {sys.argv[0]} ") log.info(f"python-locale: {locale.getlocale()} Qt-locale: {QLocale.system().name()}") log.info(f"desktop: {getenv_logged('XDG_CURRENT_DESKTOP', default='unknown')}; " f"session-type: {getenv_logged('XDG_SESSION_TYPE', default='unknown')}; " @@ -1706,10 +1712,10 @@ if args.create_config_files: main_config.write_file(default_config_path) if args.install: - install_as_desktop_application() + install_as_desktop_application(python_script_name) sys.exit() if args.uninstall: - install_as_desktop_application(uninstall=True) + install_as_desktop_application(python_script_name, uninstall=True) sys.exit() if args.detailed_help: print(app_locale.load_docs_text(HELP_FILENAME))
