Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package netease-cloud-music-gtk for 
openSUSE:Factory checked in at 2026-04-28 11:57:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/netease-cloud-music-gtk (Old)
 and      /work/SRC/openSUSE:Factory/.netease-cloud-music-gtk.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "netease-cloud-music-gtk"

Tue Apr 28 11:57:13 2026 rev:21 rq:1349484 version:2.5.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/netease-cloud-music-gtk/netease-cloud-music-gtk.changes
  2025-05-06 16:43:13.656737323 +0200
+++ 
/work/SRC/openSUSE:Factory/.netease-cloud-music-gtk.new.11940/netease-cloud-music-gtk.changes
       2026-04-28 12:01:00.889092367 +0200
@@ -1,0 +2,11 @@
+Mon Apr 27 02:28:32 UTC 2026 - gmg 137 <[email protected]>
+
+- Release version 2.5.3 
+ + Fix page creation error
+ + Modify the style of the playback bar
+ + Update regarding window style
+ + Unhide Daily Recommendations
+ + Change the position of translated lyrics
+ + Update dependent versions
+
+-------------------------------------------------------------------

Old:
----
  netease-cloud-music-gtk-2.5.2.tar.gz

New:
----
  netease-cloud-music-gtk-2.5.3.tar.gz

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

Other differences:
------------------
++++++ netease-cloud-music-gtk.spec ++++++
--- /var/tmp/diff_new_pack.QSZJzu/_old  2026-04-28 12:01:02.361153327 +0200
+++ /var/tmp/diff_new_pack.QSZJzu/_new  2026-04-28 12:01:02.365153492 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package netease-cloud-music-gtk
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 # Copyright (c) specCURRENT_YEAR SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
@@ -20,7 +20,7 @@
 %global rustflags '-Clink-arg=-Wl,-z,relro,-z,now'
 %define _lto_cflags %{nil}
 Name:           netease-cloud-music-gtk
-Version:        2.5.2
+Version:        2.5.3
 Release:        0
 Summary:        Linux 平台下基于 Rust + GTK4 开发的网易云音乐播放器
 License:        GPL-3.0-or-later

++++++ fix-dependencies.patch ++++++
--- /var/tmp/diff_new_pack.QSZJzu/_old  2026-04-28 12:01:02.441156639 +0200
+++ /var/tmp/diff_new_pack.QSZJzu/_new  2026-04-28 12:01:02.445156805 +0200
@@ -1,14 +1,14 @@
 diff --git a/Cargo.toml b/Cargo.toml
-index 0d0302e..a76f395 100644
+index 78195fc..2b96dc7 100644
 --- a/Cargo.toml
 +++ b/Cargo.toml
-@@ -9,7 +9,7 @@ gtk = { version = "~0.9", package = "gtk4" }
- once_cell = "~1.19"
+@@ -9,7 +9,7 @@ gtk = { version = "~0.11", package = "gtk4" }
+ once_cell = "~1.21"
  qrcode-generator = "~5.0"
  # ncm-api = { git = "https://github.com/gmg137/netease-cloud-music-api.git";, 
branch = "dev", package = "netease-cloud-music-api" }
--ncm-api = { git = "https://gitee.com/gmg137/netease-cloud-music-api.git";, tag 
= "1.5.1", package = "netease-cloud-music-api" }
-+ncm-api = { version = "1.5.1", package = "netease-cloud-music-api" }
+-ncm-api = { git = "https://gitee.com/gmg137/netease-cloud-music-api.git";, tag 
= "1.5.2", package = "netease-cloud-music-api" }
++ncm-api = { version = "1.5.2", package = "netease-cloud-music-api" }
  anyhow = "~1.0"
- gstreamer = "~0.23"
- gstreamer-play = "~0.23"
+ gstreamer = "~0.25"
+ gstreamer-play = "~0.25"
 

++++++ netease-cloud-music-gtk-2.5.2.tar.gz -> 
netease-cloud-music-gtk-2.5.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
"old/netease-cloud-music-gtk-2.5.2/.github/ISSUE_TEMPLATE/bug-\346\217\220\344\272\244.md"
 
"new/netease-cloud-music-gtk-2.5.3/.github/ISSUE_TEMPLATE/bug-\346\217\220\344\272\244.md"
--- 
"old/netease-cloud-music-gtk-2.5.2/.github/ISSUE_TEMPLATE/bug-\346\217\220\344\272\244.md"
  1970-01-01 01:00:00.000000000 +0100
+++ 
"new/netease-cloud-music-gtk-2.5.3/.github/ISSUE_TEMPLATE/bug-\346\217\220\344\272\244.md"
  2026-04-27 04:12:45.000000000 +0200
