diff --git a/0001-Work-under-wayland-even-when-built-with-wnck.patch b/0001-Work-under-wayland-even-when-built-with-wnck.patch new file mode 100644 index 0000000..59b9929 --- /dev/null +++ b/0001-Work-under-wayland-even-when-built-with-wnck.patch @@ -0,0 +1,109 @@ +From 0efbc16b6e3c765e3e7ab0fa55b94489a3151be6 Mon Sep 17 00:00:00 2001 +From: Matthias Clasen +Date: Sat, 22 Aug 2015 20:19:05 -0400 +Subject: [PATCH] Work under wayland even when built with wnck + +There is really no need to ask libwnck for X resource consumption +when the display we are using is not an X display. This makes +gnome-system-monitor work under Wayland, even when the X resource +support is compiled in. + +https://bugzilla.gnome.org/show_bug.cgi?id=753972 +--- + configure.ac | 2 +- + src/prettytable.cpp | 17 ++++++++++++----- + src/proctable.cpp | 20 +++++++++++++++----- + 3 files changed, 28 insertions(+), 11 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 39bf5f5..32d1682 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -57,7 +57,7 @@ AC_PATH_PROG(DESKTOP_FILE_VALIDATE, desktop-file-validate) + + AC_ARG_ENABLE(wnck, AS_HELP_STRING([--enable-wnck], [enable wnck support]),enable_wnck="$enableval",enable_wnck=no) + if test "x$enable_wnck" != "xno"; then +- PKG_CHECK_MODULES(WNCK, libwnck-3.0 >= $LIBWNCK_REQUIRED) ++ PKG_CHECK_MODULES(WNCK, libwnck-3.0 >= $LIBWNCK_REQUIRED gdk-x11-3.0) + AC_DEFINE(HAVE_WNCK, 1, [Define if libwnck is available]) + fi + AM_CONDITIONAL(HAVE_WNCK, [test "enable_wnck" = "yes"]) +diff --git a/src/prettytable.cpp b/src/prettytable.cpp +index cb1f3bb..0d5e0bb 100644 +--- a/src/prettytable.cpp ++++ b/src/prettytable.cpp +@@ -24,6 +24,9 @@ + #include "proctable.h" + #include "util.h" + ++#ifdef GDK_WINDOWING_X11 ++#include ++#endif + + namespace + { +@@ -34,11 +37,15 @@ namespace + PrettyTable::PrettyTable() + { + #ifdef HAVE_WNCK +- WnckScreen* screen = wnck_screen_get_default(); +- g_signal_connect(G_OBJECT(screen), "application_opened", +- G_CALLBACK(PrettyTable::on_application_opened), this); +- g_signal_connect(G_OBJECT(screen), "application_closed", +- G_CALLBACK(PrettyTable::on_application_closed), this); ++#ifdef GDK_WINDOWING_X11 ++ if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) { ++ WnckScreen* screen = wnck_screen_get_default(); ++ g_signal_connect(G_OBJECT(screen), "application_opened", ++ G_CALLBACK(PrettyTable::on_application_opened), this); ++ g_signal_connect(G_OBJECT(screen), "application_closed", ++ G_CALLBACK(PrettyTable::on_application_closed), this); ++ } ++#endif + #endif + + // init GIO apps cache +diff --git a/src/proctable.cpp b/src/proctable.cpp +index 2caeaf2..ee3d6df 100644 +--- a/src/proctable.cpp ++++ b/src/proctable.cpp +@@ -59,6 +59,10 @@ + #include "treeview.h" + #include "systemd.h" + ++#ifdef GDK_WINDOWING_X11 ++#include ++#endif ++ + ProcInfo::UserMap ProcInfo::users; + ProcInfo::List ProcInfo::all; + std::map ProcInfo::cpu_times; +@@ -715,14 +719,20 @@ static void + get_process_memory_info(ProcInfo *info) + { + glibtop_proc_mem procmem; ++ + #ifdef HAVE_WNCK +- WnckResourceUsage xresources; ++ info->memxserver = 0; ++#ifdef GDK_WINDOWING_X11 ++ if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) { ++ WnckResourceUsage xresources; + +- wnck_pid_read_resource_usage (gdk_screen_get_display (gdk_screen_get_default ()), +- info->pid, +- &xresources); ++ wnck_pid_read_resource_usage (gdk_display_get_default (), ++ info->pid, ++ &xresources); + +- info->memxserver = xresources.total_bytes_estimate; ++ info->memxserver = xresources.total_bytes_estimate; ++ } ++#endif + #endif + + glibtop_get_proc_mem(&procmem, info->pid); +-- +2.5.0 + diff --git a/gnome-system-monitor.spec b/gnome-system-monitor.spec index 10a076a..062ba5f 100644 --- a/gnome-system-monitor.spec +++ b/gnome-system-monitor.spec @@ -7,13 +7,16 @@ Summary: Process and resource monitor Name: gnome-system-monitor Version: 3.17.90 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ Group: Applications/System URL: http://www.gnome.org/ #VCS: git:git://git.gnome.org/gnome-system-monitor Source: http://download.gnome.org/sources/%{name}/3.17/%{name}-%{version}.tar.xz +# https://bugzilla.gnome.org/show_bug.cgi?id=753972 +Patch0: 0001-Work-under-wayland-even-when-built-with-wnck.patch + BuildRequires: pkgconfig(libgtop-2.0) >= %{libgtop2_version} BuildRequires: pkgconfig(libwnck-3.0) >= %{libwnck_version} BuildRequires: pkgconfig(gtk+-3.0) @@ -25,6 +28,8 @@ BuildRequires: desktop-file-utils BuildRequires: intltool gettext BuildRequires: itstool +BuildRequires: autoconf automake libtool + %description gnome-system-monitor allows to graphically view and manipulate the running processes on your system. It also provides an overview of available resources @@ -32,8 +37,10 @@ such as CPU and memory. %prep %setup -q +%patch0 -p1 %build +autoreconf -i -f %configure --enable-systemd --enable-wnck make %{?_smp_mflags} @@ -67,6 +74,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : %{_libexecdir}/gnome-system-monitor/gsm-* %changelog +* Sat Aug 22 2015 Matthias Clasen - 3.17.90-2 +- Work under Wayland + * Mon Aug 17 2015 Kalev Lember - 3.17.90-1 - Update to 3.17.90 - Use make_install macro