4 Commits

Author SHA256 Message Date
79e662e30f Accepting request 1313760 from X11:xfce
OBS-URL: https://build.opensuse.org/request/show/1313760
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xfdesktop?expand=0&rev=51
2025-10-27 13:41:33 +00:00
Maurizio Galli
119d0966fb - Switch to using meson for building; this allows building this
package even in the upcoming development release Xfce-4.21
- Refresh 0002-relax-libyaml-version.patch
- Remove bcond_with git and related items
- Ensure installed icon files land in _datadir/wallpapers/xfce, not
  in _datadir/backgrounds/xfce which is used by meson

OBS-URL: https://build.opensuse.org/package/show/X11:xfce/xfdesktop?expand=0&rev=106
2025-10-27 04:52:58 +00:00
57ac0d35e8 Accepting request 1300797 from X11:xfce
- Fix the monitor name pickup on Wayland, which resulted in broken
  background picture setup (bsc#1247542):
  xfdesktop-wayland-get-proper-monitor-name.patch
- Fix missing backslash for building in non-git mode (forwarded request 1300794 from tiwai)

OBS-URL: https://build.opensuse.org/request/show/1300797
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xfdesktop?expand=0&rev=50
2025-08-21 15:00:43 +00:00
2193bcdda9 - Fix the monitor name pickup on Wayland, which resulted in broken
background picture setup (bsc#1247542):
  xfdesktop-wayland-get-proper-monitor-name.patch
- Fix missing backslash for building in non-git mode

OBS-URL: https://build.opensuse.org/package/show/X11:xfce/xfdesktop?expand=0&rev=104
2025-08-21 13:11:37 +00:00
4 changed files with 121 additions and 148 deletions

View File

@@ -1,125 +1,12 @@
diff -rup a/configure.ac b/configure.ac
--- a/configure.ac 2025-02-17 09:57:17.000000000 +0100
+++ b/configure.ac 2025-02-17 11:36:08.511231592 +0100
@@ -18,7 +18,7 @@ m4_define([thunar_minimum_version], [4.1
m4_define([xfconf_minimum_version], [4.19.3])
m4_define([cairo_minimum_version], [1.16])
m4_define([gtk_layer_shell_minimum_version], [0.7.0])
-m4_define([libyaml_minimum_version], [0.2.5])
+m4_define([libyaml_minimum_version], [0.1.7])
dnl version info
XDT_VERSION_INIT([4.20.1])
diff -rup a/configure b/configure
--- a/configure 2025-02-17 09:58:19.000000000 +0100
+++ b/configure 2025-02-17 11:36:44.294229508 +0100
@@ -22152,11 +22152,11 @@ fi
if test x"$xdt_feature_deps_check_only" = x"yes"; then
- if ! $PKG_CONFIG --exists "yaml-0.1 >= 0.2.5" >/dev/null 2>&1; then
+ if ! $PKG_CONFIG --exists "yaml-0.1 >= 0.1.7" >/dev/null 2>&1; then
if test x"$xdt_feature_deps_missing" = x""; then
- xdt_feature_deps_missing="yaml-0.1 >= 0.2.5"
+ xdt_feature_deps_missing="yaml-0.1 >= 0.1.7"
else
- xdt_feature_deps_missing="$xdt_feature_deps_missing, yaml-0.1 >= 0.2.5"
+ xdt_feature_deps_missing="$xdt_feature_deps_missing, yaml-0.1 >= 0.1.7"
fi
fi
else
@@ -22310,9 +22310,9 @@ fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for yaml-0.1 >= 0.2.5" >&5
-printf %s "checking for yaml-0.1 >= 0.2.5... " >&6; }
- if $PKG_CONFIG "--atleast-version=0.2.5" "yaml-0.1" >/dev/null 2>&1; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for yaml-0.1 >= 0.1.7" >&5
+printf %s "checking for yaml-0.1 >= 0.1.7... " >&6; }
+ if $PKG_CONFIG "--atleast-version=0.1.7" "yaml-0.1" >/dev/null 2>&1; then
LIBYAML_VERSION=`$PKG_CONFIG --modversion "yaml-0.1"`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBYAML_VERSION" >&5
printf "%s\n" "$LIBYAML_VERSION" >&6; }
@@ -22329,7 +22329,7 @@ printf %s "checking LIBYAML_LIBS... " >&
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBYAML_LIBS" >&5
printf "%s\n" "$LIBYAML_LIBS" >&6; }
- LIBYAML_REQUIRED_VERSION=0.2.5
+ LIBYAML_REQUIRED_VERSION=0.1.7
@@ -22358,7 +22358,7 @@ printf "%s\n" "found, but $xdt_cv_versio
echo "*** The required package yaml-0.1 was found on your system,"
echo "*** but the installed version ($xdt_cv_version) is too old."
- echo "*** Please upgrade yaml-0.1 to atleast version 0.2.5, or adjust"
+ echo "*** Please upgrade yaml-0.1 to atleast version 0.1.7, or adjust"
echo "*** the PKG_CONFIG_PATH environment variable if you installed"
echo "*** the new version of the package in a nonstandard prefix so"
echo "*** pkg-config is able to find it."
@@ -22370,7 +22370,7 @@ printf "%s\n" "not found" >&6; }
echo "*** The required package yaml-0.1 was not found on your system."
- echo "*** Please install yaml-0.1 (atleast version 0.2.5) or adjust"
+ echo "*** Please install yaml-0.1 (atleast version 0.1.7) or adjust"
echo "*** the PKG_CONFIG_PATH environment variable if you"
echo "*** installed the package in a nonstandard prefix so that"
echo "*** pkg-config is able to find it."
@@ -22388,11 +22388,11 @@ printf "%s\n" "not found" >&6; }
if test x"$xdt_feature_deps_check_only" = x"yes"; then
- if ! $PKG_CONFIG --exists "yaml-0.1 >= 0.2.5" >/dev/null 2>&1; then
+ if ! $PKG_CONFIG --exists "yaml-0.1 >= 0.1.7" >/dev/null 2>&1; then
if test x"$xdt_feature_deps_missing" = x""; then
- xdt_feature_deps_missing="yaml-0.1 >= 0.2.5"
+ xdt_feature_deps_missing="yaml-0.1 >= 0.1.7"
else
- xdt_feature_deps_missing="$xdt_feature_deps_missing, yaml-0.1 >= 0.2.5"
+ xdt_feature_deps_missing="$xdt_feature_deps_missing, yaml-0.1 >= 0.1.7"
fi
fi
else
@@ -22546,9 +22546,9 @@ fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for yaml-0.1 >= 0.2.5" >&5
-printf %s "checking for yaml-0.1 >= 0.2.5... " >&6; }
- if $PKG_CONFIG "--atleast-version=0.2.5" "yaml-0.1" >/dev/null 2>&1; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for yaml-0.1 >= 0.1.7" >&5
+printf %s "checking for yaml-0.1 >= 0.1.7... " >&6; }
+ if $PKG_CONFIG "--atleast-version=0.1.7" "yaml-0.1" >/dev/null 2>&1; then
LIBYAML_VERSION=`$PKG_CONFIG --modversion "yaml-0.1"`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBYAML_VERSION" >&5
printf "%s\n" "$LIBYAML_VERSION" >&6; }
@@ -22565,7 +22565,7 @@ printf %s "checking LIBYAML_LIBS... " >&
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBYAML_LIBS" >&5
printf "%s\n" "$LIBYAML_LIBS" >&6; }
- LIBYAML_REQUIRED_VERSION=0.2.5
+ LIBYAML_REQUIRED_VERSION=0.1.7
@@ -22594,7 +22594,7 @@ printf "%s\n" "found, but $xdt_cv_versio
echo "*** The required package yaml-0.1 was found on your system,"
echo "*** but the installed version ($xdt_cv_version) is too old."
- echo "*** Please upgrade yaml-0.1 to atleast version 0.2.5, or adjust"
+ echo "*** Please upgrade yaml-0.1 to atleast version 0.1.7, or adjust"
echo "*** the PKG_CONFIG_PATH environment variable if you installed"
echo "*** the new version of the package in a nonstandard prefix so"
echo "*** pkg-config is able to find it."
@@ -22606,7 +22606,7 @@ printf "%s\n" "not found" >&6; }
echo "*** The required package yaml-0.1 was not found on your system."
- echo "*** Please install yaml-0.1 (atleast version 0.2.5) or adjust"
+ echo "*** Please install yaml-0.1 (atleast version 0.1.7) or adjust"
echo "*** the PKG_CONFIG_PATH environment variable if you"
echo "*** installed the package in a nonstandard prefix so that"
echo "*** pkg-config is able to find it."
diff -rup a/meson.build b/meson.build
--- a/meson.build 2025-02-17 09:57:17.000000000 +0100
+++ b/meson.build 2025-10-22 13:15:38.919268643 +0200
@@ -21,7 +21,7 @@ dependency_versions = {
'libnotify': '>= 0.4.0',
'libx11': '>= 1.6.7',
'libxfce4windowing': '>= 4.19.8',
- 'libyaml': '>= 0.2.5',
+ 'libyaml': '>= 0.1.7',
'xfce4': '>= 4.18.0',
'xfconf': '>= 4.19.3',
'gtk-layer-shell': '>= 0.7.0',

View File

@@ -0,0 +1,63 @@
Subject: Fix the broken background picture setup on Wayland
The xfdesktop-settings picks up the backdrop prefix with the monitor
name returned from xfdesktop_get_monitor_name_from_gtk_widget(), where
it tries to get the monitor name from gdk. On Wayland, this returns
the actual monitor name or model, not the connector name.
Meanwhile, the xfdesktop itself uses the backdrop prefix with the
connector name (e.g. "eDP-1" or "Virtual-1"). This difference made
the setup done by xfdesktop-settings ignored.
Instead of deducing the prefix name from gdk, try to guess from the
given XfwWindow.
---
settings/xfdesktop-background-settings.c | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
--- a/settings/xfdesktop-background-settings.c
+++ b/settings/xfdesktop-background-settings.c
@@ -1451,6 +1451,25 @@ xfdesktop_settings_get_active_workspace(
return workspace_num;
}
+static gchar *get_monitor_name(XfdesktopBackgroundSettings *background_settings,
+ int monitor_num)
+{
+ GList *monitors = xfw_window_get_monitors(background_settings->xfw_window);
+
+ if (monitors) {
+ gpointer p = g_list_nth_data(monitors, monitor_num);
+
+ if (p) {
+ const gchar *name = xfw_monitor_get_connector(XFW_MONITOR(p));
+ if (name)
+ return g_strdup(name);
+ }
+ }
+
+ /* fallback */
+ return xfdesktop_get_monitor_name_from_gtk_widget(background_settings->image_iconview, monitor_num);
+}
+
static void
cb_update_background_tab(XfwWindow *xfw_window, XfdesktopBackgroundSettings *background_settings) {
/* If we haven't found our window return now and wait for that */
@@ -1468,7 +1487,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS
GdkDisplay *display = gdk_window_get_display(window);
GdkMonitor *monitor = gdk_display_get_monitor_at_window(display, window);
gint monitor_num = xfdesktop_get_monitor_num(display, monitor);
- gchar *monitor_name = xfdesktop_get_monitor_name_from_gtk_widget(background_settings->image_iconview, monitor_num);
+ gchar *monitor_name = get_monitor_name(background_settings, monitor_num);
/* Most of the time we won't change monitor, screen, or workspace so try
* to bail out now if we can */
@@ -1498,7 +1517,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS
background_settings->screen = screen_num;
background_settings->monitor = monitor_num;
g_free(background_settings->monitor_name);
- background_settings->monitor_name = xfdesktop_get_monitor_name_from_gtk_widget(background_settings->image_iconview, monitor_num);
+ background_settings->monitor_name = get_monitor_name(background_settings, monitor_num);
/* The first monitor has the option of doing the "spanning screens" style,
* but only if there's multiple monitors attached. Remove it in all other cases.

View File

@@ -1,3 +1,21 @@
-------------------------------------------------------------------
Wed Oct 22 11:13:53 UTC 2025 - Manfred Hollstein <manfred.h@gmx.net>
- Switch to using meson for building; this allows building this
package even in the upcoming development release Xfce-4.21
- Refresh 0002-relax-libyaml-version.patch
- Remove bcond_with git and related items
- Ensure installed icon files land in _datadir/wallpapers/xfce, not
in _datadir/backgrounds/xfce which is used by meson
-------------------------------------------------------------------
Fri Aug 15 14:33:48 UTC 2025 - Takashi Iwai <tiwai@suse.com>
- Fix the monitor name pickup on Wayland, which resulted in broken
background picture setup (bsc#1247542):
xfdesktop-wayland-get-proper-monitor-name.patch
- Fix missing backslash for building in non-git mode
-------------------------------------------------------------------
Mon Feb 17 10:27:20 UTC 2025 - Manfred Hollstein <manfred.h@gmx.net>

View File

@@ -1,7 +1,7 @@
#
# spec file for package xfdesktop
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,7 +16,6 @@
#
%bcond_with git
Name: xfdesktop
Version: 4.20.1
Release: 0
@@ -29,18 +28,21 @@ Source0: https://archive.xfce.org/src/xfce/xfdesktop/4.20/%{name}-%{versi
Patch0: xfdesktop-backgrounds-path.patch
# PATCH-FIX-OPENSUSE 0002-relax-libyaml-version.patch -- Allow build for Leap with its ancient but sufficient libyaml packages.
Patch2: 0002-relax-libyaml-version.patch
# PATCH-FIX-OPENSUSE xfdesktop-wayland-get-proper-monitor-name.patch -- Fix xfdesktop monitor name on Wayland
Patch3: xfdesktop-wayland-get-proper-monitor-name.patch
%if 0%{?suse_version} && 0%{?suse_version} < 1550
# Default gcc7 is too old for new C20 features
BuildRequires: gcc13
BuildRequires: gcc14
%endif
BuildRequires: fdupes
BuildRequires: gettext >= 0.19.8
BuildRequires: meson >= 0.56.0
BuildRequires: update-desktop-files
BuildRequires: xfce4-dev-tools
BuildRequires: pkgconfig(cairo) >= 1.16
BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(exo-2) >= 0.11.0
BuildRequires: pkgconfig(garcon-1) >= 0.6.0
BuildRequires: pkgconfig(exo-2) >= 4.18.0
BuildRequires: pkgconfig(garcon-1) >= 4.18.0
BuildRequires: pkgconfig(garcon-gtk3-1) >= 4.18.0
BuildRequires: pkgconfig(gdk-wayland-3.0) >= 3.24.10
BuildRequires: pkgconfig(gdk-x11-3.0) >= 3.24.10
BuildRequires: pkgconfig(gio-2.0) >= 2.72.0
@@ -55,12 +57,12 @@ BuildRequires: pkgconfig(libnotify) >= 0.4.0
BuildRequires: pkgconfig(libwnck-3.0) >= 3.14
BuildRequires: pkgconfig(libxfce4kbd-private-3) >= 4.18.0
BuildRequires: pkgconfig(libxfce4ui-2) >= 4.18.0
BuildRequires: pkgconfig(libxfce4util-1.0) >= 4.13.0
BuildRequires: pkgconfig(libxfce4util-1.0) >= 4.18.0
BuildRequires: pkgconfig(libxfce4windowing-0) >= 4.19.8
BuildRequires: pkgconfig(libxfce4windowing-x11-0) >= 4.19.8
BuildRequires: pkgconfig(libxfce4windowingui-0) >= 4.19.8
BuildRequires: pkgconfig(libxfconf-0) >= 4.19.3
BuildRequires: pkgconfig(thunarx-3) >= 4.17.10
BuildRequires: pkgconfig(thunarx-3) >= 4.18.0
BuildRequires: pkgconfig(x11) >= 1.6.7
BuildRequires: pkgconfig(yaml-0.1) >= 0.1.7
Provides: xfce4-desktop = %{version}
@@ -100,26 +102,29 @@ This package provides the upstream look and feel for the Xfce Desktop Manager.
%build
%if 0%{?suse_version} && 0%{?suse_version} < 1550
export CC=gcc-13
export CC=gcc-14
%endif
%if %{with git}
NOCONFIGURE=1 ./autogen.sh
%configure \
--enable-maintainer-mode
--with-default-backdrop-filename=%{_datadir}/wallpapers/xfce/default.wallpaper
%else
xdt-autogen
%configure \
--with-default-backdrop-filename=%{_datadir}/wallpapers/xfce/default.wallpaper
%endif
%make_build
%meson \
-Ddesktop-menu=enabled \
-Ddesktop-icons=true \
-Dfile-icons=true \
-Dthunarx=enabled \
-Dnotifications=enabled \
-Dx11=enabled \
-Dwayland=enabled \
-Ddefault-backdrop-filename=%{_datadir}/wallpapers/xfce/default.wallpaper \
-Dtests=false
%meson_build
%install
%make_install
%meson_install
# default upstream backdrop image
ln -s %{_datadir}/wallpapers/xfce/xfce-blue.jpg \
%{buildroot}%{_datadir}/wallpapers/xfce/default.wallpaper
mkdir -p %{buildroot}%{_datadir}/wallpapers/
if [ -d %{buildroot}%{_datadir}/backgrounds/xfce ]; then
mv %{buildroot}%{_datadir}/backgrounds/xfce %{buildroot}%{_datadir}/wallpapers
fi
ln -s xfce-blue.jpg %{buildroot}%{_datadir}/wallpapers/xfce/default.wallpaper
%suse_update_desktop_file xfce-backdrop-settings