Comment # 4 on bug 1216537 from Matej Cepl
The whole dependency is caused by this micro-embedded script, right?

use strict;
use warnings;
use Encode qw(decode);
use IO::File;
use Net::DBus;
use X11::Protocol;

my ($window_id, $screensaver_file, $dbus_service, $dbus_path) = @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;
  }
}

# Replace any invalid unicode characters with U+FFFD, so we dont crash when we
# pass them over to D-Bus
$window_name = decode("utf8", $window_name, Encode::FB_DEFAULT);

# 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($dbus_service);
my $sm = $sm_svc->get_object($dbus_path, $dbus_service);
$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;
}


You are receiving this mail because: