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',

Reply via email to