Hello community,
here is the log from the commit of package cinnamon-screensaver for
openSUSE:Factory checked in at 2018-04-26 13:37:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cinnamon-screensaver (Old)
and /work/SRC/openSUSE:Factory/.cinnamon-screensaver.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cinnamon-screensaver"
Thu Apr 26 13:37:14 2018 rev:13 rq:599333 version:3.8.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/cinnamon-screensaver/cinnamon-screensaver.changes
2017-11-14 12:55:51.573938386 +0100
+++
/work/SRC/openSUSE:Factory/.cinnamon-screensaver.new/cinnamon-screensaver.changes
2018-04-26 13:37:15.805768896 +0200
@@ -1,0 +2,27 @@
+Thu Apr 19 20:07:54 UTC 2018 - [email protected]
+
+- Update to version 3.8.0:
+ * stage.py: Disconnect from, and destroy the CsScreen last, when
+ tearing down the stage.
+ * keybindings: Allow suspend, hibernate and screen rotation from
+ screensaver.
+ * libcscreensaver/service.py: Fix xdg-screensaver suspend.
+ * doc: Add back dbus interface documentation.
+ * dbus: Own other screensaver names to prevent them from being
+ activated on demand during a cinnamon session.
+ * nameBlocker.py: Watch for dbus activations and kill instead of
+ simply blocking. See inline notes for explanation related to
+ xdg-screensaver.
+ * xscreensavers: Add safechild wrapper (from blueberry) - provides
+ better control over screensaver hack processes, to prevent
+ their lingering after the screensaver or cinnamon-settings is
+ done with them.
+ * xscreensavers: Use python3 for safechild, attempt to kill the
+ hack process when terminated.
+ * service, manager: Always complete the lock invocation, whether
+ we succeed or not, and whether we were already active or not.
+ * webkit script: Use correct path to user webkit screensavers.
+ * Don't show switch-user when org.cinnamon.desktop.lockdown
+ disable-user-switching is False.
+
+-------------------------------------------------------------------
Old:
----
cinnamon-screensaver-3.6.1.tar.gz
New:
----
cinnamon-screensaver-3.8.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cinnamon-screensaver.spec ++++++
--- /var/tmp/diff_new_pack.KXgUAT/_old 2018-04-26 13:37:16.409746761 +0200
+++ /var/tmp/diff_new_pack.KXgUAT/_new 2018-04-26 13:37:16.409746761 +0200
@@ -1,7 +1,7 @@
#
# spec file for package cinnamon-screensaver
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,12 +17,12 @@
Name: cinnamon-screensaver
-Version: 3.6.1
+Version: 3.8.0
Release: 0
Summary: Cinnamon screensaver and locker
-License: GPL-2.0+
+License: GPL-2.0-or-later
Group: System/GUI/Other
-Url: https://github.com/linuxmint/cinnamon-screensaver
+URL: https://github.com/linuxmint/cinnamon-screensaver
Source:
https://github.com/linuxmint/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
# PATCH-FIX-OPENSUSE cinnamon-screensaver-suse-pam.patch -- Use SUSE-specific
PAM configuration.
Patch0: %{name}-suse-pam.patch
@@ -49,15 +49,13 @@
Requires: libcinnamon-desktop-data
Requires: python3-cairo
Requires: python3-gobject
+Requires: python3-gobject-Gdk
Requires: python3-gobject-cairo
Requires: python3-setproctitle
Requires: python3-xapp
Recommends: %{name}-lang
Recommends: xscreensaver-data
Suggests: xscreensaver-data-extra
-%if 0%{?suse_version} > 1320 || 0%{?sle_version} >= 120200
-Requires: python3-gobject-Gdk
-%endif
%description
cinnamon-screensaver is a screensaver and locker that aims to have
@@ -92,20 +90,21 @@
%post
/sbin/ldconfig
-%if 0%{?suse_version} <= 1320
+%if 0%{?suse_version} < 1500
%desktop_database_post
%icon_theme_cache_post
%endif
%postun
/sbin/ldconfig
-%if 0%{?suse_version} <= 1320
+%if 0%{?suse_version} < 1500
%desktop_database_postun
%icon_theme_cache_postun
%endif
%files
-%doc AUTHORS COPYING* README debian/changelog
+%license COPYING*
+%doc AUTHORS README debian/changelog
%config %{_sysconfdir}/pam.d/cinnamon-screensaver
%{_bindir}/%{name}
%{_bindir}/%{name}-command
++++++ cinnamon-screensaver-3.6.1.tar.gz -> cinnamon-screensaver-3.8.0.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/.circleci/config.yml
new/cinnamon-screensaver-3.8.0/.circleci/config.yml
--- old/cinnamon-screensaver-3.6.1/.circleci/config.yml 1970-01-01
01:00:00.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/.circleci/config.yml 2018-04-19
13:46:25.000000000 +0200
@@ -0,0 +1,65 @@
+version: 2.0
+
+shared: &shared
+
+ steps:
+
+ - checkout
+
+ - run:
+ name: Prepare environment
+ command: apt-get update
+
+ - run:
+ name: Install dependencies
+ command: |
+ wget
https://github.com/linuxmint/xapps/releases/download/master.${CIRCLE_JOB}/packages.tar.gz
-O xapps.tar.gz
+ wget
https://github.com/linuxmint/cinnamon-desktop/releases/download/master.${CIRCLE_JOB}/packages.tar.gz
-O cinnamon-desktop.tar.gz
+ ls *.tar.gz | xargs -i tar zxvf {}
+ apt install --yes --allow-downgrades ./packages/*.deb
+ rm -rf packages
+
+ - run:
+ name: Build project
+ command: mint-build -i
+
+ - run:
+ name: Prepare packages
+ command: |
+ if [ -z $CI_PULL_REQUEST ]; then
+ mkdir /packages
+ mv /root/*.deb /packages/
+ git log > /packages/git.log
+ cd /
+ tar zcvf packages.tar.gz packages
+ fi
+
+ - run:
+ name: Deploy packages to Github
+ command: |
+ if [ -z $CI_PULL_REQUEST ]; then
+ wget
https://github.com/tcnksm/ghr/releases/download/v0.5.4/ghr_v0.5.4_linux_amd64.zip
+ apt-get install --yes unzip
+ unzip ghr_v0.5.4_linux_amd64.zip
+ TAG="master".$CIRCLE_JOB
+ ./ghr -t $GITHUB_TOKEN -u $CIRCLE_PROJECT_USERNAME -r
$CIRCLE_PROJECT_REPONAME -replace $TAG /packages.tar.gz
+ ./ghr -t $GITHUB_TOKEN -u $CIRCLE_PROJECT_USERNAME -r
$CIRCLE_PROJECT_REPONAME -recreate -b "Latest unstable packages" $TAG
/packages.tar.gz
+ fi
+
+jobs:
+ "mint19":
+ <<: *shared
+ docker:
+ - image: linuxmintd/mint19-amd64
+
+ "lmde3":
+ <<: *shared
+ docker:
+ - image: linuxmintd/lmde3-amd64
+
+workflows:
+ version: 2
+ build:
+ jobs:
+ - "mint19"
+ - "lmde3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/.gitignore
new/cinnamon-screensaver-3.8.0/.gitignore
--- old/cinnamon-screensaver-3.6.1/.gitignore 2017-11-09 13:43:57.000000000
+0100
+++ new/cinnamon-screensaver-3.8.0/.gitignore 2018-04-19 13:46:25.000000000
+0200
@@ -52,7 +52,7 @@
*.typelib
*.pc
.libs
-debian
+debian/files
m4
depcomp
py-compile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/configure.ac
new/cinnamon-screensaver-3.8.0/configure.ac
--- old/cinnamon-screensaver-3.6.1/configure.ac 2017-11-09 13:43:57.000000000
+0100
+++ new/cinnamon-screensaver-3.8.0/configure.ac 2018-04-19 13:46:25.000000000
+0200
@@ -2,7 +2,7 @@
AC_PREREQ(2.60)
AC_INIT([cinnamon-screensaver],
- [3.6.1],
+ [3.8.0],
[https://github.com/linuxmint/cinnamon-screensaver/issues])
PKG_PROG_PKG_CONFIG([0.26])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/debian/changelog
new/cinnamon-screensaver-3.8.0/debian/changelog
--- old/cinnamon-screensaver-3.6.1/debian/changelog 2017-11-09
13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/debian/changelog 2018-04-19
13:46:25.000000000 +0200
@@ -1,3 +1,51 @@
+cinnamon-screensaver (3.8.0) tara; urgency=medium
+
+ [ Michael Webster ]
+ * stage.py: Disconnect from, and destroy the CsScreen last, when tearing
down the stage.
+
+ [ Clement Lefebvre ]
+ * Add CI configuration
+ * CI: Fix dependencies
+
+ [ Michael Thies ]
+ * keybindings: Allow suspend, hibernate and screen rotation from screensaver
(#257)
+
+ [ itzexor ]
+ * libcscreensaver/service.py: fix xdg-screensaver suspend
+ * doc: add back dbus interface documentation
+
+ [ Michael Webster ]
+ * dbus: Own other screensaver names to prevent them from being activated on
demand during a cinnamon session.
+ * nameBlocker.py: Watch for dbus activations and kill instead of simply
blocking. See inline notes for explanation related to xdg-screensaver.
+ * xscreensavers: Add safechild wrapper (from blueberry) - provides better
control over screensaver hack processes, to prevent their lingering after the
screensaver or cinnamon-settings is done with them.
+ * xscreensavers: Use python3 for safechild, attempt to kill the hack process
when terminated.
+ * service, manager: always complete the lock invocation, whether we succeed
or not, and whether we were already active or not.
+ * webkit script: Use correct path to user webkit screensavers.
+
+ [ Fabio Fantoni ]
+ * debian: wrap-and-sort -bst (#274)
+ * debian: Call autogen.sh with dh_autoreconf
+ * cleanup debian/rules from not needed gnome things
+ * debian: add missed gir to libcscreensaver0
+ * debian: right lib path from debian/rules without generate .install
+ * debian: improve python3 support
+ * Bump debhelper build-dep and compat to 10
+ * .gitignore: debian/files instead all debian folder
+ * improve debian/cinnamon-screensaver.install
+ * add debian/not-installed
+ * debian: remove old prerm
+ * update debian/copyright
+ * improve debian/control
+ * move pamhelper to libexec
+ * debian: remove cinnamon-screensaver-pam-helper, integrating in
cinnamon-screensaver pkg
+ * circleci: remove mint18 job
+ * debian/control: add break/replace anyway to remove old
cinnamon-screensaver-pam-helper
+
+ [ Clement Lefebvre ]
+ * Don't show switch-user when org.cinnamon.desktop.lockdown
disable-user-switching is False
+
+ -- Clement Lefebvre <[email protected]> Thu, 19 Apr 2018 12:46:03 +0100
+
cinnamon-screensaver (3.6.1) sylvia; urgency=medium
* Disable fade-in effects on idle
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/debian/cinnamon-screensaver-pam-helper.install
new/cinnamon-screensaver-3.8.0/debian/cinnamon-screensaver-pam-helper.install
---
old/cinnamon-screensaver-3.6.1/debian/cinnamon-screensaver-pam-helper.install
2017-11-09 13:43:57.000000000 +0100
+++
new/cinnamon-screensaver-3.8.0/debian/cinnamon-screensaver-pam-helper.install
2018-04-19 13:46:25.000000000 +0200
@@ -1 +1 @@
-/usr/lib/*/cinnamon-screensaver-pam-helper
\ No newline at end of file
+/usr/lib/*/cinnamon-screensaver-pam-helper
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/debian/cinnamon-screensaver-x-plugin.install
new/cinnamon-screensaver-3.8.0/debian/cinnamon-screensaver-x-plugin.install
--- old/cinnamon-screensaver-3.6.1/debian/cinnamon-screensaver-x-plugin.install
2017-11-09 13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/debian/cinnamon-screensaver-x-plugin.install
2018-04-19 13:46:25.000000000 +0200
@@ -1 +1 @@
-/usr/share/cinnamon-screensaver/screensavers/[email protected]
\ No newline at end of file
+/usr/share/cinnamon-screensaver/screensavers/[email protected]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/debian/cinnamon-screensaver.install
new/cinnamon-screensaver-3.8.0/debian/cinnamon-screensaver.install
--- old/cinnamon-screensaver-3.6.1/debian/cinnamon-screensaver.install
2017-11-09 13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/debian/cinnamon-screensaver.install
2018-04-19 13:46:25.000000000 +0200
@@ -1,16 +1,9 @@
-/usr/share/applications
-/usr/share/icons
-/usr/share/cinnamon-screensaver/*.py
-/usr/share/cinnamon-screensaver/*.css
-/usr/share/cinnamon-screensaver/__pycache__
-/usr/share/cinnamon-screensaver/dbusdepot/*.py
-/usr/share/cinnamon-screensaver/dbusdepot/__pycache__
-/usr/share/cinnamon-screensaver/pamhelper/*.py
-/usr/share/cinnamon-screensaver/pamhelper/__pycache__
-/usr/share/cinnamon-screensaver/util/*.py
-/usr/share/cinnamon-screensaver/util/__pycache__
-/usr/share/cinnamon-screensaver/widgets/*.py
-/usr/share/cinnamon-screensaver/widgets/__pycache__
-/usr/share/dbus-1
-/usr/bin
-/etc/pam.d/cinnamon-screensaver
+etc/pam.d/cinnamon-screensaver
+usr/bin
+usr/lib/*/cinnamon-screensaver/cinnamon-screensaver-pam-helper
+usr/share/applications
+usr/share/cinnamon-screensaver/*.css
+usr/share/cinnamon-screensaver/*.py
+usr/share/cinnamon-screensaver/*/*.py
+usr/share/dbus-1
+usr/share/icons
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/debian/cinnamon-screensaver.prerm
new/cinnamon-screensaver-3.8.0/debian/cinnamon-screensaver.prerm
--- old/cinnamon-screensaver-3.6.1/debian/cinnamon-screensaver.prerm
2017-11-09 13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/debian/cinnamon-screensaver.prerm
1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-set -e
-
-if [ -L /usr/bin/gnome-screensaver ]; then
- echo "Removing link /usr/bin/gnome-screensaver"
- rm -f /usr/bin/gnome-screensaver
-fi
-
-if [ -L /usr/bin/gnome-screensaver-command ]; then
- echo "Removing link /usr/bin/gnome-screensaver-command"
- rm -f /usr/bin/gnome-screensaver-command
-fi
-
-#DEBHELPER#
-
-exit 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/debian/compat
new/cinnamon-screensaver-3.8.0/debian/compat
--- old/cinnamon-screensaver-3.6.1/debian/compat 2017-11-09
13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/debian/compat 2018-04-19
13:46:25.000000000 +0200
@@ -1 +1 @@
-9
+10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/debian/control
new/cinnamon-screensaver-3.8.0/debian/control
--- old/cinnamon-screensaver-3.6.1/debian/control 2017-11-09
13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/debian/control 2018-04-19
13:46:25.000000000 +0200
@@ -2,84 +2,85 @@
Section: x11
Priority: optional
Maintainer: Linux Mint <[email protected]>
-Build-Depends: autoconf-archive,
- debhelper (>= 9),
- devscripts,
- dh-autoreconf,
- dh-python,
- dh-exec,
- librsvg2-bin,
- python-rsvg,
- libglib2.0-dev,
- libdbus-1-dev,
- libgtk-3-dev,
- libglib2.0-dev,
- libxext-dev,
- libgirepository1.0-dev,
- libpam0g-dev,
- gobject-introspection,
- intltool (>= 0.40.0),
- gnome-pkg-tools (>= 0.10)
+Build-Depends:
+ autoconf-archive,
+ automake,
+ debhelper (>= 10),
+ dh-python,
+ gnome-pkg-tools (>= 0.10),
+ gobject-introspection,
+ intltool (>= 0.40.0),
+ libdbus-1-dev,
+ libgirepository1.0-dev,
+ libglib2.0-dev (>= 2.37.3),
+ libgtk-3-dev (>= 3.1.4),
+ libpam0g-dev,
+ librsvg2-bin,
+ libxext-dev,
+ python-rsvg,
+ python3,
Standards-Version: 3.9.6
Package: cinnamon-screensaver
-Architecture: all
+Architecture: any
Pre-Depends: ${misc:Pre-Depends}
-Depends: cinnamon-desktop-data (>= 3.0.0),
- python3,
- python3-gi,
- python3-gi-cairo,
- python3-setproctitle,
- python3-xapp (>= 1.0.1),
- gir1.2-cinnamondesktop-3.0 (>= 3.5.0),
- gir1.2-gkbd-3.0,
- gir1.2-glib-2.0,
- gir1.2-gtk-3.0,
- gir1.2-accountsservice-1.0,
- gir1.2-xapp-1.0,
- libcscreensaver0,
- iso-flag-png,
- ${misc:Depends},
- ${python:Depends},
- ${shlibs:Depends},
- cinnamon-screensaver-pam-helper
+Depends:
+ cinnamon-desktop-data (>= 3.5),
+ gir1.2-accountsservice-1.0,
+ gir1.2-cinnamondesktop-3.0 (>= 3.5),
+ gir1.2-gkbd-3.0,
+ gir1.2-glib-2.0,
+ gir1.2-gtk-3.0,
+ gir1.2-xapp-1.0,
+ iso-flag-png,
+ libcscreensaver0 (= ${binary:Version}),
+ python3,
+ python3-gi,
+ python3-gi-cairo,
+ python3-setproctitle,
+ python3-xapp (>= 1.0.1),
+ python3-xlib,
+ ${misc:Depends},
+ ${python3:Depends},
+ ${shlibs:Depends},
Recommends: libpam-gnome-keyring
-Suggests: cinnamon-screensaver-x-plugin,
- cinnamon-screensaver-webkit-plugin
+Breaks: cinnamon-screensaver-pam-helper (<< 3.8)
+Replaces: cinnamon-screensaver-pam-helper (<< 3.8)
+Suggests: cinnamon-screensaver-webkit-plugin, cinnamon-screensaver-x-plugin
Description: Cinnamon screen saver and locker
cinnamon-screensaver is a screen saver and locker that aims to have simple,
sane and secure defaults, and be well integrated with the Cinnamon desktop.
-Package: cinnamon-screensaver-pam-helper
-Architecture: any
-Description: PAM helper for cinnamon-screensaver
-
-Package: cinnamon-screensaver-x-plugin
-Architecture: all
-Pre-Depends: ${misc:Pre-Depends}
-Depends: cinnamon-screensaver (>= 3.1.0),
- xscreensaver-data
-Recommends: xscreensaver-data-extra,
- xscreensaver-gl,
- xscreensaver-gl-extra
-Description: XScreensaver plugin for cinnamon-screensaver
-
Package: cinnamon-screensaver-webkit-plugin
Architecture: all
Pre-Depends: ${misc:Pre-Depends}
-Depends: cinnamon-screensaver (>= 3.1.0),
- gir1.2-webkit2-4.0
+Depends:
+ cinnamon-screensaver (>= 3.1.0),
+ gir1.2-webkit2-4.0,
+ python3:any,
+ ${misc:Depends},
+ ${python3:Depends},
Description: Webkit plugin for cinnamon-screensaver
+ cinnamon-screensaver is a screen saver and locker that aims to have simple,
+ sane and secure defaults, and be well integrated with the Cinnamon desktop.
+ .
+ This package contains the plugin for using webkit screensavers.
-Package: libcscreensaver0
-Section: libs
-Architecture: any
-Multi-Arch: same
+Package: cinnamon-screensaver-x-plugin
+Architecture: all
Pre-Depends: ${misc:Pre-Depends}
-Depends: ${misc:Depends},
- ${shlibs:Depends}
-Description: library and introspection data used only by cinnamon-screensaver
- to work around currently un-introspectable functions in Gdk-3.0
+Depends:
+ cinnamon-screensaver (>= 3.1.0),
+ python3:any,
+ xscreensaver-data,
+ ${misc:Depends},
+ ${python3:Depends},
+Recommends: xscreensaver-data-extra, xscreensaver-gl, xscreensaver-gl-extra
+Description: XScreensaver plugin for cinnamon-screensaver
+ cinnamon-screensaver is a screen saver and locker that aims to have simple,
+ sane and secure defaults, and be well integrated with the Cinnamon desktop.
+ .
+ This package contains the plugin for using the xscreensaver animations.
Package: libcscreensaver-dbg
Section: debug
@@ -90,3 +91,15 @@
Depends: libcscreensaver0 (= ${binary:Version}), ${misc:Depends}
Description: Cinnamon Screensaver library - debug symbols
This package contains the symbols files needed to debug the Cinnamon
Screensaver library.
+
+Package: libcscreensaver0
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${gir:Depends}, ${misc:Depends}, ${shlibs:Depends}
+Description: library and introspection data used by cinnamon-screensaver
+ cinnamon-screensaver is a screen saver and locker that aims to have simple,
+ sane and secure defaults, and be well integrated with the Cinnamon desktop.
+ .
+ This package contains the library used by the screensaver.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/debian/copyright
new/cinnamon-screensaver-3.8.0/debian/copyright
--- old/cinnamon-screensaver-3.6.1/debian/copyright 2017-11-09
13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/debian/copyright 2018-04-19
13:46:25.000000000 +0200
@@ -4,5 +4,70 @@
Source: https://github.com/linuxmint/cinnamon-screensaver.git
Files: *
-Copyright: 2016
+Copyright: 2016, Michael Webster <[email protected]>
License: GPL-2+
+
+Files: COPYING.LIB
+Copyright: 1951, Franklin Street - Suite 500, Boston, MA, 02110-1335, USA
+ 1991, Free Software Foundation, Inc
+License: LGPL-2+
+
+Files: debian/*
+Copyright: 2014-2017, Maximiliano Curia <[email protected]>
+Copyright: 2013-2017, Linux Mint Project <[email protected]>
+License: LGPL-2+
+
+Files: libcscreensaver/setuid.c
+ libcscreensaver/setuid.h
+ libcscreensaver/subprocs.c
+ libcscreensaver/subprocs.h
+Copyright: 1991-2004, Jamie Zawinski <[email protected]>
+ 2004, William Jon McCann <[email protected]>
+License: MIT/X11
+
+Files: po/Makefile.in.in
+Copyright: 2004-2008, Rodney Dawes <[email protected]>
+ 1995-1997, Ulrich Drepper <[email protected]>
+License: Permissive
+
+License: GPL-2+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+ .
+ On Debian systems, the complete text of the GNU General Public License
+ version 2 can be found in `/usr/share/common-licenses/GPL-2'.
+
+License: LGPL-2+
+ This program is free software; you can redistribute it and/or modify it under
+ the terms of the GNU Library General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option) any
+ later version.
+ .
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for
+ more details.
+ .
+ On Debian systems, the complete text of the GNU Library General Public License
+ version 2 can be found in `/usr/share/common-licenses/LGPL-2'.
+
+License: MIT/X11
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation. No representations are made about the suitability of this
+ software for any purpose. It is provided "as is" without express or
+ implied warranty.
+
+License: Permissive
+ This file may be copied and used freely without restrictions. It may
+ be used in projects which are not available under a GNU Public License,
+ but which still want to provide support for the GNU gettext functionality.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/debian/libcscreensaver0.install
new/cinnamon-screensaver-3.8.0/debian/libcscreensaver0.install
--- old/cinnamon-screensaver-3.6.1/debian/libcscreensaver0.install
1970-01-01 01:00:00.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/debian/libcscreensaver0.install
2018-04-19 13:46:25.000000000 +0200
@@ -0,0 +1,4 @@
+usr/lib/*/girepository-1.0/CScreensaver-1.0.typelib
+usr/lib/*/libcscreensaver.so.0
+usr/lib/*/libcscreensaver.so.0.*
+usr/share/gir-1.0/CScreensaver-1.0.gir
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/debian/libcscreensaver0.install.in
new/cinnamon-screensaver-3.8.0/debian/libcscreensaver0.install.in
--- old/cinnamon-screensaver-3.6.1/debian/libcscreensaver0.install.in
2017-11-09 13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/debian/libcscreensaver0.install.in
1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-DEB_PKG_CONFIG_LIBDIR/libcscreensaver.so.0
-DEB_PKG_CONFIG_LIBDIR/libcscreensaver.so.0.*
-DEB_PKG_CONFIG_LIBDIR/girepository-1.0/CScreensaver-1.0.typelib
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/debian/not-installed
new/cinnamon-screensaver-3.8.0/debian/not-installed
--- old/cinnamon-screensaver-3.6.1/debian/not-installed 1970-01-01
01:00:00.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/debian/not-installed 2018-04-19
13:46:25.000000000 +0200
@@ -0,0 +1,8 @@
+# Internal lib, no need for the dev parts
+usr/lib/*/libcscreensaver.la
+usr/lib/*/libcscreensaver.so
+usr/lib/*/pkgconfig/cscreensaver.pc
+usr/include/cinnamon-screensaver/
+# precompiled python files
+*/__pycache__/
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/debian/rules
new/cinnamon-screensaver-3.8.0/debian/rules
--- old/cinnamon-screensaver-3.6.1/debian/rules 2017-11-09 13:43:57.000000000
+0100
+++ new/cinnamon-screensaver-3.8.0/debian/rules 2018-04-19 13:46:25.000000000
+0200
@@ -1,23 +1,24 @@
#!/usr/bin/make -f
-DEB_PKG_CONFIG_LIBDIR=$(shell pkg-config gobject-introspection-1.0 --variable
libdir | sed -e 's/.//')
+export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
%:
- dh $@ --parallel --with=autoreconf,gnome
+ dh $@ --with=python3,gir
-override_dh_gnome_clean:
- dh_gnome_clean --no-control
+override_dh_autoreconf:
+ NOCONFIGURE=1 dh_autoreconf --as-needed ./autogen.sh
override_dh_strip:
dh_strip --dbg-package=libcscreensaver-dbg
+override_dh_auto_configure:
+ dh_auto_configure -- \
+ --enable-locking \
+
--libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)/cinnamon-screensaver
+
override_dh_install:
- sed 's@DEB_PKG_CONFIG_LIBDIR@${DEB_PKG_CONFIG_LIBDIR}@'
debian/libcscreensaver0.install.in > debian/libcscreensaver0.install
dh_install --list-missing
-DEB_CONFIGURE_SCRIPT_ENV += PYTHON="/usr/bin/python3"
-
-DEB_MAKE_EXTRA_ARGS += pythondir=/usr/share/cinnamon-screensaver
-
-install/cinnamon-screensaver::
- dh_python3 -p$(cdbs_curpkg)
+override_dh_python3:
+ dh_python3 usr/share/cinnamon-screensaver
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/doc/dbus-interface.html
new/cinnamon-screensaver-3.8.0/doc/dbus-interface.html
--- old/cinnamon-screensaver-3.6.1/doc/dbus-interface.html 1970-01-01
01:00:00.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/doc/dbus-interface.html 2018-04-19
13:46:25.000000000 +0200
@@ -0,0 +1,171 @@
+<html><head><meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1"><title>Cinnamon Screensaver 1.8.0
Documentation</title><meta name="generator" content="DocBook XSL Stylesheets
V1.76.1"></head><body bgcolor="white" text="black" link="#0000FF"
vlink="#840084" alink="#0000FF"><div class="book" title="Cinnamon Screensaver
1.8.0 Documentation"><div class="titlepage"><div><div><h1 class="title"><a
name="index"></a>Cinnamon Screensaver 1.8.0 Documentation</h1></div><div><div
class="authorgroup"><div class="author"><h3 class="author"><span
class="firstname">William Jon</span> <span
class="surname">McCann</span></h3><div class="affiliation"><div
class="address"><p><br>
+������������<code class="email"><<a class="email"
href="mailto:[email protected]">[email protected]</a>></code><br>
+����������</p></div></div></div></div></div><div><p
class="releaseinfo">Version 1.8.0</p></div></div><hr></div><div
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a
href="#dbus-interface">1. DBUS Interface</a></span></dt><dd><dl><dt><span
class="sect1"><a href="#gs-intro">Introduction</a></span></dt><dt><span
class="sect1"><a href="#gs-methods">Methods</a></span></dt><dd><dl><dt><span
class="sect2"><a href="#gs-method-Lock">
+ <code class="literal">Lock</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-Cycle">
+ <code class="literal">Cycle</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-method-SimulateUserActivity">
+ <code class="literal">SimulateUserActivity</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-Throttle">
+ <code class="literal">Throttle</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-UnThrottle">
+ <code class="literal">UnThrottle</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-SetActive">
+ <code class="literal">SetActive</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-GetActive">
+ <code class="literal">GetActive</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-method-GetActiveTime">
+ <code class="literal">GetActiveTime</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-method-GetSessionIdle">
+ <code class="literal">GetSessionIdle</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-method-GetSessionIdleTime">
+ <code class="literal">GetSessionIdleTime</code>
+ </a></span></dt></dl></dd><dt><span class="sect1"><a
href="#gs-signals">Signals</a></span></dt><dd><dl><dt><span class="sect2"><a
href="#gs-signal-ActiveChanged">
+ <code class="literal">ActiveChanged</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-signal-SessionIdleChanged">
+ <code class="literal">SessionIdleChanged</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-signal-AuthenticationRequestBegin">
+ <code class="literal">AuthenticationRequestBegin</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-signal-AuthenticationRequestEnd">
+ <code class="literal">AuthenticationRequestEnd</code>
+ </a></span></dt></dl></dd><dt><span class="sect1"><a
href="#gs-examples">Examples</a></span></dt></dl></dd></dl></div><div
class="chapter" title="Chapter�1.�DBUS Interface"><div
class="titlepage"><div><div><h2 class="title"><a
name="dbus-interface"></a>Chapter�1.�DBUS Interface</h2></div></div></div><div
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a
href="#gs-intro">Introduction</a></span></dt><dt><span class="sect1"><a
href="#gs-methods">Methods</a></span></dt><dd><dl><dt><span class="sect2"><a
href="#gs-method-Lock">
+ <code class="literal">Lock</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-Cycle">
+ <code class="literal">Cycle</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-method-SimulateUserActivity">
+ <code class="literal">SimulateUserActivity</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-Throttle">
+ <code class="literal">Throttle</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-UnThrottle">
+ <code class="literal">UnThrottle</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-SetActive">
+ <code class="literal">SetActive</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-GetActive">
+ <code class="literal">GetActive</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-method-GetActiveTime">
+ <code class="literal">GetActiveTime</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-method-GetSessionIdle">
+ <code class="literal">GetSessionIdle</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-method-GetSessionIdleTime">
+ <code class="literal">GetSessionIdleTime</code>
+ </a></span></dt></dl></dd><dt><span class="sect1"><a
href="#gs-signals">Signals</a></span></dt><dd><dl><dt><span class="sect2"><a
href="#gs-signal-ActiveChanged">
+ <code class="literal">ActiveChanged</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-signal-SessionIdleChanged">
+ <code class="literal">SessionIdleChanged</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-signal-AuthenticationRequestBegin">
+ <code class="literal">AuthenticationRequestBegin</code>
+ </a></span></dt><dt><span class="sect2"><a
href="#gs-signal-AuthenticationRequestEnd">
+ <code class="literal">AuthenticationRequestEnd</code>
+ </a></span></dt></dl></dd><dt><span class="sect1"><a
href="#gs-examples">Examples</a></span></dt></dl></div><p>
+ This API is currently unstable and is likely to change in the future.
+ </p><div class="sect1" title="Introduction"><div
class="titlepage"><div><div><h2 class="title" style="clear: both"><a
name="gs-intro"></a>Introduction</h2></div></div></div><p>
+ Cinnamon Screensaver exposes a DBUS API for programs to obtain
information about
+ the screensaver state and to interact with the screensaver in limited
ways.
+ </p><p>
+ The following constants are used to uniquely refer to the
CinnamonScreensaver
+ object when making DBUS method calls:
+ </p><div class="informaltable"><table
border="1"><colgroup><col><col></colgroup><tbody><tr><td>DBUS
Service:</td><td><code
class="literal">org.cinnamon.ScreenSaver</code></td></tr><tr><td>DBUS Object
Path:</td><td><code
class="literal">/org.cinnamon.ScreenSaver</code></td></tr><tr><td>DBUS
Interface:</td><td><code
class="literal">org.cinnamon.ScreenSaver</code></td></tr></tbody></table></div></div><div
class="sect1" title="Methods"><div class="titlepage"><div><div><h2
class="title" style="clear: both"><a
name="gs-methods"></a>Methods</h2></div></div></div><p>
+ These are the DBUS methods.
+ </p><div class="sect2" title="Lock"><div class="titlepage"><div><div><h3
class="title"><a name="gs-method-Lock"></a>
+ <code class="literal">Lock</code>
+ </h3></div></div></div><p>
+ Request that the screen be locked.
+ </p><div class="informaltable"><table
border="1"><colgroup><col><col></colgroup><thead><tr><th>Direction</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>in</td><td>string</td><td>the
away message</td></tr></tbody></table></div></div><div class="sect2"
title="Cycle"><div class="titlepage"><div><div><h3 class="title"><a
name="gs-method-Cycle"></a>
+ <code class="literal">Cycle</code>
+ </h3></div></div></div><p>
+ Request that the screen saver theme be restarted and, if applicable,
+ switch to the next one in the list.
+ </p></div><div class="sect2" title="SimulateUserActivity"><div
class="titlepage"><div><div><h3 class="title"><a
name="gs-method-SimulateUserActivity"></a>
+ <code class="literal">SimulateUserActivity</code>
+ </h3></div></div></div><p>
+ Simulate user activity. If the screensaver is activated this
+ will attempt to deactivate and authentication will be
+ requested if necessary. If the screensaver is not activated
+ then the idle timers will be reset.
+ </p></div><div class="sect2" title="Throttle"><div
class="titlepage"><div><div><h3 class="title"><a name="gs-method-Throttle"></a>
+ <code class="literal">Throttle</code>
+ </h3></div></div></div><p>
+ Request that running themes while the screensaver is active be blocked
+ until UnThrottle is called or the calling process exits.
+ </p><div class="informaltable"><table
border="1"><colgroup><col><col></colgroup><thead><tr><th>Direction</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>in</td><td>string</td><td>the
application name, e.g.
"gnome-power-manager"</td></tr><tr><td>in</td><td>string</td><td>the localized
reason to inhibit, e.g. "on battery
power"</td></tr><tr><td>out</td><td>unsigned integer</td><td>the
cookie</td></tr></tbody></table></div><p>
+ A cookie is a random, unique, non-zero UINT32 used to identify the
throttle request.
+ </p></div><div class="sect2" title="UnThrottle"><div
class="titlepage"><div><div><h3 class="title"><a
name="gs-method-UnThrottle"></a>
+ <code class="literal">UnThrottle</code>
+ </h3></div></div></div><p>
+ Cancel a previous call to Throttle() identified by the cookie.
+ </p><div class="informaltable"><table
border="1"><colgroup><col><col></colgroup><thead><tr><th>Direction</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>in</td><td>unsigned
integer</td><td>the cookie</td></tr></tbody></table></div></div><div
class="sect2" title="SetActive"><div class="titlepage"><div><div><h3
class="title"><a name="gs-method-SetActive"></a>
+ <code class="literal">SetActive</code>
+ </h3></div></div></div><p>
+ Request a change in the state of the screensaver.
+ Set to TRUE to request that the screensaver activate.
+ Active means that the screensaver has blanked the screen and may run a
+ graphical theme. This does not necessary mean that the screen is
locked.
+ </p><div class="informaltable"><table
border="1"><colgroup><col><col></colgroup><thead><tr><th>Direction</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>in</td><td>boolean</td><td>TRUE
to request activation, FALSE to request
deactivation</td></tr></tbody></table></div></div><div class="sect2"
title="GetActive"><div class="titlepage"><div><div><h3 class="title"><a
name="gs-method-GetActive"></a>
+ <code class="literal">GetActive</code>
+ </h3></div></div></div><p>
+ Returns the value of the current state of activity. See SetActive().
+ </p><div class="informaltable"><table
border="1"><colgroup><col><col></colgroup><thead><tr><th>Direction</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>out</td><td>boolean</td><td>Activation
state</td></tr></tbody></table></div></div><div class="sect2"
title="GetActiveTime"><div class="titlepage"><div><div><h3 class="title"><a
name="gs-method-GetActiveTime"></a>
+ <code class="literal">GetActiveTime</code>
+ </h3></div></div></div><p>
+ Returns the number of seconds that the screensaver has been active.
+ Returns zero if the screensaver is not active.
+ </p><div class="informaltable"><table
border="1"><colgroup><col><col></colgroup><thead><tr><th>Direction</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>out</td><td>unsigned
integer</td><td>Active time in
seconds</td></tr></tbody></table></div></div><div class="sect2"
title="GetSessionIdle"><div class="titlepage"><div><div><h3 class="title"><a
name="gs-method-GetSessionIdle"></a>
+ <code class="literal">GetSessionIdle</code>
+ </h3></div></div></div><p>
+ Returns the value of the current state of session idleness.
+ </p><div class="informaltable"><table
border="1"><colgroup><col><col></colgroup><thead><tr><th>Direction</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>out</td><td>boolean</td><td>If
the session is idle</td></tr></tbody></table></div></div><div class="sect2"
title="GetSessionIdleTime"><div class="titlepage"><div><div><h3
class="title"><a name="gs-method-GetSessionIdleTime"></a>
+ <code class="literal">GetSessionIdleTime</code>
+ </h3></div></div></div><p>
+ Returns the number of seconds that the session has been idle.
+ Returns zero if the session is not idle.
+ </p><div class="informaltable"><table
border="1"><colgroup><col><col></colgroup><thead><tr><th>Direction</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>out</td><td>unsigned
integer</td><td>Idle time in
seconds</td></tr></tbody></table></div></div></div><div class="sect1"
title="Signals"><div class="titlepage"><div><div><h2 class="title"
style="clear: both"><a name="gs-signals"></a>Signals</h2></div></div></div><p>
+ These are the DBUS signals.
+ </p><div class="sect2" title="ActiveChanged"><div
class="titlepage"><div><div><h3 class="title"><a
name="gs-signal-ActiveChanged"></a>
+ <code class="literal">ActiveChanged</code>
+ </h3></div></div></div><p>
+ See method GetActive().
+ </p><div class="informaltable"><table
border="1"><colgroup><col><col></colgroup><thead><tr><th>Direction</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>out</td><td>boolean</td><td>Returns
the value of the current state of
activity.</td></tr></tbody></table></div></div><div class="sect2"
title="SessionIdleChanged"><div class="titlepage"><div><div><h3
class="title"><a name="gs-signal-SessionIdleChanged"></a>
+ <code class="literal">SessionIdleChanged</code>
+ </h3></div></div></div><p>
+ See method GetActive().
+ </p><div class="informaltable"><table
border="1"><colgroup><col><col></colgroup><thead><tr><th>Direction</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>out</td><td>boolean</td><td>Returns
the value of the current state of
activity.</td></tr></tbody></table></div></div><div class="sect2"
title="AuthenticationRequestBegin"><div class="titlepage"><div><div><h3
class="title"><a name="gs-signal-AuthenticationRequestBegin"></a>
+ <code class="literal">AuthenticationRequestBegin</code>
+ </h3></div></div></div><p>
+ Emitted before an authentication request
+ </p></div><div class="sect2" title="AuthenticationRequestEnd"><div
class="titlepage"><div><div><h3 class="title"><a
name="gs-signal-AuthenticationRequestEnd"></a>
+ <code class="literal">AuthenticationRequestEnd</code>
+ </h3></div></div></div><p>
+ Emitted after an authentication request
+ </p></div></div><div class="sect1" title="Examples"><div
class="titlepage"><div><div><h2 class="title" style="clear: both"><a
name="gs-examples"></a>Examples</h2></div></div></div><p>
+ You can get the number of seconds the screensaver has been active by
+ running the following:
+ </p><pre class="screen">
+dbus-send --session \
+ --dest=org.cinnamon.ScreenSaver \
+ --type=method_call \
+ --print-reply \
+ --reply-timeout=20000 \
+ /org/cinnamon/ScreenSaver \
+ org.cinnamon.ScreenSaver.GetSessionIdleTime
+ </pre><p>
+ You can activate the screensaver like so:
+ </p><pre class="screen">
+dbus-send --session \
+ --dest=org.cinnamon.ScreenSaver \
+ --type=method_call \
+ --print-reply \
+ --reply-timeout=20000 \
+ /org/cinnamon/ScreenSaver \
+ org.cinnamon.ScreenSaver.SetActive \
+ boolean:true
+ </pre><p>
+ You can monitor screensaver changes:
+ </p><pre class="screen">
+dbus-monitor --session \
+ "type='signal',interface='org.cinnamon.ScreenSaver'"
+ </pre><p>
+ Or watch for a specific screensaver signal:
+ </p><pre class="screen">
+dbus-monitor --session \
+
"type='signal',interface='org.cinnamon.ScreenSaver',member='SessionIdleChanged'"
+ </pre></div></div></div></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/libcscreensaver/cs-screen-x11.c
new/cinnamon-screensaver-3.8.0/libcscreensaver/cs-screen-x11.c
--- old/cinnamon-screensaver-3.6.1/libcscreensaver/cs-screen-x11.c
2017-11-09 13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/libcscreensaver/cs-screen-x11.c
2018-04-19 13:46:25.000000000 +0200
@@ -627,6 +627,20 @@
return ret;
}
+/**
+ * cs_screen_reset_screensaver:
+ *
+ * Resets the screensaver idle timer. If called when the screensaver is active
+ * it will stop it.
+ *
+ */
+
+void
+cs_screen_reset_screensaver (void)
+{
+ XResetScreenSaver (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
+}
+
void
cs_screen_nuke_focus (void)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/libcscreensaver/cs-screen.h
new/cinnamon-screensaver-3.8.0/libcscreensaver/cs-screen.h
--- old/cinnamon-screensaver-3.6.1/libcscreensaver/cs-screen.h 2017-11-09
13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/libcscreensaver/cs-screen.h 2018-04-19
13:46:25.000000000 +0200
@@ -64,6 +64,8 @@
gint cs_screen_get_mouse_monitor (CsScreen *screen);
+void cs_screen_reset_screensaver (void);
+
void cs_screen_nuke_focus (void);
G_END_DECLS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/screensavers/[email protected]/main
new/cinnamon-screensaver-3.8.0/screensavers/[email protected]/main
--- old/cinnamon-screensaver-3.6.1/screensavers/[email protected]/main
2017-11-09 13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/screensavers/[email protected]/main
2018-04-19 13:46:25.000000000 +0200
@@ -49,7 +49,7 @@
if os.path.isfile(uri):
self.webkit.load_uri("file://" + uri)
else:
- uri2 = os.path.join(os.getenv("HOME"),
".local/share/cinnamon-screensaver/screensavers/webkit", plugin, "index.html")
+ uri2 = os.path.join(os.getenv("HOME"),
".local/share/cinnamon-screensaver/screensavers/[email protected]", plugin,
"index.html")
self.webkit.load_uri("file://" + uri2)
self.webkit.show()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/screensavers/[email protected]/Makefile.am
new/cinnamon-screensaver-3.8.0/screensavers/[email protected]/Makefile.am
---
old/cinnamon-screensaver-3.6.1/screensavers/[email protected]/Makefile.am
2017-11-09 13:43:57.000000000 +0100
+++
new/cinnamon-screensaver-3.8.0/screensavers/[email protected]/Makefile.am
2018-04-19 13:46:25.000000000 +0200
@@ -2,7 +2,7 @@
SUBDIRS =
xscreensaversdir = $(pkgdatadir)/screensavers/[email protected]
-xscreensavers_SCRIPTS = main
+xscreensavers_SCRIPTS = main safechild
MAINTAINERCLEANFILES = Makefile.in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/screensavers/[email protected]/main
new/cinnamon-screensaver-3.8.0/screensavers/[email protected]/main
--- old/cinnamon-screensaver-3.6.1/screensavers/[email protected]/main
2017-11-09 13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/screensavers/[email protected]/main
2018-04-19 13:46:25.000000000 +0200
@@ -10,6 +10,7 @@
import syslog
import signal
import os
+import psutil
signal.signal(signal.SIGINT, signal.SIG_DFL)
@@ -29,6 +30,7 @@
GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGTERM,
self.on_terminate)
self.proc = None
+ self.hack = None
if self.args.standalone:
self.plug = Gtk.Window()
@@ -71,15 +73,24 @@
try:
path = shlex.split(direc + hack)
if os.path.exists(path[0]):
+ sc_path = self.get_safechild_path()
+
+ if sc_path == None:
+ raise Exception("Cannot find safechild subprocess
wrapper, exiting")
+
+ path.insert(0, sc_path)
path.append("-window-id")
path.append(str(self.xid))
+
+ self.hack = hack
+
try:
- self.proc = Gio.Subprocess.new(path,
Gio.SubprocessFlags.NONE)
+ self.proc = Gio.Subprocess.new(path,
Gio.SubprocessFlags.STDIN_PIPE)
success = True
except GLib.Error as e:
print("Error spawning screensaver hack: %s" %
e.message)
except Exception as e:
- pass
+ print(e)
if not success:
syslog.syslog("cinnamon-screensaver: Screensaver '%s' not found" %
hack)
@@ -95,14 +106,33 @@
def kill_plugin(self):
if self.proc:
- self.proc.send_signal(signal.SIGTERM)
+ self.proc.force_exit()
self.proc = None
+ for proc in psutil.process_iter():
+ if proc.name() == self.hack:
+ proc.kill()
+
def on_terminate(self, data=None):
self.kill_plugin()
self.plug.destroy()
Gtk.main_quit()
+ def get_safechild_path(self):
+ datadirs = GLib.get_system_data_dirs()
+
+ for datadir in datadirs:
+ try_path = os.path.join(datadir,
+ "cinnamon-screensaver",
+ "screensavers",
+ "[email protected]",
+ "safechild")
+
+ if os.path.exists(try_path):
+ return try_path
+
+ return None
+
def ensure_config_file(self):
"""
Check for a .xscreensaver file in the user home folder. If it doesn't
exist,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/screensavers/[email protected]/safechild
new/cinnamon-screensaver-3.8.0/screensavers/[email protected]/safechild
---
old/cinnamon-screensaver-3.6.1/screensavers/[email protected]/safechild
1970-01-01 01:00:00.000000000 +0100
+++
new/cinnamon-screensaver-3.8.0/screensavers/[email protected]/safechild
2018-04-19 13:46:25.000000000 +0200
@@ -0,0 +1,35 @@
+#!/usr/bin/python3
+
+import subprocess
+import sys
+
+"""
+Wrapper for xscreensaver binaries.
+
+This script spawns a process, then monitors stdin of its own parent
+and terminates the child when an EOF is received from the parent.
+
+This will happen when safechild's parent exits and its
+pipes are closed, regardless of *how* it got terminated.
+
+This script must be spawned by its parent with a STDIN pipe. The pipe
+never actually needs to be used or access (in fact it's probably safer
+if it *isn't* accessed, since unless you're careful, garbage collection
+may cause an EOF to be sent, causing early termination of this script
+and its child.)
+
+"""
+
+proc = None
+
+try:
+ proc = subprocess.Popen(sys.argv[1:])
+
+ while True:
+ line = sys.stdin.readline()
+ if line == "":
+ proc.kill()
+ proc.wait()
+ break
+except Exception as e:
+ print("safechild exception: ", e)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/src/dbusdepot/Makefile.am
new/cinnamon-screensaver-3.8.0/src/dbusdepot/Makefile.am
--- old/cinnamon-screensaver-3.6.1/src/dbusdepot/Makefile.am 2017-11-09
13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/src/dbusdepot/Makefile.am 2018-04-19
13:46:25.000000000 +0200
@@ -17,6 +17,7 @@
logindClient.py \
loginInterface.py \
mediaPlayerWatcher.py \
+ nameBlocker.py \
screensaverClient.py \
sessionClient.py \
uPowerClient.py \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/src/dbusdepot/nameBlocker.py
new/cinnamon-screensaver-3.8.0/src/dbusdepot/nameBlocker.py
--- old/cinnamon-screensaver-3.6.1/src/dbusdepot/nameBlocker.py 1970-01-01
01:00:00.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/src/dbusdepot/nameBlocker.py 2018-04-19
13:46:25.000000000 +0200
@@ -0,0 +1,63 @@
+#!/usr/bin/python3
+
+from gi.repository import Gio, GObject, GLib
+
+import status
+
+class NameBlocker(GObject.GObject):
+ """
+ Terminates other screensavers. Ideally we'd just take ownership of their
+ dbus names, but due to how DE detection works in xdg-screensaver, that
script
+ incorrectly assumes we're a gnome or mate session if their names are owned.
+ """
+ def __init__(self):
+ super(NameBlocker, self).__init__()
+
+ self.owned_names = []
+
+ self.watch("org.gnome.ScreenSaver")
+ self.watch("org.mate.ScreenSaver")
+
+ def watch(self, name):
+ handle = Gio.bus_watch_name(Gio.BusType.SESSION,
+ name,
+ Gio.BusNameWatcherFlags.NONE,
+ self.on_name_appeared,
+ self.on_name_lost)
+
+ self.owned_names.append((handle, "name"))
+
+ def unwatch_all(self):
+ for (handle, name) in self.owned_names:
+ if status.Debug:
+ print("Releasing dbus name: %s" % name)
+
+ Gio.bus_unown_name(handle)
+
+ self.owned_names = []
+
+ def on_name_appeared(self, connection, name, name_owner, data=None):
+ if status.Debug:
+ print("%s appeared on the session bus, killing it" % name)
+
+ connection.call(name_owner,
+ "/" + name.replace(".", "/"),
+ name,
+ "Quit",
+ None,
+ None,
+ Gio.DBusCallFlags.NONE,
+ -1,
+ None)
+
+ def on_name_lost(self, connection, name, data=None):
+ if status.Debug:
+ print("%s is gone from the session bus" % name)
+
+ def do_dispose(self):
+ if status.Debug:
+ print("nameBlocker do_dispose")
+
+ self.unwatch_all()
+
+ super(NameBlocker, self).do_dispose()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/src/manager.py
new/cinnamon-screensaver-3.8.0/src/manager.py
--- old/cinnamon-screensaver-3.6.1/src/manager.py 2017-11-09
13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/src/manager.py 2018-04-19
13:46:25.000000000 +0200
@@ -54,18 +54,28 @@
def lock(self, msg=""):
"""
- Initiate locking (activating first if necessary.)
+ Initiate locking (activating first if necessary.) Return True if we
were
+ already active and just need to set the lock flag (or we were already
locked
+ as well). Return False if we're not active, and need to construct a
stage, etc...
"""
if not status.Active:
if self.set_active(True, True, msg):
self.stop_lock_delay()
if utils.user_can_lock():
status.Locked = True
+ return False
else:
if utils.user_can_lock():
status.Locked = True
self.stage.set_message(msg)
+ # Return True to complete any invocation immediately because:
+ # - we were already active and possibly already locked
+ # - we were unable to achieve a server grab, or something else
+ # prevents the activation from proceeding, and we don't want to
+ # block anything...??
+ return True
+
def unlock(self):
"""
Initiate unlocking and deactivating
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/src/pamhelper/Makefile.am
new/cinnamon-screensaver-3.8.0/src/pamhelper/Makefile.am
--- old/cinnamon-screensaver-3.6.1/src/pamhelper/Makefile.am 2017-11-09
13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/src/pamhelper/Makefile.am 2018-04-19
13:46:25.000000000 +0200
@@ -5,9 +5,10 @@
SUBDIRS =
-pamhelperdir = $(datadir)/cinnamon-screensaver/pamhelper
+pamhelperdatadir = $(datadir)/cinnamon-screensaver/pamhelper
+pamhelperdir = $(libexecdir)/pamhelper
-pamhelper_PYTHON = \
+pamhelperdata_PYTHON = \
authClient.py \
$(NULL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cinnamon-screensaver-3.6.1/src/pamhelper/authClient.py
new/cinnamon-screensaver-3.8.0/src/pamhelper/authClient.py
--- old/cinnamon-screensaver-3.6.1/src/pamhelper/authClient.py 2017-11-09
13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/src/pamhelper/authClient.py 2018-04-19
13:46:25.000000000 +0200
@@ -2,6 +2,7 @@
from gi.repository import Gio, GObject, GLib, CScreensaver
+import config
import re
import os
import signal
@@ -40,7 +41,7 @@
try:
helper_path = None
architecture = platform.machine()
- paths = ["/usr/lib", "/usr/lib/cinnamon-screensaver",
"/usr/libexec", "/usr/libexec/cinnamon-screensaver"]
+ paths = [config.libexecdir, "/usr/lib",
"/usr/lib/cinnamon-screensaver", "/usr/libexec",
"/usr/libexec/cinnamon-screensaver"]
# On x86 archs, iterate through multiple paths
# For instance, on a Mint i686 box, the path is actually
/usr/lib/i386-linux-gnu
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/src/service.py
new/cinnamon-screensaver-3.8.0/src/service.py
--- old/cinnamon-screensaver-3.6.1/src/service.py 2017-11-09
13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/src/service.py 2018-04-19
13:46:25.000000000 +0200
@@ -7,6 +7,7 @@
import constants as c
from manager import ScreensaverManager
+import status
class ScreensaverService(GObject.Object):
"""
@@ -92,9 +93,22 @@
# Interface handlers
def handle_lock(self, iface, inv, msg):
- self.lock_queue.append(inv)
+ """
+ We want to be able to respond to locking synchronously for security
reasons.
+ Things like cinnamon-settings-daemon (power) and cinnamon-session use
the
+ cinnamon-screensaver-command helper script to lock the screen during
certain events
+ like sleep, hibernate, user switching, etc...
+
+ If we receive a lock request, we forward it to the manager. It
returns True if we were
+ already active (or active and locked.) If so, we can complete the
invocation immediately.
+ Otherwise, we queue the invocation, and wait for an "active-changed"
signal from the manager,
+ and then complete the invocations (in the same order they were
received.)
+ """
- self.manager.lock(msg)
+ if self.manager.lock(msg):
+ iface.complete_lock(inv)
+ else:
+ self.lock_queue.append(inv)
return True
@@ -131,6 +145,11 @@
def handle_simulate_user_activity(self, iface, inv):
if self.manager.is_locked():
self.manager.simulate_user_activity()
+ else:
+ if status.Debug:
+ print("Calling XResetScreenSaver");
+
+ CScreensaver.Screen.reset_screensaver()
iface.complete_simulate_user_activity(inv)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/src/singletons.py
new/cinnamon-screensaver-3.8.0/src/singletons.py
--- old/cinnamon-screensaver-3.6.1/src/singletons.py 2017-11-09
13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/src/singletons.py 2018-04-19
13:46:25.000000000 +0200
@@ -5,6 +5,11 @@
from util import trackers, settings
import status
+# Watch for, and kill, mate- and gnome-screensaver in case they're activated
by a program
+# over dbus.
+from dbusdepot.nameBlocker import NameBlocker as _NameBlocker
+NameBlocker = _NameBlocker()
+
# Our dbus proxies are abstracted out one level more than really necessary -
we have
# clients that the screensaver initializes, that can never fail. The actual
connection
# business to the various dbus address is performed asynchronously from within
each client.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/src/stage.py
new/cinnamon-screensaver-3.8.0/src/stage.py
--- old/cinnamon-screensaver-3.6.1/src/stage.py 2017-11-09 13:43:57.000000000
+0100
+++ new/cinnamon-screensaver-3.8.0/src/stage.py 2018-04-19 13:46:25.000000000
+0200
@@ -369,9 +369,12 @@
"monitors-changed",
self.on_monitors_changed)
- status.screen = None
+ trackers.con_tracker_get().disconnect(self.overlay,
+ "get-child-position",
+ self.position_overlay_child)
self.destroy()
+ status.screen = None
def setup_monitors(self):
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/src/unlock.py
new/cinnamon-screensaver-3.8.0/src/unlock.py
--- old/cinnamon-screensaver-3.6.1/src/unlock.py 2017-11-09
13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/src/unlock.py 2018-04-19
13:46:25.000000000 +0200
@@ -3,7 +3,7 @@
import gi
-from gi.repository import Gtk, Gdk, GObject, CScreensaver
+from gi.repository import Gtk, Gdk, GObject, CScreensaver, Gio
import traceback
@@ -40,6 +40,8 @@
def __init__(self):
super(UnlockDialog, self).__init__()
+ settings = Gio.Settings.new("org.cinnamon.desktop.lockdown")
+
self.set_halign(Gtk.Align.CENTER)
self.set_valign(Gtk.Align.CENTER)
@@ -94,18 +96,14 @@
button_box.pack_start(self.auth_unlock_button, False, False, 4)
- self.auth_switch_button =
TransparentButton("screensaver-switch-users-symbolic",
Gtk.IconSize.LARGE_TOOLBAR)
- self.auth_switch_button.set_tooltip_text(_("Switch User"))
-
- trackers.con_tracker_get().connect(self.auth_switch_button,
- "clicked",
- self.on_switch_user_clicked)
-
- button_box.pack_start(self.auth_switch_button, False, False, 4)
+ status.focusWidgets = [self.password_entry, self.auth_unlock_button]
- status.focusWidgets = [self.password_entry,
- self.auth_unlock_button,
- self.auth_switch_button]
+ if not settings.get_boolean("disable-user-switching"):
+ self.auth_switch_button =
TransparentButton("screensaver-switch-users-symbolic",
Gtk.IconSize.LARGE_TOOLBAR)
+ self.auth_switch_button.set_tooltip_text(_("Switch User"))
+ trackers.con_tracker_get().connect(self.auth_switch_button,
"clicked", self.on_switch_user_clicked)
+ button_box.pack_start(self.auth_switch_button, False, False, 4)
+ status.focusWidgets.append(self.auth_switch_button)
vbox_messages = Gtk.Box(orientation=Gtk.Orientation.VERTICAL,
spacing=2)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cinnamon-screensaver-3.6.1/src/util/keybindings.py
new/cinnamon-screensaver-3.8.0/src/util/keybindings.py
--- old/cinnamon-screensaver-3.6.1/src/util/keybindings.py 2017-11-09
13:43:57.000000000 +0100
+++ new/cinnamon-screensaver-3.8.0/src/util/keybindings.py 2018-04-19
13:46:25.000000000 +0200
@@ -29,8 +29,11 @@
MK.TOUCHPAD_ON,
MK.TOUCHPAD_OFF,
MK.SHUTDOWN,
+ MK.SUSPEND,
+ MK.HIBERNATE,
MK.SCREEN_BRIGHTNESS_UP,
MK.SCREEN_BRIGHTNESS_DOWN,
+ MK.ROTATE_VIDEO,
MK.KEYBOARD_BRIGHTNESS_UP,
MK.KEYBOARD_BRIGHTNESS_DOWN,
MK.KEYBOARD_BRIGHTNESS_TOGGLE]