@@ -0,0 +1,32 @@
+---
+name: Bug 提交
+about: 简要描述你的问题
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**描述错误**
+清晰简洁的描述你遇到的错误.
+
+**重现**
+重现错误的步骤:
+1. 第一步 '...'
+2. 第二步 '....'
+3. '....'
+4. 出现错误
+
+**预期行为**
+清晰简洁的描述你期望发生的行为.
+
+**屏幕截图**
+如果适用,请添加相关截图.
+
+**运行环境:**
+ - 操作系统/版本: [如:openSUSE 16, ubuntu25.04, archlinux]
+ - 桌面环境/版本: [如:GNOME 47,KDE 5.1]
+ - 应用版本 [如: 2.5.1]
+
+**其他信息**
+其他可能有用的信息.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/netease-cloud-music-gtk-2.5.2/.github/ISSUE_TEMPLATE/bug_report.md 
new/netease-cloud-music-gtk-2.5.3/.github/ISSUE_TEMPLATE/bug_report.md
--- old/netease-cloud-music-gtk-2.5.2/.github/ISSUE_TEMPLATE/bug_report.md      
2025-05-06 10:04:10.000000000 +0200
+++ new/netease-cloud-music-gtk-2.5.3/.github/ISSUE_TEMPLATE/bug_report.md      
1970-01-01 01:00:00.000000000 +0100
@@ -1,38 +0,0 @@
----
-name: Bug report
-about: Create a report to help us improve
-title: ''
-labels: ''
-assignees: ''
-
----
-
-**Describe the bug**
-A clear and concise description of what the bug is.
-
-**To Reproduce**
-Steps to reproduce the behavior:
-1. Go to '...'
-2. Click on '....'
-3. Scroll down to '....'
-4. See error
-
-**Expected behavior**
-A clear and concise description of what you expected to happen.
-
-**Screenshots**
-If applicable, add screenshots to help explain your problem.
-
-**Desktop (please complete the following information):**
- - OS: [e.g. iOS]
- - Browser [e.g. chrome, safari]
- - Version [e.g. 22]
-
-**Smartphone (please complete the following information):**
- - Device: [e.g. iPhone6]
- - OS: [e.g. iOS8.1]
- - Browser [e.g. stock browser, safari]
- - Version [e.g. 22]
-
-**Additional context**
-Add any other context about the problem here.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/netease-cloud-music-gtk-2.5.2/.github/ISSUE_TEMPLATE/feature_request.md 
new/netease-cloud-music-gtk-2.5.3/.github/ISSUE_TEMPLATE/feature_request.md
--- old/netease-cloud-music-gtk-2.5.2/.github/ISSUE_TEMPLATE/feature_request.md 
2025-05-06 10:04:10.000000000 +0200
+++ new/netease-cloud-music-gtk-2.5.3/.github/ISSUE_TEMPLATE/feature_request.md 
1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for this project
-title: ''
-labels: ''
-assignees: ''
-
----
-
-**Is your feature request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Ex. I'm always 
frustrated when [...]
-
-**Describe the solution you'd like**
-A clear and concise description of what you want to happen.
-
-**Describe alternatives you've considered**
-A clear and concise description of any alternative solutions or features 
you've considered.
-
-**Additional context**
-Add any other context or screenshots about the feature request here.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
"old/netease-cloud-music-gtk-2.5.2/.github/ISSUE_TEMPLATE/\345\212\237\350\203\275\350\257\267\346\261\202.md"
 
"new/netease-cloud-music-gtk-2.5.3/.github/ISSUE_TEMPLATE/\345\212\237\350\203\275\350\257\267\346\261\202.md"
--- 
"old/netease-cloud-music-gtk-2.5.2/.github/ISSUE_TEMPLATE/\345\212\237\350\203\275\350\257\267\346\261\202.md"
      1970-01-01 01:00:00.000000000 +0100
+++ 
"new/netease-cloud-music-gtk-2.5.3/.github/ISSUE_TEMPLATE/\345\212\237\350\203\275\350\257\267\346\261\202.md"
      2026-04-27 04:12:45.000000000 +0200
