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-11 18:47:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/faugus-launcher (Old)
 and      /work/SRC/openSUSE:Factory/.faugus-launcher.new.1670 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "faugus-launcher"

Wed Feb 11 18:47:57 2026 rev:3 rq:1332348 version:1.14.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/faugus-launcher/faugus-launcher.changes  
2026-02-07 15:33:59.446779711 +0100
+++ 
/work/SRC/openSUSE:Factory/.faugus-launcher.new.1670/faugus-launcher.changes    
    2026-02-11 18:48:48.189265586 +0100
@@ -1,0 +2,28 @@
+Tue Feb 10 19:02:03 UTC 2026 - Jehu Marcos Herrera Puentes 
<[email protected]>
+
+- Bump to version 1.14.2
+- Upstream changes for 1.14.2:
+  * Fixed Proton being redownloaded
+  * perf: optimize search by toggling flowbox child visibility
+  * Fix permission for Python executables
+  * perf: attach game references to flowbox children
+- For .spec file:
+  * Added shebang fix for proton_downloader.py
+  * Added %if conditional to fix non-executable scripts for older 
faugus-launcher versions
+  * Moved some of the fixes to the %prep step
+  * Added proper lang subpackage for translations
+  * Fix python bytecode mtime warnings for SLE 15 SP6 / Leap 15.6
+  * Better use of macros
+  * Minor fixes
+
+-------------------------------------------------------------------
+Mon Feb  9 07:14:29 UTC 2026 - Jehu Marcos Herrera Puentes 
<[email protected]>
+
+- .spec enhancements for %check
+
+-------------------------------------------------------------------
+Sun Feb  8 00:22:58 UTC 2026 - Jehu Marcos Herrera Puentes 
<[email protected]>
+
+- Minor .spec fixes 
+
+-------------------------------------------------------------------

Old:
----
  faugus-launcher-1.14.1.tar.xz

New:
----
  faugus-launcher-1.14.2.tar.xz

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

Other differences:
------------------
++++++ faugus-launcher.spec ++++++
--- /var/tmp/diff_new_pack.xn6uzL/_old  2026-02-11 18:48:48.813291792 +0100
+++ /var/tmp/diff_new_pack.xn6uzL/_new  2026-02-11 18:48:48.813291792 +0100
@@ -26,13 +26,13 @@
 %endif
 
 Name:           faugus-launcher
-Version:        1.14.1
+Version:        1.14.2
 Release:        0
 Summary:        A simple and lightweight app for running Windows games using 
UMU-Launcher
-
 License:        MIT
 URL:            https://github.com/Faugus/faugus-launcher
 Group:          System/Emulators/PC
+
 # Get the source from tar_scm
 Source0:        %{name}-%{version}.tar.xz
 # Exclusions
@@ -43,6 +43,8 @@
 # Faugus BuildDeps
 BuildRequires:  meson
 BuildRequires:  gtk4-tools
+BuildRequires:  desktop-file-utils
+BuildRequires:  appstream-glib
 
 # To remove duplicated files
 BuildRequires:  fdupes
@@ -52,14 +54,14 @@
 
 Requires:       ImageMagick
 Requires:       canberra-gtk-play
-Requires:       python%{python3_version_nodots}
-Requires:       python%{python3_version_nodots}-Pillow
-Requires:       python%{python3_version_nodots}-filelock
-Requires:       python%{python3_version_nodots}-gobject
-Requires:       python%{python3_version_nodots}-icoextract
-Requires:       python%{python3_version_nodots}-psutil
-Requires:       python%{python3_version_nodots}-requests
-Requires:       python%{python3_version_nodots}-vdf
+Requires:       %{python_module base}
+Requires:       %{python_module Pillow}
+Requires:       %{python_module filelock}
+Requires:       %{python_module gobject}
+Requires:       %{python_module icoextract}
+Requires:       %{python_module psutil}
+Requires:       %{python_module requests}
+Requires:       %{python_module vdf}
 Requires:       typelib-1_0-AyatanaAppIndicator3-0_1
 
 # Only install gaming selinux policy on SLE +16 / Leap +16 / Tumbleweed / 
Slowroll
@@ -76,15 +78,30 @@
 Recommends:     ntsync-autoload
 Recommends:     ntsync-autoload-udev-rules
 
-Provides:       faugus-launcher = %{version}
 Obsoletes:      faugus-launcher < %{version}
 
 %description
 A simple and lightweight app for running Windows games using 
UMU-Launcher/UMU-Proton.
 
+# Lang subpackage
+%lang_package
+
 %prep
 %autosetup -n %{name}-%{version}
 
