Hello community, here is the log from the commit of package xdg-utils for openSUSE:12.2 checked in at 2012-06-28 17:22:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.2/xdg-utils (Old) and /work/SRC/openSUSE:12.2/.xdg-utils.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "xdg-utils", Maintainer is "kde-maintainers@suse.de" Changes: -------- --- /work/SRC/openSUSE:12.2/xdg-utils/xdg-utils.changes 2012-06-25 15:57:58.000000000 +0200 +++ /work/SRC/openSUSE:12.2/.xdg-utils.new/xdg-utils.changes 2012-06-28 17:22:06.000000000 +0200 @@ -1,0 +2,5 @@ +Mon May 21 10:16:02 UTC 2012 - vargusz@fazekas.hu + +- Fix xdg-screensaver issues with Gnome 3 (bnc#559110) + +------------------------------------------------------------------- New: ---- xdg-screensaver-gnome-dbus.diff xdg-screensaver-gnome-perl.diff xdg-screensaver-sleep.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xdg-utils.spec ++++++ --- /var/tmp/diff_new_pack.QJyPoI/_old 2012-06-28 17:22:06.000000000 +0200 +++ /var/tmp/diff_new_pack.QJyPoI/_new 2012-06-28 17:22:06.000000000 +0200 @@ -41,6 +41,10 @@ # PATCH-FIX-UPSTREAM xdg-utils-1.0.2-bnc591714.patch fdo#27551 andrea@opensuse.org # this patch fix bnc#591714 Patch5: %name-1.0.2-bnc591714.patch +Patch6: xdg-screensaver-sleep.diff +Patch7: xdg-screensaver-gnome-dbus.diff +Patch8: xdg-screensaver-gnome-perl.diff +Requires: perl, perl-Net-DBus, perl-X11-Protocol %description The xdg-utils package is a set of simple scripts that provide basic @@ -67,6 +71,9 @@ %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 +%patch7 +%patch8 %build %configure ++++++ xdg-screensaver-gnome-dbus.diff ++++++ Source of the patch: http://cgit.freedesktop.org/xdg/xdg-utils/commit/?id=666d65cae0f2e66d33ec0dc... --- scripts/xdg-screensaver 2012-05-21 12:55:11.846122671 +0200 +++ scripts/xdg-screensaver 2012-05-21 12:58:36.269876261 +0200 @@ -613,16 +613,18 @@ screensaver_gnome() { -# TODO -# There seems to be a DBUS interface for gnome-screensaver -# See http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2006-April/042579.html and -# http://cvs.gnome.org/viewcvs/gnome-screensaver/src/gs-listener-dbus.c?rev=1.... -# A problem seems to be that Inhibit is tied to the lifetime of the DBUS appname and -# this can not be used from a script +# DBUS interface for gnome-screensaver +# http://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.htm... case "$1" in suspend) - screensaver_suspend_loop gnome-screensaver-command --poke - result=0 + screensaver_suspend_loop \ + dbus-send --session \ + --dest=org.gnome.ScreenSaver \ + --type=method_call \ + /org/gnome/ScreenSaver \ + org.gnome.ScreenSaver.SimulateUserActivity \ + 2> /dev/null + result=$? ;; resume) @@ -631,7 +633,13 @@ ;; activate) - gnome-screensaver-command --activate > /dev/null 2> /dev/null + dbus-send --session \ + --dest=org.gnome.ScreenSaver \ + --type=method_call \ + /org/gnome/ScreenSaver \ + org.gnome.ScreenSaver.SetActive \ + boolean:true \ + 2> /dev/null result=$? ;; @@ -642,18 +650,31 @@ reset) # Turns the screensaver off right now - gnome-screensaver-command --deactivate > /dev/null 2> /dev/null + dbus-send --session \ + --dest=org.gnome.ScreenSaver \ + --type=method_call \ + /org/gnome/ScreenSaver \ + org.gnome.ScreenSaver.SimulateUserActivity \ + 2> /dev/null result=$? ;; status) - result=0 - if [ -f "$screensaver_file" ] ; then - echo "disabled" - elif gnome-screensaver-command --query > /dev/null 2> /dev/null; then + status=`dbus-send --session \ + --dest=org.gnome.ScreenSaver \ + --type=method_call \ + --print-reply \ + --reply-timeout=2000 \ + /org/gnome/ScreenSaver \ + org.gnome.ScreenSaver.GetActive \ + | grep boolean | cut -d ' ' -f 5` + result=$? + if [ x"$status" = "xtrue" -o x"$status" = "xfalse" ]; then echo "enabled" + elif [ x"$result" != "x0" ]; then + echo "ERROR: dbus org.gnome.ScreenSaver.GetActive returned '$status'" >&2 + return 1 else - # Something is wrong echo "disabled" fi ;; ++++++ xdg-screensaver-gnome-perl.diff ++++++ Source of the patch: http://patch-tracker.debian.org/patch/series/view/xdg-utils/1.1.0~rc1+git201... --- scripts/xdg-screensaver 2012-05-21 12:58:36.269876261 +0200 +++ scripts/xdg-screensaver 2012-05-21 13:01:12.328342683 +0200 @@ -617,14 +617,54 @@ # http://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.htm... case "$1" in suspend) - screensaver_suspend_loop \ - dbus-send --session \ - --dest=org.gnome.ScreenSaver \ - --type=method_call \ - /org/gnome/ScreenSaver \ - org.gnome.ScreenSaver.SimulateUserActivity \ - 2> /dev/null - result=$? + perl -e ' +use strict; +use warnings; +use IO::File; +use Net::DBus; +use X11::Protocol; + +my ($window_id, $screensaver_file) = @ARGV; + +# Find window name to pass to session manager. +my $x = X11::Protocol->new(); +my $named_window_id = hex($window_id); +my $window_name; +while (1) { + ($window_name) = $x->GetProperty($named_window_id, $x->atom("WM_NAME"), + $x->atom("STRING"), 0, 1000, 0); + last if defined($window_name) && $window_name ne ""; + (undef, $named_window_id) = $x->QueryTree($named_window_id); + if (!defined($named_window_id)) { + $window_name = "?"; + last; + } +} + +# Inhibit idle detection (flags = 8) with window name and ID. +# We have no reason so just send the window name again. +my $bus = Net::DBus->session(); +my $sm_svc = $bus->get_service("org.gnome.SessionManager"); +my $sm = $sm_svc->get_object("/org/gnome/SessionManager", + "org.gnome.SessionManager"); +$sm->Inhibit($window_name, hex($window_id), $window_name, 8); + +# Wait until removed from the status file. +while (1) { + sleep(10); + my $status = new IO::File($screensaver_file, "r") + or exit 0; + my $found; + while (<$status>) { + if (/^$window_id:/) { + $found = 1; + last; + } + } + exit 0 unless $found; +} +' $window_id $screensaver_file & + result=0 ;; resume) ++++++ xdg-screensaver-sleep.diff ++++++ Source of the patch: http://cgit.freedesktop.org/xdg/xdg-utils/commit/?id=7465b22a95e9a28e3f4960e... --- scripts/xdg-screensaver 2007-06-24 21:58:06.000000000 +0200 +++ scripts/xdg-screensaver 2012-05-21 12:51:51.108252420 +0200 @@ -608,7 +608,7 @@ fi $MV "$tmpfile" "$screensaver_file" unlockfile - (while [ -f "$screensaver_file" ]; do $*; sleep 59; done) > /dev/null 2> /dev/null & + (while [ -f "$screensaver_file" ]; do $*; sleep 50; done) > /dev/null 2> /dev/null & } screensaver_gnome() -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org