@@ -0,0 +1,20 @@
+---
+name: 功能请求
+about: 为这个项目提出你的想法
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**请描述您的功能请求?**
+对清晰简洁的描述该功能。
+
+**描述您希望实现的解决方案**
+清晰简洁的描述您希望实现的结果。
+
+**描述您考虑过的其他方案**
+清晰简洁的描述您考虑过的其他解决方案或功能。
+
+**额外背景信息**
+在此添加与功能请求相关的其他背景信息或截图。
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/netease-cloud-music-gtk-2.5.2/.github/workflows/meson.yml 
new/netease-cloud-music-gtk-2.5.3/.github/workflows/meson.yml
--- old/netease-cloud-music-gtk-2.5.2/.github/workflows/meson.yml       
1970-01-01 01:00:00.000000000 +0100
+++ new/netease-cloud-music-gtk-2.5.3/.github/workflows/meson.yml       
2026-04-27 04:12:45.000000000 +0200
@@ -0,0 +1,74 @@
+
+name: Build on multi platforms
+
+on:
+  push:
+    branches: [ "master" ]
+  pull_request:
+    branches: [ "master" ]
+
+jobs:
+  build:
+    runs-on: ${{ matrix.os }}
+
+    strategy:
+      # Set fail-fast to false to ensure that feedback is delivered for all 
matrix combinations. Consider changing this to true when your workflow is 
stable.
+      fail-fast: false
+
+      matrix:
+        os: [ubuntu-latest, macos-15-intel, macos-latest]
+        build_type: [Release]
+
+
+    steps:
+    - uses: actions/checkout@v4
+
+    - name: Set reusable strings
+      # Turn repeated input strings (such as the build output directory) into 
step outputs. These step outputs can be used throughout the workflow file.
+      id: strings
+      shell: bash
+      run: |
+        echo "build-output-dir=${{ github.workspace }}/_build" >> 
"$GITHUB_OUTPUT"
+    
+    - name: Configure dependency
+      # macOS gstreamer denpends on dbus, so we don't write here
+      run: |
+        if [[ $(uname) == "Linux" ]]; then
+          eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
+        fi
+        brew install gettext meson \
+          dbus \
+          desktop-file-utils \
+          openssl@3 \
+          libadwaita adwaita-icon-theme \
+          gstreamer \
+          cargo-bundle
+
+    - name: Build
+      # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only 
required if you are using a single-configuration generator such as make.
+      # See 
https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
+      run: |
+        if [[ $(uname) == "Linux" ]]; then
+          eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
+        fi
+        export MACOSX_DEPLOYMENT_TARGET=11.0
+        export CARGO_TARGET_DIR=${{ steps.strings.outputs.build-output-dir }}
+        meson ${{ steps.strings.outputs.build-output-dir }}
+        export 
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:/Library/Frameworks/GStreamer.framework/Libraries/pkgconfig
+        cargo bundle --release
+    
+    - name: bundle macOS app
+      run: |
+        if [[ $(uname) == "Darwin" ]]; then
+          brew install dylibbundler
+          cd ${{ steps.strings.outputs.build-output-dir }}/release/bundle/osx
+          cd netease-cloud-music-gtk4.app/Contents
+          dylibbundler -od -b -x MacOS/netease-cloud-music-gtk4 -d Libraries 
-p @executable_path/../Libraries
+        fi
+
+    - name: Upload artifacts
+      uses: actions/upload-artifact@v4
+      with:
+        name: netease-cloud-music_${{ matrix.os }}
+        path: 
+          ${{ steps.strings.outputs.build-output-dir }}/release/bundle
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/netease-cloud-music-gtk-2.5.2/Cargo.toml 
new/netease-cloud-music-gtk-2.5.3/Cargo.toml
--- old/netease-cloud-music-gtk-2.5.2/Cargo.toml        2025-05-06 
10:04:10.000000000 +0200
+++ new/netease-cloud-music-gtk-2.5.3/Cargo.toml        2026-04-27 
04:12:45.000000000 +0200
@@ -1,82 +1,33 @@
 [package]
 name = "netease-cloud-music-gtk4"
-version = "2.5.2"
+version = "2.5.3"
 edition = "2024"
 
 [dependencies]
 gettext-rs = { version = "~0.7", features = ["gettext-system"] }
-gtk = { version = "~0.9", package = "gtk4" }
-once_cell = "~1.19"
+gtk = { version = "~0.11", package = "gtk4" }
+once_cell = "~1.21"
 qrcode-generator = "~5.0"
 # ncm-api = { git = "https://github.com/gmg137/netease-cloud-music-api.git";, 
branch = "dev", package = "netease-cloud-music-api" }
-ncm-api = { git = "https://gitee.com/gmg137/netease-cloud-music-api.git";, tag 
= "1.5.1", package = "netease-cloud-music-api" }
+ncm-api = { git = "https://gitee.com/gmg137/netease-cloud-music-api.git";, tag 
= "1.5.2", package = "netease-cloud-music-api" }
 anyhow = "~1.0"