+# Fix for shebangs
+sed -i '1s|/usr/bin/env python3|%{__python3}|' faugus_launcher.py
+sed -i '1s|/usr/bin/env python3|%{__python3}|' faugus_run.py
+sed -i '1s|/usr/bin/env python3|%{__python3}|' faugus_proton_manager.py
+sed -i '1s|/usr/bin/env python3|%{__python3}|' faugus/proton_downloader.py
+
+# Fix for non-executable scripts on older versions than 1.14.2
+%if "%{version}" <= "1.14.1"
+sed -i '1{/^#!.*python/d}' faugus/components.py
+sed -i '1{/^#!.*python/d}' faugus/path_manager.py
+sed -i '1{/^#!.*python/d}' faugus/proton_downloader.py
+%endif
+
 %build
 # Compile faugus-launcher
 %meson
@@ -94,15 +111,12 @@
 # Install faugus-launcher
 %meson_install
 
-# Fix for shebangs
-sed -i '1s|/usr/bin/env python3|/usr/bin/python3|' 
%{buildroot}%{_bindir}/faugus-launcher
-sed -i '1s|/usr/bin/env python3|/usr/bin/python3|' 
%{buildroot}%{_bindir}/faugus-run
-sed -i '1s|/usr/bin/env python3|/usr/bin/python3|' 
%{buildroot}%{_bindir}/faugus-proton-manager
-
-# Fix for non-executable scripts
-sed -i '1{/^#!.*python/d}' %{buildroot}%{python3_sitelib}/faugus/components.py
-sed -i '1{/^#!.*python/d}' 
%{buildroot}%{python3_sitelib}/faugus/path_manager.py
-sed -i '1{/^#!.*python/d}' 
%{buildroot}%{python3_sitelib}/faugus/proton_downloader.py
+# Fix bytecode mtime for SLE 15 SP6 / Leap 15.6
+%if 0%{?sle_version} == 150600
+find %{buildroot}%{python3_sitelib} -name "*.pyc" -delete
+find %{buildroot}%{python3_sitelib} -name "*.py" -exec touch -d "1970-01-01 
00:00:03" {} +
+%{__python3} -m compileall -d %{python3_sitelib} 
%{buildroot}%{python3_sitelib}/faugus/
+%endif
 
 # Remove duplicated files
 %fdupes %{buildroot}%{_datadir}
@@ -114,8 +128,11 @@
 cat faugus-proton-manager.lang faugus-run.lang >> %{name}.lang
 
 %check
+# Checks for desktop files and appstream metadata
+desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
+appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.xml
 
-%files -f %{name}.lang
+%files
 %license LICENSE
 # Application data
 %dir %{_datadir}/faugus-launcher
@@ -133,3 +150,6 @@
 # Python modules
 %{python3_sitelib}/faugus/
 
+# Language files for the subpackage
+%files lang -f %{name}.lang
+

++++++ _service ++++++
--- /var/tmp/diff_new_pack.xn6uzL/_old  2026-02-11 18:48:48.865293975 +0100
+++ /var/tmp/diff_new_pack.xn6uzL/_new  2026-02-11 18:48:48.877294479 +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.1</param>
+    <param name="revision">1.14.2</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.xn6uzL/_old  2026-02-11 18:48:48.905295655 +0100
+++ /var/tmp/diff_new_pack.xn6uzL/_new  2026-02-11 18:48:48.909295824 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/Faugus/faugus-launcher.git</param>
-              <param 
name="changesrevision">f85773916c55fbb43b44464d20d57e7602b786d2</param></service></servicedata>
+              <param 
name="changesrevision">307dff349ec34794816542823762343c048d0975</param></service></servicedata>
 (No newline at EOF)
 

++++++ faugus-launcher-1.14.1.tar.xz -> faugus-launcher-1.14.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.14.1/README.md 
new/faugus-launcher-1.14.2/README.md
--- old/faugus-launcher-1.14.1/README.md        2026-02-06 15:50:40.000000000 
+0100
+++ new/faugus-launcher-1.14.2/README.md        2026-02-10 13:53:05.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.1/faugus-launcher_1.14.1-1_all.deb
+wget -P ~/faugus-launcher 
https://github.com/Faugus/faugus-launcher/releases/download/1.14.2/faugus-launcher_1.14.2-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.1/data/faugus-launcher.metainfo.xml 
new/faugus-launcher-1.14.2/data/faugus-launcher.metainfo.xml
--- old/faugus-launcher-1.14.1/data/faugus-launcher.metainfo.xml        
2026-02-06 15:50:40.000000000 +0100
+++ new/faugus-launcher-1.14.2/data/faugus-launcher.metainfo.xml        
2026-02-10 13:53:05.000000000 +0100
@@ -81,15 +81,12 @@
     </screenshot>
   </screenshots>
   <releases>
