[packages/synapse] - run autotools - add some more BRs - patch for initial integration with mate desktop - rel 1
atler
atler at pld-linux.org
Sun Aug 18 18:53:34 CEST 2013
commit a992cc22a0182fa89d03991385cea24cc4cbad90
Author: Jan Palus <jan.palus at gmail.com>
Date: Sun Aug 18 18:50:55 2013 +0200
- run autotools
- add some more BRs
- patch for initial integration with mate desktop
- rel 1
synapse-mate.patch | 280 +++++++++++++++++++++++++++++++++++++++++++++++++++++
synapse.spec | 21 +++-
2 files changed, 299 insertions(+), 2 deletions(-)
---
diff --git a/synapse.spec b/synapse.spec
index b2e789f..4236b26 100644
--- a/synapse.spec
+++ b/synapse.spec
@@ -1,16 +1,25 @@
Summary: Application launcher
Name: synapse
Version: 0.2.10
-Release: 0.1
+Release: 1
License: GPL v3+
Group: X11/Applications
Source0: https://launchpad.net/synapse-project/0.2/%{version}/+download/%{name}-%{version}.tar.gz
# Source0-md5: ac1c075c01f1c179f32fd6651bd184f8
+Patch0: %{name}-mate.patch
URL: http://synapse.zeitgeist-project.com/
+BuildRequires: glib2-devel >= 1:2.26.0
+BuildRequires: gtk+2-devel >= 2:2.20.0
BuildRequires: gtkhotkey-devel >= 0.2.1
+BuildRequires: json-glib-devel >= 0.10.0
+BuildRequires: libgee0.6-devel >= 0.5.2
+BuildRequires: libnotify-devel
BuildRequires: libunique-devel >= 1.0
+BuildRequires: rest-devel
+BuildRequires: vala >= 0.14.0
BuildRequires: vala-libgee >= 0.6.4
BuildRequires: vala-zeitgeist >= 0.3.18
+BuildRequires: zeitgeist-devel >= 0.3.18
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
@@ -20,9 +29,17 @@ files by making use of the Zeitgeist engine.
%prep
%setup -q
+%patch0 -p1
%build
-%configure
+%{__aclocal} -I m4
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+%configure \
+ --disable-silent-rules \
+ --enable-librest=yes \
+ --enable-zeitgeist=yes
%{__make}
%install
diff --git a/synapse-mate.patch b/synapse-mate.patch
new file mode 100644
index 0000000..86ede94
--- /dev/null
+++ b/synapse-mate.patch
@@ -0,0 +1,280 @@
+diff -urN synapse-0.2.10.orig/src/core/desktop-file-service.vala synapse-0.2.10/src/core/desktop-file-service.vala
+--- synapse-0.2.10.orig/src/core/desktop-file-service.vala 2013-08-18 18:33:35.710536590 +0200
++++ synapse-0.2.10/src/core/desktop-file-service.vala 2013-08-18 18:33:55.187202928 +0200
+@@ -39,8 +39,9 @@
+ XFCE = 1 << 4,
+ OLD = 1 << 5,
+ UNITY = 1 << 6,
++ MATE = 1 << 7,
+
+- ALL = 0x7F
++ ALL = 0xFF
+ }
+
+ public string desktop_id { get; construct set; }
+@@ -92,6 +93,7 @@
+ case "ROX": result |= EnvironmentType.ROX; break;
+ case "OLD": result |= EnvironmentType.OLD; break;
+ case "UNITY": result |= EnvironmentType.UNITY; break;
++ case "MATE": result |= EnvironmentType.MATE; break;
+ default: warning ("%s is not understood", env); break;
+ }
+ }
+@@ -284,6 +286,11 @@
+ session_type = DesktopFileInfo.EnvironmentType.ROX;
+ session_type_str = "ROX";
+ }
++ else if (session.has_prefix ("mate"))
++ {
++ session_type = DesktopFileInfo.EnvironmentType.MATE;
++ session_type_str = "MATE";
++ }
+ else
+ {
+ warning ("Desktop session type is not recognized, assuming GNOME.");
+diff -urN synapse-0.2.10.orig/src/plugins/Makefile.am synapse-0.2.10/src/plugins/Makefile.am
+--- synapse-0.2.10.orig/src/plugins/Makefile.am 2013-08-18 18:33:35.710536590 +0200
++++ synapse-0.2.10/src/plugins/Makefile.am 2013-08-18 18:33:44.427203171 +0200
+@@ -45,6 +45,7 @@
+ hybrid-search-plugin.vala \
+ launchpad-plugin.vala \
+ locate-plugin.vala \
++ mate-session-plugin.vala \
+ opensearch.vala \
+ pastebin-plugin.vala \
+ pidgin-plugin.vala \
+diff -urN synapse-0.2.10.orig/src/plugins/mate-session-plugin.vala synapse-0.2.10/src/plugins/mate-session-plugin.vala
+--- synapse-0.2.10.orig/src/plugins/mate-session-plugin.vala 1970-01-01 01:00:00.000000000 +0100
++++ synapse-0.2.10/src/plugins/mate-session-plugin.vala 2013-08-18 18:33:44.427203171 +0200
+@@ -0,0 +1,220 @@
++/*
++ * Copyright (C) 2010 Michal Hruby <michal.mhr at gmail.com>
++ *
++ * 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.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Authored by Michal Hruby <michal.mhr at gmail.com>
++ *
++ */
++
++namespace Synapse
++{
++ [DBus (name = "org.mate.SessionManager")]
++ public interface MateSessionManager: Object
++ {
++ public const string UNIQUE_NAME = "org.mate.SessionManager";
++ public const string OBJECT_PATH = "/org/mate/SessionManager";
++
++ public abstract bool can_shutdown () throws IOError;
++ public abstract void shutdown () throws IOError;
++ public abstract void request_reboot () throws IOError;
++ public abstract void logout (uint32 mode = 0) throws IOError;
++ }
++
++ public class MateSessionPlugin: Object, Activatable, ItemProvider
++ {
++ public bool enabled { get; set; default = true; }
++
++ public void activate ()
++ {
++
++ }
++
++ public void deactivate ()
++ {
++
++ }
++
++ private class ShutDownAction: Object, Match
++ {
++ // for Match interface
++ public string title { get; construct set; }
++ public string description { get; set; default = ""; }
++ public string icon_name { get; construct set; default = ""; }
++ public bool has_thumbnail { get; construct set; default = false; }
++ public string thumbnail_path { get; construct set; }
++ public MatchType match_type { get; construct set; }
++
++ public ShutDownAction ()
++ {
++ Object (match_type: MatchType.ACTION, title: _ ("Shut Down"),
++ description: _ ("Turn your computer off"),
++ icon_name: "system-shutdown", has_thumbnail: false);
++ }
++
++ public void execute (Match? match)
++ {
++ try
++ {
++ MateSessionManager dbus_interface = Bus.get_proxy_sync (BusType.SESSION,
++ MateSessionManager.UNIQUE_NAME,
++ MateSessionManager.OBJECT_PATH);
++
++ dbus_interface.shutdown ();
++ }
++ catch (IOError err)
++ {
++ warning ("%s", err.message);
++ }
++ }
++ }
++
++ private class RebootAction: Object, Match
++ {
++ // for Match interface
++ public string title { get; construct set; }
++ public string description { get; set; default = ""; }
++ public string icon_name { get; construct set; default = ""; }
++ public bool has_thumbnail { get; construct set; default = false; }
++ public string thumbnail_path { get; construct set; }
++ public MatchType match_type { get; construct set; }
++
++ public RebootAction ()
++ {
++ Object (match_type: MatchType.ACTION, title: _ ("Restart"),
++ description: _ ("Restart your computer"),
++ icon_name: "system-shutdown", has_thumbnail: false);
++ }
++
++ public void execute (Match? match)
++ {
++ try
++ {
++ MateSessionManager dbus_interface = Bus.get_proxy_sync (BusType.SESSION,
++ MateSessionManager.UNIQUE_NAME,
++ MateSessionManager.OBJECT_PATH);
++
++ dbus_interface.request_reboot ();
++ }
++ catch (IOError err)
++ {
++ warning ("%s", err.message);
++ }
++ }
++ }
++
++ private class LogOutAction: Object, Match
++ {
++ // for Match interface
++ public string title { get; construct set; }
++ public string description { get; set; default = ""; }
++ public string icon_name { get; construct set; default = ""; }
++ public bool has_thumbnail { get; construct set; default = false; }
++ public string thumbnail_path { get; construct set; }
++ public MatchType match_type { get; construct set; }
++
++ public LogOutAction ()
++ {
++ Object (match_type: MatchType.ACTION, title: _ ("Log Out"),
++ description: _ ("Close your session and return to the login screen"),
++ icon_name: "system-log-out", has_thumbnail: false);
++ }
++
++ public void execute (Match? match)
++ {
++ try
++ {
++ MateSessionManager dbus_interface = Bus.get_proxy_sync (BusType.SESSION,
++ MateSessionManager.UNIQUE_NAME,
++ MateSessionManager.OBJECT_PATH);
++
++ /*
++ * 0: Normal.
++ * 1: No confirmation inferface should be shown.
++ * 2: Forcefully logout. No confirmation will be shown and any inhibitors will be ignored.
++ */
++ dbus_interface.logout (1);
++ }
++ catch (IOError err)
++ {
++ warning ("%s", err.message);
++ }
++ }
++ }
++
++ static void register_plugin ()
++ {
++ DataSink.PluginRegistry.get_default ().register_plugin (
++ typeof (MateSessionPlugin),
++ "MATE Session",
++ _ ("Log out from your session."),
++ "mate-session-logout",
++ register_plugin,
++ DBusService.get_default ().name_has_owner (MateSessionManager.UNIQUE_NAME),
++ _ ("MATE Session Manager wasn't found")
++ );
++ }
++
++ static construct
++ {
++ register_plugin ();
++ }
++
++ private bool session_manager_available = false;
++ private Gee.List<Match> actions;
++
++ construct
++ {
++ var cache = DBusService.get_default ();
++ session_manager_available = cache.name_has_owner (MateSessionManager.UNIQUE_NAME);
++ Utils.Logger.log (this, "%s %s available", MateSessionManager.UNIQUE_NAME,
++ session_manager_available ? "is" : "isn't");
++
++ actions = new Gee.LinkedList<Match> ();
++ actions.add (new LogOutAction ());
++ // TODO: add a config option to enable these actions (for example when ConsoleKit is not available)
++ //actions.add (new RebootAction ());
++ //actions.add (new ShutDownAction ());
++ }
++
++ public async ResultSet? search (Query q) throws SearchError
++ {
++ if (!session_manager_available) return null;
++ // we only search for actions
++ if (!(QueryFlags.ACTIONS in q.query_type)) return null;
++
++ var result = new ResultSet ();
++
++ var matchers = Query.get_matchers_for_query (q.query_string, 0,
++ RegexCompileFlags.OPTIMIZE | RegexCompileFlags.CASELESS);
++
++ foreach (var action in actions)
++ {
++ foreach (var matcher in matchers)
++ {
++ if (matcher.key.match (action.title))
++ {
++ result.add (action, matcher.value - Match.Score.INCREMENT_SMALL);
++ break;
++ }
++ }
++ }
++
++ q.check_cancellable ();
++
++ return result;
++ }
++ }
++}
+diff -urN synapse-0.2.10.orig/src/ui/synapse-main.vala synapse-0.2.10/src/ui/synapse-main.vala
+--- synapse-0.2.10.orig/src/ui/synapse-main.vala 2013-08-18 18:33:35.710536590 +0200
++++ synapse-0.2.10/src/ui/synapse-main.vala 2013-08-18 18:33:44.427203171 +0200
+@@ -165,6 +165,7 @@
+ typeof (DesktopFilePlugin),
+ typeof (HybridSearchPlugin),
+ typeof (GnomeSessionPlugin),
++ typeof (MateSessionPlugin),
+ typeof (GnomeScreenSaverPlugin),
+ typeof (SystemManagementPlugin),
+ typeof (CommandPlugin),
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/synapse.git/commitdiff/a992cc22a0182fa89d03991385cea24cc4cbad90
More information about the pld-cvs-commit
mailing list