Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package faugus-launcher for openSUSE:Factory
checked in at 2026-02-20 17:44:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/faugus-launcher (Old)
and /work/SRC/openSUSE:Factory/.faugus-launcher.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "faugus-launcher"
Fri Feb 20 17:44:42 2026 rev:5 rq:1334102 version:1.14.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/faugus-launcher/faugus-launcher.changes
2026-02-16 13:14:11.782194314 +0100
+++
/work/SRC/openSUSE:Factory/.faugus-launcher.new.1977/faugus-launcher.changes
2026-02-20 17:52:42.304739019 +0100
@@ -1,0 +2,10 @@
+Fri Feb 20 01:07:20 UTC 2026 - Jehu Marcos Herrera Puentes
<[email protected]>
+
+- Bump to version 1.14.4
+- Upstream changes for 1.14.4:
+ * Prevent non latin title when creating shortcut too
+ * Added jxl image support
+ * Prevent non latin characters on title
+ * Added a backup system for games.json
+
+-------------------------------------------------------------------
Old:
----
faugus-launcher-1.14.3.tar.xz
New:
----
faugus-launcher-1.14.4.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ faugus-launcher.spec ++++++
--- /var/tmp/diff_new_pack.BMdybW/_old 2026-02-20 17:52:42.964766669 +0100
+++ /var/tmp/diff_new_pack.BMdybW/_new 2026-02-20 17:52:42.972767003 +0100
@@ -26,7 +26,7 @@
%endif
Name: faugus-launcher
-Version: 1.14.3
+Version: 1.14.4
Release: 0
Summary: A simple and lightweight app for running Windows games using
UMU-Launcher
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.BMdybW/_old 2026-02-20 17:52:43.064770857 +0100
+++ /var/tmp/diff_new_pack.BMdybW/_new 2026-02-20 17:52:43.092772030 +0100
@@ -3,7 +3,7 @@
<service name="tar_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://github.com/Faugus/faugus-launcher.git</param>
- <param name="revision">1.14.3</param>
+ <param name="revision">1.14.4</param>
<param name="changesgenerate">enable</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v?([0-9]+(\.[0-9])*)(\+0)?</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.BMdybW/_old 2026-02-20 17:52:43.128773539 +0100
+++ /var/tmp/diff_new_pack.BMdybW/_new 2026-02-20 17:52:43.136773874 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://github.com/Faugus/faugus-launcher.git</param>
- <param
name="changesrevision">8f3d9383f1edd122db600dcf901156f9090c08bd</param></service></servicedata>
+ <param
name="changesrevision">83041e542ed81e35bed87e7f1c250da78434e436</param></service></servicedata>
(No newline at EOF)
++++++ faugus-launcher-1.14.3.tar.xz -> faugus-launcher-1.14.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/faugus-launcher-1.14.3/README.md
new/faugus-launcher-1.14.4/README.md
--- old/faugus-launcher-1.14.3/README.md 2026-02-14 00:36:37.000000000
+0100
+++ new/faugus-launcher-1.14.4/README.md 2026-02-20 00:53:21.000000000
+0100
@@ -38,7 +38,7 @@
sudo apt update
sudo apt install -y wget
mkdir -p ~/faugus-launcher
-wget -P ~/faugus-launcher
https://github.com/Faugus/faugus-launcher/releases/download/1.14.3/faugus-launcher_1.14.3-1_all.deb
+wget -P ~/faugus-launcher
https://github.com/Faugus/faugus-launcher/releases/download/1.14.4/faugus-launcher_1.14.4-1_all.deb
sudo apt install -y ~/faugus-launcher/*.deb
sudo rm -r ~/faugus-launcher
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/faugus-launcher-1.14.3/data/faugus-launcher.metainfo.xml
new/faugus-launcher-1.14.4/data/faugus-launcher.metainfo.xml
--- old/faugus-launcher-1.14.3/data/faugus-launcher.metainfo.xml
2026-02-14 00:36:37.000000000 +0100
+++ new/faugus-launcher-1.14.4/data/faugus-launcher.metainfo.xml
2026-02-20 00:53:21.000000000 +0100
@@ -81,12 +81,12 @@
</screenshot>
</screenshots>
<releases>
- <release version="1.14.3-1" date="2026-02-13">
+ <release version="1.14.4-1" date="2026-02-19">
<description>
<ul>
- <li>Fixed duplicating an entry without giving a title</li>
- <li>Fixed LSFG Performance Mode and HDR Mode</li>
- <li>Added Present Mode to LSFG</li>
+ <li>Added support to JXL images for icons and banners</li>
+ <li>Now prevents non latin characters in title</li>
+ <li>A backup system was added for the games.json file to prevent
data loss and protect the user’s library</li>
</ul>
</description>
</release>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/faugus-launcher-1.14.3/data/io.github.Faugus.faugus-launcher.metainfo.xml
new/faugus-launcher-1.14.4/data/io.github.Faugus.faugus-launcher.metainfo.xml
---
old/faugus-launcher-1.14.3/data/io.github.Faugus.faugus-launcher.metainfo.xml
2026-02-14 00:36:37.000000000 +0100
+++
new/faugus-launcher-1.14.4/data/io.github.Faugus.faugus-launcher.metainfo.xml
2026-02-20 00:53:21.000000000 +0100
@@ -87,12 +87,12 @@
</screenshot>
</screenshots>
<releases>
- <release version="1.14.3-1" date="2026-02-13">
+ <release version="1.14.4-1" date="2026-02-19">
<description>
<ul>
- <li>Fixed duplicating an entry without giving a title</li>
- <li>Fixed LSFG Performance Mode and HDR Mode</li>
- <li>Added Present Mode to LSFG</li>
+ <li>Added support to JXL images for icons and banners</li>
+ <li>Now prevents non latin characters in title</li>
+ <li>A backup system was added for the games.json file to prevent
data loss and protect the user’s library</li>
</ul>
</description>
</release>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/faugus-launcher-1.14.3/faugus/shortcut.py
new/faugus-launcher-1.14.4/faugus/shortcut.py
--- old/faugus-launcher-1.14.3/faugus/shortcut.py 2026-02-14
00:36:37.000000000 +0100
+++ new/faugus-launcher-1.14.4/faugus/shortcut.py 2026-02-20
00:53:21.000000000 +0100
@@ -9,6 +9,7 @@
import subprocess
import re
import webbrowser
+import unicodedata
gi.require_version("Gtk", "3.0")
gi.require_version('Gdk', '3.0')
@@ -121,6 +122,15 @@
title = title.strip("-")
return title
+def _validate_text(entry):
+ text = entry.get_text()
+ for i, c in enumerate(text):
+ if c.isalpha() and "LATIN" not in unicodedata.name(c, ""):
+ new_text = text[:i] + text[i+1:]
+ entry.set_text(new_text)
+ entry.set_position(i)
+ break
+
class CreateShortcut(Gtk.Window):
def __init__(self, file_path):
super().__init__(title="Faugus Launcher")
@@ -155,6 +165,7 @@
self.label_title.set_halign(Gtk.Align.START)
self.entry_title = Gtk.Entry()
self.entry_title.connect("changed", self.on_entry_changed,
self.entry_title)
+ self.entry_title.connect("changed", _validate_text)
self.entry_title.set_tooltip_text(_("Game Title"))
self.label_protonfix = Gtk.Label(label="Protonfix")
@@ -855,6 +866,7 @@
filter_ico.add_pattern("*.png")
filter_ico.add_pattern("*.jpg")
filter_ico.add_pattern("*.jpeg")
+ filter_ico.add_pattern("*.jxl")
filter_ico.add_pattern("*.bmp")
filter_ico.add_pattern("*.gif")
filter_ico.add_pattern("*.svg")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/faugus-launcher-1.14.3/faugus_launcher.py
new/faugus-launcher-1.14.4/faugus_launcher.py
--- old/faugus-launcher-1.14.3/faugus_launcher.py 2026-02-14
00:36:37.000000000 +0100
+++ new/faugus-launcher-1.14.4/faugus_launcher.py 2026-02-20
00:53:21.000000000 +0100
@@ -15,6 +15,7 @@
import vdf
import signal
import gettext
+import unicodedata
gi.require_version('Gtk', '3.0')
gi.require_version('Gdk', '3.0')
@@ -26,7 +27,7 @@
from faugus.config_manager import *
from faugus.dark_theme import *
-VERSION = "1.14.3"
+VERSION = "1.14.4"
print(f"Faugus Launcher {VERSION}")
IS_FLATPAK = 'FLATPAK_ID' in os.environ or os.path.exists('/.flatpak-info')
@@ -40,6 +41,7 @@
config_file_dir = PathManager.user_config('faugus-launcher/config.ini')
envar_dir = PathManager.user_config('faugus-launcher/envar.txt')
share_dir = PathManager.user_data()
+backup_dir = PathManager.user_config("faugus-launcher/games-backup")
faugus_mono_icon = PathManager.get_icon('faugus-mono.svg')
proton_cachyos =
PathManager.system_data('steam/compatibilitytools.d/proton-cachyos-slr/')
@@ -183,6 +185,15 @@
return runner
+def _validate_text(entry):
+ text = entry.get_text()
+ for i, c in enumerate(text):
+ if c.isalpha() and "LATIN" not in unicodedata.name(c, ""):
+ new_text = text[:i] + text[i+1:]
+ entry.set_text(new_text)
+ entry.set_position(i)
+ break
+
class Main(Gtk.Window):
def __init__(self):
# Initialize the main window with title and default size
@@ -2338,6 +2349,8 @@
games.append(game_info)
+ self.backup_games()
+
with open("games.json", "w", encoding="utf-8") as file:
json.dump(games, file, ensure_ascii=False, indent=4)
@@ -3010,9 +3023,34 @@
if hasattr(self, "_deleted_gameid"):
del self._deleted_gameid
+ self.backup_games()
+
with open("games.json", "w", encoding="utf-8") as file:
json.dump(new_games_data, file, ensure_ascii=False, indent=4)
+ def backup_games(self):
+ if os.path.isfile(games_json):
+ os.makedirs(backup_dir, exist_ok=True)
+
+ now = GLib.DateTime.new_now_local()
+ timestamp = now.format("%Y-%m-%d_%H-%M-%S")
+
+ backup_file = os.path.join(
+ backup_dir,
+ f"games-data-{timestamp}.json"
+ )
+
+ shutil.copy2(games_json, backup_file)
+
+ backups = sorted(
+ f for f in os.listdir(backup_dir)
+ if f.startswith("games-data-") and f.endswith(".json")
+ )
+
+ while len(backups) > 20:
+ oldest = backups.pop(0)
+ os.remove(os.path.join(backup_dir, oldest))
+
class Settings(Gtk.Dialog):
def __init__(self, parent):
# Initialize the Settings dialog
@@ -4102,7 +4140,7 @@
self.response(Gtk.ResponseType.OK)
self.show_warning_dialog(self, _("Prefixes and runners will not be
backed up!"))
- items = ["banners", "icons", "config.ini", "games.json",
"latest-games.txt"]
+ items = ["banners", "games-backup", "icons", "config.ini",
"envar.txt", "games.json", "latest-games.txt"]
temp_dir = os.path.join(faugus_launcher_dir, "temp-backup")
os.makedirs(temp_dir, exist_ok=True)
@@ -4532,6 +4570,7 @@
label_title.set_halign(Gtk.Align.START)
self.entry_title = Gtk.Entry()
self.entry_title.set_tooltip_text(_("Game Title"))
+ self.entry_title.connect("changed", _validate_text)
button_cancel = Gtk.Button(label=_("Cancel"))
button_cancel.connect("clicked", lambda widget:
self.response(Gtk.ResponseType.CANCEL))
@@ -4835,6 +4874,7 @@
self.label_title.set_halign(Gtk.Align.START)
self.entry_title = Gtk.Entry()
self.entry_title.connect("changed", self.on_entry_changed,
self.entry_title)
+ self.entry_title.connect("changed", _validate_text)
if interface_mode == "Banners":
self.entry_title.connect("focus-out-event",
self.on_entry_focus_out)
self.entry_title.set_tooltip_text(_("Game Title"))
@@ -5432,6 +5472,7 @@
filter_ico.add_pattern("*.png")
filter_ico.add_pattern("*.jpg")
filter_ico.add_pattern("*.jpeg")
+ filter_ico.add_pattern("*.jxl")
filter_ico.add_pattern("*.bmp")
filter_ico.add_pattern("*.gif")
filter_ico.add_pattern("*.svg")
@@ -6051,6 +6092,7 @@
filter_ico.add_pattern("*.png")
filter_ico.add_pattern("*.jpg")
filter_ico.add_pattern("*.jpeg")
+ filter_ico.add_pattern("*.jxl")
filter_ico.add_pattern("*.bmp")
filter_ico.add_pattern("*.gif")
filter_ico.add_pattern("*.svg")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/faugus-launcher-1.14.3/meson.build
new/faugus-launcher-1.14.4/meson.build
--- old/faugus-launcher-1.14.3/meson.build 2026-02-14 00:36:37.000000000
+0100
+++ new/faugus-launcher-1.14.4/meson.build 2026-02-20 00:53:21.000000000
+0100
@@ -1,6 +1,6 @@
project(
'faugus-launcher',
- version: '1.14.3',
+ version: '1.14.4',
meson_version: '>=1.2.0',
license: 'MIT',
license_files: 'LICENSE',