-gstreamer = "~0.23"
-gstreamer-play = "~0.23"
-fastrand = "~2.1"
+gstreamer = "~0.25"
+gstreamer-play = "~0.25"
+fastrand = "~2.3"
 mpris-server = "~0.9"
-regex = "~1.10"
+regex = "~1.12"
 log = "~0.4"
 env_logger = "~0.11"
-cookie_store = "~0.21"
+cookie_store = "~0.22"
 chrono = "~0.4"
-async-channel = "~2.3"
+async-channel = "~2.5"
 
 [dependencies.adw]
 package = "libadwaita"
-version = "~0.7"
-features = ["v1_7"]
+version = "~0.9"
+features = ["v1_6"]
 
-# cargo deb 打包配置
-# 打包前在__build目录下执行: meson configure --prefix=/usr && ninja
-[package.metadata.deb]
-maintainer = "gmg137 <[email protected]>"
-copyright = "2024, gmg137 <[email protected]>"
-license-file = ["COPYING", "0"]
-extended-description = """\
-netease-cloud-music-gtk4 是基于 GTK4 + Libadwaita 构造的网易云音乐播放器,\
-专为 Linux 系统打造,已在 openSUSE Tumbleweed + GNOME 环境下测试。"""
-depends = "$auto"
-section = "sound"
-assets = [
-    [
-        "__build/src/netease-cloud-music-gtk4",
-        "usr/bin/",
-        "755",
-    ],
-    [
-        "__build/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.desktop",
-        "usr/share/applications/",
-        "644",
-    ],
-    [
-        "__build/data/netease-cloud-music-gtk4.gresource",
-        "usr/share/netease-cloud-music-gtk4/",
-        "644",
-    ],
-    [
-        
"data/icons/hicolor/scalable/apps/com.gitee.gmg137.NeteaseCloudMusicGtk4.svg",
-        "usr/share/icons/hicolor/scalable/apps/",
-        "644",
-    ],
-    [
-        
"data/icons/hicolor/symbolic/apps/com.gitee.gmg137.NeteaseCloudMusicGtk4-symbolic.svg",
-        "usr/share/icons/hicolor/symbolic/apps/",
-        "644",
-    ],
-    [
-        "__build/po/zh_CN/LC_MESSAGES/netease-cloud-music-gtk4.mo",
-        "usr/share/locale/zh_CN/LC_MESSAGES/",
-        "644",
-    ],
-    [
-        "data/com.gitee.gmg137.NeteaseCloudMusicGtk4.gschema.xml",
-        "usr/share/glib-2.0/schemas/",
-        "644",
-    ],
-    [
-        "__build/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.metainfo.xml",
-        "usr/share/metainfo/",
-        "644",
-    ],
-]
+
+[package.metadata.bundle]
+icon = ["data/icons/hicolor/[email protected]"]
+osx_minimum_system_version = "11.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/netease-cloud-music-gtk-2.5.2/build.rs 
new/netease-cloud-music-gtk-2.5.3/build.rs
--- old/netease-cloud-music-gtk-2.5.2/build.rs  1970-01-01 01:00:00.000000000 
+0100
+++ new/netease-cloud-music-gtk-2.5.3/build.rs  2026-04-27 04:12:45.000000000 
+0200
@@ -0,0 +1,17 @@
+use std::env;
+fn main() {
+    let target = env::var("CARGO_CFG_TARGET_OS");
+    if target == Ok("macos".to_string()) {
+        unsafe {
+           env::set_var("PKG_CONFIG_PATH",
+               
"/usr/local/lib/pkgconfig:/Library/Frameworks/GStreamer.framework/Libraries/pkgconfig"
+           );
+           let lib = "/Library/Frameworks/GStreamer.framework/Libraries";
+           env::set_var("GST_PLUGIN_PATH", lib);
+           env::set_var("DYLD_FALLBACK_LIBRARY_PATH", lib);
+       }
+        println!("cargo:rustc-env=MACOSX_DEPLOYMENT_TARGET=11.0");
+        println!("cargo:rustc-link-search=framework=/Library/Frameworks");
+        
println!("cargo:rustc-link-arg=-Wl,-headerpad_max_install_names,-rpath,/Library/Frameworks/GStreamer.framework/Libraries");
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/netease-cloud-music-gtk-2.5.2/com.gitee.gmg137.NeteaseCloudMusicGtk4.json 
new/netease-cloud-music-gtk-2.5.3/com.gitee.gmg137.NeteaseCloudMusicGtk4.json
--- 
old/netease-cloud-music-gtk-2.5.2/com.gitee.gmg137.NeteaseCloudMusicGtk4.json   
    2025-05-06 10:04:10.000000000 +0200
+++ 
new/netease-cloud-music-gtk-2.5.3/com.gitee.gmg137.NeteaseCloudMusicGtk4.json   
    2026-04-27 04:12:45.000000000 +0200
@@ -47,7 +47,7 @@
                 {
                     "type" : "git",
                     "url" : 
"https://github.com/gmg137/netease-cloud-music-gtk.git";,
-                    "tag" : "2.5.2"
+                    "tag" : "2.5.3"
                 }
             ],
             "config-opts" : []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/netease-cloud-music-gtk-2.5.2/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.metainfo.xml.in
 
new/netease-cloud-music-gtk-2.5.3/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.metainfo.xml.in
--- 
old/netease-cloud-music-gtk-2.5.2/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.metainfo.xml.in
       2025-05-06 10:04:10.000000000 +0200
+++ 
new/netease-cloud-music-gtk-2.5.3/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.metainfo.xml.in
       2026-04-27 04:12:45.000000000 +0200
@@ -5,6 +5,18 @@
     <metadata_license>CC0-1.0</metadata_license>
     <project_license>GPL-3.0-or-later</project_license>
     <releases>
+        <release version="2.5.3" date="2026-04-27" type="stable">
+            <description>
+                <ul>
+                    <li>修复页面创建错误</li>
+                    <li>修改播放栏样式</li>
+                    <li>更新关于窗口样式</li>
+                    <li>取消隐藏每日推荐</li>
+                    <li>更改翻译歌词位置</li>
+                    <li>更新依赖版本</li>
+                </ul>
+            </description>
+        </release>
         <release version="2.5.2" date="2025-05-06" type="stable">
             <description>
                 <ul>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/netease-cloud-music-gtk-2.5.2/data/gtk/my-page.ui 
new/netease-cloud-music-gtk-2.5.3/data/gtk/my-page.ui
--- old/netease-cloud-music-gtk-2.5.2/data/gtk/my-page.ui       2025-05-06 
10:04:10.000000000 +0200
+++ new/netease-cloud-music-gtk-2.5.3/data/gtk/my-page.ui       2026-04-27 
04:12:45.000000000 +0200
@@ -22,7 +22,7 @@
                         <child>
                             <object class="GtkBox">
                                 <property 
name="orientation">vertical</property>
-                                <property name="visible">false</property>
+                                <property name="visible">true</property>
                                 <child>
                                     <object class="AdwAvatar" 
id="daily_rec_avatar">
                                         <property 
name="icon-name">x-office-calendar-symbolic</property>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/netease-cloud-music-gtk-2.5.2/data/gtk/window.ui 
new/netease-cloud-music-gtk-2.5.3/data/gtk/window.ui
--- old/netease-cloud-music-gtk-2.5.2/data/gtk/window.ui        2025-05-06 
10:04:10.000000000 +0200
+++ new/netease-cloud-music-gtk-2.5.3/data/gtk/window.ui        2026-04-27 
04:12:45.000000000 +0200
@@ -235,7 +235,11 @@
                         <property name="transition-duration">888</property>
                         <property name="transition-type">swing-up</property>
                         <child>
-                            <object class="PlayerControls" 
id="player_controls" />
+                            <object class="GtkActionBar">
+                                <child>
+                                    <object class="PlayerControls" 
id="player_controls" />
+                                </child>
+                            </object>
                         </child>
                     </object>
                 </child>
Binary files 
old/netease-cloud-music-gtk-2.5.2/data/icons/hicolor/[email protected] and 
new/netease-cloud-music-gtk-2.5.3/data/icons/hicolor/[email protected] differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/netease-cloud-music-gtk-2.5.2/meson.build 
new/netease-cloud-music-gtk-2.5.3/meson.build
--- old/netease-cloud-music-gtk-2.5.2/meson.build       2025-05-06 
10:04:10.000000000 +0200
+++ new/netease-cloud-music-gtk-2.5.3/meson.build       2026-04-27 
04:12:45.000000000 +0200
@@ -1,5 +1,5 @@
 project('netease-cloud-music-gtk4', 'rust',
-          version: '2.5.2',
+          version: '2.5.3',
     meson_version: '>= 0.59.0',
   default_options: [ 'warning_level=2',
                      'werror=false',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/netease-cloud-music-gtk-2.5.2/src/application.rs 
new/netease-cloud-music-gtk-2.5.3/src/application.rs
--- old/netease-cloud-music-gtk-2.5.2/src/application.rs        2025-05-06 
10:04:10.000000000 +0200
+++ new/netease-cloud-music-gtk-2.5.3/src/application.rs        2026-04-27 
04:12:45.000000000 +0200
@@ -1,8 +1,8 @@
 use adw::{prelude::AdwDialogExt, subclass::prelude::*};
-use async_channel::{unbounded, Receiver, Sender};
+use async_channel::{Receiver, Sender, unbounded};
 use gettextrs::gettext;
 use gio::Settings;
-use glib::{clone, source::Priority, timeout_future, timeout_future_seconds, 
WeakRef};
+use glib::{WeakRef, clone, source::Priority, timeout_future, 
timeout_future_seconds};
 use gtk::{gio, glib, prelude::*};
 use log::*;
 use ncm_api::{
@@ -13,8 +13,8 @@
 use std::{cell::RefCell, fs, path::PathBuf, sync::Arc, time::Duration};
 
 use crate::{
-    audio::MprisController, config::VERSION, 
gui::NeteaseCloudMusicGtk4Preferences, model::*,
-    ncmapi::*, path::CACHE, utils::*, NeteaseCloudMusicGtk4Window, MAINCONTEXT,
+    MAINCONTEXT, NeteaseCloudMusicGtk4Window, audio::MprisController, 
config::VERSION,
+    gui::NeteaseCloudMusicGtk4Preferences, model::*, ncmapi::*, path::CACHE, 
utils::*,
 };
 
 // implements Debug for Fn(Targ) using "blanket implementations"
@@ -536,7 +536,7 @@
             }
             Action::ToTopPicksPage => {
                 let page = window.init_picks_songlist();
-                window.page_new(&page, gettext("all top picks").as_str());
+                window.page_new(&page, gettext("all top picks").as_str(), 
"ToTopPicksPage");
                 let page = page.downgrade();
 
                 MAINCONTEXT.spawn_local_with_priority(Priority::DEFAULT_IDLE, 
async move {
@@ -589,7 +589,7 @@
             Action::ToAllAlbumsPage => {
                 let page = window.init_all_albums();
 
-                window.page_new(&page, gettext("all new albums").as_str());
+                window.page_new(&page, gettext("all new albums").as_str(), 
"ToAllAlbumsPage");
                 let page = page.downgrade();
 
                 MAINCONTEXT.spawn_local_with_priority(Priority::DEFAULT_IDLE, 
async move {
@@ -638,7 +638,7 @@
                                         },
                                         true,
                                     );
-                                    window.page_new(&page, &album.name);
+                                    window.page_new(&page, &album.name, 
"Album");
                                     let page = page.downgrade();
                                     let detal_dynamic_as =
                                         
ncmapi.client.album_detail_dynamic(album.id);
@@ -735,7 +735,7 @@
             }
             Action::ToSongListPage(songlist) => {
                 let page = window.init_songlist_page(&songlist, false);
-                window.page_new(&page, &songlist.name);
+                window.page_new(&page, &songlist.name, "ToSongListPage");
                 let page = page.downgrade();
 
                 let sender = imp.sender.clone();
@@ -799,7 +799,7 @@
             }
             Action::ToAlbumPage(songlist) => {
                 let page = window.init_songlist_page(&songlist, true);
-                window.page_new(&page, &songlist.name);
+                window.page_new(&page, &songlist.name, "ToAlbumPage");
                 let page = page.downgrade();
 
                 let sender = imp.sender.clone();
@@ -829,7 +829,7 @@
             }
             Action::ToRadioPage(songlist) => {
                 let page = window.init_songlist_page(&songlist, true);
-                window.page_new(&page, &songlist.name);
+                window.page_new(&page, &songlist.name, "ToRadioPage");
                 let page = page.downgrade();
 
                 let sender = imp.sender.clone();
@@ -1033,7 +1033,7 @@
             Action::ToSingerSongsPage(singer) => {
                 let title = &singer.name;
                 let page = window.init_search_song_page(title, 
SearchType::SingerSongs);
-                window.page_new(&page, title);
+                window.page_new(&page, title, "ToSingerSongsPage");
                 let page = page.downgrade();
 
                 let sender = imp.sender.clone();
@@ -1060,7 +1060,7 @@
             Action::ToMyPageDailyRec => {
                 let title = gettext("Daily Recommendation");
                 let page = window.init_search_song_page(&title, 
SearchType::DailyRec);
-                window.page_new(&page, &title);
+                window.page_new(&page, &title, "ToMyPageDailyRec");
                 let page = page.downgrade();
 
                 let sender = imp.sender.clone();
@@ -1087,7 +1087,7 @@
             Action::ToMyPageHeartbeat => {
                 let title = gettext("Favorite Songs");
                 let page = window.init_search_song_page(&title, 
SearchType::Heartbeat);
-                window.page_new(&page, &title);
+                window.page_new(&page, &title, "ToMyPageHeartbeat");
                 let page = page.downgrade();
 
                 let sender = imp.sender.clone();
@@ -1130,7 +1130,7 @@
             Action::ToMyPageCloudDisk => {
                 let title = gettext("Cloud Music");
                 let page = window.init_search_song_page(&title, 
SearchType::CloudDisk);
-                window.page_new(&page, &title);
+                window.page_new(&page, &title, "ToMyPageCloudDisk");
                 let page = page.downgrade();
 
                 let sender = imp.sender.clone();
@@ -1157,7 +1157,7 @@
             Action::ToMyPageRadio => {
                 let title = gettext("My Radio");
                 let page = window.init_search_songlist_page(&title, 
SearchType::Radio);
-                window.page_new(&page, &title);
+                window.page_new(&page, &title, "ToMyPageRadio");
                 let page = page.downgrade();
 
                 MAINCONTEXT.spawn_local_with_priority(Priority::DEFAULT_IDLE, 
async move {
@@ -1174,7 +1174,7 @@
             Action::ToMyPageAlbums => {
                 let title = gettext("Favorite Album");
                 let page = window.init_search_songlist_page(&title, 
SearchType::LikeAlbums);
-                window.page_new(&page, &title);
+                window.page_new(&page, &title, "ToMyPageAlbums");
                 let page = page.downgrade();
 
                 MAINCONTEXT.spawn_local_with_priority(Priority::DEFAULT_IDLE, 
async move {
@@ -1191,7 +1191,7 @@
             Action::ToMyPageSonglist => {
                 let title = gettext("Favorite Song List");
                 let page = window.init_search_songlist_page(&title, 
SearchType::LikeSongList);
-                window.page_new(&page, &title);
+                window.page_new(&page, &title, "ToMyPageSonglist");
                 let page = page.downgrade();
 
                 MAINCONTEXT.spawn_local_with_priority(Priority::DEFAULT_IDLE, 
async move {
@@ -1333,18 +1333,43 @@
 
     fn show_about(&self) {
         let window = self.active_window().unwrap();
-        let dialog = gtk::AboutDialog::builder()
-            .transient_for(&window)
-            .modal(true)
-            .program_name(gettext(crate::APP_NAME))
-            .logo_icon_name("logo")
+        let dialog = adw::AboutDialog::builder()
+            .application_name(gettext(crate::APP_NAME))
+            .application_icon(crate::APP_ID)
             .version(VERSION)
-            .authors(vec!["gmg137", "catsout"])
+            .developer_name("gmg137")
+            .developers(vec![
+                "gmg137",
+                "catsout",
+                "fplust",
+                "outloudvi",
+                "CyrusYip",
+                "Integral-Tech",
+                "NOBLES5E",
+                "atzlinux",
+                "mokurin000",
+                "onlymash",
+                "An-n-ya",
+                "MarvelousBlack",
+                "langzime",
+                "h0cheung",
+                "weilinfox",
+                "xyzhou-1",
+                "liuyujielol",
+                "heddxh",
+                "fungaren",
+                "xen0n",
+                "arkuna23",
+                "wngtk",
+                "zyw271828",
+            ])
             .website("https://github.com/gmg137/netease-cloud-music-gtk";)
+            
.issue_url("https://github.com/gmg137/netease-cloud-music-gtk/issues";)
             .license_type(gtk::License::Gpl30)
+            .copyright("© 2025 gmg137")
             .build();
 
-        dialog.present();
+        dialog.present(Some(&window));
     }
 
     fn setup_cache_clear(&self) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/netease-cloud-music-gtk-2.5.2/src/gui/theme_selector.rs 
new/netease-cloud-music-gtk-2.5.3/src/gui/theme_selector.rs
--- old/netease-cloud-music-gtk-2.5.2/src/gui/theme_selector.rs 2025-05-06 
10:04:10.000000000 +0200
+++ new/netease-cloud-music-gtk-2.5.3/src/gui/theme_selector.rs 2026-04-27 
04:12:45.000000000 +0200
@@ -4,13 +4,13 @@
 // Distributed under terms of the GPL-3.0-or-later license.
 //
 use gtk::subclass::prelude::*;
-use gtk::{gdk, glib, CompositeTemplate, CssProvider};
+use gtk::{CompositeTemplate, CssProvider, gdk, glib};
 use gtk::{prelude::*, style_context_add_provider_for_display};
 
 glib::wrapper! {
     pub struct ThemeSelector(ObjectSubclass<imp::ThemeSelector>)
         @extends gtk::Widget,
-        @implements gtk::Accessible;
+        @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget;
 }
 
 impl Default for ThemeSelector {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/netease-cloud-music-gtk-2.5.2/src/ncmapi.rs 
new/netease-cloud-music-gtk-2.5.3/src/ncmapi.rs
--- old/netease-cloud-music-gtk-2.5.2/src/ncmapi.rs     2025-05-06 
10:04:10.000000000 +0200
+++ new/netease-cloud-music-gtk-2.5.3/src/ncmapi.rs     2026-04-27 
04:12:45.000000000 +0200
@@ -4,7 +4,7 @@
 // Distributed under terms of the GPL-3.0-or-later license.
 //
 use anyhow::Result;
-use cookie_store::{serde, CookieStore};
+use cookie_store::{CookieStore, serde};
 use ncm_api::{CookieBuilder, CookieJar, MusicApi, SongInfo, SongUrl};
 
 use crate::path::{CACHE, LYRICS};
@@ -176,7 +176,7 @@
             si.album
         ));
         // 翻译歌词文件位置
-        let mut tlyric_path = CACHE.clone();
+        let mut tlyric_path = LYRICS.clone();
         tlyric_path.push(format!("{}.tlrc", si.id));
         // 替换歌词时间
         let re = regex::Regex::new(r"\[\d+:\d+.\d+\]").unwrap();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/netease-cloud-music-gtk-2.5.2/src/window.rs 
new/netease-cloud-music-gtk-2.5.3/src/window.rs
--- old/netease-cloud-music-gtk-2.5.2/src/window.rs     2025-05-06 
10:04:10.000000000 +0200
+++ new/netease-cloud-music-gtk-2.5.3/src/window.rs     2026-04-27 
04:12:45.000000000 +0200
@@ -10,11 +10,12 @@
 use gettextrs::gettext;
 use gio::{Settings, SimpleAction};
 use glib::{
-    clone, source::Priority, ParamSpec, ParamSpecEnum, ParamSpecObject, 
ParamSpecUInt64, Value,
+    ParamSpec, ParamSpecEnum, ParamSpecObject, ParamSpecUInt64, Value, clone, 
source::Priority,
 };
 use gtk::{
+    CompositeTemplate,
     gio::{self, SettingsBindFlags},
-    glib, CompositeTemplate,
+    glib,
 };
 use log::*;
 use ncm_api::{BannersInfo, LoginInfo, SongInfo, SongList, TopList};
@@ -192,7 +193,7 @@
 glib::wrapper! {
     pub struct 
NeteaseCloudMusicGtk4Window(ObjectSubclass<imp::NeteaseCloudMusicGtk4Window>)
         @extends gtk::Widget, gtk::Window, gtk::ApplicationWindow,
-        @implements gio::ActionGroup, gio::ActionMap;
+        @implements gio::ActionGroup, gio::ActionMap, gtk::Accessible, 
gtk::Buildable, gtk::ConstraintTarget, gtk::Native, gtk::Root, 
gtk::ShortcutManager;
 }
 
 impl NeteaseCloudMusicGtk4Window {
@@ -603,18 +604,25 @@
         self.page_set_info(title);
         self.page_widget_switch(true);
     }
-    pub fn page_new(&self, page: &impl glib::object::IsA<Widget>, title: &str) 
{
+    pub fn page_new(&self, page: &impl glib::object::IsA<Widget>, title: &str, 
name: &str) {
         let imp = self.imp();
         let stack = imp.page_stack.get().unwrap();
         if stack.len() > 1 {
             let top_page = stack.top_page();
             if top_page.title().unwrap() == title {
-                return;
+                if let Some(n) = top_page.name() {
+                    if n == name {
+                        return;
+                    }
+                } else {
+                    return;
+                }
             }
         }
         // stack.set_transition_type(StackTransitionType::SlideLeft);
         let stack_page = stack.new_page(page);
         stack_page.set_title(title);
+        stack_page.set_name(name);
         self.page_set_info(title);
         self.page_widget_switch(true);
     }
@@ -728,7 +736,7 @@
         let page = imp.playlist_lyrics_page.get().unwrap();
         page.init_page(&sis, si, &self.get_song_likes(&sis));
 
-        self.page_new(page, &gettext("Play List&Lyrics"));
+        self.page_new(page, &gettext("Play List&Lyrics"), "Play List&Lyrics");
     }
 
     /// 更新歌词内容,不调整位置

++++++ vendor.tar.xz ++++++
/work/SRC/openSUSE:Factory/netease-cloud-music-gtk/vendor.tar.xz 
/work/SRC/openSUSE:Factory/.netease-cloud-music-gtk.new.11940/vendor.tar.xz 
differ: char 26, line 1

Reply via email to