-    <release version="1.14.1-1" date="2026-02-06">
+    <release version="1.14.2-1" date="2026-02-10">
       <description>
         <ul>
-          <li>Updated Dutch translation</li>
-          <li>Updated Portuguese translation</li>
-          <li>Added support to Asahi Linux</li>
-          <li>Fix allow protonfixes for Steam games</li>
-          <li>Added a message when SLR download fails due to internet 
connection error</li>
-          <li>Added global settings for new entries</li>
+          <li>Fixed GE-Proton being redownloaded every time</li>
+          <li>Fixed permissions for Python executables</li>
+          <li>Improved search performance</li>
         </ul>
       </description>
     </release>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/faugus-launcher-1.14.1/data/io.github.Faugus.faugus-launcher.metainfo.xml 
new/faugus-launcher-1.14.2/data/io.github.Faugus.faugus-launcher.metainfo.xml
--- 
old/faugus-launcher-1.14.1/data/io.github.Faugus.faugus-launcher.metainfo.xml   
    2026-02-06 15:50:40.000000000 +0100
+++ 
new/faugus-launcher-1.14.2/data/io.github.Faugus.faugus-launcher.metainfo.xml   
    2026-02-10 13:53:05.000000000 +0100
@@ -87,15 +87,12 @@
     </screenshot>
   </screenshots>
   <releases>
-    <release version="1.14.1-1" date="2026-02-06">
+    <release version="1.14.2-1" date="2026-02-10">
       <description>
         <ul>
-          <li>Updated Dutch translation</li>
-          <li>Updated Portuguese translation</li>
-          <li>Added support to Asahi Linux</li>
-          <li>Fix allow protonfixes for Steam games</li>
-          <li>Added a message when SLR download fails due to internet 
connection error</li>
-          <li>Added global settings for new entries</li>
+          <li>Fixed GE-Proton being redownloaded every time</li>
+          <li>Fixed permissions for Python executables</li>
+          <li>Improved search performance</li>
         </ul>
       </description>
     </release>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.14.1/faugus/proton_downloader.py 
new/faugus-launcher-1.14.2/faugus/proton_downloader.py
--- old/faugus-launcher-1.14.1/faugus/proton_downloader.py      2026-02-06 
15:50:40.000000000 +0100
+++ new/faugus-launcher-1.14.2/faugus/proton_downloader.py      2026-02-10 
13:53:05.000000000 +0100
@@ -49,19 +49,25 @@
     if not version_file.exists():
         return None
 
-    text = version_file.read_text().strip()
-
-    parts = text.split()
-    if len(parts) < 2:
+    parts = version_file.read_text().strip().split(maxsplit=1)
+    if len(parts) != 2:
         return None
 
-    ver = parts[1].rstrip("+")
+    return parts[1]
+
 
-    if ver.startswith("GE-Proton"):
-        ver = ver.split("-g")[0]
-        ver = ver.rsplit("-", 1)[0]
+def normalize_version(v):
+    if not v:
+        return None
 
-    return ver
+    return (
+        v.lstrip("v")
+         .replace("GE-Proton", "")
+         .replace("Proton-EM-", "")
+         .replace("EM-", "")
+         .rstrip("+")
+         .strip("-")
+    )
 
 
 def rewrite_compatibilitytool_vdf(proton_dir, display_name):
@@ -122,7 +128,7 @@
 
     installed = get_installed_version(proton_dir)
 
-    if installed == latest_tag:
+    if installed and normalize_version(installed) == 
normalize_version(latest_tag):
         print(f"{cfg['label']} is up to date.", flush=True)
         return
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.14.1/faugus_launcher.py 
new/faugus-launcher-1.14.2/faugus_launcher.py
--- old/faugus-launcher-1.14.1/faugus_launcher.py       2026-02-06 
15:50:40.000000000 +0100
+++ new/faugus-launcher-1.14.2/faugus_launcher.py       2026-02-10 
13:53:05.000000000 +0100
@@ -26,7 +26,7 @@
 from faugus.config_manager import *
 from faugus.dark_theme import *
 
-VERSION = "1.14.1"
+VERSION = "1.14.2"
 print(f"Faugus Launcher {VERSION}")
 IS_FLATPAK = 'FLATPAK_ID' in os.environ or os.path.exists('/.flatpak-info')
 
@@ -703,14 +703,11 @@
 
                 selected_children = self.flowbox.get_selected_children()
                 selected_child = selected_children[0]
-                hbox = selected_child.get_child()
-                game_label = hbox.get_children()[1]
-                title = game_label.get_text()
+                game = selected_child.game
+                title = game.title
 
                 self.menu_item_title.get_child().set_text(title)
 
-                game = next((j for j in self.games if j.title == title), None)
-
                 with open(games_json, "r") as f:
                     data = json.load(f)
 
@@ -826,8 +823,7 @@
         if not selected:
             return
 
-        title = selected[0].get_child().get_children()[1].get_text()
-        game = next((g for g in self.games if g.title == title), None)
+        game = selected[0].game
         if not game:
             return
 
@@ -955,15 +951,12 @@
     def on_duplicate_clicked(self, widget):
         selected_children = self.flowbox.get_selected_children()
         selected_child = selected_children[0]
-        hbox = selected_child.get_child()
-        game_label = hbox.get_children()[1]
-        title = game_label.get_text()
+        game = selected_child.game
+        title = game.title
 
         # Display duplicate dialog
         duplicate_dialog = DuplicateDialog(self, title)
 
-        game = next((g for g in self.games if g.title == title), None)
-
         while True:
             response = duplicate_dialog.run()
 
@@ -1506,27 +1499,24 @@
                 game_label.set_no_show_all(True)
 
         self.flowbox_child.add(hbox)
+        self.flowbox_child.game = game
         self.flowbox.add(self.flowbox_child)
 
     def on_search_changed(self, entry):
         search_text = entry.get_text().lower()
-        self.filtered_games = [game for game in self.games if search_text in 
game.title.lower()]
+        first_visible = None
 
         for child in self.flowbox.get_children():
-            self.flowbox.remove(child)
+            game = child.game
+            is_match = search_text in game.title.lower()
 
-        if self.filtered_games:
-            for game in self.filtered_games:
-                self.add_item_list(game)
-
-            first_child = self.flowbox.get_children()[0]
-            self.flowbox.select_child(first_child)
-            self.on_item_selected(self.flowbox, first_child)
-
-        else:
-            pass
-
-        self.flowbox.show_all()
+            child.set_visible(is_match)
+            if is_match and first_visible is None:
+                first_visible = child
+
+        if first_visible:
+            self.flowbox.select_child(first_visible)
+            self.on_item_selected(self.flowbox, first_visible)
 
     def on_item_selected(self, flowbox, child):
         if child is not None:
@@ -1694,9 +1684,8 @@
             return
 
         selected_child = selected_children[0]
-        hbox = selected_child.get_child()
-        game_label = hbox.get_children()[1]
-        title = game_label.get_text()
+        game = selected_child.game
+        title = game.title
 
         processos = self.load_processes_from_file()
         self.button_locked[title] = True
@@ -1712,8 +1701,6 @@
 
             return
 
-        # Find the selected game object
-        game = next((j for j in self.games if j.title == title), None)
         if game:
             # Format the title for command execution
             game_directory = os.path.dirname(game.path)
@@ -1847,11 +1834,10 @@
 
         selected_children = self.flowbox.get_selected_children()
         selected_child = selected_children[0]
-        hbox = selected_child.get_child()
-        game_label = hbox.get_children()[1]
-        title = game_label.get_text()
+        game = selected_child.game
+        title = game.title
 
-        if game := next((j for j in self.games if j.title == title), None):
+        if game:
             processos = self.load_processes_from_file()
             if game.title in processos:
                 self.game_running = True
@@ -1992,11 +1978,10 @@
         self.reload_playtimes()
         selected_children = self.flowbox.get_selected_children()
         selected_child = selected_children[0]
-        hbox = selected_child.get_child()
-        game_label = hbox.get_children()[1]
-        title = game_label.get_text()
+        game = selected_child.game
+        title = game.title
 
-        if game := next((j for j in self.games if j.title == title), None):
+        if game:
             # Display confirmation dialog
             confirmation_dialog = ConfirmationDialog(self, title, game.prefix, 
game.runner)
             response = confirmation_dialog.run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.14.1/meson.build 
new/faugus-launcher-1.14.2/meson.build
--- old/faugus-launcher-1.14.1/meson.build      2026-02-06 15:50:40.000000000 
+0100
+++ new/faugus-launcher-1.14.2/meson.build      2026-02-10 13:53:05.000000000 
+0100
@@ -1,6 +1,6 @@
 project(
   'faugus-launcher',
-  version: '1.14.1',
+  version: '1.14.2',
   meson_version: '>=1.2.0',
   license: 'MIT',
   license_files: 'LICENSE',

Reply via email to