From d1d93fafb9ef98fdd0c9a5a486c179c03cbbfb33 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 23 Apr 2013 01:16:16 -0700 Subject: Tue Apr 23 01:16:16 PDT 2013 --- community/activity-log-manager/PKGBUILD | 10 +- community/almanah/PKGBUILD | 9 +- community/almanah/eds-3.8.patch | 2609 ++++++++++++++ community/apvlv/PKGBUILD | 29 +- community/apvlv/apvlv.desktop | 17 + community/apvlv/apvlv.install | 7 + community/audit/PKGBUILD | 6 +- community/cinnamon-control-center/PKGBUILD | 25 +- .../cinnamon-control-center/gnomerrlabeler.patch | 766 ++++ community/cinnamon-control-center/idle-delay.patch | 71 + community/cinnamon-screensaver/PKGBUILD | 16 +- .../cinnamon-screensaver/cinnamon-screensaver.pam | 2 +- .../fix-dbus-compatibility.patch | 245 +- community/cinnamon-screensaver/gnome-autogen.sh | 538 --- community/cinnamon/PKGBUILD | 47 +- community/cinnamon/cinnamon.install | 18 - community/cinnamon/fix-keyboard-settings.patch | 83 - community/cinnamon/gnome-3.8.patch | 3669 ++++++++++++++++++++ community/clinica/PKGBUILD | 6 +- community/couchdb/PKGBUILD | 4 +- community/cython/PKGBUILD | 6 +- community/denemo/PKGBUILD | 4 +- community/elinks/PKGBUILD | 34 +- community/freewrl/PKGBUILD | 4 +- community/gedit-plugins/PKGBUILD | 14 +- community/giggle/PKGBUILD | 33 +- community/giggle/gtksourceview3.7.patch | 36 + community/gitg/PKGBUILD | 34 +- community/gitg/gitg.install | 16 +- community/gnome-applets/01_battstat_upower.patch | 622 ++++ community/gnome-applets/PKGBUILD | 68 +- .../gnome-applets/disable-gweather-applet.patch | 12 + community/gnome-applets/fix-autoconf.patch | 12 + .../gnome-applets/gnome-applets-cpupower.patch | 12 + community/gnome-packagekit/PKGBUILD | 6 +- .../0001-Add-the-GNOME-Flashback-session.patch | 95 + .../gnome-panel/18_fix_force_quit_applet.patch | 98 + community/gnome-panel/PKGBUILD | 100 +- .../gnome-panel/drop-gweather-xml-include.patch | 10 + community/gnome-panel/fix-autoconf.patch | 11 + community/gnome-panel/gnome-desktop-3.8.patch | 199 ++ community/gnome-panel/gnome-panel.install | 14 +- community/gnome-panel/logout-hang-workaround.patch | 15 + community/gnome-phone-manager/PKGBUILD | 12 +- .../gnome-phone-manager-0.68-eds.patch | 164 +- community/gnome-screensaver/PKGBUILD | 41 +- community/gnome-screensaver/fix-autoconf.patch | 12 + .../gnome-screensaver/gnome-screensaver.install | 7 - community/gnome-screensaver/gnome-screensaver.pam | 4 +- .../gnome-screensaver/move-desktop-file.patch | 34 + community/gnome-settings-daemon-compat/PKGBUILD | 61 + .../draw-background-unconditionally.patch | 162 + .../flashback-rename.patch | 18 + .../remove-libgsd-dependency.patch | 160 + .../sessionisactive-port.patch | 73 + .../standalone-background-helper.patch | 437 +++ ...edia-keys-Use-logind-for-suspending-and-r.patch | 1476 -------- community/gnome-settings-daemon-updates/PKGBUILD | 18 +- community/gnote/PKGBUILD | 6 +- community/gtksourceviewmm/PKGBUILD | 4 +- community/gtranslator/PKGBUILD | 28 +- community/gwibber/PKGBUILD | 6 +- community/ktoblzcheck/PKGBUILD | 6 +- community/metacity/PKGBUILD | 50 +- community/metacity/enable_compositing.patch | 12 + community/metacity/fix_force_quit.patch | 222 ++ community/metacity/fix_shadows.patch | 39 + community/muffin/PKGBUILD | 14 +- community/nemiver/PKGBUILD | 9 +- community/nemiver/nemiver.install | 15 - community/nemo/PKGBUILD | 33 +- community/nemo/remove-desktop-background.patch | 964 +++++ community/nemo/tracker-0.16.patch | 33 + community/nemo/use-terminal-config.patch | 45 - community/notion/PKGBUILD | 58 +- community/shotwell/PKGBUILD | 6 +- community/synapse/PKGBUILD | 8 +- community/ubuntuone-client-gnome/PKGBUILD | 15 +- .../disable-gsd-plugin.patch | 21 + community/virtualbox-modules-lts/PKGBUILD | 4 +- community/virtualbox-modules/PKGBUILD | 4 +- community/xdebug/PKGBUILD | 10 +- community/xsettings-client/PKGBUILD | 8 +- community/zeitgeist-datahub/PKGBUILD | 29 - 84 files changed, 11311 insertions(+), 2649 deletions(-) create mode 100644 community/almanah/eds-3.8.patch create mode 100644 community/apvlv/apvlv.desktop create mode 100644 community/apvlv/apvlv.install create mode 100644 community/cinnamon-control-center/gnomerrlabeler.patch create mode 100644 community/cinnamon-control-center/idle-delay.patch delete mode 100644 community/cinnamon-screensaver/gnome-autogen.sh delete mode 100644 community/cinnamon/fix-keyboard-settings.patch create mode 100644 community/cinnamon/gnome-3.8.patch create mode 100644 community/giggle/gtksourceview3.7.patch create mode 100644 community/gnome-applets/01_battstat_upower.patch create mode 100644 community/gnome-applets/disable-gweather-applet.patch create mode 100644 community/gnome-applets/fix-autoconf.patch create mode 100644 community/gnome-applets/gnome-applets-cpupower.patch create mode 100644 community/gnome-panel/0001-Add-the-GNOME-Flashback-session.patch create mode 100644 community/gnome-panel/18_fix_force_quit_applet.patch create mode 100644 community/gnome-panel/drop-gweather-xml-include.patch create mode 100644 community/gnome-panel/fix-autoconf.patch create mode 100644 community/gnome-panel/gnome-desktop-3.8.patch create mode 100644 community/gnome-panel/logout-hang-workaround.patch create mode 100644 community/gnome-screensaver/fix-autoconf.patch delete mode 100644 community/gnome-screensaver/gnome-screensaver.install create mode 100644 community/gnome-screensaver/move-desktop-file.patch create mode 100644 community/gnome-settings-daemon-compat/PKGBUILD create mode 100644 community/gnome-settings-daemon-compat/draw-background-unconditionally.patch create mode 100644 community/gnome-settings-daemon-compat/flashback-rename.patch create mode 100644 community/gnome-settings-daemon-compat/remove-libgsd-dependency.patch create mode 100644 community/gnome-settings-daemon-compat/sessionisactive-port.patch create mode 100644 community/gnome-settings-daemon-compat/standalone-background-helper.patch delete mode 100644 community/gnome-settings-daemon-updates/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch create mode 100644 community/metacity/enable_compositing.patch create mode 100644 community/metacity/fix_force_quit.patch create mode 100644 community/metacity/fix_shadows.patch delete mode 100644 community/nemiver/nemiver.install create mode 100644 community/nemo/remove-desktop-background.patch create mode 100644 community/nemo/tracker-0.16.patch delete mode 100644 community/nemo/use-terminal-config.patch create mode 100644 community/ubuntuone-client-gnome/disable-gsd-plugin.patch delete mode 100644 community/zeitgeist-datahub/PKGBUILD (limited to 'community') diff --git a/community/activity-log-manager/PKGBUILD b/community/activity-log-manager/PKGBUILD index 1d860b203..6b7fbaddb 100644 --- a/community/activity-log-manager/PKGBUILD +++ b/community/activity-log-manager/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 79218 2012-11-01 09:45:30Z bgyorgy $ +# $Id: PKGBUILD 88673 2013-04-21 22:16:39Z heftig $ # Maintainer: Balló György # Contributor: Ner0 pkgname=activity-log-manager pkgver=0.9.4 -pkgrel=3 +pkgrel=4 pkgdesc="A graphical user interface which lets you easily control what gets logged by Zeitgeist" arch=('i686' 'x86_64') url="https://launchpad.net/activity-log-manager" license=('GPL2') -depends=('gtk3' 'libgee' 'libzeitgeist' 'zeitgeist' 'hicolor-icon-theme' 'xdg-utils') +depends=('gtk3' 'libgee06' 'libzeitgeist' 'zeitgeist' 'hicolor-icon-theme' 'xdg-utils') makedepends=('vala' 'intltool') install=$pkgname.install source=(https://launchpad.net/$pkgname/${pkgver%.*}/$pkgver/+download/$pkgname-$pkgver.tar.gz @@ -27,10 +27,10 @@ build() { # Fix docdir location sed -i 's/almdocdir =.*/almdocdir = ${docdir}/' Makefile.{am,in} - # Update language files - echo 'af ar ast be bg bn bs ca ca@valencia cs da de el eo es et eu fi fr gd gl he hi hr hu id it ja km ko ku lt lv mi ms my nb nl oc pl pt ro ru se si sk sl sr sv ta te ug uk uz vi zh_CN zh_HK zh_TW' >po/LINGUAS + # Install updated language files rename $pkgname- '' ../po/$pkgname-*.po mv -f -t po ../po/* + printf "%s\n" po/*.po | sed -e 's/po\///g' -e 's/\.po//g' >po/LINGUAS # Fix crash with GTK+ 3.6 # https://bugs.launchpad.net/activity-log-manager/+bug/1058037 diff --git a/community/almanah/PKGBUILD b/community/almanah/PKGBUILD index 9bf7cba30..905ac9983 100644 --- a/community/almanah/PKGBUILD +++ b/community/almanah/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 87238 2013-03-28 21:27:02Z bgyorgy $ +# $Id: PKGBUILD 88674 2013-04-21 22:16:40Z heftig $ # Maintainer: Balló György pkgname=almanah pkgver=0.10.1 -pkgrel=1 +pkgrel=2 pkgdesc="Small GTK+ application to allow you to keep a diary of your life" arch=('i686' 'x86_64') url="http://live.gnome.org/Almanah_Diary" @@ -12,13 +12,18 @@ depends=('evolution-data-server' 'gtkspell3' 'libcryptui' 'xdg-utils') makedepends=('intltool') install=$pkgname.install source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz + eds-3.8.patch update-gtkspell3-support.patch) sha256sums=('122789c1baea1713102b200c0401d25395ec177a66ae22635d3ae2fecc1f08bd' + '2407cb2cc11e61b7863bf20fc13d4614a3384e8cb7c5b534f1e3ce7a3afb2d2d' '60fedd6be05ef2619c3b50539b9fdc717480e4f03a2920d8b68b09e63dc7e7db') build() { cd "$srcdir/$pkgname-$pkgver" + # Port to evolution-data-server 3.8 + patch -Np1 -i "$srcdir/eds-3.8.patch" + # Port to the new gtkspell3 patch -Np1 -i "$srcdir/update-gtkspell3-support.patch" diff --git a/community/almanah/eds-3.8.patch b/community/almanah/eds-3.8.patch new file mode 100644 index 000000000..dea51eb74 --- /dev/null +++ b/community/almanah/eds-3.8.patch @@ -0,0 +1,2609 @@ +From e481f5abdb46d41ac00ee3393332e92f605b55e7 Mon Sep 17 00:00:00 2001 +From: Matthew Barnes +Date: Thu, 13 Dec 2012 14:16:58 +0000 +Subject: Bug 687229 - Embed ESourceSelector widget from libedataserverui + +Evolution developers are merging libedataserverui back into Evolution. +Drop the libedataserverui dependency and embed the ECellRendererColor +and ESourceSelector widgets from libedataserverui in event-factories. + +See also: +https://mail.gnome.org/archives/distributor-list/2012-December/msg00000.html +--- +diff --git a/configure.ac b/configure.ac +index a529568..b89ba74 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -83,7 +83,7 @@ AC_SUBST(STANDARD_CFLAGS) + AC_SUBST(STANDARD_LIBS) + + dnl Evolution +-PKG_CHECK_MODULES(EVO, libecal-1.2 libedataserver-1.2 libedataserverui-3.0, have_evo=yes, have_evo=no) ++PKG_CHECK_MODULES(EVO, libecal-1.2 >= 3.5.91 libedataserver-1.2, have_evo=yes, have_evo=no) + if test "x$have_evo" = "xyes"; then + AC_DEFINE(HAVE_EVO, 1, [Defined if libecal-1.2 is installed]) + fi +diff --git a/src/Makefile.am b/src/Makefile.am +index 0de37e3..740c9f2 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -52,6 +52,10 @@ almanah_SOURCES += \ + event-factories/calendar-debug.h \ + event-factories/calendar-sources.c \ + event-factories/calendar-sources.h \ ++ event-factories/e-cell-renderer-color.c \ ++ event-factories/e-cell-renderer-color.h \ ++ event-factories/e-source-selector.c \ ++ event-factories/e-source-selector.h \ + events/calendar-appointment.c \ + events/calendar-appointment.h \ + events/calendar-task.c \ +diff --git a/src/event-factories/calendar-sources.c b/src/event-factories/calendar-sources.c +index 217327d..9451a0d 100644 +--- a/src/event-factories/calendar-sources.c ++++ b/src/event-factories/calendar-sources.c +@@ -32,7 +32,8 @@ + #define HANDLE_LIBICAL_MEMORY + #include + #include +-#include ++ ++#include "e-source-selector.h" + + #undef CALENDAR_ENABLE_DEBUG + #include "calendar-debug.h" +diff --git a/src/event-factories/e-cell-renderer-color.c b/src/event-factories/e-cell-renderer-color.c +new file mode 100644 +index 0000000..748bea5 +--- /dev/null ++++ b/src/event-factories/e-cell-renderer-color.c +@@ -0,0 +1,237 @@ ++/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ ++/* e-cell-renderer-color.c ++ * ++ * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of version 2 of the GNU Lesser General Public ++ * License as published by the Free Software Foundation. ++ * ++ * 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 Lesser General Public ++ * License along with this program; if not, write to the ++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ * Boston, MA 02111-1307, USA. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include "e-cell-renderer-color.h" ++ ++#include ++#include ++ ++#define E_CELL_RENDERER_COLOR_GET_PRIVATE(obj) \ ++ (G_TYPE_INSTANCE_GET_PRIVATE \ ++ ((obj), E_TYPE_CELL_RENDERER_COLOR, ECellRendererColorPrivate)) ++ ++enum { ++ PROP_0, ++ PROP_COLOR ++}; ++ ++struct _ECellRendererColorPrivate { ++ GdkColor *color; ++}; ++ ++G_DEFINE_TYPE ( ++ ECellRendererColor, ++ e_cell_renderer_color, ++ GTK_TYPE_CELL_RENDERER) ++ ++static void ++cell_renderer_color_get_size (GtkCellRenderer *cell, ++ GtkWidget *widget, ++ const GdkRectangle *cell_area, ++ gint *x_offset, ++ gint *y_offset, ++ gint *width, ++ gint *height) ++{ ++ gint color_width = 16; ++ gint color_height = 16; ++ gint calc_width; ++ gint calc_height; ++ gfloat xalign; ++ gfloat yalign; ++ guint xpad; ++ guint ypad; ++ ++ g_object_get ( ++ cell, "xalign", &xalign, "yalign", &yalign, ++ "xpad", &xpad, "ypad", &ypad, NULL); ++ ++ calc_width = (gint) xpad * 2 + color_width; ++ calc_height = (gint) ypad * 2 + color_height; ++ ++ if (cell_area && color_width > 0 && color_height > 0) { ++ if (x_offset) { ++ *x_offset = (((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ? ++ (1.0 - xalign) : xalign) * ++ (cell_area->width - calc_width)); ++ *x_offset = MAX (*x_offset, 0); ++ } ++ ++ if (y_offset) { ++ *y_offset =(yalign * ++ (cell_area->height - calc_height)); ++ *y_offset = MAX (*y_offset, 0); ++ } ++ } else { ++ if (x_offset) *x_offset = 0; ++ if (y_offset) *y_offset = 0; ++ } ++ ++ if (width) ++ *width = calc_width; ++ ++ if (height) ++ *height = calc_height; ++} ++ ++static void ++cell_renderer_color_render (GtkCellRenderer *cell, ++ cairo_t *cr, ++ GtkWidget *widget, ++ const GdkRectangle *background_area, ++ const GdkRectangle *cell_area, ++ GtkCellRendererState flags) ++{ ++ ECellRendererColorPrivate *priv; ++ GdkRectangle pix_rect; ++ GdkRectangle draw_rect; ++ guint xpad; ++ guint ypad; ++ ++ priv = E_CELL_RENDERER_COLOR_GET_PRIVATE (cell); ++ ++ if (priv->color == NULL) ++ return; ++ ++ cell_renderer_color_get_size ( ++ cell, widget, cell_area, ++ &pix_rect.x, &pix_rect.y, ++ &pix_rect.width, &pix_rect.height); ++ ++ g_object_get (cell, "xpad", &xpad, "ypad", &ypad, NULL); ++ ++ pix_rect.x += cell_area->x + xpad; ++ pix_rect.y += cell_area->y + ypad; ++ pix_rect.width -= xpad * 2; ++ pix_rect.height -= ypad * 2; ++ ++ if (!gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect)) ++ return; ++ ++ gdk_cairo_set_source_color (cr, priv->color); ++ cairo_rectangle (cr, pix_rect.x, pix_rect.y, draw_rect.width, draw_rect.height); ++ ++ cairo_fill (cr); ++} ++ ++static void ++cell_renderer_color_set_property (GObject *object, ++ guint property_id, ++ const GValue *value, ++ GParamSpec *pspec) ++{ ++ ECellRendererColorPrivate *priv; ++ ++ priv = E_CELL_RENDERER_COLOR_GET_PRIVATE (object); ++ ++ switch (property_id) { ++ case PROP_COLOR: ++ if (priv->color != NULL) ++ gdk_color_free (priv->color); ++ priv->color = g_value_dup_boxed (value); ++ return; ++ } ++ ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); ++} ++ ++static void ++cell_renderer_color_get_property (GObject *object, ++ guint property_id, ++ GValue *value, ++ GParamSpec *pspec) ++{ ++ ECellRendererColorPrivate *priv; ++ ++ priv = E_CELL_RENDERER_COLOR_GET_PRIVATE (object); ++ ++ switch (property_id) { ++ case PROP_COLOR: ++ g_value_set_boxed (value, priv->color); ++ return; ++ } ++ ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); ++} ++ ++static void ++cell_renderer_color_finalize (GObject *object) ++{ ++ ECellRendererColorPrivate *priv; ++ ++ priv = E_CELL_RENDERER_COLOR_GET_PRIVATE (object); ++ ++ if (priv->color != NULL) ++ gdk_color_free (priv->color); ++ ++ /* Chain up to parent's finalize() method. */ ++ G_OBJECT_CLASS (e_cell_renderer_color_parent_class)->finalize (object); ++} ++ ++static void ++e_cell_renderer_color_class_init (ECellRendererColorClass *class) ++{ ++ GObjectClass *object_class; ++ GtkCellRendererClass *cell_class; ++ ++ g_type_class_add_private (class, sizeof (ECellRendererColorPrivate)); ++ ++ object_class = G_OBJECT_CLASS (class); ++ object_class->set_property = cell_renderer_color_set_property; ++ object_class->get_property = cell_renderer_color_get_property; ++ object_class->finalize = cell_renderer_color_finalize; ++ ++ cell_class = GTK_CELL_RENDERER_CLASS (class); ++ cell_class->get_size = cell_renderer_color_get_size; ++ cell_class->render = cell_renderer_color_render; ++ ++ g_object_class_install_property ( ++ object_class, ++ PROP_COLOR, ++ g_param_spec_boxed ( ++ "color", ++ "Color Info", ++ "The color to render", ++ GDK_TYPE_COLOR, ++ G_PARAM_READWRITE)); ++} ++ ++static void ++e_cell_renderer_color_init (ECellRendererColor *cellcolor) ++{ ++ cellcolor->priv = E_CELL_RENDERER_COLOR_GET_PRIVATE (cellcolor); ++ ++ g_object_set (cellcolor, "xpad", 4, NULL); ++} ++ ++/** ++ * e_cell_renderer_color_new: ++ * ++ * Since: 2.22 ++ **/ ++GtkCellRenderer * ++e_cell_renderer_color_new (void) ++{ ++ return g_object_new (E_TYPE_CELL_RENDERER_COLOR, NULL); ++} +diff --git a/src/event-factories/e-cell-renderer-color.h b/src/event-factories/e-cell-renderer-color.h +new file mode 100644 +index 0000000..0e0da70 +--- /dev/null ++++ b/src/event-factories/e-cell-renderer-color.h +@@ -0,0 +1,75 @@ ++/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ ++/* e-cell-renderer-color.h ++ * ++ * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of version 2 of the GNU Lesser General Public ++ * License as published by the Free Software Foundation. ++ * ++ * 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 Lesser General Public ++ * License along with this program; if not, write to the ++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ * Boston, MA 02111-1307, USA. ++ */ ++ ++#ifndef _E_CELL_RENDERER_COLOR_H_ ++#define _E_CELL_RENDERER_COLOR_H_ ++ ++#include ++ ++/* Standard GObject macros */ ++#define E_TYPE_CELL_RENDERER_COLOR \ ++ (e_cell_renderer_color_get_type ()) ++#define E_CELL_RENDERER_COLOR(obj) \ ++ (G_TYPE_CHECK_INSTANCE_CAST \ ++ ((obj), E_TYPE_CELL_RENDERER_COLOR, ECellRendererColor)) ++#define E_CELL_RENDERER_COLOR_CLASS(cls) \ ++ (G_TYPE_CHECK_CLASS_CAST \ ++ ((cls), E_TYPE_CELL_RENDERER_COLOR, ECellRendererColorClass)) ++#define E_IS_CELL_RENDERER_COLOR(obj) \ ++ (G_TYPE_CHECK_INSTANCE_TYPE \ ++ ((obj), E_TYPE_CELL_RENDERER_COLOR)) ++#define E_IS_CELL_RENDERER_COLOR_CLASS(cls) \ ++ (G_TYPE_CHECK_CLASS_TYPE ((cls), E_TYPE_CELL_RENDERER_COLOR)) ++#define E_CELL_RENDERER_COLOR_GET_CLASS(obj) \ ++ (G_TYPE_INSTANCE_GET_CLASS \ ++ ((obj), E_TYPE_CELL_RENDERER_COLOR, ECellRendererColorClass)) ++ ++G_BEGIN_DECLS ++ ++typedef struct _ECellRendererColor ECellRendererColor; ++typedef struct _ECellRendererColorClass ECellRendererColorClass; ++typedef struct _ECellRendererColorPrivate ECellRendererColorPrivate; ++ ++/** ++ * ECellRendererColor: ++ * ++ * Since: 2.22 ++ **/ ++struct _ECellRendererColor { ++ GtkCellRenderer parent; ++ ECellRendererColorPrivate *priv; ++}; ++ ++struct _ECellRendererColorClass { ++ GtkCellRendererClass parent_class; ++ ++ /* Padding for future expansion */ ++ void (*_gtk_reserved1) (void); ++ void (*_gtk_reserved2) (void); ++ void (*_gtk_reserved3) (void); ++ void (*_gtk_reserved4) (void); ++}; ++ ++GType e_cell_renderer_color_get_type (void); ++GtkCellRenderer *e_cell_renderer_color_new (void); ++ ++G_END_DECLS ++ ++#endif /* _E_CELL_RENDERER_COLOR_H_ */ +diff --git a/src/event-factories/e-source-selector.c b/src/event-factories/e-source-selector.c +new file mode 100644 +index 0000000..925d9cd +--- /dev/null ++++ b/src/event-factories/e-source-selector.c +@@ -0,0 +1,2080 @@ ++/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ ++/* e-source-selector.c ++ * ++ * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser 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 Lesser General Public ++ * License along with this program; if not, write to the ++ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ * Boston, MA 02110-1301, USA. ++ * ++ * Author: Ettore Perazzoli ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++ ++#include "e-cell-renderer-color.h" ++#include "e-source-selector.h" ++ ++#define E_SOURCE_SELECTOR_GET_PRIVATE(obj) \ ++ (G_TYPE_INSTANCE_GET_PRIVATE \ ++ ((obj), E_TYPE_SOURCE_SELECTOR, ESourceSelectorPrivate)) ++ ++typedef struct _AsyncContext AsyncContext; ++ ++struct _ESourceSelectorPrivate { ++ ESourceRegistry *registry; ++ GHashTable *source_index; ++ gchar *extension_name; ++ ++ GtkTreeRowReference *saved_primary_selection; ++ ++ /* ESource -> GSource */ ++ GHashTable *pending_writes; ++ GMainContext *main_context; ++ ++ gboolean toggled_last; ++ gboolean select_new; ++ gboolean show_colors; ++ gboolean show_toggles; ++}; ++ ++struct _AsyncContext { ++ ESourceSelector *selector; ++ ESource *source; ++}; ++ ++enum { ++ PROP_0, ++ PROP_EXTENSION_NAME, ++ PROP_PRIMARY_SELECTION, ++ PROP_REGISTRY, ++ PROP_SHOW_COLORS, ++ PROP_SHOW_TOGGLES ++}; ++ ++enum { ++ SELECTION_CHANGED, ++ PRIMARY_SELECTION_CHANGED, ++ POPUP_EVENT, ++ DATA_DROPPED, ++ NUM_SIGNALS ++}; ++ ++enum { ++ COLUMN_NAME, ++ COLUMN_COLOR, ++ COLUMN_ACTIVE, ++ COLUMN_SHOW_COLOR, ++ COLUMN_SHOW_TOGGLE, ++ COLUMN_WEIGHT, ++ COLUMN_SOURCE, ++ NUM_COLUMNS ++}; ++ ++static guint signals[NUM_SIGNALS]; ++ ++G_DEFINE_TYPE (ESourceSelector, e_source_selector, GTK_TYPE_TREE_VIEW) ++ ++/* ESafeToggleRenderer does not emit 'toggled' signal ++ * on 'activate' when mouse is not over the toggle. */ ++ ++typedef GtkCellRendererToggle ECellRendererSafeToggle; ++typedef GtkCellRendererToggleClass ECellRendererSafeToggleClass; ++ ++/* Forward Declarations */ ++GType e_cell_renderer_safe_toggle_get_type (void); ++ ++G_DEFINE_TYPE ( ++ ECellRendererSafeToggle, ++ e_cell_renderer_safe_toggle, ++ GTK_TYPE_CELL_RENDERER_TOGGLE) ++ ++static gboolean ++safe_toggle_activate (GtkCellRenderer *cell, ++ GdkEvent *event, ++ GtkWidget *widget, ++ const gchar *path, ++ const GdkRectangle *background_area, ++ const GdkRectangle *cell_area, ++ GtkCellRendererState flags) ++{ ++ gboolean point_in_cell_area = TRUE; ++ ++ if (event->type == GDK_BUTTON_PRESS && cell_area != NULL) { ++ cairo_region_t *region; ++ ++ region = cairo_region_create_rectangle (cell_area); ++ point_in_cell_area = cairo_region_contains_point ( ++ region, event->button.x, event->button.y); ++ cairo_region_destroy (region); ++ } ++ ++ if (!point_in_cell_area) ++ return FALSE; ++ ++ return GTK_CELL_RENDERER_CLASS ( ++ e_cell_renderer_safe_toggle_parent_class)->activate ( ++ cell, event, widget, path, background_area, cell_area, flags); ++} ++ ++static void ++e_cell_renderer_safe_toggle_class_init (ECellRendererSafeToggleClass *class) ++{ ++ GtkCellRendererClass *cell_renderer_class; ++ ++ cell_renderer_class = GTK_CELL_RENDERER_CLASS (class); ++ cell_renderer_class->activate = safe_toggle_activate; ++} ++ ++static void ++e_cell_renderer_safe_toggle_init (ECellRendererSafeToggle *obj) ++{ ++} ++ ++static GtkCellRenderer * ++e_cell_renderer_safe_toggle_new (void) ++{ ++ return g_object_new (e_cell_renderer_safe_toggle_get_type (), NULL); ++} ++ ++static void ++clear_saved_primary_selection (ESourceSelector *selector) ++{ ++ gtk_tree_row_reference_free (selector->priv->saved_primary_selection); ++ selector->priv->saved_primary_selection = NULL; ++} ++ ++static void ++async_context_free (AsyncContext *async_context) ++{ ++ if (async_context->selector != NULL) ++ g_object_unref (async_context->selector); ++ ++ if (async_context->source != NULL) ++ g_object_unref (async_context->source); ++ ++ g_slice_free (AsyncContext, async_context); ++} ++ ++static void ++pending_writes_destroy_source (GSource *source) ++{ ++ g_source_destroy (source); ++ g_source_unref (source); ++} ++ ++static void ++source_selector_write_done_cb (GObject *source_object, ++ GAsyncResult *result, ++ gpointer user_data) ++{ ++ ESource *source; ++ ESourceSelector *selector; ++ GError *error = NULL; ++ ++ source = E_SOURCE (source_object); ++ selector = E_SOURCE_SELECTOR (user_data); ++ ++ e_source_write_finish (source, result, &error); ++ ++ /* FIXME Display the error in the selector somehow? */ ++ if (error != NULL) { ++ g_warning ("%s: %s", G_STRFUNC, error->message); ++ g_error_free (error); ++ } ++ ++ g_object_unref (selector); ++} ++ ++static gboolean ++source_selector_write_idle_cb (gpointer user_data) ++{ ++ AsyncContext *async_context = user_data; ++ GHashTable *pending_writes; ++ ++ /* XXX This operation is not cancellable. */ ++ e_source_write ( ++ async_context->source, NULL, ++ source_selector_write_done_cb, ++ g_object_ref (async_context->selector)); ++ ++ pending_writes = async_context->selector->priv->pending_writes; ++ g_hash_table_remove (pending_writes, async_context->source); ++ ++ return FALSE; ++} ++ ++static void ++source_selector_cancel_write (ESourceSelector *selector, ++ ESource *source) ++{ ++ GHashTable *pending_writes; ++ ++ /* Cancel any pending writes for this ESource so as not ++ * to overwrite whatever change we're being notified of. */ ++ pending_writes = selector->priv->pending_writes; ++ g_hash_table_remove (pending_writes, source); ++} ++ ++static void ++source_selector_update_row (ESourceSelector *selector, ++ ESource *source) ++{ ++ GHashTable *source_index; ++ ESourceExtension *extension = NULL; ++ GtkTreeRowReference *reference; ++ GtkTreeModel *model; ++ GtkTreePath *path; ++ GtkTreeIter iter; ++ const gchar *extension_name; ++ const gchar *display_name; ++ gboolean selected; ++ ++ source_index = selector->priv->source_index; ++ reference = g_hash_table_lookup (source_index, source); ++ ++ /* This function runs when ANY ESource in the registry changes. ++ * If the ESource is not in our tree model then return silently. */ ++ if (reference == NULL) ++ return; ++ ++ /* If we do have a row reference, it should be valid. */ ++ g_return_if_fail (gtk_tree_row_reference_valid (reference)); ++ ++ model = gtk_tree_row_reference_get_model (reference); ++ path = gtk_tree_row_reference_get_path (reference); ++ gtk_tree_model_get_iter (model, &iter, path); ++ gtk_tree_path_free (path); ++ ++ display_name = e_source_get_display_name (source); ++ ++ extension_name = e_source_selector_get_extension_name (selector); ++ selected = e_source_selector_source_is_selected (selector, source); ++ ++ if (e_source_has_extension (source, extension_name)) ++ extension = e_source_get_extension (source, extension_name); ++ ++ if (extension != NULL) { ++ GdkColor color; ++ const gchar *color_spec = NULL; ++ gboolean show_color = FALSE; ++ gboolean show_toggle; ++ ++ show_color = ++ E_IS_SOURCE_SELECTABLE (extension) && ++ e_source_selector_get_show_colors (selector); ++ ++ if (show_color) ++ color_spec = e_source_selectable_get_color ( ++ E_SOURCE_SELECTABLE (extension)); ++ ++ if (color_spec != NULL && *color_spec != '\0') ++ show_color = gdk_color_parse (color_spec, &color); ++ ++ show_toggle = e_source_selector_get_show_toggles (selector); ++ ++ gtk_tree_store_set ( ++ GTK_TREE_STORE (model), &iter, ++ COLUMN_NAME, display_name, ++ COLUMN_COLOR, show_color ? &color : NULL, ++ COLUMN_ACTIVE, selected, ++ COLUMN_SHOW_COLOR, show_color, ++ COLUMN_SHOW_TOGGLE, show_toggle, ++ COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL, ++ COLUMN_SOURCE, source, ++ -1); ++ } else { ++ gtk_tree_store_set ( ++ GTK_TREE_STORE (model), &iter, ++ COLUMN_NAME, display_name, ++ COLUMN_COLOR, NULL, ++ COLUMN_ACTIVE, FALSE, ++ COLUMN_SHOW_COLOR, FALSE, ++ COLUMN_SHOW_TOGGLE, FALSE, ++ COLUMN_WEIGHT, PANGO_WEIGHT_BOLD, ++ COLUMN_SOURCE, source, ++ -1); ++ } ++} ++ ++static gboolean ++source_selector_traverse (GNode *node, ++ ESourceSelector *selector) ++{ ++ ESource *source; ++ GHashTable *source_index; ++ GtkTreeRowReference *reference = NULL; ++ GtkTreeModel *model; ++ GtkTreePath *path; ++ GtkTreeIter iter; ++ ++ /* Skip the root node. */ ++ if (G_NODE_IS_ROOT (node)) ++ return FALSE; ++ ++ source_index = selector->priv->source_index; ++ ++ model = gtk_tree_view_get_model (GTK_TREE_VIEW (selector)); ++ ++ if (node->parent != NULL && node->parent->data != NULL) ++ reference = g_hash_table_lookup ( ++ source_index, node->parent->data); ++ ++ if (gtk_tree_row_reference_valid (reference)) { ++ GtkTreeIter parent; ++ ++ path = gtk_tree_row_reference_get_path (reference); ++ gtk_tree_model_get_iter (model, &parent, path); ++ gtk_tree_path_free (path); ++ ++ gtk_tree_store_append (GTK_TREE_STORE (model), &iter, &parent); ++ } else ++ gtk_tree_store_append (GTK_TREE_STORE (model), &iter, NULL); ++ ++ source = E_SOURCE (node->data); ++ ++ path = gtk_tree_model_get_path (model, &iter); ++ reference = gtk_tree_row_reference_new (model, path); ++ g_hash_table_insert (source_index, g_object_ref (source), reference); ++ gtk_tree_path_free (path); ++ ++ source_selector_update_row (selector, source); ++ ++ return FALSE; ++} ++ ++static void ++source_selector_save_expanded (GtkTreeView *tree_view, ++ GtkTreePath *path, ++ GQueue *queue) ++{ ++ GtkTreeModel *model; ++ GtkTreeIter iter; ++ ESource *source; ++ ++ model = gtk_tree_view_get_model (tree_view); ++ gtk_tree_model_get_iter (model, &iter, path); ++ gtk_tree_model_get (model, &iter, COLUMN_SOURCE, &source, -1); ++ g_queue_push_tail (queue, source); ++} ++ ++static void ++source_selector_build_model (ESourceSelector *selector) ++{ ++ ESourceRegistry *registry; ++ GQueue queue = G_QUEUE_INIT; ++ GHashTable *source_index; ++ GtkTreeView *tree_view; ++ GtkTreeModel *model; ++ ESource *selected; ++ const gchar *extension_name; ++ GNode *root; ++ ++ tree_view = GTK_TREE_VIEW (selector); ++ ++ registry = e_source_selector_get_registry (selector); ++ extension_name = e_source_selector_get_extension_name (selector); ++ ++ /* Make sure we have what we need to build the model, since ++ * this can get called early in the initialization phase. */ ++ if (registry == NULL || extension_name == NULL) ++ return; ++ ++ source_index = selector->priv->source_index; ++ selected = e_source_selector_ref_primary_selection (selector); ++ ++ /* Save expanded sources to restore later. */ ++ gtk_tree_view_map_expanded_rows ( ++ tree_view, (GtkTreeViewMappingFunc) ++ source_selector_save_expanded, &queue); ++ ++ model = gtk_tree_view_get_model (tree_view); ++ gtk_tree_store_clear (GTK_TREE_STORE (model)); ++ ++ g_hash_table_remove_all (source_index); ++ ++ root = e_source_registry_build_display_tree (registry, extension_name); ++ ++ g_node_traverse ( ++ root, G_PRE_ORDER, G_TRAVERSE_ALL, -1, ++ (GNodeTraverseFunc) source_selector_traverse, ++ selector); ++ ++ e_source_registry_free_display_tree (root); ++ ++ /* Restore previously expanded sources. */ ++ while (!g_queue_is_empty (&queue)) { ++ GtkTreeRowReference *reference; ++ ESource *source; ++ ++ source = g_queue_pop_head (&queue); ++ reference = g_hash_table_lookup (source_index, source); ++ ++ if (gtk_tree_row_reference_valid (reference)) { ++ GtkTreePath *path; ++ ++ path = gtk_tree_row_reference_get_path (reference); ++ gtk_tree_view_expand_to_path (tree_view, path); ++ gtk_tree_path_free (path); ++ } ++ ++ g_object_unref (source); ++ } ++ ++ /* Restore the primary selection. */ ++ if (selected != NULL) { ++ e_source_selector_set_primary_selection (selector, selected); ++ g_object_unref (selected); ++ } ++ ++ /* Make sure we have a primary selection. If not, pick one. */ ++ selected = e_source_selector_ref_primary_selection (selector); ++ if (selected == NULL) { ++ selected = e_source_registry_ref_default_for_extension_name ( ++ registry, extension_name); ++ e_source_selector_set_primary_selection (selector, selected); ++ } ++ g_object_unref (selected); ++} ++ ++static void ++source_selector_expand_to_source (ESourceSelector *selector, ++ ESource *source) ++{ ++ GHashTable *source_index; ++ GtkTreeRowReference *reference; ++ GtkTreePath *path; ++ ++ source_index = selector->priv->source_index; ++ reference = g_hash_table_lookup (source_index, source); ++ ++ /* If the ESource is not in our tree model then return silently. */ ++ if (reference == NULL) ++ return; ++ ++ /* If we do have a row reference, it should be valid. */ ++ g_return_if_fail (gtk_tree_row_reference_valid (reference)); ++ ++ /* Expand the tree view to the path containing the ESource */ ++ path = gtk_tree_row_reference_get_path (reference); ++ gtk_tree_view_expand_to_path (GTK_TREE_VIEW (selector), path); ++ gtk_tree_path_free (path); ++} ++ ++static void ++source_selector_source_added_cb (ESourceRegistry *registry, ++ ESource *source, ++ ESourceSelector *selector) ++{ ++ source_selector_build_model (selector); ++ ++ source_selector_expand_to_source (selector, source); ++} ++ ++static void ++source_selector_source_changed_cb (ESourceRegistry *registry, ++ ESource *source, ++ ESourceSelector *selector) ++{ ++ source_selector_cancel_write (selector, source); ++ ++ source_selector_update_row (selector, source); ++} ++ ++static void ++source_selector_source_removed_cb (ESourceRegistry *registry, ++ ESource *source, ++ ESourceSelector *selector) ++{ ++ source_selector_build_model (selector); ++} ++ ++static void ++source_selector_source_enabled_cb (ESourceRegistry *registry, ++ ESource *source, ++ ESourceSelector *selector) ++{ ++ source_selector_build_model (selector); ++ ++ source_selector_expand_to_source (selector, source); ++} ++ ++static void ++source_selector_source_disabled_cb (ESourceRegistry *registry, ++ ESource *source, ++ ESourceSelector *selector) ++{ ++ source_selector_build_model (selector); ++} ++ ++static gboolean ++same_source_name_exists (ESourceSelector *selector, ++ const gchar *display_name) ++{ ++ GHashTable *source_index; ++ GHashTableIter iter; ++ gpointer key; ++ ++ source_index = selector->priv->source_index; ++ g_hash_table_iter_init (&iter, source_index); ++ ++ while (g_hash_table_iter_next (&iter, &key, NULL)) { ++ ESource *source = E_SOURCE (key); ++ const gchar *source_name; ++ ++ source_name = e_source_get_display_name (source); ++ if (g_strcmp0 (display_name, source_name) == 0) ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++static gboolean ++selection_func (GtkTreeSelection *selection, ++ GtkTreeModel *model, ++ GtkTreePath *path, ++ gboolean path_currently_selected, ++ ESourceSelector *selector) ++{ ++ ESource *source; ++ GtkTreeIter iter; ++ const gchar *extension_name; ++ ++ if (selector->priv->toggled_last) { ++ selector->priv->toggled_last = FALSE; ++ return FALSE; ++ } ++ ++ if (path_currently_selected) ++ return TRUE; ++ ++ if (!gtk_tree_model_get_iter (model, &iter, path)) ++ return FALSE; ++ ++ extension_name = e_source_selector_get_extension_name (selector); ++ gtk_tree_model_get (model, &iter, COLUMN_SOURCE, &source, -1); ++ ++ if (!e_source_has_extension (source, extension_name)) { ++ g_object_unref (source); ++ return FALSE; ++ } ++ ++ clear_saved_primary_selection (selector); ++ ++ g_object_unref (source); ++ ++ return TRUE; ++} ++ ++static void ++text_cell_edited_cb (ESourceSelector *selector, ++ const gchar *path_string, ++ const gchar *new_name) ++{ ++ GtkTreeView *tree_view; ++ GtkTreeModel *model; ++ GtkTreePath *path; ++ GtkTreeIter iter; ++ ESource *source; ++ ++ tree_view = GTK_TREE_VIEW (selector); ++ model = gtk_tree_view_get_model (tree_view); ++ path = gtk_tree_path_new_from_string (path_string); ++ ++ gtk_tree_model_get_iter (model, &iter, path); ++ gtk_tree_model_get (model, &iter, COLUMN_SOURCE, &source, -1); ++ gtk_tree_path_free (path); ++ ++ if (new_name == NULL || *new_name == '\0') ++ return; ++ ++ if (same_source_name_exists (selector, new_name)) ++ return; ++ ++ e_source_set_display_name (source, new_name); ++ ++ e_source_selector_queue_write (selector, source); ++} ++ ++static void ++cell_toggled_callback (GtkCellRendererToggle *renderer, ++ const gchar *path_string, ++ ESourceSelector *selector) ++{ ++ ESource *source; ++ GtkTreeModel *model; ++ GtkTreePath *path; ++ GtkTreeIter iter; ++ ++ model = gtk_tree_view_get_model (GTK_TREE_VIEW (selector)); ++ path = gtk_tree_path_new_from_string (path_string); ++ ++ if (!gtk_tree_model_get_iter (model, &iter, path)) { ++ gtk_tree_path_free (path); ++ return; ++ } ++ ++ gtk_tree_model_get (model, &iter, COLUMN_SOURCE, &source, -1); ++ ++ if (e_source_selector_source_is_selected (selector, source)) ++ e_source_selector_unselect_source (selector, source); ++ else ++ e_source_selector_select_source (selector, source); ++ ++ selector->priv->toggled_last = TRUE; ++ ++ gtk_tree_path_free (path); ++ ++ g_object_unref (source); ++} ++ ++static void ++selection_changed_callback (GtkTreeSelection *selection, ++ ESourceSelector *selector) ++{ ++ g_signal_emit (selector, signals[PRIMARY_SELECTION_CHANGED], 0); ++ g_object_notify (G_OBJECT (selector), "primary-selection"); ++} ++ ++static void ++source_selector_set_extension_name (ESourceSelector *selector, ++ const gchar *extension_name) ++{ ++ g_return_if_fail (extension_name != NULL); ++ g_return_if_fail (selector->priv->extension_name == NULL); ++ ++ selector->priv->extension_name = g_strdup (extension_name); ++} ++ ++static void ++source_selector_set_registry (ESourceSelector *selector, ++ ESourceRegistry *registry) ++{ ++ g_return_if_fail (E_IS_SOURCE_REGISTRY (registry)); ++ g_return_if_fail (selector->priv->registry == NULL); ++ ++ selector->priv->registry = g_object_ref (registry); ++} ++ ++static void ++source_selector_set_property (GObject *object, ++ guint property_id, ++ const GValue *value, ++ GParamSpec *pspec) ++{ ++ switch (property_id) { ++ case PROP_EXTENSION_NAME: ++ source_selector_set_extension_name ( ++ E_SOURCE_SELECTOR (object), ++ g_value_get_string (value)); ++ return; ++ ++ case PROP_PRIMARY_SELECTION: ++ e_source_selector_set_primary_selection ( ++ E_SOURCE_SELECTOR (object), ++ g_value_get_object (value)); ++ return; ++ ++ case PROP_REGISTRY: ++ source_selector_set_registry ( ++ E_SOURCE_SELECTOR (object), ++ g_value_get_object (value)); ++ return; ++ ++ case PROP_SHOW_COLORS: ++ e_source_selector_set_show_colors ( ++ E_SOURCE_SELECTOR (object), ++ g_value_get_boolean (value)); ++ return; ++ ++ case PROP_SHOW_TOGGLES: ++ e_source_selector_set_show_toggles ( ++ E_SOURCE_SELECTOR (object), ++ g_value_get_boolean (value)); ++ return; ++ } ++ ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); ++} ++ ++static void ++source_selector_get_property (GObject *object, ++ guint property_id, ++ GValue *value, ++ GParamSpec *pspec) ++{ ++ switch (property_id) { ++ case PROP_EXTENSION_NAME: ++ g_value_set_string ( ++ value, ++ e_source_selector_get_extension_name ( ++ E_SOURCE_SELECTOR (object))); ++ return; ++ ++ case PROP_PRIMARY_SELECTION: ++ g_value_take_object ( ++ value, ++ e_source_selector_ref_primary_selection ( ++ E_SOURCE_SELECTOR (object))); ++ return; ++ ++ case PROP_REGISTRY: ++ g_value_set_object ( ++ value, ++ e_source_selector_get_registry ( ++ E_SOURCE_SELECTOR (object))); ++ return; ++ ++ case PROP_SHOW_COLORS: ++ g_value_set_boolean ( ++ value, ++ e_source_selector_get_show_colors ( ++ E_SOURCE_SELECTOR (object))); ++ return; ++ ++ case PROP_SHOW_TOGGLES: ++ g_value_set_boolean ( ++ value, ++ e_source_selector_get_show_toggles ( ++ E_SOURCE_SELECTOR (object))); ++ return; ++ } ++ ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); ++} ++ ++static void ++source_selector_dispose (GObject *object) ++{ ++ ESourceSelectorPrivate *priv; ++ ++ priv = E_SOURCE_SELECTOR_GET_PRIVATE (object); ++ ++ if (priv->registry != NULL) { ++ g_signal_handlers_disconnect_matched ( ++ priv->registry, ++ G_SIGNAL_MATCH_DATA, ++ 0, 0, NULL, NULL, object); ++ g_object_unref (priv->registry); ++ priv->registry = NULL; ++ } ++ ++ g_hash_table_remove_all (priv->source_index); ++ g_hash_table_remove_all (priv->pending_writes); ++ ++ clear_saved_primary_selection (E_SOURCE_SELECTOR (object)); ++ ++ /* Chain up to parent's dispose() method. */ ++ G_OBJECT_CLASS (e_source_selector_parent_class)->dispose (object); ++} ++ ++static void ++source_selector_finalize (GObject *object) ++{ ++ ESourceSelectorPrivate *priv; ++ ++ priv = E_SOURCE_SELECTOR_GET_PRIVATE (object); ++ ++ g_hash_table_destroy (priv->source_index); ++ g_hash_table_destroy (priv->pending_writes); ++ ++ g_free (priv->extension_name); ++ ++ if (priv->main_context != NULL) ++ g_main_context_unref (priv->main_context); ++ ++ /* Chain up to parent's finalize() method. */ ++ G_OBJECT_CLASS (e_source_selector_parent_class)->finalize (object); ++} ++ ++static void ++source_selector_constructed (GObject *object) ++{ ++ ESourceRegistry *registry; ++ ESourceSelector *selector; ++ ++ selector = E_SOURCE_SELECTOR (object); ++ registry = e_source_selector_get_registry (selector); ++ ++ g_signal_connect ( ++ registry, "source-added", ++ G_CALLBACK (source_selector_source_added_cb), selector); ++ ++ g_signal_connect ( ++ registry, "source-changed", ++ G_CALLBACK (source_selector_source_changed_cb), selector); ++ ++ g_signal_connect ( ++ registry, "source-removed", ++ G_CALLBACK (source_selector_source_removed_cb), selector); ++ ++ g_signal_connect ( ++ registry, "source-enabled", ++ G_CALLBACK (source_selector_source_enabled_cb), selector); ++ ++ g_signal_connect ( ++ registry, "source-disabled", ++ G_CALLBACK (source_selector_source_disabled_cb), selector); ++ ++ source_selector_build_model (selector); ++ ++ gtk_tree_view_expand_all (GTK_TREE_VIEW (selector)); ++} ++ ++static gboolean ++source_selector_button_press_event (GtkWidget *widget, ++ GdkEventButton *event) ++{ ++ ESourceSelector *selector; ++ GtkWidgetClass *widget_class; ++ GtkTreePath *path; ++ ESource *source = NULL; ++ ESource *primary; ++ gboolean right_click = FALSE; ++ gboolean triple_click = FALSE; ++ gboolean row_exists; ++ gboolean res = FALSE; ++ ++ selector = E_SOURCE_SELECTOR (widget); ++ ++ selector->priv->toggled_last = FALSE; ++ ++ /* Triple-clicking a source selects it exclusively. */ ++ ++ if (event->button == 3 && event->type == GDK_BUTTON_PRESS) ++ right_click = TRUE; ++ else if (event->button == 1 && event->type == GDK_3BUTTON_PRESS) ++ triple_click = TRUE; ++ else ++ goto chainup; ++ ++ row_exists = gtk_tree_view_get_path_at_pos ( ++ GTK_TREE_VIEW (widget), event->x, event->y, ++ &path, NULL, NULL, NULL); ++ ++ /* Get the source/group */ ++ if (row_exists) { ++ GtkTreeModel *model; ++ GtkTreeIter iter; ++ ++ model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget)); ++ ++ gtk_tree_model_get_iter (model, &iter, path); ++ gtk_tree_model_get (model, &iter, COLUMN_SOURCE, &source, -1); ++ } ++ ++ if (source == NULL) ++ goto chainup; ++ ++ primary = e_source_selector_ref_primary_selection (selector); ++ if (source != primary) ++ e_source_selector_set_primary_selection (selector, source); ++ if (primary != NULL) ++ g_object_unref (primary); ++ ++ if (right_click) ++ g_signal_emit ( ++ widget, signals[POPUP_EVENT], 0, source, event, &res); ++ ++ if (triple_click) { ++ e_source_selector_select_exclusive (selector, source); ++ res = TRUE; ++ } ++ ++ g_object_unref (source); ++ ++ return res; ++ ++chainup: ++ ++ /* Chain up to parent's button_press_event() method. */ ++ widget_class = GTK_WIDGET_CLASS (e_source_selector_parent_class); ++ return widget_class->button_press_event (widget, event); ++} ++ ++static void ++source_selector_drag_leave (GtkWidget *widget, ++ GdkDragContext *context, ++ guint time_) ++{ ++ GtkTreeView *tree_view; ++ GtkTreeViewDropPosition pos; ++ ++ tree_view = GTK_TREE_VIEW (widget); ++ pos = GTK_TREE_VIEW_DROP_BEFORE; ++ ++ gtk_tree_view_set_drag_dest_row (tree_view, NULL, pos); ++} ++ ++static gboolean ++source_selector_drag_motion (GtkWidget *widget, ++ GdkDragContext *context, ++ gint x, ++ gint y, ++ guint time_) ++{ ++ ESource *source = NULL; ++ GtkTreeView *tree_view; ++ GtkTreeModel *model; ++ GtkTreePath *path = NULL; ++ GtkTreeIter iter; ++ GtkTreeViewDropPosition pos; ++ GdkDragAction action = 0; ++ ++ tree_view = GTK_TREE_VIEW (widget); ++ model = gtk_tree_view_get_model (tree_view); ++ ++ if (!gtk_tree_view_get_dest_row_at_pos (tree_view, x, y, &path, NULL)) ++ goto exit; ++ ++ if (!gtk_tree_model_get_iter (model, &iter, path)) ++ goto exit; ++ ++ gtk_tree_model_get (model, &iter, COLUMN_SOURCE, &source, -1); ++ ++ if (!e_source_get_writable (source)) ++ goto exit; ++ ++ pos = GTK_TREE_VIEW_DROP_INTO_OR_BEFORE; ++ gtk_tree_view_set_drag_dest_row (tree_view, path, pos); ++ ++ if (gdk_drag_context_get_actions (context) & GDK_ACTION_MOVE) ++ action = GDK_ACTION_MOVE; ++ else ++ action = gdk_drag_context_get_suggested_action (context); ++ ++exit: ++ if (path != NULL) ++ gtk_tree_path_free (path); ++ ++ if (source != NULL) ++ g_object_unref (source); ++ ++ gdk_drag_status (context, action, time_); ++ ++ return TRUE; ++} ++ ++static gboolean ++source_selector_drag_drop (GtkWidget *widget, ++ GdkDragContext *context, ++ gint x, ++ gint y, ++ guint time_) ++{ ++ ESource *source; ++ ESourceSelector *selector; ++ GtkTreeView *tree_view; ++ GtkTreeModel *model; ++ GtkTreePath *path; ++ GtkTreeIter iter; ++ const gchar *extension_name; ++ gboolean drop_zone; ++ gboolean valid; ++ ++ tree_view = GTK_TREE_VIEW (widget); ++ model = gtk_tree_view_get_model (tree_view); ++ ++ if (!gtk_tree_view_get_path_at_pos ( ++ tree_view, x, y, &path, NULL, NULL, NULL)) ++ return FALSE; ++ ++ valid = gtk_tree_model_get_iter (model, &iter, path); ++ gtk_tree_path_free (path); ++ g_return_val_if_fail (valid, FALSE); ++ ++ gtk_tree_model_get (model, &iter, COLUMN_SOURCE, &source, -1); ++ ++ selector = E_SOURCE_SELECTOR (widget); ++ extension_name = e_source_selector_get_extension_name (selector); ++ drop_zone = e_source_has_extension (source, extension_name); ++ ++ g_object_unref (source); ++ ++ return drop_zone; ++} ++ ++static void ++source_selector_drag_data_received (GtkWidget *widget, ++ GdkDragContext *context, ++ gint x, ++ gint y, ++ GtkSelectionData *selection_data, ++ guint info, ++ guint time_) ++{ ++ ESource *source = NULL; ++ GtkTreeView *tree_view; ++ GtkTreeModel *model; ++ GtkTreePath *path = NULL; ++ GtkTreeIter iter; ++ GdkDragAction action; ++ gboolean delete; ++ gboolean success = FALSE; ++ ++ tree_view = GTK_TREE_VIEW (widget); ++ model = gtk_tree_view_get_model (tree_view); ++ ++ action = gdk_drag_context_get_selected_action (context); ++ delete = (action == GDK_ACTION_MOVE); ++ ++ if (!gtk_tree_view_get_dest_row_at_pos (tree_view, x, y, &path, NULL)) ++ goto exit; ++ ++ if (!gtk_tree_model_get_iter (model, &iter, path)) ++ goto exit; ++ ++ gtk_tree_model_get (model, &iter, COLUMN_SOURCE, &source, -1); ++ ++ if (!e_source_get_writable (source)) ++ goto exit; ++ ++ g_signal_emit ( ++ widget, signals[DATA_DROPPED], 0, selection_data, ++ source, gdk_drag_context_get_selected_action (context), ++ info, &success); ++ ++exit: ++ if (path != NULL) ++ gtk_tree_path_free (path); ++ ++ if (source != NULL) ++ g_object_unref (source); ++ ++ gtk_drag_finish (context, success, delete, time_); ++} ++ ++static gboolean ++source_selector_popup_menu (GtkWidget *widget) ++{ ++ ESourceSelector *selector; ++ ESource *source; ++ gboolean res = FALSE; ++ ++ selector = E_SOURCE_SELECTOR (widget); ++ source = e_source_selector_ref_primary_selection (selector); ++ g_signal_emit (selector, signals[POPUP_EVENT], 0, source, NULL, &res); ++ ++ if (source != NULL) ++ g_object_unref (source); ++ ++ return res; ++} ++ ++static gboolean ++source_selector_test_collapse_row (GtkTreeView *tree_view, ++ GtkTreeIter *iter, ++ GtkTreePath *path) ++{ ++ ESourceSelectorPrivate *priv; ++ GtkTreeSelection *selection; ++ GtkTreeModel *model; ++ GtkTreeIter child_iter; ++ ++ priv = E_SOURCE_SELECTOR_GET_PRIVATE (tree_view); ++ ++ /* Clear this because something else has been clicked on now */ ++ priv->toggled_last = FALSE; ++ ++ if (priv->saved_primary_selection) ++ return FALSE; ++ ++ selection = gtk_tree_view_get_selection (tree_view); ++ ++ if (!gtk_tree_selection_get_selected (selection, &model, &child_iter)) ++ return FALSE; ++ ++ if (gtk_tree_store_is_ancestor (GTK_TREE_STORE (model), iter, &child_iter)) { ++ GtkTreeRowReference *reference; ++ GtkTreePath *child_path; ++ ++ child_path = gtk_tree_model_get_path (model, &child_iter); ++ reference = gtk_tree_row_reference_new (model, child_path); ++ priv->saved_primary_selection = reference; ++ gtk_tree_path_free (child_path); ++ } ++ ++ return FALSE; ++} ++ ++static void ++source_selector_row_expanded (GtkTreeView *tree_view, ++ GtkTreeIter *iter, ++ GtkTreePath *path) ++{ ++ ESourceSelectorPrivate *priv; ++ GtkTreeModel *model; ++ GtkTreePath *child_path; ++ GtkTreeIter child_iter; ++ ++ priv = E_SOURCE_SELECTOR_GET_PRIVATE (tree_view); ++ ++ if (!priv->saved_primary_selection) ++ return; ++ ++ model = gtk_tree_view_get_model (tree_view); ++ ++ child_path = gtk_tree_row_reference_get_path ( ++ priv->saved_primary_selection); ++ gtk_tree_model_get_iter (model, &child_iter, child_path); ++ ++ if (gtk_tree_store_is_ancestor (GTK_TREE_STORE (model), iter, &child_iter)) { ++ GtkTreeSelection *selection; ++ ++ selection = gtk_tree_view_get_selection (tree_view); ++ gtk_tree_selection_select_iter (selection, &child_iter); ++ ++ clear_saved_primary_selection (E_SOURCE_SELECTOR (tree_view)); ++ } ++ ++ gtk_tree_path_free (child_path); ++} ++ ++static gboolean ++source_selector_get_source_selected (ESourceSelector *selector, ++ ESource *source) ++{ ++ ESourceSelectable *extension; ++ const gchar *extension_name; ++ gboolean selected = TRUE; ++ ++ extension_name = e_source_selector_get_extension_name (selector); ++ ++ if (!e_source_has_extension (source, extension_name)) ++ return FALSE; ++ ++ extension = e_source_get_extension (source, extension_name); ++ ++ if (E_IS_SOURCE_SELECTABLE (extension)) ++ selected = e_source_selectable_get_selected (extension); ++ ++ return selected; ++} ++ ++static void ++source_selector_set_source_selected (ESourceSelector *selector, ++ ESource *source, ++ gboolean selected) ++{ ++ ESourceSelectable *extension; ++ const gchar *extension_name; ++ ++ extension_name = e_source_selector_get_extension_name (selector); ++ ++ if (!e_source_has_extension (source, extension_name)) ++ return; ++ ++ extension = e_source_get_extension (source, extension_name); ++ ++ if (!E_IS_SOURCE_SELECTABLE (extension)) ++ return; ++ ++ if (selected != e_source_selectable_get_selected (extension)) { ++ e_source_selectable_set_selected (extension, selected); ++ e_source_selector_queue_write (selector, source); ++ } ++} ++ ++static gboolean ++ess_bool_accumulator (GSignalInvocationHint *ihint, ++ GValue *out, ++ const GValue *in, ++ gpointer data) ++{ ++ gboolean v_boolean; ++ ++ v_boolean = g_value_get_boolean (in); ++ g_value_set_boolean (out, v_boolean); ++ ++ return !v_boolean; ++} ++ ++static void ++e_source_selector_class_init (ESourceSelectorClass *class) ++{ ++ GObjectClass *object_class; ++ GtkWidgetClass *widget_class; ++ GtkTreeViewClass *tree_view_class; ++ ++ g_type_class_add_private (class, sizeof (ESourceSelectorPrivate)); ++ ++ object_class = G_OBJECT_CLASS (class); ++ object_class->set_property = source_selector_set_property; ++ object_class->get_property = source_selector_get_property; ++ object_class->dispose = source_selector_dispose; ++ object_class->finalize = source_selector_finalize; ++ object_class->constructed = source_selector_constructed; ++ ++ widget_class = GTK_WIDGET_CLASS (class); ++ widget_class->button_press_event = source_selector_button_press_event; ++ widget_class->drag_leave = source_selector_drag_leave; ++ widget_class->drag_motion = source_selector_drag_motion; ++ widget_class->drag_drop = source_selector_drag_drop; ++ widget_class->drag_data_received = source_selector_drag_data_received; ++ widget_class->popup_menu = source_selector_popup_menu; ++ ++ tree_view_class = GTK_TREE_VIEW_CLASS (class); ++ tree_view_class->test_collapse_row = source_selector_test_collapse_row; ++ tree_view_class->row_expanded = source_selector_row_expanded; ++ ++ class->get_source_selected = source_selector_get_source_selected; ++ class->set_source_selected = source_selector_set_source_selected; ++ ++ g_object_class_install_property ( ++ object_class, ++ PROP_EXTENSION_NAME, ++ g_param_spec_string ( ++ "extension-name", ++ NULL, ++ NULL, ++ NULL, ++ G_PARAM_READWRITE | ++ G_PARAM_CONSTRUCT_ONLY | ++ G_PARAM_STATIC_STRINGS)); ++ ++ g_object_class_install_property ( ++ object_class, ++ PROP_PRIMARY_SELECTION, ++ g_param_spec_object ( ++ "primary-selection", ++ NULL, ++ NULL, ++ E_TYPE_SOURCE, ++ G_PARAM_READWRITE | ++ G_PARAM_STATIC_STRINGS)); ++ ++ g_object_class_install_property ( ++ object_class, ++ PROP_REGISTRY, ++ g_param_spec_object ( ++ "registry", ++ NULL, ++ NULL, ++ E_TYPE_SOURCE_REGISTRY, ++ G_PARAM_READWRITE | ++ G_PARAM_CONSTRUCT_ONLY | ++ G_PARAM_STATIC_STRINGS)); ++ ++ g_object_class_install_property ( ++ object_class, ++ PROP_SHOW_COLORS, ++ g_param_spec_boolean ( ++ "show-colors", ++ NULL, ++ NULL, ++ TRUE, ++ G_PARAM_READWRITE | ++ G_PARAM_STATIC_STRINGS)); ++ ++ g_object_class_install_property ( ++ object_class, ++ PROP_SHOW_TOGGLES, ++ g_param_spec_boolean ( ++ "show-toggles", ++ NULL, ++ NULL, ++ TRUE, ++ G_PARAM_READWRITE | ++ G_PARAM_STATIC_STRINGS)); ++ ++ signals[SELECTION_CHANGED] = g_signal_new ( ++ "selection-changed", ++ G_OBJECT_CLASS_TYPE (object_class), ++ G_SIGNAL_RUN_LAST, ++ G_STRUCT_OFFSET (ESourceSelectorClass, selection_changed), ++ NULL, NULL, NULL, ++ G_TYPE_NONE, 0); ++ ++ /* XXX Consider this signal deprecated. Connect ++ * to "notify::primary-selection" instead. */ ++ signals[PRIMARY_SELECTION_CHANGED] = g_signal_new ( ++ "primary-selection-changed", ++ G_OBJECT_CLASS_TYPE (object_class), ++ G_SIGNAL_RUN_LAST, ++ G_STRUCT_OFFSET (ESourceSelectorClass, primary_selection_changed), ++ NULL, NULL, NULL, ++ G_TYPE_NONE, 0); ++ ++ signals[POPUP_EVENT] = g_signal_new ( ++ "popup-event", ++ G_OBJECT_CLASS_TYPE (object_class), ++ G_SIGNAL_RUN_LAST, ++ G_STRUCT_OFFSET (ESourceSelectorClass, popup_event), ++ ess_bool_accumulator, NULL, NULL, ++ G_TYPE_BOOLEAN, 2, G_TYPE_OBJECT, ++ GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE); ++ ++ signals[DATA_DROPPED] = g_signal_new ( ++ "data-dropped", ++ G_OBJECT_CLASS_TYPE (object_class), ++ G_SIGNAL_RUN_LAST, ++ G_STRUCT_OFFSET (ESourceSelectorClass, data_dropped), ++ NULL, NULL, NULL, ++ G_TYPE_BOOLEAN, 4, ++ GTK_TYPE_SELECTION_DATA | G_SIGNAL_TYPE_STATIC_SCOPE, ++ E_TYPE_SOURCE, ++ GDK_TYPE_DRAG_ACTION, ++ G_TYPE_UINT); ++} ++ ++static void ++e_source_selector_init (ESourceSelector *selector) ++{ ++ GHashTable *pending_writes; ++ GtkTreeViewColumn *column; ++ GtkTreeSelection *selection; ++ GtkCellRenderer *renderer; ++ GtkTreeStore *tree_store; ++ GtkTreeView *tree_view; ++ ++ pending_writes = g_hash_table_new_full ( ++ (GHashFunc) g_direct_hash, ++ (GEqualFunc) g_direct_equal, ++ (GDestroyNotify) g_object_unref, ++ (GDestroyNotify) pending_writes_destroy_source); ++ ++ selector->priv = E_SOURCE_SELECTOR_GET_PRIVATE (selector); ++ ++ selector->priv->pending_writes = pending_writes; ++ ++ selector->priv->main_context = g_main_context_get_thread_default (); ++ if (selector->priv->main_context != NULL) ++ g_main_context_ref (selector->priv->main_context); ++ ++ tree_view = GTK_TREE_VIEW (selector); ++ ++ gtk_tree_view_set_search_column (tree_view, COLUMN_SOURCE); ++ gtk_tree_view_set_enable_search (tree_view, TRUE); ++ ++ selector->priv->toggled_last = FALSE; ++ selector->priv->select_new = FALSE; ++ selector->priv->show_colors = TRUE; ++ selector->priv->show_toggles = TRUE; ++ ++ selector->priv->source_index = g_hash_table_new_full ( ++ (GHashFunc) e_source_hash, ++ (GEqualFunc) e_source_equal, ++ (GDestroyNotify) g_object_unref, ++ (GDestroyNotify) gtk_tree_row_reference_free); ++ ++ tree_store = gtk_tree_store_new ( ++ NUM_COLUMNS, ++ G_TYPE_STRING, /* COLUMN_NAME */ ++ GDK_TYPE_COLOR, /* COLUMN_COLOR */ ++ G_TYPE_BOOLEAN, /* COLUMN_ACTIVE */ ++ G_TYPE_BOOLEAN, /* COLUMN_SHOW_COLOR */ ++ G_TYPE_BOOLEAN, /* COLUMN_SHOW_TOGGLE */ ++ G_TYPE_INT, /* COLUMN_WEIGHT */ ++ E_TYPE_SOURCE); /* COLUMN_SOURCE */ ++ ++ gtk_tree_view_set_model (tree_view, GTK_TREE_MODEL (tree_store)); ++ ++ column = gtk_tree_view_column_new (); ++ gtk_tree_view_append_column (tree_view, column); ++ ++ renderer = e_cell_renderer_color_new (); ++ g_object_set ( ++ G_OBJECT (renderer), "mode", ++ GTK_CELL_RENDERER_MODE_ACTIVATABLE, NULL); ++ gtk_tree_view_column_pack_start (column, renderer, FALSE); ++ gtk_tree_view_column_add_attribute ( ++ column, renderer, "color", COLUMN_COLOR); ++ gtk_tree_view_column_add_attribute ( ++ column, renderer, "visible", COLUMN_SHOW_COLOR); ++ ++ renderer = e_cell_renderer_safe_toggle_new (); ++ gtk_tree_view_column_pack_start (column, renderer, FALSE); ++ gtk_tree_view_column_add_attribute ( ++ column, renderer, "active", COLUMN_ACTIVE); ++ gtk_tree_view_column_add_attribute ( ++ column, renderer, "visible", COLUMN_SHOW_TOGGLE); ++ g_signal_connect ( ++ renderer, "toggled", ++ G_CALLBACK (cell_toggled_callback), selector); ++ ++ renderer = gtk_cell_renderer_text_new (); ++ g_object_set ( ++ G_OBJECT (renderer), ++ "ellipsize", PANGO_ELLIPSIZE_END, NULL); ++ g_signal_connect_swapped ( ++ renderer, "edited", ++ G_CALLBACK (text_cell_edited_cb), selector); ++ gtk_tree_view_column_pack_start (column, renderer, TRUE); ++ gtk_tree_view_column_set_attributes ( ++ column, renderer, ++ "text", COLUMN_NAME, ++ "weight", COLUMN_WEIGHT, ++ NULL); ++ ++ selection = gtk_tree_view_get_selection (tree_view); ++ gtk_tree_selection_set_select_function ( ++ selection, (GtkTreeSelectionFunc) ++ selection_func, selector, NULL); ++ g_signal_connect_object ( ++ selection, "changed", ++ G_CALLBACK (selection_changed_callback), ++ G_OBJECT (selector), 0); ++ ++ gtk_tree_view_set_headers_visible (tree_view, FALSE); ++} ++ ++/** ++ * e_source_selector_new: ++ * @registry: an #ESourceRegistry ++ * @extension_name: the name of an #ESource extension ++ * ++ * Displays a list of sources from @registry having an extension named ++ * @extension_name. The sources are grouped by backend or groupware ++ * account, which are described by the parent source. ++ * ++ * Returns: a new #ESourceSelector ++ **/ ++GtkWidget * ++e_source_selector_new (ESourceRegistry *registry, ++ const gchar *extension_name) ++{ ++ g_return_val_if_fail (E_IS_SOURCE_REGISTRY (registry), NULL); ++ g_return_val_if_fail (extension_name != NULL, NULL); ++ ++ return g_object_new ( ++ E_TYPE_SOURCE_SELECTOR, "registry", registry, ++ "extension-name", extension_name, NULL); ++} ++ ++/** ++ * e_source_selector_get_registry: ++ * @selector: an #ESourceSelector ++ * ++ * Returns the #ESourceRegistry that @selector is getting sources from. ++ * ++ * Returns: an #ESourceRegistry ++ * ++ * Since: 3.6 ++ **/ ++ESourceRegistry * ++e_source_selector_get_registry (ESourceSelector *selector) ++{ ++ g_return_val_if_fail (E_IS_SOURCE_SELECTOR (selector), NULL); ++ ++ return selector->priv->registry; ++} ++ ++/** ++ * e_source_selector_get_extension_name: ++ * @selector: an #ESourceSelector ++ * ++ * Returns the extension name used to filter which sources are displayed. ++ * ++ * Returns: the #ESource extension name ++ * ++ * Since: 3.6 ++ **/ ++const gchar * ++e_source_selector_get_extension_name (ESourceSelector *selector) ++{ ++ g_return_val_if_fail (E_IS_SOURCE_SELECTOR (selector), NULL); ++ ++ return selector->priv->extension_name; ++} ++ ++/** ++ * e_source_selector_get_show_colors: ++ * @selector: an #ESourceSelector ++ * ++ * Returns whether colors are shown next to data sources. ++ * ++ * Returns: %TRUE if colors are being shown ++ * ++ * Since: 3.6 ++ **/ ++gboolean ++e_source_selector_get_show_colors (ESourceSelector *selector) ++{ ++ g_return_val_if_fail (E_IS_SOURCE_SELECTOR (selector), FALSE); ++ ++ return selector->priv->show_colors; ++} ++ ++/** ++ * e_source_selector_set_show_colors: ++ * @selector: an #ESourceSelector ++ * @show_colors: whether to show colors ++ * ++ * Sets whether to show colors next to data sources. ++ * ++ * Since: 3.6 ++ **/ ++void ++e_source_selector_set_show_colors (ESourceSelector *selector, ++ gboolean show_colors) ++{ ++ g_return_if_fail (E_IS_SOURCE_SELECTOR (selector)); ++ ++ if ((show_colors ? 1 : 0) == (selector->priv->show_colors ? 1 : 0)) ++ return; ++ ++ selector->priv->show_colors = show_colors; ++ ++ g_object_notify (G_OBJECT (selector), "show-colors"); ++ ++ source_selector_build_model (selector); ++} ++ ++/** ++ * e_source_selector_get_show_toggles: ++ * @selector: an #ESourceSelector ++ * ++ * Returns whether toggles are shown next to data sources. ++ * ++ * Returns: %TRUE if toggles are being shown ++ * ++ * Since: 3.6 ++ **/ ++gboolean ++e_source_selector_get_show_toggles (ESourceSelector *selector) ++{ ++ g_return_val_if_fail (E_IS_SOURCE_SELECTOR (selector), FALSE); ++ ++ return selector->priv->show_toggles; ++} ++ ++/** ++ * e_source_selector_set_show_toggles: ++ * @selector: an #ESourceSelector ++ * @show_toggles: whether to show toggles ++ * ++ * Sets whether to show toggles next to data sources. ++ * ++ * Since: 3.6 ++ **/ ++void ++e_source_selector_set_show_toggles (ESourceSelector *selector, ++ gboolean show_toggles) ++{ ++ g_return_if_fail (E_IS_SOURCE_SELECTOR (selector)); ++ ++ if ((show_toggles ? 1 : 0) == (selector->priv->show_toggles ? 1 : 0)) ++ return; ++ ++ selector->priv->show_toggles = show_toggles; ++ ++ g_object_notify (G_OBJECT (selector), "show-toggles"); ++ ++ source_selector_build_model (selector); ++} ++ ++/* Helper for e_source_selector_get_selection() */ ++static gboolean ++source_selector_check_selected (GtkTreeModel *model, ++ GtkTreePath *path, ++ GtkTreeIter *iter, ++ gpointer user_data) ++{ ++ ESource *source; ++ ++ struct { ++ ESourceSelector *selector; ++ GSList *list; ++ } *closure = user_data; ++ ++ gtk_tree_model_get (model, iter, COLUMN_SOURCE, &source, -1); ++ ++ if (e_source_selector_source_is_selected (closure->selector, source)) ++ closure->list = g_slist_prepend (closure->list, source); ++ else ++ g_object_unref (source); ++ ++ return FALSE; ++} ++ ++/** ++ * e_source_selector_get_selection: ++ * @selector: an #ESourceSelector ++ * ++ * Get the list of selected sources, i.e. those that were enabled through the ++ * corresponding checkboxes in the tree. ++ * ++ * Returns: A list of the ESources currently selected. The sources will ++ * be in the same order as they appear on the screen, and the list should be ++ * freed using e_source_selector_free_selection(). ++ **/ ++GSList * ++e_source_selector_get_selection (ESourceSelector *selector) ++{ ++ struct { ++ ESourceSelector *selector; ++ GSList *list; ++ } closure; ++ ++ g_return_val_if_fail (E_IS_SOURCE_SELECTOR (selector), NULL); ++ ++ closure.selector = selector; ++ closure.list = NULL; ++ ++ gtk_tree_model_foreach ( ++ gtk_tree_view_get_model (GTK_TREE_VIEW (selector)), ++ (GtkTreeModelForeachFunc) source_selector_check_selected, ++ &closure); ++ ++ return g_slist_reverse (closure.list); ++} ++ ++/** ++ * e_source_list_free_selection: ++ * @list: A selection list returned by e_source_selector_get_selection(). ++ * ++ * Free the selection list. ++ **/ ++void ++e_source_selector_free_selection (GSList *list) ++{ ++ g_slist_foreach (list, (GFunc) g_object_unref, NULL); ++ g_slist_free (list); ++} ++ ++/** ++ * e_source_selector_set_select_new: ++ * @selector: An #ESourceSelector widget ++ * @state: A gboolean ++ * ++ * Set whether or not to select new sources added to @selector. ++ **/ ++void ++e_source_selector_set_select_new (ESourceSelector *selector, ++ gboolean state) ++{ ++ g_return_if_fail (E_IS_SOURCE_SELECTOR (selector)); ++ ++ selector->priv->select_new = state; ++} ++ ++/** ++ * e_source_selector_select_source: ++ * @selector: An #ESourceSelector widget ++ * @source: An #ESource. ++ * ++ * Select @source in @selector. ++ **/ ++void ++e_source_selector_select_source (ESourceSelector *selector, ++ ESource *source) ++{ ++ ESourceSelectorClass *class; ++ GtkTreeRowReference *reference; ++ GHashTable *source_index; ++ ++ g_return_if_fail (E_IS_SOURCE_SELECTOR (selector)); ++ g_return_if_fail (E_IS_SOURCE (source)); ++ ++ /* Make sure the ESource is in our tree model. */ ++ source_index = selector->priv->source_index; ++ reference = g_hash_table_lookup (source_index, source); ++ g_return_if_fail (gtk_tree_row_reference_valid (reference)); ++ ++ class = E_SOURCE_SELECTOR_GET_CLASS (selector); ++ g_return_if_fail (class->set_source_selected != NULL); ++ ++ class->set_source_selected (selector, source, TRUE); ++ ++ g_signal_emit (selector, signals[SELECTION_CHANGED], 0); ++} ++ ++/** ++ * e_source_selector_unselect_source: ++ * @selector: An #ESourceSelector widget ++ * @source: An #ESource. ++ * ++ * Unselect @source in @selector. ++ **/ ++void ++e_source_selector_unselect_source (ESourceSelector *selector, ++ ESource *source) ++{ ++ ESourceSelectorClass *class; ++ GtkTreeRowReference *reference; ++ GHashTable *source_index; ++ ++ g_return_if_fail (E_IS_SOURCE_SELECTOR (selector)); ++ g_return_if_fail (E_IS_SOURCE (source)); ++ ++ /* Make sure the ESource is in our tree model. */ ++ source_index = selector->priv->source_index; ++ reference = g_hash_table_lookup (source_index, source); ++ g_return_if_fail (gtk_tree_row_reference_valid (reference)); ++ ++ class = E_SOURCE_SELECTOR_GET_CLASS (selector); ++ g_return_if_fail (class->set_source_selected != NULL); ++ ++ class->set_source_selected (selector, source, FALSE); ++ ++ g_signal_emit (selector, signals[SELECTION_CHANGED], 0); ++} ++ ++/** ++ * e_source_selector_select_exclusive: ++ * @selector: An #ESourceSelector widget ++ * @source: An #ESource. ++ * ++ * Select @source in @selector and unselect all others. ++ * ++ * Since: 2.30 ++ **/ ++void ++e_source_selector_select_exclusive (ESourceSelector *selector, ++ ESource *source) ++{ ++ ESourceSelectorClass *class; ++ GHashTable *source_index; ++ GHashTableIter iter; ++ gpointer key; ++ ++ g_return_if_fail (E_IS_SOURCE_SELECTOR (selector)); ++ g_return_if_fail (E_IS_SOURCE (source)); ++ ++ class = E_SOURCE_SELECTOR_GET_CLASS (selector); ++ g_return_if_fail (class->set_source_selected != NULL); ++ ++ source_index = selector->priv->source_index; ++ g_hash_table_iter_init (&iter, source_index); ++ ++ while (g_hash_table_iter_next (&iter, &key, NULL)) { ++ gboolean selected = e_source_equal (key, source); ++ class->set_source_selected (selector, key, selected); ++ } ++ ++ g_signal_emit (selector, signals[SELECTION_CHANGED], 0); ++} ++ ++/** ++ * e_source_selector_source_is_selected: ++ * @selector: An #ESourceSelector widget ++ * @source: An #ESource. ++ * ++ * Check whether @source is selected in @selector. ++ * ++ * Returns: %TRUE if @source is currently selected, %FALSE otherwise. ++ **/ ++gboolean ++e_source_selector_source_is_selected (ESourceSelector *selector, ++ ESource *source) ++{ ++ ESourceSelectorClass *class; ++ GtkTreeRowReference *reference; ++ GHashTable *source_index; ++ ++ g_return_val_if_fail (E_IS_SOURCE_SELECTOR (selector), FALSE); ++ g_return_val_if_fail (E_IS_SOURCE (source), FALSE); ++ ++ /* Make sure the ESource is in our tree model. */ ++ source_index = selector->priv->source_index; ++ reference = g_hash_table_lookup (source_index, source); ++ g_return_val_if_fail (gtk_tree_row_reference_valid (reference), FALSE); ++ ++ class = E_SOURCE_SELECTOR_GET_CLASS (selector); ++ g_return_val_if_fail (class->get_source_selected != NULL, FALSE); ++ ++ return class->get_source_selected (selector, source); ++} ++ ++/** ++ * e_source_selector_edit_primary_selection: ++ * @selector: An #ESourceSelector widget ++ * ++ * Allows the user to rename the primary selected source by opening an ++ * entry box directly in @selector. ++ * ++ * Since: 2.26 ++ **/ ++void ++e_source_selector_edit_primary_selection (ESourceSelector *selector) ++{ ++ GtkTreeRowReference *reference; ++ GtkTreeSelection *selection; ++ GtkTreeViewColumn *column; ++ GtkCellRenderer *renderer; ++ GtkTreeView *tree_view; ++ GtkTreeModel *model; ++ GtkTreePath *path = NULL; ++ GtkTreeIter iter; ++ GList *list; ++ ++ g_return_if_fail (E_IS_SOURCE_SELECTOR (selector)); ++ ++ tree_view = GTK_TREE_VIEW (selector); ++ column = gtk_tree_view_get_column (tree_view, 0); ++ reference = selector->priv->saved_primary_selection; ++ selection = gtk_tree_view_get_selection (tree_view); ++ ++ if (reference != NULL) ++ path = gtk_tree_row_reference_get_path (reference); ++ else if (gtk_tree_selection_get_selected (selection, &model, &iter)) ++ path = gtk_tree_model_get_path (model, &iter); ++ ++ if (path == NULL) ++ return; ++ ++ /* XXX Because we stuff three renderers in a single column, ++ * we have to manually hunt for the text renderer. */ ++ renderer = NULL; ++ list = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (column)); ++ while (list != NULL) { ++ renderer = list->data; ++ if (GTK_IS_CELL_RENDERER_TEXT (renderer)) ++ break; ++ list = g_list_delete_link (list, list); ++ } ++ g_list_free (list); ++ ++ /* Make the text cell renderer editable, but only temporarily. ++ * We don't want editing to be activated by simply clicking on ++ * the source name. Too easy for accidental edits to occur. */ ++ g_object_set (renderer, "editable", TRUE, NULL); ++ gtk_tree_view_expand_to_path (tree_view, path); ++ gtk_tree_view_set_cursor_on_cell ( ++ tree_view, path, column, renderer, TRUE); ++ g_object_set (renderer, "editable", FALSE, NULL); ++ ++ gtk_tree_path_free (path); ++} ++ ++/** ++ * e_source_selector_ref_primary_selection: ++ * @selector: An #ESourceSelector widget ++ * ++ * Get the primary selected source. The primary selection is the one that is ++ * highlighted through the normal #GtkTreeView selection mechanism (as opposed ++ * to the "normal" selection, which is the set of source whose checkboxes are ++ * checked). ++ * ++ * The returned #ESource is referenced for thread-safety and must be ++ * unreferenced with g_object_unref() when finished with it. ++ * ++ * Returns: The selected source. ++ * ++ * Since: 3.6 ++ **/ ++ESource * ++e_source_selector_ref_primary_selection (ESourceSelector *selector) ++{ ++ ESource *source; ++ GtkTreeRowReference *reference; ++ GtkTreeSelection *selection; ++ GtkTreeView *tree_view; ++ GtkTreeModel *model; ++ GtkTreeIter iter; ++ const gchar *extension_name; ++ gboolean have_iter = FALSE; ++ ++ g_return_val_if_fail (E_IS_SOURCE_SELECTOR (selector), NULL); ++ ++ tree_view = GTK_TREE_VIEW (selector); ++ model = gtk_tree_view_get_model (tree_view); ++ selection = gtk_tree_view_get_selection (tree_view); ++ ++ reference = selector->priv->saved_primary_selection; ++ ++ if (gtk_tree_row_reference_valid (reference)) { ++ GtkTreePath *path; ++ ++ path = gtk_tree_row_reference_get_path (reference); ++ have_iter = gtk_tree_model_get_iter (model, &iter, path); ++ gtk_tree_path_free (path); ++ } ++ ++ if (!have_iter) ++ have_iter = gtk_tree_selection_get_selected ( ++ selection, NULL, &iter); ++ ++ if (!have_iter) ++ return NULL; ++ ++ gtk_tree_model_get (model, &iter, COLUMN_SOURCE, &source, -1); ++ ++ extension_name = e_source_selector_get_extension_name (selector); ++ ++ if (!e_source_has_extension (source, extension_name)) { ++ g_object_unref (source); ++ return NULL; ++ } ++ ++ return source; ++} ++ ++/** ++ * e_source_selector_set_primary_selection: ++ * @selector: an #ESourceSelector widget ++ * @source: an #ESource to select ++ * ++ * Highlights @source in @selector. The highlighted #ESource is called ++ * the primary selection. ++ * ++ * Do not confuse this function with e_source_selector_select_source(), ++ * which activates the check box next to an #ESource's display name in ++ * @selector. This function does not alter the check box. ++ **/ ++void ++e_source_selector_set_primary_selection (ESourceSelector *selector, ++ ESource *source) ++{ ++ GHashTable *source_index; ++ GtkTreeRowReference *reference; ++ GtkTreeSelection *selection; ++ GtkTreeView *tree_view; ++ GtkTreePath *child_path; ++ GtkTreePath *parent_path; ++ const gchar *extension_name; ++ ++ g_return_if_fail (E_IS_SOURCE_SELECTOR (selector)); ++ g_return_if_fail (E_IS_SOURCE (source)); ++ ++ tree_view = GTK_TREE_VIEW (selector); ++ selection = gtk_tree_view_get_selection (tree_view); ++ ++ source_index = selector->priv->source_index; ++ reference = g_hash_table_lookup (source_index, source); ++ ++ /* XXX Maybe we should return a success/fail boolean? */ ++ if (!gtk_tree_row_reference_valid (reference)) ++ return; ++ ++ extension_name = e_source_selector_get_extension_name (selector); ++ ++ /* Return silently if attempting to select a parent node ++ * lacking the expected extension (e.g. On This Computer). */ ++ if (!e_source_has_extension (source, extension_name)) ++ return; ++ ++ /* We block the signal because this all needs to be atomic */ ++ g_signal_handlers_block_matched ( ++ selection, G_SIGNAL_MATCH_FUNC, ++ 0, 0, NULL, selection_changed_callback, NULL); ++ gtk_tree_selection_unselect_all (selection); ++ g_signal_handlers_unblock_matched ( ++ selection, G_SIGNAL_MATCH_FUNC, ++ 0, 0, NULL, selection_changed_callback, NULL); ++ ++ clear_saved_primary_selection (selector); ++ ++ child_path = gtk_tree_row_reference_get_path (reference); ++ ++ parent_path = gtk_tree_path_copy (child_path); ++ gtk_tree_path_up (parent_path); ++ ++ if (gtk_tree_view_row_expanded (tree_view, parent_path)) { ++ gtk_tree_selection_select_path (selection, child_path); ++ } else { ++ selector->priv->saved_primary_selection = ++ gtk_tree_row_reference_copy (reference); ++ g_signal_emit (selector, signals[PRIMARY_SELECTION_CHANGED], 0); ++ g_object_notify (G_OBJECT (selector), "primary-selection"); ++ } ++ ++ gtk_tree_path_free (child_path); ++ gtk_tree_path_free (parent_path); ++} ++ ++/** ++ * e_source_selector_ref_source_by_path: ++ * @selector: an #ESourceSelector ++ * @path: a #GtkTreePath ++ * ++ * Returns the #ESource object at @path, or %NULL if @path is invalid. ++ * ++ * The returned #ESource is referenced for thread-safety and must be ++ * unreferenced with g_object_unref() when finished with it. ++ * ++ * Returns: the #ESource object at @path, or %NULL ++ * ++ * Since: 3.6 ++ **/ ++ESource * ++e_source_selector_ref_source_by_path (ESourceSelector *selector, ++ GtkTreePath *path) ++{ ++ ESource *source = NULL; ++ GtkTreeModel *model; ++ GtkTreeIter iter; ++ ++ g_return_val_if_fail (E_IS_SOURCE_SELECTOR (selector), NULL); ++ g_return_val_if_fail (path != NULL, NULL); ++ ++ model = gtk_tree_view_get_model (GTK_TREE_VIEW (selector)); ++ ++ if (gtk_tree_model_get_iter (model, &iter, path)) ++ gtk_tree_model_get (model, &iter, COLUMN_SOURCE, &source, -1); ++ ++ return source; ++} ++ ++/** ++ * e_source_selector_queue_write: ++ * @selector: an #ESourceSelecetor ++ * @source: an #ESource with changes to be written ++ * ++ * Queues a main loop idle callback to write changes to @source back to ++ * the D-Bus registry service. ++ * ++ * Since: 3.6 ++ **/ ++void ++e_source_selector_queue_write (ESourceSelector *selector, ++ ESource *source) ++{ ++ GSource *idle_source; ++ GHashTable *pending_writes; ++ GMainContext *main_context; ++ AsyncContext *async_context; ++ ++ g_return_if_fail (E_IS_SOURCE_SELECTOR (selector)); ++ g_return_if_fail (E_IS_SOURCE (source)); ++ ++ main_context = selector->priv->main_context; ++ pending_writes = selector->priv->pending_writes; ++ ++ idle_source = g_hash_table_lookup (pending_writes, source); ++ if (idle_source != NULL && !g_source_is_destroyed (idle_source)) ++ return; ++ ++ async_context = g_slice_new0 (AsyncContext); ++ async_context->selector = g_object_ref (selector); ++ async_context->source = g_object_ref (source); ++ ++ /* Set a higher priority so this idle source runs before our ++ * source_selector_cancel_write() signal handler, which will ++ * cancel this idle source. Cancellation is the right thing ++ * to do when receiving changes from OTHER registry clients, ++ * but we don't want to cancel our own changes. ++ * ++ * XXX This might be an argument for using etags. ++ */ ++ idle_source = g_idle_source_new (); ++ g_hash_table_insert ( ++ pending_writes, ++ g_object_ref (source), ++ g_source_ref (idle_source)); ++ g_source_set_callback ( ++ idle_source, ++ source_selector_write_idle_cb, ++ async_context, ++ (GDestroyNotify) async_context_free); ++ g_source_set_priority (idle_source, G_PRIORITY_HIGH_IDLE); ++ g_source_attach (idle_source, main_context); ++ g_source_unref (idle_source); ++} ++ +diff --git a/src/event-factories/e-source-selector.h b/src/event-factories/e-source-selector.h +new file mode 100644 +index 0000000..b6d3770 +--- /dev/null ++++ b/src/event-factories/e-source-selector.h +@@ -0,0 +1,137 @@ ++/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ ++/* e-source-selector.h ++ * ++ * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser 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 Lesser General Public ++ * License along with this program; if not, write to the ++ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ * Boston, MA 02110-1301, USA. ++ * ++ * Author: Ettore Perazzoli ++ */ ++ ++#ifndef E_SOURCE_SELECTOR_H ++#define E_SOURCE_SELECTOR_H ++ ++#include ++#include ++ ++/* Standard GObject macros */ ++#define E_TYPE_SOURCE_SELECTOR \ ++ (e_source_selector_get_type ()) ++#define E_SOURCE_SELECTOR(obj) \ ++ (G_TYPE_CHECK_INSTANCE_CAST \ ++ ((obj), E_TYPE_SOURCE_SELECTOR, ESourceSelector)) ++#define E_SOURCE_SELECTOR_CLASS(cls) \ ++ (G_TYPE_CHECK_CLASS_CAST \ ++ ((cls), E_TYPE_SOURCE_SELECTOR, ESourceSelectorClass)) ++#define E_IS_SOURCE_SELECTOR(obj) \ ++ (G_TYPE_CHECK_INSTANCE_TYPE \ ++ ((obj), E_TYPE_SOURCE_SELECTOR)) ++#define E_IS_SOURCE_SELECTOR_CLASS(cls) \ ++ (G_TYPE_CHECK_CLASS_TYPE \ ++ ((cls), E_TYPE_SOURCE_SELECTOR)) ++#define E_SOURCE_SELECTOR_GET_CLASS(obj) \ ++ (G_TYPE_INSTANCE_GET_CLASS \ ++ ((obj), E_TYPE_SOURCE_SELECTOR, ESourceSelectorClass)) ++ ++G_BEGIN_DECLS ++ ++typedef struct _ESourceSelector ESourceSelector; ++typedef struct _ESourceSelectorClass ESourceSelectorClass; ++typedef struct _ESourceSelectorPrivate ESourceSelectorPrivate; ++ ++struct _ESourceSelector { ++ GtkTreeView parent; ++ ESourceSelectorPrivate *priv; ++}; ++ ++struct _ESourceSelectorClass { ++ GtkTreeViewClass parent_class; ++ ++ /* Methods */ ++ gboolean (*get_source_selected) (ESourceSelector *selector, ++ ESource *source); ++ void (*set_source_selected) (ESourceSelector *selector, ++ ESource *source, ++ gboolean selected); ++ ++ /* Signals */ ++ void (*selection_changed) (ESourceSelector *selector); ++ void (*primary_selection_changed) ++ (ESourceSelector *selector); ++ gboolean (*popup_event) (ESourceSelector *selector, ++ ESource *primary, ++ GdkEventButton *event); ++ gboolean (*data_dropped) (ESourceSelector *selector, ++ GtkSelectionData *data, ++ ESource *destination, ++ GdkDragAction action, ++ guint target_info); ++ ++ gpointer padding1; ++ gpointer padding2; ++ gpointer padding3; ++}; ++ ++GType e_source_selector_get_type (void); ++GtkWidget * e_source_selector_new (ESourceRegistry *registry, ++ const gchar *extension_name); ++ESourceRegistry * ++ e_source_selector_get_registry (ESourceSelector *selector); ++const gchar * e_source_selector_get_extension_name ++ (ESourceSelector *selector); ++gboolean e_source_selector_get_show_colors ++ (ESourceSelector *selector); ++void e_source_selector_set_show_colors ++ (ESourceSelector *selector, ++ gboolean show_colors); ++gboolean e_source_selector_get_show_toggles ++ (ESourceSelector *selector); ++void e_source_selector_set_show_toggles ++ (ESourceSelector *selector, ++ gboolean show_toggles); ++void e_source_selector_select_source (ESourceSelector *selector, ++ ESource *source); ++void e_source_selector_unselect_source ++ (ESourceSelector *selector, ++ ESource *source); ++void e_source_selector_select_exclusive ++ (ESourceSelector *selector, ++ ESource *source); ++gboolean e_source_selector_source_is_selected ++ (ESourceSelector *selector, ++ ESource *source); ++GSList * e_source_selector_get_selection (ESourceSelector *selector); ++void e_source_selector_free_selection ++ (GSList *list); ++void e_source_selector_set_select_new ++ (ESourceSelector *selector, ++ gboolean state); ++void e_source_selector_edit_primary_selection ++ (ESourceSelector *selector); ++ESource * e_source_selector_ref_primary_selection ++ (ESourceSelector *selector); ++void e_source_selector_set_primary_selection ++ (ESourceSelector *selector, ++ ESource *source); ++ESource * e_source_selector_ref_source_by_path ++ (ESourceSelector *selector, ++ GtkTreePath *path); ++void e_source_selector_queue_write (ESourceSelector *selector, ++ ESource *source); ++ ++G_END_DECLS ++ ++#endif /* E_SOURCE_SELECTOR_H */ +-- +cgit v0.9.1 diff --git a/community/apvlv/PKGBUILD b/community/apvlv/PKGBUILD index a0bca90b3..065bf30fa 100644 --- a/community/apvlv/PKGBUILD +++ b/community/apvlv/PKGBUILD @@ -1,23 +1,28 @@ -# $Id: PKGBUILD 79519 2012-11-06 16:27:50Z bpiotrowski $ -# Maintainer: Bartłomiej Piotrowski +# $Id: PKGBUILD 88809 2013-04-22 20:09:44Z jsteel $ +# Maintainer: Jonathan Steel +# Contributor: Bartłomiej Piotrowski # Contributor: Brad Fanella # Contributor: Stefan Husmann # Contributor: tocer.deng pkgname=apvlv pkgver=0.1.4.20121023 -pkgrel=1 -pkgdesc='A PDF Viewer which behaves like Vim' +pkgrel=3 +pkgdesc='A PDF Viewer, which behaves like Vim' arch=('i686' 'x86_64') url="http://naihe2010.github.com/apvlv/" license=('GPL') -depends=('gtk2' 'cairo' 'poppler-glib' 'djvulibre') +depends=('gtk2' 'cairo' 'poppler-glib' 'djvulibre' 'desktop-file-utils') makedepends=('cmake' 'libwebkit') -source=(ftp://ftp.archlinux.org/other/community/$pkgname/$pkgname-$pkgver.tar.xz) -md5sums=('f222fc4b09b15358eb4e7f996ba810d6') +install=$pkgname.install +source=(ftp://ftp.archlinux.org/other/community/$pkgname/$pkgname-$pkgver.tar.xz + $pkgname.desktop) +backup=(etc/apvlvrc) +md5sums=('f222fc4b09b15358eb4e7f996ba810d6' + '54478fecb54f36d1c44d8fdc233ddbac') build() { - cd $srcdir/$pkgname-$pkgver + cd "$srcdir"/$pkgname-$pkgver mkdir -p build cd build @@ -25,11 +30,15 @@ build() { cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DAPVLV_WITH_UMD=no .. + make } package() { - cd $srcdir/$pkgname-$pkgver/build + cd "$srcdir"/$pkgname-$pkgver/build + + make DESTDIR="$pkgdir"/ install - make DESTDIR=$pkgdir/ install + install -Dm644 "$srcdir"/$pkgname.desktop \ + "$pkgdir"/usr/share/applications/$pkgname.desktop } diff --git a/community/apvlv/apvlv.desktop b/community/apvlv/apvlv.desktop new file mode 100644 index 000000000..2f6ebd398 --- /dev/null +++ b/community/apvlv/apvlv.desktop @@ -0,0 +1,17 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=apvlv +Comment=A minimalistic document viewer +Comment[de]=Ein minimalistischer Dokumenten-Betrachter +Comment[fr]=Un visionneur de document minimaliste +Comment[ru]=Минималистичный просмотрщик документов +Comment[tr]=Minimalist bir belge görüntüleyicisi +Comment[es_CL]=Un visor de documentos minimalista +Comment[uk_UA]=Легкий переглядач документів +Comment[it]=Un visualizzatore di documenti minimalista +Comment[pl]=Minimalistyczna przeglądarka dokumentów +Exec=apvlv %f +Terminal=false +Categories=Office;Viewer; +MimeType=application/pdf;application/postscript;application/eps;application/x-eps;image/eps;image/x-eps;image/vnd.djvu; diff --git a/community/apvlv/apvlv.install b/community/apvlv/apvlv.install new file mode 100644 index 000000000..5384f9c85 --- /dev/null +++ b/community/apvlv/apvlv.install @@ -0,0 +1,7 @@ +post_install() { + update-desktop-database -q +} + +post_remove() { + post_install +} diff --git a/community/audit/PKGBUILD b/community/audit/PKGBUILD index 11d84fd02..b2160ddb0 100644 --- a/community/audit/PKGBUILD +++ b/community/audit/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 82354 2013-01-16 08:38:43Z mtorromeo $ +# $Id: PKGBUILD 88732 2013-04-22 07:51:09Z mtorromeo $ # Maintainer: Massimiliano Torromeo # Contributor: Connor Behan # Contributor: henning mueller pkgname=audit -pkgver=2.2.2 +pkgver=2.2.3 pkgrel=1 pkgdesc='User space utilities for storing and searching the audit records generated by the audit subsystem in the Linux kernel.' url=http://people.redhat.com/sgrubb/$pkgname @@ -59,7 +59,7 @@ package() { sed -ri 's| /sbin| /usr/sbin|' etc/audit/*.conf etc/audisp/plugins.d/*.conf } -sha256sums=('8bc2b45a5f08f5df6cebcd5543f24b7e68e28b64da4b23f08de2c6616384302b' +sha256sums=('2fc8f97020121593f516dc011ef61f39043c4cea9b2cb9ab3849bf9e41dedf02' '1e374ff164667b6a11f84c825a39996b449dc712d573996907cd47f063bf0dd5' '3c7179f40216b594675f26bb73884406c8ac91577b609dd1ab9837f889954007' '6adadb405bebe99bb6a50e80e7c1a356996626e135d566283448fe4019fff3a4') diff --git a/community/cinnamon-control-center/PKGBUILD b/community/cinnamon-control-center/PKGBUILD index d187b373f..c303de52b 100644 --- a/community/cinnamon-control-center/PKGBUILD +++ b/community/cinnamon-control-center/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 88411 2013-04-17 07:47:53Z faidoc $ +# $Id: PKGBUILD 88800 2013-04-22 12:29:37Z bgyorgy $ # Maintainer: Alexandre Filgueira @@ -6,23 +6,33 @@ pkgname=cinnamon-control-center pkgver=1.7.3 -pkgrel=1 +pkgrel=3 pkgdesc="The Control Center for Cinnamon" arch=('i686' 'x86_64') -depends=('cinnamon' 'cheese' 'libgtop' 'network-manager-applet') +depends=('cinnamon' 'cheese' 'libgnomekbd' 'libgtop' 'network-manager-applet') optdepends=('mesa-demos: provides glxinfo for graphics information' 'gnome-color-manager: for color management tasks') -makedepends=('intltool' 'gnome-common' 'libgnomekbd') +makedepends=('intltool' 'gnome-common') url="https://github.com/linuxmint/cinnamon-control-center" install=cinnamon-control-center.install license=('GPL') options=('!libtool' '!emptydirs') -source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/cinnamon-control-center/archive/$pkgver.tar.gz") -sha256sums=('44a4484238c2b9e9060d062028438df589fc29c9e3da45edad068198a990c8be') +source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/cinnamon-control-center/archive/$pkgver.tar.gz" + "gnomerrlabeler.patch" + "idle-delay.patch") +sha256sums=('44a4484238c2b9e9060d062028438df589fc29c9e3da45edad068198a990c8be' + '826de61fa60349a99c6895f2ffb0ea1c7f71031b17dd80bb245e3834b30b6ff6' + '42ea92628dc234d65e582592a66c0011d5bb2c2eac14854a06f7a9dc923c8d67') build() { cd $pkgname-$pkgver + # Build fix for GNOME 3.8 + patch -Np1 -i "$srcdir/gnomerrlabeler.patch" + + # Runtime fix for GNOME 3.8 + patch -Np1 -i "$srcdir/idle-delay.patch" + autoreconf -fi ./configure --prefix=/usr --sysconfdir=/etc \ @@ -48,9 +58,6 @@ package() { make -C shell DESTDIR="$pkgdir" uninstall make -C shell DESTDIR="$pkgdir" install-libLTLIBRARIES - # Remove Region panel, because it's not compatible with gnome-settings-daemon 3.6 - make -C panels/region DESTDIR="$pkgdir" uninstall - # Remove broken desktop files rm -R "$pkgdir/usr/share/applications" rm -R "$pkgdir/etc" diff --git a/community/cinnamon-control-center/gnomerrlabeler.patch b/community/cinnamon-control-center/gnomerrlabeler.patch new file mode 100644 index 000000000..b763078ba --- /dev/null +++ b/community/cinnamon-control-center/gnomerrlabeler.patch @@ -0,0 +1,766 @@ +diff -Naur cinnamon-control-center-1.7.3.orig/panels/display/cc-display-panel.c cinnamon-control-center-1.7.3/panels/display/cc-display-panel.c +--- cinnamon-control-center-1.7.3.orig/panels/display/cc-display-panel.c 2013-04-15 16:04:38.000000000 +0200 ++++ cinnamon-control-center-1.7.3/panels/display/cc-display-panel.c 2013-04-22 03:46:53.499944701 +0200 +@@ -31,12 +31,13 @@ + #define GNOME_DESKTOP_USE_UNSTABLE_API + #include + #include +-#include + #include + #include + #include + #include + ++#include "cc-rr-labeler.h" ++ + CC_PANEL_REGISTER (CcDisplayPanel, cc_display_panel) + + #define DISPLAY_PANEL_PRIVATE(o) \ +@@ -75,7 +76,7 @@ + { + GnomeRRScreen *screen; + GnomeRRConfig *current_configuration; +- GnomeRRLabeler *labeler; ++ CcRRLabeler *labeler; + GnomeRROutputInfo *current_output; + + GSettings *clock_settings; +@@ -200,7 +201,7 @@ + g_signal_handler_disconnect (GTK_WIDGET (self), self->priv->focus_id_hide); + } + +- gnome_rr_labeler_hide (self->priv->labeler); ++ cc_rr_labeler_hide (self->priv->labeler); + g_object_unref (self->priv->labeler); + + G_OBJECT_CLASS (cc_display_panel_parent_class)->finalize (object); +@@ -293,16 +294,16 @@ + self->priv->current_output = NULL; + + if (self->priv->labeler) { +- gnome_rr_labeler_hide (self->priv->labeler); ++ cc_rr_labeler_hide (self->priv->labeler); + g_object_unref (self->priv->labeler); + } + +- self->priv->labeler = gnome_rr_labeler_new (self->priv->current_configuration); ++ self->priv->labeler = cc_rr_labeler_new (self->priv->current_configuration); + + if (cc_panel_get_shell (CC_PANEL (self)) == NULL) +- gnome_rr_labeler_hide (self->priv->labeler); ++ cc_rr_labeler_hide (self->priv->labeler); + else +- gnome_rr_labeler_show (self->priv->labeler); ++ cc_rr_labeler_show (self->priv->labeler); + + select_current_output_from_dialog_position (self); + +@@ -2594,9 +2595,9 @@ + if (self->priv->labeler == NULL) + return; + if (gtk_window_has_toplevel_focus (window)) +- gnome_rr_labeler_show (self->priv->labeler); ++ cc_rr_labeler_show (self->priv->labeler); + else +- gnome_rr_labeler_hide (self->priv->labeler); ++ cc_rr_labeler_hide (self->priv->labeler); + } + + static void +@@ -2606,9 +2607,9 @@ + if (CC_DISPLAY_PANEL(widget)->priv->labeler == NULL) + return; + if (gtk_widget_get_visible (widget)) { +- gnome_rr_labeler_show (CC_DISPLAY_PANEL (widget)->priv->labeler); ++ cc_rr_labeler_show (CC_DISPLAY_PANEL (widget)->priv->labeler); + } else { +- gnome_rr_labeler_hide (CC_DISPLAY_PANEL (widget)->priv->labeler); ++ cc_rr_labeler_hide (CC_DISPLAY_PANEL (widget)->priv->labeler); + } + } + +diff -Naur cinnamon-control-center-1.7.3.orig/panels/display/cc-rr-labeler.c cinnamon-control-center-1.7.3/panels/display/cc-rr-labeler.c +--- cinnamon-control-center-1.7.3.orig/panels/display/cc-rr-labeler.c 1970-01-01 01:00:00.000000000 +0100 ++++ cinnamon-control-center-1.7.3/panels/display/cc-rr-labeler.c 2013-04-22 03:42:12.379900127 +0200 +@@ -0,0 +1,601 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- ++ * ++ * cc-rr-labeler.c - Utility to label monitors to identify them ++ * while they are being configured. ++ * ++ * Copyright 2008, Novell, Inc. ++ * ++ * This file is part of the Gnome Library. ++ * ++ * The Gnome Library 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. ++ * ++ * The Gnome Library 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. ++ * ++ * You should have received a copy of the GNU Library General Public ++ * License along with the Gnome Library; see the file COPYING.LIB. If not, ++ * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ * Boston, MA 02110-1301, USA. ++ * ++ * Author: Federico Mena-Quintero ++ */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "cc-rr-labeler.h" ++ ++struct _CcRRLabelerPrivate { ++ GnomeRRConfig *config; ++ ++ int num_outputs; ++ ++ GdkRGBA *palette; ++ GtkWidget **windows; ++ ++ GdkScreen *screen; ++ Atom workarea_atom; ++}; ++ ++enum { ++ PROP_0, ++ PROP_CONFIG, ++ PROP_LAST ++}; ++ ++G_DEFINE_TYPE (CcRRLabeler, cc_rr_labeler, G_TYPE_OBJECT); ++ ++static void cc_rr_labeler_finalize (GObject *object); ++static void setup_from_config (CcRRLabeler *labeler); ++ ++static GdkFilterReturn ++screen_xevent_filter (GdkXEvent *xevent, ++ GdkEvent *event, ++ CcRRLabeler *labeler) ++{ ++ XEvent *xev; ++ ++ xev = (XEvent *) xevent; ++ ++ if (xev->type == PropertyNotify && ++ xev->xproperty.atom == labeler->priv->workarea_atom) { ++ /* update label positions */ ++ if (labeler->priv->windows != NULL) { ++ cc_rr_labeler_hide (labeler); ++ cc_rr_labeler_show (labeler); ++ } ++ } ++ ++ return GDK_FILTER_CONTINUE; ++} ++ ++static void ++cc_rr_labeler_init (CcRRLabeler *labeler) ++{ ++ GdkWindow *gdkwindow; ++ ++ labeler->priv = G_TYPE_INSTANCE_GET_PRIVATE (labeler, GNOME_TYPE_RR_LABELER, CcRRLabelerPrivate); ++ ++ labeler->priv->workarea_atom = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), ++ "_NET_WORKAREA", ++ True); ++ ++ labeler->priv->screen = gdk_screen_get_default (); ++ /* code is not really designed to handle multiple screens so *shrug* */ ++ gdkwindow = gdk_screen_get_root_window (labeler->priv->screen); ++ gdk_window_add_filter (gdkwindow, (GdkFilterFunc) screen_xevent_filter, labeler); ++ gdk_window_set_events (gdkwindow, gdk_window_get_events (gdkwindow) | GDK_PROPERTY_CHANGE_MASK); ++} ++ ++static void ++cc_rr_labeler_set_property (GObject *gobject, guint property_id, const GValue *value, GParamSpec *param_spec) ++{ ++ CcRRLabeler *self = CC_RR_LABELER (gobject); ++ ++ switch (property_id) { ++ case PROP_CONFIG: ++ self->priv->config = GNOME_RR_CONFIG (g_value_dup_object (value)); ++ return; ++ default: ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, param_spec); ++ } ++} ++ ++static GObject * ++cc_rr_labeler_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties) ++{ ++ CcRRLabeler *self = (CcRRLabeler*) G_OBJECT_CLASS (cc_rr_labeler_parent_class)->constructor (type, n_construct_properties, construct_properties); ++ ++ setup_from_config (self); ++ ++ return (GObject*) self; ++} ++ ++static void ++cc_rr_labeler_class_init (CcRRLabelerClass *klass) ++{ ++ GObjectClass *object_class; ++ ++ g_type_class_add_private (klass, sizeof (CcRRLabelerPrivate)); ++ ++ object_class = (GObjectClass *) klass; ++ ++ object_class->set_property = cc_rr_labeler_set_property; ++ object_class->finalize = cc_rr_labeler_finalize; ++ object_class->constructor = cc_rr_labeler_constructor; ++ ++ g_object_class_install_property (object_class, PROP_CONFIG, g_param_spec_object ("config", ++ "Configuration", ++ "RandR configuration to label", ++ GNOME_TYPE_RR_CONFIG, ++ G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | ++ G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); ++} ++ ++static void ++cc_rr_labeler_finalize (GObject *object) ++{ ++ CcRRLabeler *labeler; ++ GdkWindow *gdkwindow; ++ ++ labeler = CC_RR_LABELER (object); ++ ++ gdkwindow = gdk_screen_get_root_window (labeler->priv->screen); ++ gdk_window_remove_filter (gdkwindow, (GdkFilterFunc) screen_xevent_filter, labeler); ++ ++ if (labeler->priv->config != NULL) { ++ g_object_unref (labeler->priv->config); ++ } ++ ++ if (labeler->priv->windows != NULL) { ++ cc_rr_labeler_hide (labeler); ++ g_free (labeler->priv->windows); ++ } ++ ++ g_free (labeler->priv->palette); ++ ++ G_OBJECT_CLASS (cc_rr_labeler_parent_class)->finalize (object); ++} ++ ++static int ++count_outputs (GnomeRRConfig *config) ++{ ++ int i; ++ GnomeRROutputInfo **outputs = gnome_rr_config_get_outputs (config); ++ ++ for (i = 0; outputs[i] != NULL; i++) ++ ; ++ ++ return i; ++} ++ ++static void ++make_palette (CcRRLabeler *labeler) ++{ ++ /* The idea is that we go around an hue color wheel. We want to start ++ * at red, go around to green/etc. and stop at blue --- because magenta ++ * is evil. Eeeeek, no magenta, please! ++ * ++ * Purple would be nice, though. Remember that we are watered down ++ * (i.e. low saturation), so that would be like Like berries with cream. ++ * Mmmmm, berries. ++ */ ++ double start_hue; ++ double end_hue; ++ int i; ++ ++ g_assert (labeler->priv->num_outputs > 0); ++ ++ labeler->priv->palette = g_new (GdkRGBA, labeler->priv->num_outputs); ++ ++ start_hue = 0.0; /* red */ ++ end_hue = 2.0/3; /* blue */ ++ ++ for (i = 0; i < labeler->priv->num_outputs; i++) { ++ double h, s, v; ++ double r, g, b; ++ ++ h = start_hue + (end_hue - start_hue) / labeler->priv->num_outputs * i; ++ s = 1.0 / 3; ++ v = 1.0; ++ ++ gtk_hsv_to_rgb (h, s, v, &r, &g, &b); ++ ++ labeler->priv->palette[i].red = r; ++ labeler->priv->palette[i].green = g; ++ labeler->priv->palette[i].blue = b; ++ labeler->priv->palette[i].alpha = 1.0; ++ } ++} ++ ++static void ++rounded_rectangle (cairo_t *cr, ++ gint x, ++ gint y, ++ gint width, ++ gint height, ++ gint x_radius, ++ gint y_radius) ++{ ++ gint x1, x2; ++ gint y1, y2; ++ gint xr1, xr2; ++ gint yr1, yr2; ++ ++ x1 = x; ++ x2 = x1 + width; ++ y1 = y; ++ y2 = y1 + height; ++ ++ x_radius = MIN (x_radius, width / 2.0); ++ y_radius = MIN (y_radius, width / 2.0); ++ ++ xr1 = x_radius; ++ xr2 = x_radius / 2.0; ++ yr1 = y_radius; ++ yr2 = y_radius / 2.0; ++ ++ cairo_move_to (cr, x1 + xr1, y1); ++ cairo_line_to (cr, x2 - xr1, y1); ++ cairo_curve_to (cr, x2 - xr2, y1, x2, y1 + yr2, x2, y1 + yr1); ++ cairo_line_to (cr, x2, y2 - yr1); ++ cairo_curve_to (cr, x2, y2 - yr2, x2 - xr2, y2, x2 - xr1, y2); ++ cairo_line_to (cr, x1 + xr1, y2); ++ cairo_curve_to (cr, x1 + xr2, y2, x1, y2 - yr2, x1, y2 - yr1); ++ cairo_line_to (cr, x1, y1 + yr1); ++ cairo_curve_to (cr, x1, y1 + yr2, x1 + xr2, y1, x1 + xr1, y1); ++ cairo_close_path (cr); ++} ++ ++#define LABEL_WINDOW_EDGE_THICKNESS 2 ++#define LABEL_WINDOW_PADDING 12 ++/* Look for panel-corner in: ++ * http://git.gnome.org/browse/gnome-shell/tree/data/theme/gnome-shell.css ++ * to match the corner radius */ ++#define LABEL_CORNER_RADIUS 6 + LABEL_WINDOW_EDGE_THICKNESS ++ ++static void ++label_draw_background_and_frame (GtkWidget *widget, cairo_t *cr, gboolean for_shape) ++{ ++ GdkRGBA shape_color = { 0, 0, 0, 1 }; ++ GdkRGBA *rgba; ++ GtkAllocation allocation; ++ ++ rgba = g_object_get_data (G_OBJECT (widget), "rgba"); ++ gtk_widget_get_allocation (widget, &allocation); ++ ++ cairo_save (cr); ++ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); ++ ++ /* edge outline */ ++ if (for_shape) ++ gdk_cairo_set_source_rgba (cr, &shape_color); ++ else ++ cairo_set_source_rgba (cr, 0, 0, 0, 0.5); ++ ++ rounded_rectangle (cr, ++ LABEL_WINDOW_EDGE_THICKNESS / 2.0, ++ LABEL_WINDOW_EDGE_THICKNESS / 2.0, ++ allocation.width - LABEL_WINDOW_EDGE_THICKNESS, ++ allocation.height - LABEL_WINDOW_EDGE_THICKNESS, ++ LABEL_CORNER_RADIUS, LABEL_CORNER_RADIUS); ++ cairo_set_line_width (cr, LABEL_WINDOW_EDGE_THICKNESS); ++ cairo_stroke (cr); ++ ++ /* fill */ ++ if (for_shape) { ++ gdk_cairo_set_source_rgba (cr, &shape_color); ++ } else { ++ rgba->alpha = 0.75; ++ gdk_cairo_set_source_rgba (cr, rgba); ++ } ++ ++ rounded_rectangle (cr, ++ LABEL_WINDOW_EDGE_THICKNESS, ++ LABEL_WINDOW_EDGE_THICKNESS, ++ allocation.width - LABEL_WINDOW_EDGE_THICKNESS * 2, ++ allocation.height - LABEL_WINDOW_EDGE_THICKNESS * 2, ++ LABEL_CORNER_RADIUS - LABEL_WINDOW_EDGE_THICKNESS / 2.0, ++ LABEL_CORNER_RADIUS - LABEL_WINDOW_EDGE_THICKNESS / 2.0); ++ cairo_fill (cr); ++ ++ cairo_restore (cr); ++} ++ ++static void ++maybe_update_shape (GtkWidget *widget) ++{ ++ cairo_t *cr; ++ cairo_surface_t *surface; ++ cairo_region_t *region; ++ ++ /* fallback to XShape only for non-composited clients */ ++ if (gtk_widget_is_composited (widget)) { ++ gtk_widget_shape_combine_region (widget, NULL); ++ return; ++ } ++ ++ surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget), ++ CAIRO_CONTENT_COLOR_ALPHA, ++ gtk_widget_get_allocated_width (widget), ++ gtk_widget_get_allocated_height (widget)); ++ ++ cr = cairo_create (surface); ++ label_draw_background_and_frame (widget, cr, TRUE); ++ cairo_destroy (cr); ++ ++ region = gdk_cairo_region_create_from_surface (surface); ++ gtk_widget_shape_combine_region (widget, region); ++ ++ cairo_surface_destroy (surface); ++ cairo_region_destroy (region); ++} ++ ++static gboolean ++label_window_draw_event_cb (GtkWidget *widget, cairo_t *cr, gpointer data) ++{ ++ if (gtk_widget_is_composited (widget)) { ++ /* clear any content */ ++ cairo_save (cr); ++ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); ++ cairo_set_source_rgba (cr, 0, 0, 0, 0); ++ cairo_paint (cr); ++ cairo_restore (cr); ++ } ++ ++ maybe_update_shape (widget); ++ label_draw_background_and_frame (widget, cr, FALSE); ++ ++ return FALSE; ++} ++ ++static void ++position_window (CcRRLabeler *labeler, ++ GtkWidget *window, ++ int x, ++ int y) ++{ ++ GdkRectangle workarea; ++ GdkRectangle monitor; ++ int monitor_num; ++ ++ monitor_num = gdk_screen_get_monitor_at_point (labeler->priv->screen, x, y); ++ gdk_screen_get_monitor_workarea (labeler->priv->screen, monitor_num, &workarea); ++ gdk_screen_get_monitor_geometry (labeler->priv->screen, ++ monitor_num, ++ &monitor); ++ gdk_rectangle_intersect (&monitor, &workarea, &workarea); ++ ++ gtk_window_move (GTK_WINDOW (window), workarea.x, workarea.y); ++} ++ ++static void ++label_window_realize_cb (GtkWidget *widget) ++{ ++ cairo_region_t *region; ++ ++ /* make the whole window ignore events */ ++ region = cairo_region_create (); ++ gtk_widget_input_shape_combine_region (widget, region); ++ cairo_region_destroy (region); ++ ++ maybe_update_shape (widget); ++} ++ ++static void ++label_window_composited_changed_cb (GtkWidget *widget, CcRRLabeler *labeler) ++{ ++ if (gtk_widget_get_realized (widget)) ++ maybe_update_shape (widget); ++} ++ ++static GtkWidget * ++create_label_window (CcRRLabeler *labeler, GnomeRROutputInfo *output, GdkRGBA *rgba) ++{ ++ GtkWidget *window; ++ GtkWidget *widget; ++ char *str; ++ const char *display_name; ++ GdkRGBA black = { 0, 0, 0, 1.0 }; ++ int x, y; ++ GdkScreen *screen; ++ GdkVisual *visual; ++ ++ window = gtk_window_new (GTK_WINDOW_POPUP); ++ gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_TOOLTIP); ++ gtk_window_set_resizable (GTK_WINDOW (window), FALSE); ++ gtk_widget_set_app_paintable (window, TRUE); ++ screen = gtk_widget_get_screen (window); ++ visual = gdk_screen_get_rgba_visual (screen); ++ ++ if (visual != NULL) ++ gtk_widget_set_visual (window, visual); ++ ++ gtk_container_set_border_width (GTK_CONTAINER (window), LABEL_WINDOW_PADDING + LABEL_WINDOW_EDGE_THICKNESS); ++ ++ /* This is semi-dangerous. The color is part of the labeler->palette ++ * array. Note that in cc_rr_labeler_finalize(), we are careful to ++ * free the palette only after we free the windows. ++ */ ++ g_object_set_data (G_OBJECT (window), "rgba", rgba); ++ ++ g_signal_connect (window, "draw", ++ G_CALLBACK (label_window_draw_event_cb), labeler); ++ g_signal_connect (window, "realize", ++ G_CALLBACK (label_window_realize_cb), labeler); ++ g_signal_connect (window, "composited-changed", ++ G_CALLBACK (label_window_composited_changed_cb), labeler); ++ ++ if (gnome_rr_config_get_clone (labeler->priv->config)) { ++ /* Keep this string in sync with gnome-control-center/capplets/display/xrandr-capplet.c:get_display_name() */ ++ ++ /* Translators: this is the feature where what you see on your ++ * laptop's screen is the same as your external projector. ++ * Here, "Mirrored" is being used as an adjective. For example, ++ * the Spanish translation could be "Pantallas en Espejo". ++ */ ++ display_name = _("Mirrored Displays"); ++ } else ++ display_name = gnome_rr_output_info_get_display_name (output); ++ ++ str = g_strdup_printf ("%s", display_name); ++ widget = gtk_label_new (NULL); ++ gtk_label_set_markup (GTK_LABEL (widget), str); ++ g_free (str); ++ ++ /* Make the label explicitly black. We don't want it to follow the ++ * theme's colors, since the label is always shown against a light ++ * pastel background. See bgo#556050 ++ */ ++ gtk_widget_override_color (widget, ++ gtk_widget_get_state_flags (widget), ++ &black); ++ ++ gtk_container_add (GTK_CONTAINER (window), widget); ++ ++ /* Should we center this at the top edge of the monitor, instead of using the upper-left corner? */ ++ gnome_rr_output_info_get_geometry (output, &x, &y, NULL, NULL); ++ position_window (labeler, window, x, y); ++ ++ gtk_widget_show_all (window); ++ ++ return window; ++} ++ ++static void ++setup_from_config (CcRRLabeler *labeler) ++{ ++ labeler->priv->num_outputs = count_outputs (labeler->priv->config); ++ ++ make_palette (labeler); ++ ++ cc_rr_labeler_show (labeler); ++} ++ ++/** ++ * cc_rr_labeler_new: ++ * @config: Configuration of the screens to label ++ * ++ * Create a GUI element that will display colored labels on each connected monitor. ++ * This is useful when users are required to identify which monitor is which, e.g. for ++ * for configuring multiple monitors. ++ * The labels will be shown by default, use cc_rr_labeler_hide to hide them. ++ * ++ * Returns: A new #CcRRLabeler ++ */ ++CcRRLabeler * ++cc_rr_labeler_new (GnomeRRConfig *config) ++{ ++ g_return_val_if_fail (GNOME_IS_RR_CONFIG (config), NULL); ++ ++ return g_object_new (GNOME_TYPE_RR_LABELER, "config", config, NULL); ++} ++ ++/** ++ * cc_rr_labeler_show: ++ * @labeler: A #CcRRLabeler ++ * ++ * Show the labels. ++ */ ++void ++cc_rr_labeler_show (CcRRLabeler *labeler) ++{ ++ int i; ++ gboolean created_window_for_clone; ++ GnomeRROutputInfo **outputs; ++ ++ g_return_if_fail (GNOME_IS_RR_LABELER (labeler)); ++ ++ if (labeler->priv->windows != NULL) ++ return; ++ ++ labeler->priv->windows = g_new (GtkWidget *, labeler->priv->num_outputs); ++ ++ created_window_for_clone = FALSE; ++ ++ outputs = gnome_rr_config_get_outputs (labeler->priv->config); ++ ++ for (i = 0; i < labeler->priv->num_outputs; i++) { ++ if (!created_window_for_clone && gnome_rr_output_info_is_active (outputs[i])) { ++ labeler->priv->windows[i] = create_label_window (labeler, outputs[i], labeler->priv->palette + i); ++ ++ if (gnome_rr_config_get_clone (labeler->priv->config)) ++ created_window_for_clone = TRUE; ++ } else ++ labeler->priv->windows[i] = NULL; ++ } ++} ++ ++/** ++ * cc_rr_labeler_hide: ++ * @labeler: A #CcRRLabeler ++ * ++ * Hide ouput labels. ++ */ ++void ++cc_rr_labeler_hide (CcRRLabeler *labeler) ++{ ++ int i; ++ CcRRLabelerPrivate *priv; ++ ++ g_return_if_fail (GNOME_IS_RR_LABELER (labeler)); ++ ++ priv = labeler->priv; ++ ++ if (priv->windows == NULL) ++ return; ++ ++ for (i = 0; i < priv->num_outputs; i++) ++ if (priv->windows[i] != NULL) { ++ gtk_widget_destroy (priv->windows[i]); ++ priv->windows[i] = NULL; ++ } ++ g_free (priv->windows); ++ priv->windows = NULL; ++} ++ ++/** ++ * cc_rr_labeler_get_rgba_for_output: ++ * @labeler: A #CcRRLabeler ++ * @output: Output device (i.e. monitor) to query ++ * @rgba_out: (out): Color of selected monitor. ++ * ++ * Get the color used for the label on a given output (monitor). ++ */ ++void ++cc_rr_labeler_get_rgba_for_output (CcRRLabeler *labeler, GnomeRROutputInfo *output, GdkRGBA *rgba_out) ++{ ++ int i; ++ GnomeRROutputInfo **outputs; ++ ++ g_return_if_fail (GNOME_IS_RR_LABELER (labeler)); ++ g_return_if_fail (GNOME_IS_RR_OUTPUT_INFO (output)); ++ g_return_if_fail (rgba_out != NULL); ++ ++ outputs = gnome_rr_config_get_outputs (labeler->priv->config); ++ ++ for (i = 0; i < labeler->priv->num_outputs; i++) ++ if (outputs[i] == output) { ++ *rgba_out = labeler->priv->palette[i]; ++ return; ++ } ++ ++ g_warning ("trying to get the color for unknown GnomeOutputInfo %p; returning magenta!", output); ++ ++ rgba_out->red = 1.0; ++ rgba_out->green = 0; ++ rgba_out->blue = 1.0; ++ rgba_out->alpha = 1.0; ++} +diff -Naur cinnamon-control-center-1.7.3.orig/panels/display/cc-rr-labeler.h cinnamon-control-center-1.7.3/panels/display/cc-rr-labeler.h +--- cinnamon-control-center-1.7.3.orig/panels/display/cc-rr-labeler.h 1970-01-01 01:00:00.000000000 +0100 ++++ cinnamon-control-center-1.7.3/panels/display/cc-rr-labeler.h 2013-04-22 03:42:12.383233540 +0200 +@@ -0,0 +1,64 @@ ++/* gnome-rr-labeler.h - Utility to label monitors to identify them ++ * while they are being configured. ++ * ++ * Copyright 2008, Novell, Inc. ++ * ++ * This file is part of the Gnome Library. ++ * ++ * The Gnome Library 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. ++ * ++ * The Gnome Library 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. ++ * ++ * You should have received a copy of the GNU Library General Public ++ * License along with the Gnome Library; see the file COPYING.LIB. If not, ++ * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ * Boston, MA 02110-1301, USA. ++ * ++ * Author: Federico Mena-Quintero ++ */ ++ ++#ifndef CC_RR_LABELER_H ++#define CC_RR_LABELER_H ++ ++#define GNOME_DESKTOP_USE_UNSTABLE_API ++#include ++ ++#define GNOME_TYPE_RR_LABELER (cc_rr_labeler_get_type ()) ++#define CC_RR_LABELER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNOME_TYPE_RR_LABELER, CcRRLabeler)) ++#define CC_RR_LABELER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNOME_TYPE_RR_LABELER, CcRRLabelerClass)) ++#define GNOME_IS_RR_LABELER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNOME_TYPE_RR_LABELER)) ++#define GNOME_IS_RR_LABELER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_TYPE_RR_LABELER)) ++#define CC_RR_LABELER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNOME_TYPE_RR_LABELER, CcRRLabelerClass)) ++ ++typedef struct _CcRRLabeler CcRRLabeler; ++typedef struct _CcRRLabelerClass CcRRLabelerClass; ++typedef struct _CcRRLabelerPrivate CcRRLabelerPrivate; ++ ++struct _CcRRLabeler { ++ GObject parent; ++ ++ /*< private >*/ ++ CcRRLabelerPrivate *priv; ++}; ++ ++struct _CcRRLabelerClass { ++ GObjectClass parent_class; ++}; ++ ++GType cc_rr_labeler_get_type (void); ++ ++CcRRLabeler *cc_rr_labeler_new (GnomeRRConfig *config); ++ ++void cc_rr_labeler_show (CcRRLabeler *labeler); ++ ++void cc_rr_labeler_hide (CcRRLabeler *labeler); ++ ++void cc_rr_labeler_get_rgba_for_output (CcRRLabeler *labeler, GnomeRROutputInfo *output, GdkRGBA *rgba_out); ++ ++#endif +diff -Naur cinnamon-control-center-1.7.3.orig/panels/display/Makefile.am cinnamon-control-center-1.7.3/panels/display/Makefile.am +--- cinnamon-control-center-1.7.3.orig/panels/display/Makefile.am 2013-04-15 16:04:38.000000000 +0200 ++++ cinnamon-control-center-1.7.3/panels/display/Makefile.am 2013-04-22 03:42:12.376566715 +0200 +@@ -19,6 +19,8 @@ + display-module.c \ + cc-display-panel.c \ + cc-display-panel.h \ ++ cc-rr-labeler.c \ ++ cc-rr-labeler.h \ + scrollarea.c \ + scrollarea.h \ + $(MARSHALFILES) diff --git a/community/cinnamon-control-center/idle-delay.patch b/community/cinnamon-control-center/idle-delay.patch new file mode 100644 index 000000000..7434018f5 --- /dev/null +++ b/community/cinnamon-control-center/idle-delay.patch @@ -0,0 +1,71 @@ +diff -Naur cinnamon-control-center-1.7.3.orig/panels/power/cc-power-panel.c cinnamon-control-center-1.7.3/panels/power/cc-power-panel.c +--- cinnamon-control-center-1.7.3.orig/panels/power/cc-power-panel.c 2013-04-15 16:04:38.000000000 +0200 ++++ cinnamon-control-center-1.7.3/panels/power/cc-power-panel.c 2013-04-22 05:04:26.466092668 +0200 +@@ -1068,26 +1068,6 @@ + G_CALLBACK (combo_enum_changed_cb), + self); + +- value = g_settings_get_enum (self->priv->gsd_settings, "lid-close-ac-action"); +- widget = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, +- "combobox_lid_ac")); +- disable_unavailable_combo_items (self, GTK_COMBO_BOX (widget)); +- set_value_for_combo (GTK_COMBO_BOX (widget), value); +- g_object_set_data (G_OBJECT(widget), "_gsettings_key", "lid-close-ac-action"); +- g_signal_connect (widget, "changed", +- G_CALLBACK (combo_enum_changed_cb), +- self); +- +- value = g_settings_get_enum (self->priv->gsd_settings, "lid-close-battery-action"); +- widget = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, +- "combobox_lid_battery")); +- disable_unavailable_combo_items (self, GTK_COMBO_BOX (widget)); +- set_value_for_combo (GTK_COMBO_BOX (widget), value); +- g_object_set_data (G_OBJECT(widget), "_gsettings_key", "lid-close-battery-action"); +- g_signal_connect (widget, "changed", +- G_CALLBACK (combo_enum_changed_cb), +- self); +- + widget = WID (self->priv->builder, "vbox_power"); + gtk_widget_reparent (widget, (GtkWidget *) self); + +diff -Naur cinnamon-control-center-1.7.3.orig/panels/screen/cc-screen-panel.c cinnamon-control-center-1.7.3/panels/screen/cc-screen-panel.c +--- cinnamon-control-center-1.7.3.orig/panels/screen/cc-screen-panel.c 2013-04-15 16:04:38.000000000 +0200 ++++ cinnamon-control-center-1.7.3/panels/screen/cc-screen-panel.c 2013-04-22 14:15:28.440488342 +0200 +@@ -351,10 +351,6 @@ + 1, &value, + -1); + +- /* set both battery and ac keys */ +- g_settings_set_int (self->priv->gsd_settings, "sleep-display-ac", value); +- g_settings_set_int (self->priv->gsd_settings, "sleep-display-battery", value); +- + set_idle_delay_from_dpms (self, value); + } + +@@ -384,7 +380,7 @@ + { + GtkTreeIter iter; + GtkTreeModel *model; +- gint value; ++ guint value; + gint value_tmp, value_prev; + gboolean ret; + guint i; +@@ -399,7 +395,7 @@ + i = 0; + + /* try to make the UI match the AC setting */ +- value = g_settings_get_int (self->priv->gsd_settings, "sleep-display-ac"); ++ g_settings_get (self->priv->session_settings, "idle-delay", "u", &value); + do + { + gtk_tree_model_get (model, &iter, +@@ -510,7 +506,7 @@ + /* bind the auto dim checkbox */ + widget = WID ("screen_auto_reduce_checkbutton"); + g_settings_bind (self->priv->gsd_settings, +- "idle-dim-battery", ++ "idle-dim", + widget, "active", + G_SETTINGS_BIND_DEFAULT); + diff --git a/community/cinnamon-screensaver/PKGBUILD b/community/cinnamon-screensaver/PKGBUILD index ae1e35a1e..6b80d2ca0 100644 --- a/community/cinnamon-screensaver/PKGBUILD +++ b/community/cinnamon-screensaver/PKGBUILD @@ -5,7 +5,7 @@ pkgname=cinnamon-screensaver pkgver=1.7.1 -pkgrel=5 +pkgrel=6 pkgdesc="Screensaver designed to integrate well with the Cinnamon desktop." arch=('i686' 'x86_64') license=('GPL') @@ -18,26 +18,19 @@ source=($pkgname-$pkgver.tar.gz::https://github.com/linuxmint/cinnamon-screensav cinnamon-screensaver.desktop cinnamon2d-screensaver.desktop cinnamon-screensaver.pam - gnome-autogen.sh configure.patch fix-dbus-compatibility.patch) - sha256sums=('055abbc24305dad5efa609b354e01fdc367792ccac5383df4b28090ab0bf64e1' '2f29a72991deb5cc2b44da06f49d1115148fee6a0a22b1abfecee1c1661abcaa' '335df8f2fb270484829d94995622521f0a42a12d6887f7de827db34fc81f583a' - '99457b683c2e766a8c09a75ca906e3e00db6d294bb204a2e7a2a05c2e6b1d77e' - '827276b01e658afb8045fb0dcbebb54f679ef47dac482f4399e1839369277ccc' + 'b6ea9e2eb586d94bcabb617a8f1c2958111df87afdbb51f645882bccdc15cbda' 'fed5f1f94404fab13c5369f4106b0b498cff2bb71351cae4f3d9c27f417f5e6a' - '9013004395a401e99ce6685abb8319eb1e9ddd888c4fa6a7e45729fb93d285d1') + '50fa77bafc666f1aa32945a6d06d4e7c5e50bce1d98738de74075fb634cf6197') build() { cd $pkgname-$pkgver - cp ${srcdir}/gnome-autogen.sh . - sed -i 's/\ --warn-all\ --warn-error//' src/Makefile.am - sed -i 's/gnome-autogen.sh/.\/gnome-autogen.sh/g' autogen.sh - chmod +x gnome-autogen.sh - + # Fix build with automake 1.13 patch -uNp2 -r- -i ${srcdir}/configure.patch # Fix compatibility with gnome-screensaver's D-Bus interface and various fixes @@ -47,7 +40,6 @@ build() { --libexecdir=/usr/lib/cinnamon-screensaver \ --localstatedir=/var \ --with-mit-ext --with-systemd - make } diff --git a/community/cinnamon-screensaver/cinnamon-screensaver.pam b/community/cinnamon-screensaver/cinnamon-screensaver.pam index fd8d42d03..8d3baf085 100644 --- a/community/cinnamon-screensaver/cinnamon-screensaver.pam +++ b/community/cinnamon-screensaver/cinnamon-screensaver.pam @@ -1,3 +1,3 @@ #%PAM-1.0 -auth required pam_unix_auth.so nullok +auth substack system-login -auth optional pam_gnome_keyring.so diff --git a/community/cinnamon-screensaver/fix-dbus-compatibility.patch b/community/cinnamon-screensaver/fix-dbus-compatibility.patch index fa53f6fac..d4c27a0b1 100644 --- a/community/cinnamon-screensaver/fix-dbus-compatibility.patch +++ b/community/cinnamon-screensaver/fix-dbus-compatibility.patch @@ -1,8 +1,20 @@ +From e43385126cf6f5187f98f940b8c04c3e99202b0b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= +Date: Thu, 28 Feb 2013 05:45:12 +0100 +Subject: [PATCH 1/4] Fix crashing and compatibility with gnome-screensaver's + D-Bus interface + +--- + src/cinnamon-screensaver-command.c | 4 ++-- + src/gs-listener-dbus.c | 10 ++++++++-- + src/gs-manager.c | 14 +++++++++++--- + 3 files changed, 21 insertions(+), 7 deletions(-) + diff --git a/src/cinnamon-screensaver-command.c b/src/cinnamon-screensaver-command.c index 4267bd0..5c90916 100644 --- a/src/cinnamon-screensaver-command.c +++ b/src/cinnamon-screensaver-command.c -@@ -311,11 +311,11 @@ do_command (GDBusConnection *connection) +@@ -311,11 +311,11 @@ if (do_lock) { if (g_strcmp0 (away_message, "DEFAULT") == 0) { @@ -20,7 +32,7 @@ diff --git a/src/gs-listener-dbus.c b/src/gs-listener-dbus.c index 2a98aee..6dbf12d 100644 --- a/src/gs-listener-dbus.c +++ b/src/gs-listener-dbus.c -@@ -653,6 +653,8 @@ do_introspect (DBusConnection *connection, +@@ -653,6 +653,8 @@ enum { xml = g_string_append (xml, " \n" " \n" @@ -29,7 +41,7 @@ index 2a98aee..6dbf12d 100644 " \n" " \n" " \n" -@@ -744,6 +746,10 @@ listener_dbus_handle_session_message (DBusConnection *connection, +@@ -744,6 +746,10 @@ enum { g_return_val_if_fail (message != NULL, DBUS_HANDLER_RESULT_NOT_YET_HANDLED); if (dbus_message_is_method_call (message, GS_SERVICE, "Lock")) { @@ -40,7 +52,7 @@ index 2a98aee..6dbf12d 100644 return listener_lock (listener, connection, message); } if (dbus_message_is_method_call (message, GS_SERVICE, "Quit")) { -@@ -906,7 +912,7 @@ listener_dbus_handle_system_message (DBusConnection *connection, +@@ -906,7 +912,7 @@ enum { } else if (dbus_message_is_signal (message, SYSTEMD_LOGIND_SESSION_INTERFACE, "Lock")) { if (_listener_message_path_is_our_session (listener, message)) { gs_debug ("systemd requested session lock"); @@ -49,7 +61,7 @@ index 2a98aee..6dbf12d 100644 } return DBUS_HANDLER_RESULT_HANDLED; -@@ -948,7 +954,7 @@ listener_dbus_handle_system_message (DBusConnection *connection, +@@ -948,7 +954,7 @@ enum { } else if (dbus_message_is_signal (message, CK_SESSION_INTERFACE, "Lock")) { if (_listener_message_path_is_our_session (listener, message)) { gs_debug ("ConsoleKit requested session lock"); @@ -62,7 +74,7 @@ diff --git a/src/gs-manager.c b/src/gs-manager.c index 1544921..bc09cb9 100644 --- a/src/gs-manager.c +++ b/src/gs-manager.c -@@ -1275,10 +1275,18 @@ void +@@ -1275,10 +1275,18 @@ enum { gs_manager_set_away_message (GSManager *manager, const char *message) { @@ -84,3 +96,224 @@ index 1544921..bc09cb9 100644 for (l = manager->priv->windows; l; l = l->next) { gs_window_set_away_message (l->data, manager->priv->away_message); } +-- +1.8.1.6 + + +From 4db01451afbb246213f483805f81a77c4c7371a3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= +Date: Fri, 1 Mar 2013 05:17:46 +0100 +Subject: [PATCH 2/4] Update dbus document with the new LockMessage method + +--- + doc/dbus-interface.html | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/doc/dbus-interface.html b/doc/dbus-interface.html +index faff26c..c9f95ba 100644 +--- a/doc/dbus-interface.html ++++ b/doc/dbus-interface.html +@@ -2,6 +2,8 @@ +
+

Version 1.7.1


+ Request that the screen be locked. +-

++

++ LockMessage ++

++ Request that the screen be locked, and set an away message. ++

DirectionTypeDescription
instringthe away message

+ Cycle +

+ Request that the screen saver theme be restarted and, if applicable, +-- +1.8.1.6 + + +From 7141e8ce04921ab6d46648cba20c691b8d8f8e0b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= +Date: Sat, 2 Mar 2013 08:11:45 +0100 +Subject: [PATCH 3/4] Revert "Fixed away_message shown as "(null)" (using a + prefix to explicitly mark custom away messages)" + +This reverts commit bf1f42b9f9a673091b0f7bf1118781b2d95c88fd. +--- + src/cinnamon-screensaver-command.c | 9 +------- + src/gs-window-x11.c | 43 ++++++++++++-------------------------- + 2 files changed, 14 insertions(+), 38 deletions(-) + +diff --git a/src/cinnamon-screensaver-command.c b/src/cinnamon-screensaver-command.c +index 5c90916..dbcac8a 100644 +--- a/src/cinnamon-screensaver-command.c ++++ b/src/cinnamon-screensaver-command.c +@@ -310,14 +310,7 @@ + } + + if (do_lock) { +- if (g_strcmp0 (away_message, "DEFAULT") == 0) { +- reply = screensaver_send_message_string (connection, "LockMessage", away_message); +- } +- else { +- gchar * custom_message = g_strdup_printf("CUSTOM###%s", away_message); +- reply = screensaver_send_message_string (connection, "LockMessage", custom_message); +- g_free (custom_message); +- } ++ reply = screensaver_send_message_string (connection, "LockMessage", away_message); + if (reply == NULL) { + g_message ("Did not receive a reply from the screensaver."); + goto done; +diff --git a/src/gs-window-x11.c b/src/gs-window-x11.c +index 6858509..0e3bb6f 100644 +--- a/src/gs-window-x11.c ++++ b/src/gs-window-x11.c +@@ -2132,38 +2132,21 @@ enum { + return utf8_name; + } + +-static gchar * +-str_replace(const char *string, const char *delimiter, const char *replacement) +-{ +- gchar **split; +- gchar *ret; +- g_return_val_if_fail(string != NULL, NULL); +- g_return_val_if_fail(delimiter != NULL, NULL); +- g_return_val_if_fail(replacement != NULL, NULL); +- split = g_strsplit(string, delimiter, 0); +- ret = g_strjoinv(replacement, split); +- g_strfreev(split); +- return ret; +-} +- + static void + update_clock (GSWindow *window) +-{ +- char *markup; +- char *away_message; +- +- if (window->priv->away_message != NULL && g_str_has_prefix (window->priv->away_message, "CUSTOM###") && g_strcmp0(window->priv->away_message, "") != 0) { +- away_message = str_replace(window->priv->away_message, "CUSTOM###", ""); +- away_message = g_strdup_printf (_("%s: \"%s\""), get_user_display_name(), away_message); +- } +- else { +- away_message = g_strdup_printf (_("%s"), window->priv->default_message); +- } +- +- markup = g_strdup_printf ("%s\n%s", gnome_wall_clock_get_clock (window->priv->clock_tracker), away_message); +- gtk_label_set_markup (GTK_LABEL (window->priv->clock), markup); +- g_free (markup); +- g_free (away_message); ++{ ++ char *markup; ++ char *away_message; ++ if (g_strcmp0(window->priv->away_message, "DEFAULT") == 0 || g_strcmp0(window->priv->away_message, "") == 0) { ++ away_message = g_strdup_printf (_("%s"), window->priv->default_message); ++ } ++ else { ++ away_message = g_strdup_printf (_("%s: \"%s\""), get_user_display_name(), window->priv->away_message); ++ } ++ markup = g_strdup_printf ("%s\n%s", gnome_wall_clock_get_clock (window->priv->clock_tracker), away_message); ++ gtk_label_set_markup (GTK_LABEL (window->priv->clock), markup); ++ g_free (markup); ++ g_free (away_message); + } + + static void +-- +1.8.1.6 + + +From 1ed6a959746e115a7f33de2134921c6572185ebd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= +Date: Sat, 2 Mar 2013 08:13:04 +0100 +Subject: [PATCH 4/4] Simplify away message handling + +--- + src/cinnamon-screensaver-command.c | 19 ++++++++++++------- + src/gs-window-x11.c | 7 +++---- + 2 files changed, 15 insertions(+), 11 deletions(-) + +diff --git a/src/cinnamon-screensaver-command.c b/src/cinnamon-screensaver-command.c +index dbcac8a..4836f81 100644 +--- a/src/cinnamon-screensaver-command.c ++++ b/src/cinnamon-screensaver-command.c +@@ -41,7 +41,7 @@ + static gboolean do_query = FALSE; + static gboolean do_time = FALSE; + +-static gchar *away_message = "DEFAULT"; ++static gchar *away_message; + + static GOptionEntry entries [] = { + { "exit", 0, 0, G_OPTION_ARG_NONE, &do_quit, +@@ -114,7 +114,7 @@ + static GDBusMessage * + screensaver_send_message_string (GDBusConnection *connection, + const char *name, +- gboolean value) ++ gchar *value) + { + GDBusMessage *message, *reply; + GError *error; +@@ -310,12 +310,17 @@ + } + + if (do_lock) { +- reply = screensaver_send_message_string (connection, "LockMessage", away_message); +- if (reply == NULL) { +- g_message ("Did not receive a reply from the screensaver."); +- goto done; ++ if (away_message) { ++ reply = screensaver_send_message_string (connection, "LockMessage", away_message); ++ if (reply == NULL) { ++ g_message ("Did not receive a reply from the screensaver."); ++ goto done; ++ } ++ g_object_unref (reply); ++ } else { ++ reply = screensaver_send_message_void (connection, "Lock", FALSE); ++ g_assert (reply == NULL); + } +- g_object_unref (reply); + } + + if (do_activate) { +diff --git a/src/gs-window-x11.c b/src/gs-window-x11.c +index 0e3bb6f..22f5471 100644 +--- a/src/gs-window-x11.c ++++ b/src/gs-window-x11.c +@@ -2137,11 +2137,10 @@ enum { + { + char *markup; + char *away_message; +- if (g_strcmp0(window->priv->away_message, "DEFAULT") == 0 || g_strcmp0(window->priv->away_message, "") == 0) { +- away_message = g_strdup_printf (_("%s"), window->priv->default_message); +- } +- else { ++ if (window->priv->away_message && g_strcmp0(window->priv->away_message, "") != 0) { + away_message = g_strdup_printf (_("%s: \"%s\""), get_user_display_name(), window->priv->away_message); ++ } else { ++ away_message = g_strdup_printf (_("%s"), window->priv->default_message); + } + markup = g_strdup_printf ("%s\n%s", gnome_wall_clock_get_clock (window->priv->clock_tracker), away_message); + gtk_label_set_markup (GTK_LABEL (window->priv->clock), markup); +-- +1.8.1.6 + diff --git a/community/cinnamon-screensaver/gnome-autogen.sh b/community/cinnamon-screensaver/gnome-autogen.sh deleted file mode 100644 index 2467a1de2..000000000 --- a/community/cinnamon-screensaver/gnome-autogen.sh +++ /dev/null @@ -1,538 +0,0 @@ -#!/bin/sh -# Run this to generate all the initial makefiles, etc. - -#name of package -test "$PKG_NAME" || PKG_NAME=Package -test "$srcdir" || srcdir=. - -# default version requirements ... -test "$REQUIRED_AUTOCONF_VERSION" || REQUIRED_AUTOCONF_VERSION=2.53 -test "$REQUIRED_AUTOMAKE_VERSION" || REQUIRED_AUTOMAKE_VERSION=1.9 -test "$REQUIRED_LIBTOOL_VERSION" || REQUIRED_LIBTOOL_VERSION=1.4.3 -test "$REQUIRED_GETTEXT_VERSION" || REQUIRED_GETTEXT_VERSION=0.10.40 -test "$REQUIRED_GLIB_GETTEXT_VERSION" || REQUIRED_GLIB_GETTEXT_VERSION=2.2.0 -test "$REQUIRED_INTLTOOL_VERSION" || REQUIRED_INTLTOOL_VERSION=0.25 -test "$REQUIRED_PKG_CONFIG_VERSION" || REQUIRED_PKG_CONFIG_VERSION=0.14.0 -test "$REQUIRED_GTK_DOC_VERSION" || REQUIRED_GTK_DOC_VERSION=1.0 -test "$REQUIRED_DOC_COMMON_VERSION" || REQUIRED_DOC_COMMON_VERSION=2.3.0 -test "$REQUIRED_GNOME_DOC_UTILS_VERSION" || REQUIRED_GNOME_DOC_UTILS_VERSION=0.4.2 - -# a list of required m4 macros. Package can set an initial value -test "$REQUIRED_M4MACROS" || REQUIRED_M4MACROS= -test "$FORBIDDEN_M4MACROS" || FORBIDDEN_M4MACROS= - -# Not all echo versions allow -n, so we check what is possible. This test is -# based on the one in autoconf. -ECHO_C= -ECHO_N= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ;; - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac - -# some terminal codes ... -if tty < /dev/null 1>/dev/null 2>&1; then - boldface="`tput bold 2>/dev/null`" - normal="`tput sgr0 2>/dev/null`" -else - boldface= - normal= -fi -printbold() { - echo $ECHO_N "$boldface" $ECHO_C - echo "$@" - echo $ECHO_N "$normal" $ECHO_C -} -printerr() { - echo "$@" >&2 -} - -# Usage: -# compare_versions MIN_VERSION ACTUAL_VERSION -# returns true if ACTUAL_VERSION >= MIN_VERSION -compare_versions() { - ch_min_version=$1 - ch_actual_version=$2 - ch_status=0 - IFS="${IFS= }"; ch_save_IFS="$IFS"; IFS="." - set $ch_actual_version - for ch_min in $ch_min_version; do - ch_cur=`echo $1 | sed 's/[^0-9].*$//'`; shift # remove letter suffixes - if [ -z "$ch_min" ]; then break; fi - if [ -z "$ch_cur" ]; then ch_status=1; break; fi - if [ $ch_cur -gt $ch_min ]; then break; fi - if [ $ch_cur -lt $ch_min ]; then ch_status=1; break; fi - done - IFS="$ch_save_IFS" - return $ch_status -} - -# Usage: -# version_check PACKAGE VARIABLE CHECKPROGS MIN_VERSION SOURCE -# checks to see if the package is available -version_check() { - vc_package=$1 - vc_variable=$2 - vc_checkprogs=$3 - vc_min_version=$4 - vc_source=$5 - vc_status=1 - - vc_checkprog=`eval echo "\\$$vc_variable"` - if [ -n "$vc_checkprog" ]; then - printbold "using $vc_checkprog for $vc_package" - return 0 - fi - - if test "x$vc_package" = "xautomake" -a "x$vc_min_version" = "x1.4"; then - vc_comparator="=" - else - vc_comparator=">=" - fi - printbold "checking for $vc_package $vc_comparator $vc_min_version..." - for vc_checkprog in $vc_checkprogs; do - echo $ECHO_N " testing $vc_checkprog... " $ECHO_C - if $vc_checkprog --version < /dev/null > /dev/null 2>&1; then - vc_actual_version=`$vc_checkprog --version | head -n 1 | \ - sed 's/^.*[ ]\([0-9.]*[a-z]*\).*$/\1/'` - if compare_versions $vc_min_version $vc_actual_version; then - echo "found $vc_actual_version" - # set variables - eval "$vc_variable=$vc_checkprog; \ - ${vc_variable}_VERSION=$vc_actual_version" - vc_status=0 - break - else - echo "too old (found version $vc_actual_version)" - fi - else - echo "not found." - fi - done - if [ "$vc_status" != 0 ]; then - printerr "***Error***: You must have $vc_package $vc_comparator $vc_min_version installed" - printerr " to build $PKG_NAME. Download the appropriate package for" - printerr " from your distribution or get the source tarball at" - printerr " $vc_source" - printerr - exit $vc_status - fi - return $vc_status -} - -# Usage: -# require_m4macro filename.m4 -# adds filename.m4 to the list of required macros -require_m4macro() { - case "$REQUIRED_M4MACROS" in - $1\ * | *\ $1\ * | *\ $1) ;; - *) REQUIRED_M4MACROS="$REQUIRED_M4MACROS $1" ;; - esac -} - -forbid_m4macro() { - case "$FORBIDDEN_M4MACROS" in - $1\ * | *\ $1\ * | *\ $1) ;; - *) FORBIDDEN_M4MACROS="$FORBIDDEN_M4MACROS $1" ;; - esac -} - -# Usage: -# add_to_cm_macrodirs dirname -# Adds the dir to $cm_macrodirs, if it's not there yet. -add_to_cm_macrodirs() { - case $cm_macrodirs in - "$1 "* | *" $1 "* | *" $1") ;; - *) cm_macrodirs="$cm_macrodirs $1";; - esac -} - -# Usage: -# print_m4macros_error -# Prints an error message saying that autoconf macros were misused -print_m4macros_error() { - printerr "***Error***: some autoconf macros required to build $PKG_NAME" - printerr " were not found in your aclocal path, or some forbidden" - printerr " macros were found. Perhaps you need to adjust your" - printerr " ACLOCAL_FLAGS?" - printerr -} - -# Usage: -# check_m4macros -# Checks that all the requested macro files are in the aclocal macro path -# Uses REQUIRED_M4MACROS and ACLOCAL variables. -check_m4macros() { - # construct list of macro directories - cm_macrodirs=`$ACLOCAL --print-ac-dir` - # aclocal also searches a version specific dir, eg. /usr/share/aclocal-1.9 - # but it contains only Automake's own macros, so we can ignore it. - - # Read the dirlist file, supported by Automake >= 1.7. - # If AUTOMAKE was defined, no version was detected. - if [ -z "$AUTOMAKE_VERSION" ] || compare_versions 1.7 $AUTOMAKE_VERSION && [ -s $cm_macrodirs/dirlist ]; then - cm_dirlist=`sed 's/[ ]*#.*//;/^$/d' $cm_macrodirs/dirlist` - if [ -n "$cm_dirlist" ] ; then - for cm_dir in $cm_dirlist; do - if [ -d $cm_dir ]; then - add_to_cm_macrodirs $cm_dir - fi - done - fi - fi - - # Parse $ACLOCAL_FLAGS - set - $ACLOCAL_FLAGS - while [ $# -gt 0 ]; do - if [ "$1" = "-I" ]; then - add_to_cm_macrodirs "$2" - shift - fi - shift - done - - cm_status=0 - if [ -n "$REQUIRED_M4MACROS" ]; then - printbold "Checking for required M4 macros..." - # check that each macro file is in one of the macro dirs - for cm_macro in $REQUIRED_M4MACROS; do - cm_macrofound=false - for cm_dir in $cm_macrodirs; do - if [ -f "$cm_dir/$cm_macro" ]; then - cm_macrofound=true - break - fi - # The macro dir in Cygwin environments may contain a file - # called dirlist containing other directories to look in. - if [ -f "$cm_dir/dirlist" ]; then - for cm_otherdir in `cat $cm_dir/dirlist`; do - if [ -f "$cm_otherdir/$cm_macro" ]; then - cm_macrofound=true - break - fi - done - fi - done - if $cm_macrofound; then - : - else - printerr " $cm_macro not found" - cm_status=1 - fi - done - fi - if [ "$cm_status" != 0 ]; then - print_m4macros_error - exit $cm_status - fi - if [ -n "$FORBIDDEN_M4MACROS" ]; then - printbold "Checking for forbidden M4 macros..." - # check that each macro file is in one of the macro dirs - for cm_macro in $FORBIDDEN_M4MACROS; do - cm_macrofound=false - for cm_dir in $cm_macrodirs; do - if [ -f "$cm_dir/$cm_macro" ]; then - cm_macrofound=true - break - fi - done - if $cm_macrofound; then - printerr " $cm_macro found (should be cleared from macros dir)" - cm_status=1 - fi - done - fi - if [ "$cm_status" != 0 ]; then - print_m4macros_error - exit $cm_status - fi -} - -# try to catch the case where the macros2/ directory hasn't been cleared out. -forbid_m4macro gnome-cxx-check.m4 - -want_libtool=false -want_gettext=false -want_glib_gettext=false -want_intltool=false -want_pkg_config=false -want_gtk_doc=false -want_gnome_doc_utils=false -want_maintainer_mode=false - -find_configure_files() { - configure_ac= - if test -f "$1/configure.ac"; then - configure_ac="$1/configure.ac" - elif test -f "$1/configure.in"; then - configure_ac="$1/configure.in" - fi - if test "x$configure_ac" != x; then - echo "$configure_ac" - # TODO We have not detected the right autoconf yet! - autoconf -t 'AC_CONFIG_SUBDIRS:$1' "$configure_ac" | while read dir; do - find_configure_files "$1/$dir" - done - fi -} - -configure_files="`find_configure_files $srcdir`" - -for configure_ac in $configure_files; do - dirname=`dirname $configure_ac` - if [ -f $dirname/NO-AUTO-GEN ]; then - echo skipping $dirname -- flagged as no auto-gen - continue - fi - if grep "^A[CM]_PROG_LIBTOOL" $configure_ac >/dev/null || - grep "^LT_INIT" $configure_ac >/dev/null; then - want_libtool=true - fi - if grep "^AM_GNU_GETTEXT" $configure_ac >/dev/null; then - want_gettext=true - fi - if grep "^AM_GLIB_GNU_GETTEXT" $configure_ac >/dev/null; then - want_glib_gettext=true - fi - if grep "^AC_PROG_INTLTOOL" $configure_ac >/dev/null || - grep "^IT_PROG_INTLTOOL" $configure_ac >/dev/null; then - want_intltool=true - fi - if grep "^PKG_CHECK_MODULES" $configure_ac >/dev/null; then - want_pkg_config=true - fi - if grep "^GTK_DOC_CHECK" $configure_ac >/dev/null; then - want_gtk_doc=true - fi - if grep "^GNOME_DOC_INIT" $configure_ac >/dev/null; then - want_gnome_doc_utils=true - fi - - # check that AM_MAINTAINER_MODE is used - if grep "^AM_MAINTAINER_MODE" $configure_ac >/dev/null; then - want_maintainer_mode=true - fi - - if grep "^YELP_HELP_INIT" $configure_ac >/dev/null; then - require_m4macro yelp.m4 - fi - - # check to make sure gnome-common macros can be found ... - if grep "^GNOME_COMMON_INIT" $configure_ac >/dev/null || - grep "^GNOME_DEBUG_CHECK" $configure_ac >/dev/null || - grep "^GNOME_MAINTAINER_MODE_DEFINES" $configure_ac >/dev/null; then - require_m4macro gnome-common.m4 - fi - if grep "^GNOME_COMPILE_WARNINGS" $configure_ac >/dev/null || - grep "^GNOME_CXX_WARNINGS" $configure_ac >/dev/null; then - require_m4macro gnome-compiler-flags.m4 - fi - if grep "^GNOME_CODE_COVERAGE" $configure_ac >/dev/null; then - require_m4macro gnome-code-coverage.m4 - fi -done - -#tell Mandrake autoconf wrapper we want autoconf 2.5x, not 2.13 -WANT_AUTOCONF_2_5=1 -export WANT_AUTOCONF_2_5 -version_check autoconf AUTOCONF 'autoconf2.50 autoconf autoconf-2.53' $REQUIRED_AUTOCONF_VERSION \ - "http://ftp.gnu.org/pub/gnu/autoconf/autoconf-$REQUIRED_AUTOCONF_VERSION.tar.gz" -AUTOHEADER=`echo $AUTOCONF | sed s/autoconf/autoheader/` - -case $REQUIRED_AUTOMAKE_VERSION in - 1.4*) automake_progs="automake-1.4" ;; - 1.5*) automake_progs="automake-1.13 automake-1.12 automake-1.11 automake-1.10 automake-1.9 automake-1.8 automake-1.7 automake-1.6 automake-1.5" ;; - 1.6*) automake_progs="automake-1.13 automake-1.12 automake-1.11 automake-1.10 automake-1.9 automake-1.8 automake-1.7 automake-1.6" ;; - 1.7*) automake_progs="automake-1.13 automake-1.12 automake-1.11 automake-1.10 automake-1.9 automake-1.8 automake-1.7" ;; - 1.8*) automake_progs="automake-1.13 automake-1.12 automake-1.11 automake-1.10 automake-1.9 automake-1.8" ;; - 1.9*) automake_progs="automake-1.13 automake-1.12 automake-1.11 automake-1.10 automake-1.9" ;; - 1.10*) automake_progs="automake-1.13 automake-1.12 automake-1.11 automake-1.10" ;; - 1.11*) automake_progs="automake-1.13 automake-1.12 automake-1.11" ;; - 1.12*) automake_progs="automake-1.13 automake-1.12" ;; - 1.13*) automake_progs="automake-1.13" ;; -esac -version_check automake AUTOMAKE "$automake_progs" $REQUIRED_AUTOMAKE_VERSION \ - "http://ftp.gnu.org/pub/gnu/automake/automake-$REQUIRED_AUTOMAKE_VERSION.tar.gz" -ACLOCAL=`echo $AUTOMAKE | sed s/automake/aclocal/` - -if $want_libtool; then - version_check libtool LIBTOOLIZE "libtoolize glibtoolize" $REQUIRED_LIBTOOL_VERSION \ - "http://ftp.gnu.org/pub/gnu/libtool/libtool-$REQUIRED_LIBTOOL_VERSION.tar.gz" - require_m4macro libtool.m4 -fi - -if $want_gettext; then - version_check gettext GETTEXTIZE gettextize $REQUIRED_GETTEXT_VERSION \ - "http://ftp.gnu.org/pub/gnu/gettext/gettext-$REQUIRED_GETTEXT_VERSION.tar.gz" - require_m4macro gettext.m4 -fi - -if $want_glib_gettext; then - version_check glib-gettext GLIB_GETTEXTIZE glib-gettextize $REQUIRED_GLIB_GETTEXT_VERSION \ - "ftp://ftp.gtk.org/pub/gtk/v2.2/glib-$REQUIRED_GLIB_GETTEXT_VERSION.tar.gz" - require_m4macro glib-gettext.m4 -fi - -if $want_intltool; then - version_check intltool INTLTOOLIZE intltoolize $REQUIRED_INTLTOOL_VERSION \ - "http://ftp.gnome.org/pub/GNOME/sources/intltool/" - require_m4macro intltool.m4 -fi - -if $want_pkg_config; then - version_check pkg-config PKG_CONFIG pkg-config $REQUIRED_PKG_CONFIG_VERSION \ - "'http://www.freedesktop.org/software/pkgconfig/releases/pkgconfig-$REQUIRED_PKG_CONFIG_VERSION.tar.gz" - require_m4macro pkg.m4 -fi - -if $want_gtk_doc; then - version_check gtk-doc GTKDOCIZE gtkdocize $REQUIRED_GTK_DOC_VERSION \ - "http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/" - require_m4macro gtk-doc.m4 -fi - -if $want_gnome_doc_utils; then - version_check gnome-doc-utils GNOME_DOC_PREPARE gnome-doc-prepare $REQUIRED_GNOME_DOC_UTILS_VERSION \ - "http://ftp.gnome.org/pub/GNOME/sources/gnome-doc-utils/" -fi - -if [ "x$USE_COMMON_DOC_BUILD" = "xyes" ]; then - version_check gnome-common DOC_COMMON gnome-doc-common \ - $REQUIRED_DOC_COMMON_VERSION " " -fi - -check_m4macros - -if [ "$#" = 0 -a "x$NOCONFIGURE" = "x" ]; then - printerr "**Warning**: I am going to run \`configure' with no arguments." - printerr "If you wish to pass any to it, please specify them on the" - printerr \`$0\'" command line." - printerr -fi - -topdir=`pwd` -for configure_ac in $configure_files; do - dirname=`dirname $configure_ac` - basename=`basename $configure_ac` - if [ -f $dirname/NO-AUTO-GEN ]; then - echo skipping $dirname -- flagged as no auto-gen - elif [ ! -w $dirname ]; then - echo skipping $dirname -- directory is read only - else - printbold "Processing $configure_ac" - cd $dirname - - # Note that the order these tools are called should match what - # autoconf's "autoupdate" package does. See bug 138584 for - # details. - - # programs that might install new macros get run before aclocal - if grep "^A[CM]_PROG_LIBTOOL" $basename >/dev/null || - grep "^LT_INIT" $basename >/dev/null; then - printbold "Running $LIBTOOLIZE..." - $LIBTOOLIZE --force --copy || exit 1 - fi - - if grep "^AM_GLIB_GNU_GETTEXT" $basename >/dev/null; then - printbold "Running $GLIB_GETTEXTIZE... Ignore non-fatal messages." - echo "no" | $GLIB_GETTEXTIZE --force --copy || exit 1 - elif grep "^AM_GNU_GETTEXT" $basename >/dev/null; then - if grep "^AM_GNU_GETTEXT_VERSION" $basename > /dev/null; then - printbold "Running autopoint..." - autopoint --force || exit 1 - else - printbold "Running $GETTEXTIZE... Ignore non-fatal messages." - echo "no" | $GETTEXTIZE --force --copy || exit 1 - fi - fi - - if grep "^AC_PROG_INTLTOOL" $basename >/dev/null || - grep "^IT_PROG_INTLTOOL" $basename >/dev/null; then - printbold "Running $INTLTOOLIZE..." - $INTLTOOLIZE --force --copy --automake || exit 1 - fi - if grep "^GTK_DOC_CHECK" $basename >/dev/null; then - printbold "Running $GTKDOCIZE..." - $GTKDOCIZE --copy || exit 1 - fi - - if [ "x$USE_COMMON_DOC_BUILD" = "xyes" ]; then - printbold "Running gnome-doc-common..." - gnome-doc-common --copy || exit 1 - fi - if grep "^GNOME_DOC_INIT" $basename >/dev/null; then - printbold "Running $GNOME_DOC_PREPARE..." - $GNOME_DOC_PREPARE --force --copy || exit 1 - fi - - # Now run aclocal to pull in any additional macros needed - - # if the AC_CONFIG_MACRO_DIR() macro is used, pass that - # directory to aclocal. - m4dir=`cat "$basename" | grep '^AC_CONFIG_MACRO_DIR' | sed -n -e 's/AC_CONFIG_MACRO_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q` - if [ -n "$m4dir" ]; then - m4dir="-I $m4dir" - fi - printbold "Running $ACLOCAL..." - $ACLOCAL $m4dir $ACLOCAL_FLAGS || exit 1 - - if grep "GNOME_AUTOGEN_OBSOLETE" aclocal.m4 >/dev/null; then - printerr "*** obsolete gnome macros were used in $configure_ac" - fi - - # Now that all the macros are sorted, run autoconf and autoheader ... - printbold "Running $AUTOCONF..." - $AUTOCONF || exit 1 - if grep "^A[CM]_CONFIG_HEADER" $basename >/dev/null; then - printbold "Running $AUTOHEADER..." - $AUTOHEADER || exit 1 - # this prevents automake from thinking config.h.in is out of - # date, since autoheader doesn't touch the file if it doesn't - # change. - test -f config.h.in && touch config.h.in - fi - - # Finally, run automake to create the makefiles ... - printbold "Running $AUTOMAKE..." - if [ -f COPYING ]; then - cp -pf COPYING COPYING.autogen_bak - fi - if [ -f INSTALL ]; then - cp -pf INSTALL INSTALL.autogen_bak - fi - if [ $REQUIRED_AUTOMAKE_VERSION != 1.4 ]; then - $AUTOMAKE --gnu --add-missing --copy -Wno-portability || exit 1 - else - $AUTOMAKE --gnu --add-missing --copy || exit 1 - fi - if [ -f COPYING.autogen_bak ]; then - cmp COPYING COPYING.autogen_bak > /dev/null || cp -pf COPYING.autogen_bak COPYING - rm -f COPYING.autogen_bak - fi - if [ -f INSTALL.autogen_bak ]; then - cmp INSTALL INSTALL.autogen_bak > /dev/null || cp -pf INSTALL.autogen_bak INSTALL - rm -f INSTALL.autogen_bak - fi - - cd "$topdir" - fi -done - -conf_flags="" - -if $want_maintainer_mode; then - conf_flags="--enable-maintainer-mode" -fi - -if test x$NOCONFIGURE = x; then - printbold Running $srcdir/configure $conf_flags "$@" ... - $srcdir/configure $conf_flags "$@" \ - && echo Now type \`make\' to compile $PKG_NAME || exit 1 -else - echo Skipping configure process. -fi diff --git a/community/cinnamon/PKGBUILD b/community/cinnamon/PKGBUILD index f4fecd1a7..a16839508 100644 --- a/community/cinnamon/PKGBUILD +++ b/community/cinnamon/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 87446 2013-03-31 19:54:32Z faidoc $ +# $Id: PKGBUILD 88709 2013-04-22 00:29:56Z bgyorgy $ # Maintainer: Alexandre Filgueira # Contributor: M0Rf30 # Contributor: unifiedlinux # Contributor: CReimer pkgname=cinnamon -pkgver=1.7.3 +pkgver=1.7.4 pkgrel=2 pkgdesc="Linux desktop which provides advanced innovative features and a traditional user experience" arch=('i686' 'x86_64') @@ -13,8 +13,9 @@ url="http://cinnamon.linuxmint.com/" license=('GPL2') depends=('accountsservice' 'caribou' 'clutter-gtk' 'gjs' 'gnome-bluetooth' 'gnome-icon-theme' 'gnome-menus' 'gnome-settings-daemon' 'gnome-session' - 'gnome-themes-standard' 'gstreamer0.10' 'networkmanager' 'muffin' 'python2-dbus' - 'python2-gconf' 'python2-imaging' 'python2-pyinotify' 'python2-lxml' 'webkitgtk3') + 'gnome-themes-standard' 'gstreamer0.10' 'libgnome-keyring' 'librsvg' + 'networkmanager' 'muffin' 'pygtk' 'python2-dbus' 'python2-imaging' + 'python2-pyinotify' 'python2-lxml' 'webkitgtk3') makedepends=('gnome-common' 'intltool') optdepends=('cinnamon-control-center: extended configurations for Cinnamon' 'cinnamon-screensaver: lock screen' @@ -26,15 +27,21 @@ install=${pkgname}.install source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/Cinnamon/tarball/$pkgver" "keyboard_applet.patch" "fix-control-center-check.patch" - "fix-keyboard-settings.patch") -md5sums=('c733e2a2280508aecf3ee010587e6743' + "gnome-3.8.patch") +md5sums=('95260dc968ca9be32c265b35df2dd49d' '2b1ece84416c3e4de030be15f1774d82' 'c3f25b06d345d9d36c197cd96e08f496' - 'c36138eddde544b5c27b66d19451e7a5') + 'cf2efbe1a5c48e1be53a0e8e4b7c3181') build() { cd ${srcdir}/linuxmint-Cinnamon* + # Python2 fix + sed -i 's|#! /usr/bin/python|#! /usr/bin/python2|' \ + files/usr/bin/$pkgname-menu-editor \ + files/usr/share/$pkgname/applets/panel-launchers@$pkgname.org/$pkgname-add-panel-launcher.py + find -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@' + # Fix Keyboard applet # https://github.com/linuxmint/Cinnamon/issues/1337 patch -Np1 -i ${srcdir}/keyboard_applet.patch @@ -42,9 +49,8 @@ build() { # Check for the cc-panel path, not for the unneeded binary patch -Np1 -i ${srcdir}/fix-control-center-check.patch - # Fix Keyboard settings (https://bugs.archlinux.org/task/34472) - patch -Np1 -i ${srcdir}/fix-keyboard-settings.patch - + # https://github.com/linuxmint/Cinnamon/pull/1888 + patch -Np1 -i ${srcdir}/gnome-3.8.patch ./autogen.sh --prefix=/usr \ --sysconfdir=/etc \ @@ -54,31 +60,10 @@ build() { --disable-schemas-compile \ --enable-compile-warnings=yes \ --with-session-tracking=systemd - make } package() { cd ${srcdir}/linuxmint-Cinnamon* make DESTDIR="${pkgdir}" install - - # Install autostart files for gnome-fallback-mount-helper - install -Dm644 /etc/xdg/autostart/gnome-fallback-mount-helper.desktop \ - "${pkgdir}/etc/xdg/autostart/gnome-fallback-mount-helper-cinnamon.desktop" - sed -i 's/^AutostartCondition=.*/AutostartCondition=GNOME3 if-session cinnamon/' \ - "${pkgdir}/etc/xdg/autostart/gnome-fallback-mount-helper-cinnamon.desktop" - - install -Dm644 /etc/xdg/autostart/gnome-fallback-mount-helper.desktop \ - "${pkgdir}/etc/xdg/autostart/gnome-fallback-mount-helper-cinnamon2d.desktop" - sed -i 's/^AutostartCondition=.*/AutostartCondition=GNOME3 if-session cinnamon2d/' \ - "${pkgdir}/etc/xdg/autostart/gnome-fallback-mount-helper-cinnamon2d.desktop" - - # Python2 fix - sed -i 's|#! /usr/bin/python|#! /usr/bin/python2|' \ - "${pkgdir}/usr/bin/$pkgname-menu-editor" \ - "${pkgdir}/usr/share/$pkgname/applets/panel-launchers@$pkgname.org/$pkgname-add-panel-launcher.py" - - find "${pkgdir}" -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@' } - - diff --git a/community/cinnamon/cinnamon.install b/community/cinnamon/cinnamon.install index 901fd95c9..326aa98a2 100644 --- a/community/cinnamon/cinnamon.install +++ b/community/cinnamon/cinnamon.install @@ -2,28 +2,10 @@ post_install() { glib-compile-schemas usr/share/glib-2.0/schemas } -pre_upgrade() { - if [ -f /usr/share/gconf/schemas/cinnamon.schemas ]; then - gconfpkg --uninstall cinnamon - fi - - if [ "$(vercmp 1.6.7-6 "$2")" -eq 1 ]; then - if [[ -h '/usr/lib/libgnome-desktop-3.so.2' ]]; then - if [[ $(uname -m) == 'i686' ]]; then - unlink /usr/lib/libgnome-desktop-3.so.2 - fi - fi - fi -} - post_upgrade() { post_install } -pre_remove() { - pre_upgrade -} - post_remove() { post_install } diff --git a/community/cinnamon/fix-keyboard-settings.patch b/community/cinnamon/fix-keyboard-settings.patch deleted file mode 100644 index b606939c9..000000000 --- a/community/cinnamon/fix-keyboard-settings.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 034f9c886a4b08e214193576b11fb97ba3d62922 Mon Sep 17 00:00:00 2001 -From: Lusito -Date: Sun, 10 Mar 2013 21:01:07 +0100 -Subject: [PATCH] fix for broken keyboard settings - ---- - files/usr/lib/cinnamon-settings/bin/SettingsWidgets.py | 2 +- - files/usr/lib/cinnamon-settings/modules/cs_keyboard.py | 12 ++++++------ - 2 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/files/usr/lib/cinnamon-settings/bin/SettingsWidgets.py b/files/usr/lib/cinnamon-settings/bin/SettingsWidgets.py -index b8842fe..cdccf46 100644 ---- a/files/usr/lib/cinnamon-settings/bin/SettingsWidgets.py -+++ b/files/usr/lib/cinnamon-settings/bin/SettingsWidgets.py -@@ -9,7 +9,7 @@ - import gettext - from gi.repository import Gio, Gtk, GObject, Gdk - from gi.repository import GdkPixbuf --# import gconf -+ from gi.repository import GConf - import json - import dbus - import time -diff --git a/files/usr/lib/cinnamon-settings/modules/cs_keyboard.py b/files/usr/lib/cinnamon-settings/modules/cs_keyboard.py -index 27a75ae..1ea8fd9 100644 ---- a/files/usr/lib/cinnamon-settings/modules/cs_keyboard.py -+++ b/files/usr/lib/cinnamon-settings/modules/cs_keyboard.py -@@ -8,7 +8,7 @@ - gettext.install("cinnamon", "/usr/share/cinnamon/locale") - - # Keybindings page - check if we need to store custom --# keybindings to gsettings key as well as gconf (In Mint 14 this is changed) -+# keybindings to gsettings key as well as GConf (In Mint 14 this is changed) - CUSTOM_KEYS_BASENAME = "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings" - CUSTOM_KEYS_SCHEMA = "org.gnome.settings-daemon.plugins.media-keys.custom-keybinding" - CUSTOM_KEYBINDINGS_GSETTINGS = False -@@ -160,7 +160,7 @@ def __init__(self, content_box): - first_run_completed = schema.get_boolean("custom-keybindings-to-3-6") - - if CUSTOM_KEYBINDINGS_GSETTINGS and not first_run_completed: -- gclient = gconf.client_get_default() -+ gclient = GConf.Client.get_default() - path = "/desktop/gnome/keybindings" - subdirs = gclient.all_dirs(path) - for subdir in subdirs: -@@ -251,7 +251,7 @@ def setBinding(self, index, val): - self.writeSettings() - - def writeSettings(self): -- gclient = gconf.client_get_default() -+ gclient = GConf.Client.get_default() - gclient.set_string(self.path + "/name", self.label) - gclient.set_string(self.path + "/action", self.action) - gclient.set_string(self.path + "/binding", self.entries[0]) -@@ -537,7 +537,7 @@ def loadCustoms(self): - for category in self.main_store: - if category.int_name is "custom": - category.clear() -- gclient = gconf.client_get_default() -+ gclient = GConf.Client.get_default() - path = "/desktop/gnome/keybindings" - subdirs = gclient.all_dirs(path) - for subdir in subdirs: -@@ -645,7 +645,7 @@ def onAddCustomButtonClicked(self, button): - dialog.destroy() - return - -- gclient = gconf.client_get_default() -+ gclient = GConf.Client.get_default() - path = "/desktop/gnome/keybindings/custom" - i = 0 - while gclient.dir_exists(path + str(i)): -@@ -670,7 +670,7 @@ def onRemoveCustomButtonClicked(self, button): - keybindings, iter = self.kb_tree.get_selection().get_selected() - if iter: - keybinding = keybindings[iter][1] -- gclient = gconf.client_get_default() -+ gclient = GConf.Client.get_default() - if gclient.dir_exists(keybinding.path): - gclient.unset(keybinding.path + "/name") - gclient.unset(keybinding.path + "/action") --- -1.8.1.5 diff --git a/community/cinnamon/gnome-3.8.patch b/community/cinnamon/gnome-3.8.patch new file mode 100644 index 000000000..61cd9180f --- /dev/null +++ b/community/cinnamon/gnome-3.8.patch @@ -0,0 +1,3669 @@ +From f4020d3960fa96a101bdb1c3ac1e1a452dbbf48c Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Fri, 19 Apr 2013 13:19:50 -0400 +Subject: [PATCH 01/15] Disable XInput on cinnamon startup (for 3.8 compat) + This has no effect on < 1.14 clutter + +--- + src/main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/main.c b/src/main.c +index 418fb60..ac90d91 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -260,6 +260,7 @@ + meta_plugin_type_register (gnome_cinnamon_plugin_get_type ()); + + /* Prevent meta_init() from causing gtk to load gail and at-bridge */ ++ g_setenv ("CLUTTER_DISABLE_XINPUT", "1", TRUE); + g_setenv ("NO_GAIL", "1", TRUE); + g_setenv ("NO_AT_BRIDGE", "1", TRUE); + meta_init (); +-- +1.8.1.6 + + +From cc68659ecdd9e43128ec2b4555479f930c0d1ccd Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Fri, 19 Apr 2013 13:21:40 -0400 +Subject: [PATCH 02/15] Explain change + +--- + src/main.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/main.c b/src/main.c +index ac90d91..9d37975 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -257,10 +257,12 @@ + + g_option_context_free (ctx); + ++ /* Disable XInput extension - required for 3.8 compatibility */ ++ g_setenv ("CLUTTER_DISABLE_XINPUT", "1", TRUE); ++ + meta_plugin_type_register (gnome_cinnamon_plugin_get_type ()); + + /* Prevent meta_init() from causing gtk to load gail and at-bridge */ +- g_setenv ("CLUTTER_DISABLE_XINPUT", "1", TRUE); + g_setenv ("NO_GAIL", "1", TRUE); + g_setenv ("NO_AT_BRIDGE", "1", TRUE); + meta_init (); +-- +1.8.1.6 + + +From f3777b3b2733b965bd348c7175ee67ee268aee06 Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Tue, 16 Apr 2013 17:01:30 -0400 +Subject: [PATCH 03/15] Add backgroundManager - this is needed for gnome 3.8 + compatibility, as gnome-settings-daemon no longer handles the desktop + background. + +--- + configure.ac | 7 +- + data/org.cinnamon.gschema.xml.in | 71 +++- + .../cinnamon-settings/modules/cs_backgrounds.py | 31 +- + js/ui/main.js | 3 +- + src/Makefile.am | 2 + + src/cinnamon-background-manager.c | 411 +++++++++++++++++++++ + src/cinnamon-background-manager.h | 57 +++ + 7 files changed, 562 insertions(+), 20 deletions(-) + create mode 100644 src/cinnamon-background-manager.c + create mode 100644 src/cinnamon-background-manager.h + +diff --git a/configure.ac b/configure.ac +index 0aa47c5..a2a9479 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -68,6 +68,7 @@ GTK_MIN_VERSION=3.0.0 + GIO_MIN_VERSION=2.29.10 + POLKIT_MIN_VERSION=0.100 + STARTUP_NOTIFICATION_MIN_VERSION=0.11 ++GNOME_DESKTOP_MIN_VERSION=3.0.0 + + # Collect more than 20 libraries for a prize! + PKG_CHECK_MODULES(CINNAMON, gio-2.0 >= $GIO_MIN_VERSION +@@ -82,7 +83,8 @@ PKG_CHECK_MODULES(CINNAMON, gio-2.0 >= $GIO_MIN_VERSION + gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION + libcanberra + polkit-agent-1 >= $POLKIT_MIN_VERSION xfixes +- libnm-glib libnm-util gnome-keyring-1) ++ libnm-glib libnm-util gnome-keyring-1 ++ gnome-desktop-3.0 >= GNOME_DESKTOP_MIN_VERSION) + + PKG_CHECK_MODULES(CINNAMON_PERF_HELPER, gtk+-3.0 gio-2.0) + +@@ -106,7 +108,8 @@ AC_CHECK_FUNCS(JS_NewGlobalObject XFixesCreatePointerBarrier) + CFLAGS=$saved_CFLAGS + LIBS=$saved_LIBS + +-PKG_CHECK_MODULES(ST, clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.2 gnome-desktop-3.0 >= 2.90.0 x11) ++PKG_CHECK_MODULES(ST, clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.2 ++ gnome-desktop-3.0 >= GNOME_DESKTOP_MIN_VERSION x11) + PKG_CHECK_MODULES(GDMUSER, dbus-glib-1 gtk+-3.0) + PKG_CHECK_MODULES(TRAY, gtk+-3.0) + PKG_CHECK_MODULES(GVC, libpulse libpulse-mainloop-glib gobject-2.0) +diff --git a/data/org.cinnamon.gschema.xml.in b/data/org.cinnamon.gschema.xml.in +index ffbad92..6f55477 100644 +--- a/data/org.cinnamon.gschema.xml.in ++++ b/data/org.cinnamon.gschema.xml.in +@@ -720,6 +720,23 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + "wallpaper" +@@ -750,8 +767,60 @@ + This key defines the delay for the slideshow. + + ++ ++ true ++ <_summary>Draw Desktop Background ++ <_description>Have GNOME draw the desktop background. ++ ++ ++ 'zoom' ++ <_summary>Picture Options ++ <_description> ++ Determines how the image set by wallpaper_filename is rendered. ++ Possible values are "none", "wallpaper", "centered", "scaled", ++ "stretched", "zoom", "spanned". ++ ++ ++ ++ 'file://@datadir@/themes/Adwaita/backgrounds/adwaita-timed.xml' ++ <_summary>Picture URI ++ <_description> ++ URI to use for the background image. Not that the backend only supports ++ local (file://) URIs. ++ ++ ++ ++ ++ 100 ++ <_summary>Picture Opacity ++ <_description> ++ Opacity with which to draw the background picture. ++ ++ ++ ++ '#023c88' ++ <_summary>Primary Color ++ <_description> ++ Left or Top color when drawing gradients, or the solid color. ++ ++ ++ ++ '#5789ca' ++ <_summary>Secondary Color ++ <_description> ++ Right or Bottom color when drawing gradients, not used for solid color. ++ ++ ++ ++ 'solid' ++ <_summary>Color Shading Type ++ <_description> ++ How to shade the background color. Possible values are "horizontal", ++ "vertical", and "solid". ++ ++ + +- ++ + + + "" +diff --git a/files/usr/lib/cinnamon-settings/modules/cs_backgrounds.py b/files/usr/lib/cinnamon-settings/modules/cs_backgrounds.py +index f964aed..4a38c84 100644 +--- a/files/usr/lib/cinnamon-settings/modules/cs_backgrounds.py ++++ b/files/usr/lib/cinnamon-settings/modules/cs_backgrounds.py +@@ -232,11 +232,11 @@ def getFirstFileFromBackgroundXml(self, filename): + + + class BackgroundWallpaperPane (Gtk.VBox): +- def __init__(self, sidepage, gnome_background_schema): ++ def __init__(self, sidepage, cinnamon_background_schema): + Gtk.VBox.__init__(self) + self.set_spacing(5) + +- self._gnome_background_schema = gnome_background_schema ++ self._cinnamon_background_schema = cinnamon_background_schema + self._sidepage = sidepage + + scw = Gtk.ScrolledWindow() +@@ -263,15 +263,15 @@ def _on_selection_changed(self, iconview): + if wallpaper: + for key in wallpaper: + if key == "filename": +- self._gnome_background_schema.set_string("picture-uri", "file://" + wallpaper[key]) ++ self._cinnamon_background_schema.set_string("picture-uri", "file://" + wallpaper[key]) + elif key == "pcolor": +- self._gnome_background_schema.set_string("primary-color", wallpaper[key]) ++ self._cinnamon_background_schema.set_string("primary-color", wallpaper[key]) + elif key == "scolor": +- self._gnome_background_schema.set_string("secondary-color", wallpaper[key]) ++ self._cinnamon_background_schema.set_string("secondary-color", wallpaper[key]) + elif key == "shade_type": +- self._gnome_background_schema.set_string("color-shading-type", wallpaper[key]) ++ self._cinnamon_background_schema.set_string("color-shading-type", wallpaper[key]) + elif key == "options": +- self._gnome_background_schema.set_string("picture-options", wallpaper[key]) ++ self._cinnamon_background_schema.set_string("picture-options", wallpaper[key]) + if (not "metadataFile" in wallpaper) or (wallpaper["metadataFile"] == ""): + self._sidepage.remove_wallpaper_button.set_sensitive(True) + +@@ -364,7 +364,7 @@ def run(self): + return res + + class BackgroundSlideshowPane(Gtk.Table): +- def __init__(self, sidepage, gnome_background_schema, cinnamon_background_schema): ++ def __init__(self, sidepage, cinnamon_background_schema): + Gtk.Table.__init__(self) + self.set_col_spacings(5) + self.set_row_spacings(5) +@@ -445,12 +445,11 @@ def _do_update_list(self, folder, recursive, delay, transition_duration = 0): + f = open(filename, "w") + f.write(xml_data) + f.close() +- Gio.Settings("org.gnome.desktop.background").set_string("picture-uri", "file://" + filename) ++ Gio.Settings("org.cinnamon.background").set_string("picture-uri", "file://" + filename) + + class BackgroundSidePage (SidePage): + def __init__(self, name, icon, keywords, advanced, content_box): + SidePage.__init__(self, name, icon, keywords, advanced, content_box) +- self._gnome_background_schema = Gio.Settings("org.gnome.desktop.background") + self._cinnamon_background_schema = Gio.Settings("org.cinnamon.background") + self._add_wallpapers_dialog = AddWallpapersDialog() + +@@ -515,8 +514,8 @@ def build(self, advanced): + self.mainbox.set_visible_window(False) + self.content_box.pack_start(self.mainbox, True, True, 3) + +- self.wallpaper_pane = BackgroundWallpaperPane(self, self._gnome_background_schema) +- self.slideshow_pane = BackgroundSlideshowPane(self, self._gnome_background_schema, self._cinnamon_background_schema) ++ self.wallpaper_pane = BackgroundWallpaperPane(self, self._cinnamon_background_schema) ++ self.slideshow_pane = BackgroundSlideshowPane(self, self._cinnamon_background_schema) + if self._cinnamon_background_schema["mode"] == "slideshow": + self.mainbox.add(self.slideshow_pane) + else: +@@ -536,21 +535,21 @@ def build(self, advanced): + l = Gtk.Label(_("Picture aspect")) + l.set_alignment(0, 0.5) + advanced_options_box.pack_start(l, False, False, 0) +- self.picture_options = GSettingsComboBox("", "org.gnome.desktop.background", "picture-options", None, BACKGROUND_PICTURE_OPTIONS) ++ self.picture_options = GSettingsComboBox("", "org.cinnamon.background", "picture-options", None, BACKGROUND_PICTURE_OPTIONS) + advanced_options_box.pack_start(self.picture_options, False, False, 0) + + l = Gtk.Label(_("Gradient")) + l.set_alignment(0, 0.5) + advanced_options_box.pack_start(l, False, False, 0) +- self.color_shading_type = GSettingsComboBox("", "org.gnome.desktop.background", "color-shading-type", None, BACKGROUND_COLOR_SHADING_TYPES) ++ self.color_shading_type = GSettingsComboBox("", "org.cinnamon.background", "color-shading-type", None, BACKGROUND_COLOR_SHADING_TYPES) + advanced_options_box.pack_start(self.color_shading_type, False, False, 0) + + hbox = Gtk.HBox() + l = Gtk.Label(_("Colors")) + hbox.pack_start(l, False, False, 2) +- self.primary_color = GSettingsColorChooser("org.gnome.desktop.background", "primary-color", None) ++ self.primary_color = GSettingsColorChooser("org.cinnamon.background", "primary-color", None) + hbox.pack_start(self.primary_color, False, False, 2) +- self.secondary_color = GSettingsColorChooser("org.gnome.desktop.background", "secondary-color", None) ++ self.secondary_color = GSettingsColorChooser("org.cinnamon.background", "secondary-color", None) + hbox.pack_start(self.secondary_color, False, False, 2) + advanced_options_box.pack_start(hbox, False, False, 0) + self.content_box.show_all() +diff --git a/js/ui/main.js b/js/ui/main.js +index 11920a4..5cae372 100644 +--- a/js/ui/main.js ++++ b/js/ui/main.js +@@ -86,6 +86,7 @@ let _cssStylesheet = null; + let dynamicWorkspaces = null; + let nWorks = null; + let tracker = null; ++let backgroundManager = null; + let desktopShown; + + let workspace_names = []; +@@ -214,7 +215,7 @@ function start() { + // be predictable anyways. + tracker = Cinnamon.WindowTracker.get_default(); + Cinnamon.AppUsage.get_default(); +- ++ backgroundManager = Cinnamon.BackgroundManager.get_default(); + // The stage is always covered so Clutter doesn't need to clear it; however + // the color is used as the default contents for the Muffin root background + // actor so set it anyways. +diff --git a/src/Makefile.am b/src/Makefile.am +index 51413aa..6efce18 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -105,6 +105,7 @@ cinnamon_public_headers_h = \ + cinnamon-app-system.h \ + cinnamon-app-usage.h \ + cinnamon-arrow.h \ ++ cinnamon-background-manager.h \ + cinnamon-doc-system.h \ + cinnamon-embedded-window.h \ + cinnamon-generic-container.h \ +@@ -142,6 +143,7 @@ libcinnamon_la_SOURCES = \ + cinnamon-app-system.c \ + cinnamon-app-usage.c \ + cinnamon-arrow.c \ ++ cinnamon-background-manager.c \ + cinnamon-doc-system.c \ + cinnamon-embedded-window.c \ + cinnamon-generic-container.c \ +diff --git a/src/cinnamon-background-manager.c b/src/cinnamon-background-manager.c +new file mode 100644 +index 0000000..9d95250 +--- /dev/null ++++ b/src/cinnamon-background-manager.c +@@ -0,0 +1,411 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- ++ * ++ * Copyright © 2001 Ximian, Inc. ++ * Copyright (C) 2007 William Jon McCann ++ * Copyright 2007 Red Hat, Inc. ++ * ++ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ */ ++ ++#include "config.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#define GNOME_DESKTOP_USE_UNSTABLE_API ++#include ++#include ++ ++#include "cinnamon-background-manager.h" ++ ++#define CINNAMON_BACKGROUND_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CINNAMON_TYPE_BACKGROUND_MANAGER, CinnamonBackgroundManagerPrivate)) ++ ++struct CinnamonBackgroundManagerPrivate ++{ ++ GSettings *settings; ++ GnomeBG *bg; ++ ++ GnomeBGCrossfade *fade; ++ ++ GDBusProxy *proxy; ++ guint proxy_signal_id; ++}; ++ ++static void cinnamon_background_manager_class_init (CinnamonBackgroundManagerClass *klass); ++static void cinnamon_background_manager_init (CinnamonBackgroundManager *background_manager); ++static void cinnamon_background_manager_finalize (GObject *object); ++ ++static void setup_bg (CinnamonBackgroundManager *manager); ++static void connect_screen_signals (CinnamonBackgroundManager *manager); ++ ++G_DEFINE_TYPE (CinnamonBackgroundManager, cinnamon_background_manager, G_TYPE_OBJECT) ++ ++static gpointer manager_object = NULL; ++ ++static gboolean ++dont_draw_background (CinnamonBackgroundManager *manager) ++{ ++ return !g_settings_get_boolean (manager->priv->settings, ++ "draw-background"); ++} ++ ++static void ++on_crossfade_finished (CinnamonBackgroundManager *manager) ++{ ++ g_object_unref (manager->priv->fade); ++ manager->priv->fade = NULL; ++} ++ ++static void ++draw_background (CinnamonBackgroundManager *manager, ++ gboolean use_crossfade) ++{ ++ GdkDisplay *display; ++ int n_screens; ++ int i; ++ ++ display = gdk_display_get_default (); ++ n_screens = gdk_display_get_n_screens (display); ++ ++ for (i = 0; i < n_screens; ++i) { ++ GdkScreen *screen; ++ GdkWindow *root_window; ++ cairo_surface_t *surface; ++ ++ screen = gdk_display_get_screen (display, i); ++ ++ root_window = gdk_screen_get_root_window (screen); ++ ++ surface = gnome_bg_create_surface (manager->priv->bg, ++ root_window, ++ gdk_screen_get_width (screen), ++ gdk_screen_get_height (screen), ++ TRUE); ++ ++ if (use_crossfade) { ++ ++ if (manager->priv->fade != NULL) { ++ g_object_unref (manager->priv->fade); ++ } ++ ++ manager->priv->fade = gnome_bg_set_surface_as_root_with_crossfade (screen, surface); ++ g_signal_connect_swapped (manager->priv->fade, "finished", ++ G_CALLBACK (on_crossfade_finished), ++ manager); ++ } else { ++ gnome_bg_set_surface_as_root (screen, surface); ++ } ++ ++ cairo_surface_destroy (surface); ++ } ++} ++ ++static void ++on_bg_transitioned (GnomeBG *bg, ++ CinnamonBackgroundManager *manager) ++{ ++ draw_background (manager, FALSE); ++} ++ ++static gboolean ++settings_change_event_cb (GSettings *settings, ++ gpointer keys, ++ gint n_keys, ++ CinnamonBackgroundManager *manager) ++{ ++ gnome_bg_load_from_preferences (manager->priv->bg, ++ manager->priv->settings); ++ return FALSE; ++} ++ ++static void ++on_screen_size_changed (GdkScreen *screen, ++ CinnamonBackgroundManager *manager) ++{ ++ draw_background (manager, FALSE); ++} ++ ++static void ++watch_bg_preferences (CinnamonBackgroundManager *manager) ++{ ++ g_signal_connect (manager->priv->settings, ++ "change-event", ++ G_CALLBACK (settings_change_event_cb), ++ manager); ++} ++ ++static void ++on_bg_changed (GnomeBG *bg, ++ CinnamonBackgroundManager *manager) ++{ ++ draw_background (manager, TRUE); ++} ++ ++static void ++setup_bg (CinnamonBackgroundManager *manager) ++{ ++ g_return_if_fail (manager->priv->bg == NULL); ++ ++ manager->priv->bg = gnome_bg_new (); ++ ++ g_signal_connect (manager->priv->bg, ++ "changed", ++ G_CALLBACK (on_bg_changed), ++ manager); ++ ++ g_signal_connect (manager->priv->bg, ++ "transitioned", ++ G_CALLBACK (on_bg_transitioned), ++ manager); ++ ++ connect_screen_signals (manager); ++ watch_bg_preferences (manager); ++ gnome_bg_load_from_preferences (manager->priv->bg, ++ manager->priv->settings); ++} ++ ++static void ++setup_bg_and_draw_background (CinnamonBackgroundManager *manager) ++{ ++ setup_bg (manager); ++ draw_background (manager, FALSE); ++} ++ ++static void ++disconnect_session_manager_listener (CinnamonBackgroundManager *manager) ++{ ++ if (manager->priv->proxy && manager->priv->proxy_signal_id) { ++ g_signal_handler_disconnect (manager->priv->proxy, ++ manager->priv->proxy_signal_id); ++ manager->priv->proxy_signal_id = 0; ++ } ++} ++ ++static void ++on_session_manager_signal (GDBusProxy *proxy, ++ const gchar *sender_name, ++ const gchar *signal_name, ++ GVariant *parameters, ++ gpointer user_data) ++{ ++ CinnamonBackgroundManager *manager = CINNAMON_BACKGROUND_MANAGER (user_data); ++ ++ if (g_strcmp0 (signal_name, "SessionRunning") == 0) { ++ setup_bg_and_draw_background (manager); ++ disconnect_session_manager_listener (manager); ++ } ++} ++ ++static void ++draw_background_after_session_loads (CinnamonBackgroundManager *manager) ++{ ++ GError *error = NULL; ++ GDBusProxyFlags flags; ++ ++ flags = G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | ++ G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START; ++ manager->priv->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, ++ flags, ++ NULL, /* GDBusInterfaceInfo */ ++ "org.gnome.SessionManager", ++ "/org/gnome/SessionManager", ++ "org.gnome.SessionManager", ++ NULL, /* GCancellable */ ++ &error); ++ if (manager->priv->proxy == NULL) { ++ g_warning ("Could not listen to session manager: %s", ++ error->message); ++ g_error_free (error); ++ return; ++ } ++ ++ manager->priv->proxy_signal_id = g_signal_connect (manager->priv->proxy, ++ "g-signal", ++ G_CALLBACK (on_session_manager_signal), ++ manager); ++} ++ ++ ++static void ++disconnect_screen_signals (CinnamonBackgroundManager *manager) ++{ ++ GdkDisplay *display; ++ int i; ++ int n_screens; ++ ++ display = gdk_display_get_default (); ++ n_screens = gdk_display_get_n_screens (display); ++ ++ for (i = 0; i < n_screens; ++i) { ++ GdkScreen *screen; ++ screen = gdk_display_get_screen (display, i); ++ g_signal_handlers_disconnect_by_func (screen, ++ G_CALLBACK (on_screen_size_changed), ++ manager); ++ } ++} ++ ++static void ++connect_screen_signals (CinnamonBackgroundManager *manager) ++{ ++ GdkDisplay *display; ++ int i; ++ int n_screens; ++ ++ display = gdk_display_get_default (); ++ n_screens = gdk_display_get_n_screens (display); ++ ++ for (i = 0; i < n_screens; ++i) { ++ GdkScreen *screen; ++ screen = gdk_display_get_screen (display, i); ++ g_signal_connect (screen, ++ "monitors-changed", ++ G_CALLBACK (on_screen_size_changed), ++ manager); ++ g_signal_connect (screen, ++ "size-changed", ++ G_CALLBACK (on_screen_size_changed), ++ manager); ++ } ++} ++ ++static void ++draw_background_changed (GSettings *settings, ++ const char *key, ++ CinnamonBackgroundManager *manager) ++{ ++ if (dont_draw_background (manager) == FALSE) ++ setup_bg_and_draw_background (manager); ++} ++ ++gboolean ++cinnamon_background_manager_start (CinnamonBackgroundManager *manager) ++{ ++ manager->priv->settings = g_settings_new ("org.cinnamon.background"); ++ g_signal_connect (manager->priv->settings, "changed::draw-background", ++ G_CALLBACK (draw_background_changed), manager); ++ ++ setup_bg_and_draw_background (manager); ++ //draw_background_after_session_loads (manager); ++ ++ ++ return TRUE; ++} ++ ++void ++cinnamon_background_manager_stop (CinnamonBackgroundManager *manager) ++{ ++ CinnamonBackgroundManagerPrivate *p = manager->priv; ++ ++ g_debug ("Stopping background manager"); ++ ++ disconnect_screen_signals (manager); ++ ++ if (manager->priv->proxy) { ++ disconnect_session_manager_listener (manager); ++ g_object_unref (manager->priv->proxy); ++ } ++ ++ g_signal_handlers_disconnect_by_func (manager->priv->settings, ++ settings_change_event_cb, ++ manager); ++ ++ if (p->settings != NULL) { ++ g_object_unref (p->settings); ++ p->settings = NULL; ++ } ++ ++ if (p->bg != NULL) { ++ g_object_unref (p->bg); ++ p->bg = NULL; ++ } ++} ++ ++/** ++ * cinnamon_background_manager_get_default: ++ * ++ * Return Value: (transfer none): The global #CinnamonBackgroundManager singleton ++ */ ++CinnamonBackgroundManager * ++cinnamon_background_manager_get_default () ++{ ++ static CinnamonBackgroundManager *instance = NULL; ++ ++ if (instance == NULL) ++ instance = g_object_new (CINNAMON_TYPE_BACKGROUND_MANAGER, NULL); ++ ++ return instance; ++} ++ ++static GObject * ++cinnamon_background_manager_constructor (GType type, ++ guint n_construct_properties, ++ GObjectConstructParam *construct_properties) ++{ ++ CinnamonBackgroundManager *background_manager; ++ ++ background_manager = CINNAMON_BACKGROUND_MANAGER (G_OBJECT_CLASS (cinnamon_background_manager_parent_class)->constructor (type, ++ n_construct_properties, ++ construct_properties)); ++ ++ return G_OBJECT (background_manager); ++} ++ ++static void ++cinnamon_background_manager_class_init (CinnamonBackgroundManagerClass *klass) ++{ ++ GObjectClass *object_class = G_OBJECT_CLASS (klass); ++ ++ object_class->constructor = cinnamon_background_manager_constructor; ++ object_class->finalize = cinnamon_background_manager_finalize; ++ ++ g_type_class_add_private (klass, sizeof (CinnamonBackgroundManagerPrivate)); ++} ++ ++static void ++cinnamon_background_manager_init (CinnamonBackgroundManager *manager) ++{ ++ manager->priv = CINNAMON_BACKGROUND_MANAGER_GET_PRIVATE (manager); ++ cinnamon_background_manager_start (manager); ++} ++ ++static void ++cinnamon_background_manager_finalize (GObject *object) ++{ ++ CinnamonBackgroundManager *background_manager; ++ ++ g_return_if_fail (object != NULL); ++ g_return_if_fail (CINNAMON_IS_BACKGROUND_MANAGER (object)); ++ ++ background_manager = CINNAMON_BACKGROUND_MANAGER (object); ++ ++ g_return_if_fail (background_manager->priv != NULL); ++ ++ G_OBJECT_CLASS (cinnamon_background_manager_parent_class)->finalize (object); ++} +diff --git a/src/cinnamon-background-manager.h b/src/cinnamon-background-manager.h +new file mode 100644 +index 0000000..9a56e32 +--- /dev/null ++++ b/src/cinnamon-background-manager.h +@@ -0,0 +1,57 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- ++ * ++ * Copyright (C) 2007 William Jon McCann ++ * ++ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ */ ++ ++#ifndef __CINNAMON_BACKGROUND_MANAGER_H ++#define __CINNAMON_BACKGROUND_MANAGER_H ++ ++#include ++ ++G_BEGIN_DECLS ++ ++#define CINNAMON_TYPE_BACKGROUND_MANAGER (cinnamon_background_manager_get_type ()) ++#define CINNAMON_BACKGROUND_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CINNAMON_TYPE_BACKGROUND_MANAGER, CinnamonBackgroundManager)) ++#define CINNAMON_BACKGROUND_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), CINNAMON_TYPE_BACKGROUND_MANAGER, CinnamonBackgroundManagerClass)) ++#define CINNAMON_IS_BACKGROUND_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CINNAMON_TYPE_BACKGROUND_MANAGER)) ++#define CINNAMON_IS_BACKGROUND_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CINNAMON_TYPE_BACKGROUND_MANAGER)) ++#define CINNAMON_BACKGROUND_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CINNAMON_TYPE_BACKGROUND_MANAGER, CinnamonBackgroundManagerClass)) ++ ++typedef struct CinnamonBackgroundManagerPrivate CinnamonBackgroundManagerPrivate; ++ ++typedef struct ++{ ++ GObject parent; ++ CinnamonBackgroundManagerPrivate *priv; ++} CinnamonBackgroundManager; ++ ++typedef struct ++{ ++ GObjectClass parent_class; ++} CinnamonBackgroundManagerClass; ++ ++GType cinnamon_background_manager_get_type (void); ++ ++CinnamonBackgroundManager *cinnamon_background_manager_get_default (void); ++ ++gboolean cinnamon_background_manager_start (CinnamonBackgroundManager *manager); ++void cinnamon_background_manager_stop (CinnamonBackgroundManager *manager); ++ ++G_END_DECLS ++ ++#endif /* __CINNAMON_BACKGROUND_MANAGER_H */ +-- +1.8.1.6 + + +From 590a48961f2c7a1b18fb914a1d7212ffcdf03017 Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Tue, 16 Apr 2013 18:28:16 -0400 +Subject: [PATCH 04/15] Change default background + +--- + data/org.cinnamon.gschema.xml.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/data/org.cinnamon.gschema.xml.in b/data/org.cinnamon.gschema.xml.in +index 6f55477..35b0972 100644 +--- a/data/org.cinnamon.gschema.xml.in ++++ b/data/org.cinnamon.gschema.xml.in +@@ -782,7 +782,7 @@ + + + +- 'file://@datadir@/themes/Adwaita/backgrounds/adwaita-timed.xml' ++ 'file:///usr/share/backgrounds/linuxmint/default_background.jpg' + <_summary>Picture URI + <_description> + URI to use for the background image. Not that the backend only supports +-- +1.8.1.6 + + +From ac8b0954c7506ae88059e488539f88d55329f070 Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Tue, 16 Apr 2013 18:41:16 -0400 +Subject: [PATCH 05/15] Use distro-agnostic background.. + +--- + data/org.cinnamon.gschema.xml.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/data/org.cinnamon.gschema.xml.in b/data/org.cinnamon.gschema.xml.in +index 35b0972..0d01089 100644 +--- a/data/org.cinnamon.gschema.xml.in ++++ b/data/org.cinnamon.gschema.xml.in +@@ -782,7 +782,7 @@ + + + +- 'file:///usr/share/backgrounds/linuxmint/default_background.jpg' ++ 'file:///usr/share/themes/Adwaita/backgrounds/adwaita-timed.xml' + <_summary>Picture URI + <_description> + URI to use for the background image. Not that the backend only supports +-- +1.8.1.6 + + +From 81dbccb60231744999463a5b84c7c36358570929 Mon Sep 17 00:00:00 2001 +From: dalcde +Date: Mon, 15 Apr 2013 18:34:48 +0800 +Subject: [PATCH 06/15] [GDbus] Port DBus to GDBus (AltLinux patch) + +--- + .../applets/brightness@cinnamon.org/applet.js | 39 ++-- + .../cinnamon/applets/power@cinnamon.org/applet.js | 102 +++++---- + .../cinnamon/applets/sound@cinnamon.org/applet.js | 244 +++++---------------- + .../cinnamon/applets/xrandr@cinnamon.org/applet.js | 19 +- + js/misc/gnomeSession.js | 147 ++++--------- + js/misc/modemManager.js | 79 ++++--- + js/misc/screenSaver.js | 89 ++++---- + js/ui/appletManager.js | 1 - + js/ui/automountManager.js | 106 +++++---- + js/ui/autorunManager.js | 27 +-- + js/ui/calendar.js | 71 +++--- + js/ui/cinnamonDBus.js | 96 ++++---- + js/ui/endSessionDialog.js | 79 ++++--- + js/ui/keyboard.js | 48 ++-- + js/ui/layout.js | 14 +- + js/ui/magnifierDBus.js | 134 +++++++---- + js/ui/main.js | 6 - + js/ui/messageTray.js | 13 +- + js/ui/notificationDaemon.js | 193 ++++++++-------- + js/ui/scripting.js | 34 ++- + 20 files changed, 688 insertions(+), 853 deletions(-) + +diff --git a/files/usr/share/cinnamon/applets/brightness@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/brightness@cinnamon.org/applet.js +index 9cbda80..9087b25 100644 +--- a/files/usr/share/cinnamon/applets/brightness@cinnamon.org/applet.js ++++ b/files/usr/share/cinnamon/applets/brightness@cinnamon.org/applet.js +@@ -5,7 +5,6 @@ const St = imports.gi.St; + const PopupMenu = imports.ui.popupMenu; + const GLib = imports.gi.GLib; + const Gio = imports.gi.Gio; +-const DBus = imports.dbus; + + /* constants */ + const DimSettingsSchema = "org.gnome.settings-daemon.plugins.power"; +@@ -14,24 +13,25 @@ const DimSettingsBattery = "idle-dim-battery"; + const PowerBusName = 'org.gnome.SettingsDaemon'; + const PowerObjectPath = '/org/gnome/SettingsDaemon/Power'; + +-/* DBus interface */ +-const PowerManagerInterface = { +- name: 'org.gnome.SettingsDaemon.Power.Screen', +- methods: +- [ +- { name: 'GetPercentage', inSignature: '', outSignature: 'u' }, +- { name: 'SetPercentage', inSignature: 'u', outSignature: 'u' }, +- { name: 'StepUp', inSignature: '', outSignature: 'u' }, +- { name: 'StepDown', inSignature: '', outSignature: 'u' }, +- ], +- signals: +- [ +- { name: 'Changed', inSignature: '', outSignature: '' }, +- ] +-}; ++const PowerManagerInterface = ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++; + + /* DBus magic */ +-let PowerManagerProxy = DBus.makeProxyClass(PowerManagerInterface); ++const PowerManagerProxy = Gio.DBusProxy.makeProxyWrapper(PowerManagerInterface); + + /* TextImageMenuItem taken from sound@cinnamon.org applet */ + let icon_path = "/usr/share/cinnamon/theme/"; +@@ -100,7 +100,7 @@ MyApplet.prototype = { + Applet.IconApplet.prototype._init.call(this, orientation, panel_height); + + try { +- this._proxy = new PowerManagerProxy(DBus.session, PowerBusName, PowerObjectPath); ++ this._proxy = new PowerManagerProxy(Gio.DBus.session, PowerBusName, PowerObjectPath); + + this.menuManager = new PopupMenu.PopupMenuManager(this); + this.menu = new Applet.AppletPopupMenu(this, orientation); +@@ -137,7 +137,8 @@ MyApplet.prototype = { + this.menu.addMenuItem(this._settingsMenu); + + //get notified +- this._proxy.connect('Changed', Lang.bind(this, this._getBrightness)); ++ this._proxy.connectSignal('Changed', Lang.bind(this, this._getBrightness)); ++ + this.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent)); + } else { + this.set_applet_tooltip(_("Brightness")); +diff --git a/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js +index c342fe7..b6b2bcd 100644 +--- a/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js ++++ b/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js +@@ -1,6 +1,5 @@ + const Applet = imports.ui.applet; + const Gio = imports.gi.Gio; +-const DBus = imports.dbus; + const Lang = imports.lang; + const St = imports.gi.St; + const PopupMenu = imports.ui.popupMenu; +@@ -42,34 +41,46 @@ const LabelDisplay = { + TIME: 'time' + }; + +-const PowerManagerInterface = { +- name: 'org.gnome.SettingsDaemon.Power', +- methods: [ +- { name: 'GetDevices', inSignature: '', outSignature: 'a(susdut)' }, +- { name: 'GetPrimaryDevice', inSignature: '', outSignature: '(susdut)' }, +- ], +- signals: [ +- { name: 'PropertiesChanged', inSignature: 's,a{sv},a[s]' }, +- ], +- properties: [ +- { name: 'Icon', signature: 's', access: 'read' }, +- ] +-}; +-let PowerManagerProxy = DBus.makeProxyClass(PowerManagerInterface); +- +-const SettingsManagerInterface = { +- name: 'org.freedesktop.DBus.Properties', +- methods: [ +- { name: 'Get', inSignature: 's,s', outSignature: 'v' }, +- { name: 'GetAll', inSignature: 's', outSignature: 'a{sv}' }, +- { name: 'Set', inSignature: 's,s,v', outSignature: '' } +- ], +- signals: [ +- {name: 'PropertiesChanged', inSignature:'s,a{sv},a[s]', outSignature:''} +- ] +-}; +- +-let SettingsManagerProxy = DBus.makeProxyClass(SettingsManagerInterface); ++const PowerManagerInterface = ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++; ++ ++const PowerManagerProxy = Gio.DBusProxy.makeProxyWrapper(PowerManagerInterface); ++ ++const SettingsManagerInterface = ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++; ++ ++const SettingsManagerProxy = Gio.DBusProxy.makeProxyWrapper(SettingsManagerInterface); + + function DeviceItem() { + this._init.apply(this, arguments); +@@ -143,11 +154,11 @@ MyApplet.prototype = { + this.menuManager = new PopupMenu.PopupMenuManager(this); + this.menu = new Applet.AppletPopupMenu(this, orientation); + this.menuManager.addMenu(this.menu); +- +- this.set_applet_icon_symbolic_name('battery-missing'); +- this._proxy = new PowerManagerProxy(DBus.session, BUS_NAME, OBJECT_PATH); +- this._smProxy = new SettingsManagerProxy(DBus.session, BUS_NAME, OBJECT_PATH); +- ++ ++ //this.set_applet_icon_symbolic_name('battery-missing'); ++ this._proxy = new PowerManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH); ++ this._smProxy = new SettingsManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH); ++ + let icon = this.actor.get_children()[0]; + this.actor.remove_actor(icon); + let box = new St.BoxLayout({ name: 'batteryBox' }); +@@ -306,18 +317,19 @@ MyApplet.prototype = { + this._devicesChanged(); + }, + +- _devicesChanged: function() { +- this.set_applet_icon_symbolic_name('battery-missing'); +- this._proxy.GetRemote('Icon', Lang.bind(this, function(icon, error) { +- if (icon) { +- let gicon = Gio.icon_new_for_string(icon); +- this._applet_icon.gicon = gicon; +- this.actor.show(); +- } else { +- this.menu.close(); +- this.actor.hide(); +- } +- })); ++ ++ _devicesChanged: function() { ++ this.set_applet_icon_symbolic_name('battery-missing'); ++ let icon = this._proxy.Icon; ++ if (icon) { ++ let gicon = Gio.icon_new_for_string(icon); ++ this.setGIcon(gicon); ++ this.actor.show(); ++ } else { ++ this.menu.close(); ++ this.actor.hide(); ++ } ++ + this._readPrimaryDevice(); + this._readOtherDevices(); + this._updateLabel(); +diff --git a/files/usr/share/cinnamon/applets/sound@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/sound@cinnamon.org/applet.js +index 1113b1e..5bfaf26 100644 +--- a/files/usr/share/cinnamon/applets/sound@cinnamon.org/applet.js ++++ b/files/usr/share/cinnamon/applets/sound@cinnamon.org/applet.js +@@ -1,7 +1,6 @@ + const Applet = imports.ui.applet; + const Mainloop = imports.mainloop; + const Gio = imports.gi.Gio; +-const DBus = imports.dbus; + const Lang = imports.lang; + const Cinnamon = imports.gi.Cinnamon; + const Clutter = imports.gi.Clutter; +@@ -12,90 +11,45 @@ const Gvc = imports.gi.Gvc; + const Pango = imports.gi.Pango; + const Tooltips = imports.ui.tooltips; + +-const PropIFace = { +- name: 'org.freedesktop.DBus.Properties', +- signals: [{ name: 'PropertiesChanged', +- inSignature: 'a{sv}'}] +-}; +- +-const MediaServer2IFace = { +- name: 'org.mpris.MediaPlayer2', +- methods: [{ name: 'Raise', +- inSignature: '', +- outSignature: '' }, +- { name: 'Quit', +- inSignature: '', +- outSignature: '' }], +- properties: [{ name: 'CanRaise', +- signature: 'b', +- access: 'read'}, +- { name: 'CanQuit', +- signature: 'b', +- access: 'read'}], +-}; +- +-const MediaServer2PlayerIFace = { +- name: 'org.mpris.MediaPlayer2.Player', +- methods: [{ name: 'PlayPause', +- inSignature: '', +- outSignature: '' }, +- { name: 'Pause', +- inSignature: '', +- outSignature: '' }, +- { name: 'Play', +- inSignature: '', +- outSignature: '' }, +- { name: 'Stop', +- inSignature: '', +- outSignature: '' }, +- { name: 'Next', +- inSignature: '', +- outSignature: '' }, +- { name: 'Previous', +- inSignature: '', +- outSignature: '' }, +- { name: 'SetPosition', +- inSignature: 'a{ov}', +- outSignature: '' }], +- properties: [{ name: 'Metadata', +- signature: 'a{sv}', +- access: 'read'}, +- { name: 'Shuffle', +- signature: 'b', +- access: 'readwrite'}, +- { name: 'Rate', +- signature: 'd', +- access: 'readwrite'}, +- { name: 'LoopStatus', +- signature: 'b', +- access: 'readwrite'}, +- { name: 'Volume', +- signature: 'd', +- access: 'readwrite'}, +- { name: 'PlaybackStatus', +- signature: 's', +- access: 'read'}, +- { name: 'Position', +- signature: 'x', +- access: 'read'}, +- { name: 'CanGoNext', +- signature: 'b', +- access: 'read'}, +- { name: 'CanGoPrevious', +- signature: 'b', +- access: 'read'}, +- { name: 'CanPlay', +- signature: 'b', +- access: 'read'}, +- { name: 'CanPause', +- signature: 'b', +- access: 'read'}, +- { name: 'CanSeek', +- signature: 'b', +- access: 'read'}], +- signals: [{ name: 'Seeked', +- inSignature: 'x' }] +-}; ++const PropIFace = ++ ++ ++ ++; ++ ++const MediaServer2IFace = ++ ++ ++ ++ ++; ++ ++const MediaServer2PlayerIFace = ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++; + + /* global values */ + let icon_path = "/usr/share/cinnamon/theme/"; +@@ -112,120 +66,20 @@ const VOLUME_ADJUSTMENT_STEP = 0.05; /* Volume adjustment step in % */ + const ICON_SIZE = 28; + + +-function Prop() { +- this._init.apply(this, arguments); ++var PropProxy = Gio.DBusProxy.makeProxyWrapper(PropIFace); ++function Prop(owner, initCallback, cancellable) { ++ return new PropProxy(Gio.DBus.session, owner, '/org/mpris/MediaPlayer2', initCallback, cancellable); + } + +-Prop.prototype = { +- _init: function(owner) { +- DBus.session.proxifyObject(this, owner, '/org/mpris/MediaPlayer2', this); +- } ++var MediaServer2Proxy = Gio.DBusProxy.makeProxyWrapper(MediaServer2IFace); ++function MediaServer2(owner, initCallback, cancellable) { ++ return new MediaServer2Proxy(Gio.DBus.session, owner, '/org/mpris/MediaPlayer2', initCallback, cancellable); + } +-DBus.proxifyPrototype(Prop.prototype, PropIFace) + +-function MediaServer2() { +- this._init.apply(this, arguments); +-} +- +-MediaServer2.prototype = { +- _init: function(owner) { +- DBus.session.proxifyObject(this, owner, '/org/mpris/MediaPlayer2', this); +- }, +- getRaise: function(callback) { +- this.GetRemote('CanRaise', Lang.bind(this, +- function(raise, ex) { +- if (!ex) +- callback(this, raise); +- })); +- }, +- getQuit: function(callback) { +- this.GetRemote('CanQuit', Lang.bind(this, +- function(quit, ex) { +- if (!ex) +- callback(this, quit); +- })); +- } +-} +-DBus.proxifyPrototype(MediaServer2.prototype, MediaServer2IFace) +- +-function MediaServer2Player() { +- this._init.apply(this, arguments); +-} +- +-MediaServer2Player.prototype = { +- _init: function(owner) { +- this._owner = owner; +- DBus.session.proxifyObject(this, owner, '/org/mpris/MediaPlayer2', this); +- }, +- getMetadata: function(callback) { +- this.GetRemote('Metadata', Lang.bind(this, +- function(metadata, ex) { +- if (!ex) +- callback(this, metadata); +- })); +- }, +- getPlaybackStatus: function(callback) { +- this.GetRemote('PlaybackStatus', Lang.bind(this, +- function(status, ex) { +- if (!ex) +- callback(this, status); +- })); +- }, +- getRate: function(callback) { +- this.GetRemote('Rate', Lang.bind(this, +- function(rate, ex) { +- if (!ex) +- callback(this, rate); +- })); +- }, +- getPosition: function(callback) { +- this.GetRemote('Position', Lang.bind(this, +- function(position, ex) { +- if (!ex) +- callback(this, position); +- })); +- }, +- getShuffle: function(callback) { +- this.GetRemote('Shuffle', Lang.bind(this, +- function(shuffle, ex) { +- if (!ex) +- callback(this, shuffle); +- })); +- }, +- setShuffle: function(value) { +- this.SetRemote('Shuffle', value); +- }, +- getVolume: function(callback) { +- this.GetRemote('Volume', Lang.bind(this, +- function(volume, ex) { +- if (!ex) +- callback(this, volume); +- })); +- }, +- setVolume: function(value) { +- this.SetRemote('Volume', parseFloat(value)); +- }, +- getRepeat: function(callback) { +- this.GetRemote('LoopStatus', Lang.bind(this, +- function(repeat, ex) { +- if (!ex) { +- if (repeat == "None") +- repeat = false +- else +- repeat = true +- callback(this, repeat); +- } +- })); +- }, +- setRepeat: function(value) { +- if (value) +- value = "Playlist" +- else +- value = "None" +- this.SetRemote('LoopStatus', value); +- } ++var MediaServer2PlayerProxy = Gio.DBusProxy.makeProxyWrapper(MediaServer2PlayerIFace); ++function MediaServer2Player(owner, initCallback, cancellable) { ++ return new MediaServer2PlayerProxy(Gio.DBus.session, owner, '/org/mpris/MediaPlayer2', initCallback, cancellable); + } +-DBus.proxifyPrototype(MediaServer2Player.prototype, MediaServer2PlayerIFace) + + function TrackInfo() { + this._init.apply(this, arguments); +@@ -715,7 +569,7 @@ MyApplet.prototype = { + this._players = {}; + // watch players + for (var p=0; p ++ ++ ++ ++ ++; ++ ++const XRandr2 = Gio.DBusProxy.makeProxyWrapper(XRandr2Iface); + + function MyApplet(orientation, panel_height) { + this._init(orientation, panel_height); +@@ -48,7 +49,7 @@ MyApplet.prototype = { + this.menu = new Applet.AppletPopupMenu(this, orientation); + this.menuManager.addMenu(this.menu); + +- this._proxy = new XRandr2(DBus.session, 'org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/XRANDR'); ++ this._proxy = new XRandr2(Gio.DBus.session, 'org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/XRANDR'); + + try { + this._screen = new GnomeDesktop.RRScreen({ gdk_screen: Gdk.Screen.get_default() }); +diff --git a/js/misc/gnomeSession.js b/js/misc/gnomeSession.js +index a2b61fd..e21d3a8 100644 +--- a/js/misc/gnomeSession.js ++++ b/js/misc/gnomeSession.js +@@ -1,20 +1,18 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + +-const DBus = imports.dbus; ++const Gio = imports.gi.Gio; + const Lang = imports.lang; + const Signals = imports.signals; + +-const PresenceIface = { +- name: 'org.gnome.SessionManager.Presence', +- methods: [{ name: 'SetStatus', +- inSignature: 'u', +- outSignature: '' }], +- properties: [{ name: 'status', +- signature: 'u', +- access: 'readwrite' }], +- signals: [{ name: 'StatusChanged', +- inSignature: 'u' }] +-}; ++const PresenceIface = ++ ++ ++ ++ ++ ++ ++ ++; + + const PresenceStatus = { + AVAILABLE: 0, +@@ -23,104 +21,37 @@ const PresenceStatus = { + IDLE: 3 + }; + +-function Presence() { +- this._init(); ++var PresenceProxy = Gio.DBusProxy.makeProxyWrapper(PresenceIface); ++function Presence(initCallback, cancellable) { ++ return new PresenceProxy(Gio.DBus.session, 'org.gnome.SessionManager', ++ '/org/gnome/SessionManager/Presence', initCallback, cancellable); + } + +-Presence.prototype = { +- _init: function() { +- DBus.session.proxifyObject(this, 'org.gnome.SessionManager', '/org/gnome/SessionManager/Presence', this); +- }, +- +- getStatus: function(callback) { +- this.GetRemote('status', Lang.bind(this, +- function(status, ex) { +- if (!ex) +- callback(this, status); +- })); +- }, +- +- setStatus: function(status) { +- this.SetStatusRemote(status); +- } +-}; +-DBus.proxifyPrototype(Presence.prototype, PresenceIface); +- +-// Note inhibitors are immutable objects, so they don't +-// change at runtime (changes always come in the form +-// of new inhibitors) +-const InhibitorIface = { +- name: 'org.gnome.SessionManager.Inhibitor', +- properties: [{ name: 'app_id', +- signature: 's', +- access: 'readonly' }, +- { name: 'client_id', +- signature: 's', +- access: 'readonly' }, +- { name: 'reason', +- signature: 's', +- access: 'readonly' }, +- { name: 'flags', +- signature: 'u', +- access: 'readonly' }, +- { name: 'toplevel_xid', +- signature: 'u', +- access: 'readonly' }, +- { name: 'cookie', +- signature: 'u', +- access: 'readonly' }], +-}; +- +-function Inhibitor(objectPath) { +- this._init(objectPath); ++const InhibitorIface = ++ ++ ++ ++ ++ ++ ++; ++ ++var InhibitorProxy = Gio.DBusProxy.makeProxyWrapper(InhibitorIface); ++function Inhibitor(objectPath, initCallback, cancellable) { ++ return new InhibitorProxy(Gio.DBus.session, 'org.gnome.SessionManager', objectPath, initCallback, cancellable); + } + +-Inhibitor.prototype = { +- _init: function(objectPath) { +- DBus.session.proxifyObject(this, +- 'org.gnome.SessionManager', +- objectPath); +- this.isLoaded = false; +- this._loadingPropertiesCount = InhibitorIface.properties.length; +- for (let i = 0; i < InhibitorIface.properties.length; i++) { +- let propertyName = InhibitorIface.properties[i].name; +- this.GetRemote(propertyName, Lang.bind(this, +- function(value, exception) { +- if (exception) +- return; +- +- this[propertyName] = value; +- this._loadingPropertiesCount--; +- +- if (this._loadingPropertiesCount == 0) { +- this.isLoaded = true; +- this.emit('is-loaded'); +- } +- })); +- } +- }, +-}; +-DBus.proxifyPrototype(Inhibitor.prototype, InhibitorIface); +-Signals.addSignalMethods(Inhibitor.prototype); +- +- +-// Not the full interface, only the methods we use +-const SessionManagerIface = { +- name: 'org.gnome.SessionManager', +- methods: [ +- { name: 'Logout', inSignature: 'u', outSignature: '' }, +- { name: 'Shutdown', inSignature: '', outSignature: '' }, +- { name: 'CanShutdown', inSignature: '', outSignature: 'b' } +- ] +-}; +- +-function SessionManager() { +- this._init(); ++const SessionManagerIface = ++ ++ ++ ++ ++ ++ ++ ++; ++ ++var SessionManagerProxy = Gio.DBusProxy.makeProxyWrapper(SessionManagerIface); ++function SessionManager(initCallback, cancellable) { ++ return new SessionManagerProxy(Gio.DBus.session, 'org.gnome.SessionManager', '/org/gnome/SessionManager', initCallback, cancellable); + } +- +-SessionManager.prototype = { +- _init: function() { +- DBus.session.proxifyObject(this, 'org.gnome.SessionManager', '/org/gnome/SessionManager'); +- } +-}; +-DBus.proxifyPrototype(SessionManager.prototype, SessionManagerIface); +\ No newline at end of file +diff --git a/js/misc/modemManager.js b/js/misc/modemManager.js +index befd142..f35f925 100644 +--- a/js/misc/modemManager.js ++++ b/js/misc/modemManager.js +@@ -1,6 +1,6 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + +-const DBus = imports.dbus; ++const Gio = imports.gi.Gio; + const Lang = imports.lang; + const Cinnamon = imports.gi.Cinnamon; + const Signals = imports.signals; +@@ -8,33 +8,43 @@ const Signals = imports.signals; + // The following are not the complete interfaces, just the methods we need + // (or may need in the future) + +-const ModemGsmNetworkInterface = { +- name: 'org.freedesktop.ModemManager.Modem.Gsm.Network', +- methods: [ +- { name: 'GetRegistrationInfo', inSignature: '', outSignature: 'uss' }, +- { name: 'GetSignalQuality', inSignature: '', outSignature: 'u' } +- ], +- properties: [ +- { name: 'AccessTechnology', signature: 'u', access: 'read' } +- ], +- signals: [ +- { name: 'SignalQuality', inSignature: 'u' }, +- { name: 'RegistrationInfo', inSignature: 'uss' } +- ] +-}; +-const ModemGsmNetworkProxy = DBus.makeProxyClass(ModemGsmNetworkInterface); +- +-const ModemCdmaInterface = { +- name: 'org.freedesktop.ModemManager.Modem.Cdma', +- methods: [ +- { name: 'GetSignalQuality', inSignature: '', outSignature: 'u' }, +- { name: 'GetServingSystem', inSignature: '', outSignature: 'usu' } +- ], +- signals: [ +- { name: 'SignalQuality', inSignature: 'u' } +- ] +-}; +-const ModemCdmaProxy = DBus.makeProxyClass(ModemCdmaInterface); ++const ModemGsmNetworkInterface = ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++; ++ ++const ModemGsmNetworkProxy = Gio.DBusProxy.makeProxyWrapper(ModemGsmNetworkInterface); ++ ++const ModemCdmaInterface = ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++; ++ ++const ModemCdmaProxy = Gio.DBusProxy.makeProxyWrapper(ModemCdmaInterface); + + let _providersTable; + function _getProvidersTable() { +@@ -50,17 +60,17 @@ function ModemGsm() { + + ModemGsm.prototype = { + _init: function(path) { +- this._proxy = new ModemGsmNetworkProxy(DBus.system, 'org.freedesktop.ModemManager', path); ++ this._proxy = new ModemGsmNetworkProxy(Gio.DBus.system, 'org.freedesktop.ModemManager', path); + + this.signal_quality = 0; + this.operator_name = null; + + // Code is duplicated because the function have different signatures +- this._proxy.connect('SignalQuality', Lang.bind(this, function(proxy, quality) { ++ this._proxy.connectSignal('SignalQuality', Lang.bind(this, function(proxy, sender, [quality]) { + this.signal_quality = quality; + this.emit('notify::signal-quality'); + })); +- this._proxy.connect('RegistrationInfo', Lang.bind(this, function(proxy, status, code, name) { ++ this._proxy.connectSignal('RegistrationInfo', Lang.bind(this, function(proxy, sender, [status, code, name]) { + this.operator_name = this._findOperatorName(name, code); + this.emit('notify::operator-name'); + })); +@@ -154,12 +164,13 @@ function ModemCdma() { + } + + ModemCdma.prototype = { +- _init: function(path) { +- this._proxy = new ModemCdmaProxy(DBus.system, 'org.freedesktop.ModemManager', path); ++ _init: function(path) { ++ this._proxy = new ModemCdmaProxy(Gio.DBus.system, 'org.freedesktop.ModemManager', path); + + this.signal_quality = 0; + this.operator_name = null; +- this._proxy.connect('SignalQuality', Lang.bind(this, function(proxy, quality) { ++ this._proxy.connect('SignalQuality', Lang.bind(this, function(proxy, sender, params) { ++ this.signal_quality = params[0]; + this.signal_quality = quality; + this.emit('notify::signal-quality'); + +diff --git a/js/misc/screenSaver.js b/js/misc/screenSaver.js +index c471856..aec883f 100644 +--- a/js/misc/screenSaver.js ++++ b/js/misc/screenSaver.js +@@ -1,53 +1,48 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + +-const DBus = imports.dbus; + const Lang = imports.lang; +- +-const ScreenSaverIface = { +- name: 'org.gnome.ScreenSaver', +- methods: [{ name: 'GetActive', +- inSignature: '', +- outSignature: 'b' }, +- { name: 'Lock', +- inSignature: '' }, +- { name: 'SetActive', +- inSignature: 'b' }], +- signals: [{ name: 'ActiveChanged', +- inSignature: 'b' }] +-}; ++const Gio = imports.gi.Gio; ++ ++const ScreenSaverIface = ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++; ++ ++const ScreenSaverInfo = Gio.DBusInterfaceInfo.new_for_xml(ScreenSaverIface); + + function ScreenSaverProxy() { +- this._init(); ++ var self = new Gio.DBusProxy({ g_connection: Gio.DBus.session, ++ g_interface_name: ScreenSaverInfo.name, ++ g_interface_info: ScreenSaverInfo, ++ g_name: 'org.gnome.ScreenSaver', ++ g_object_path: '/org/gnome/ScreenSaver', ++ g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START | ++ Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) }); ++ self.init(null); ++ self.screenSaverActive = false; ++ ++ self.connectSignal('ActiveChanged', function(proxy, senderName, [isActive]) { ++ self.screenSaverActive = isActive; ++ }); ++ self.connect('notify::g-name-owner', function() { ++ if (self.g_name_owner) { ++ self.GetActiveRemote(function(result, excp) { ++ if (result) { ++ let [isActive] = result; ++ self.screenSaverActive = isActive; ++ } ++ }); ++ } else ++ self.screenSaverActive = false; ++ }); ++ ++ return self; + } +- +-ScreenSaverProxy.prototype = { +- _init: function() { +- DBus.session.proxifyObject(this, +- 'org.gnome.ScreenSaver', +- '/org/gnome/ScreenSaver'); +- +- DBus.session.watch_name('org.gnome.ScreenSaver', +- false, // do not launch a name-owner if none exists +- Lang.bind(this, this._onSSAppeared), +- Lang.bind(this, this._onSSVanished)); +- +- this.screenSaverActive = false; +- this.connect('ActiveChanged', +- Lang.bind(this, this._onActiveChanged)); +- }, +- +- _onSSAppeared: function(owner) { +- this.GetActiveRemote(Lang.bind(this, function(isActive) { +- this.screenSaverActive = isActive; +- })) +- }, +- +- _onSSVanished: function(oldOwner) { +- this.screenSaverActive = false; +- }, +- +- _onActiveChanged: function(object, isActive) { +- this.screenSaverActive = isActive; +- } +-}; +-DBus.proxifyPrototype(ScreenSaverProxy.prototype, ScreenSaverIface); +diff --git a/js/ui/appletManager.js b/js/ui/appletManager.js +index abf8136..830d80d 100644 +--- a/js/ui/appletManager.js ++++ b/js/ui/appletManager.js +@@ -7,7 +7,6 @@ const Cinnamon = imports.gi.Cinnamon; + const Main = imports.ui.main; + const Applet = imports.ui.applet; + const Extension = imports.ui.extension; +-const DBus = imports.dbus; + + // Maps uuid -> metadata object + var appletMeta; +diff --git a/js/ui/automountManager.js b/js/ui/automountManager.js +index fa73bfe..f29f9f3 100644 +--- a/js/ui/automountManager.js ++++ b/js/ui/automountManager.js +@@ -1,7 +1,6 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + + const Lang = imports.lang; +-const DBus = imports.dbus; + const Mainloop = imports.mainloop; + const Gio = imports.gi.Gio; + const Params = imports.misc.params; +@@ -15,63 +14,57 @@ const SETTING_ENABLE_AUTOMOUNT = 'automount'; + + const AUTORUN_EXPIRE_TIMEOUT_SECS = 10; + +-const ConsoleKitSessionIface = { +- name: 'org.freedesktop.ConsoleKit.Session', +- methods: [{ name: 'IsActive', +- inSignature: '', +- outSignature: 'b' }], +- signals: [{ name: 'ActiveChanged', +- inSignature: 'b' }] +-}; ++const ConsoleKitSessionIface = ++ ++ ++ ++ ++ ++ ++; + +-const ConsoleKitSessionProxy = DBus.makeProxyClass(ConsoleKitSessionIface); ++const ConsoleKitSessionProxy = Gio.DBusProxy.makeProxyWrapper(ConsoleKitSessionIface); + +-const ConsoleKitManagerIface = { +- name: 'org.freedesktop.ConsoleKit.Manager', +- methods: [{ name: 'GetCurrentSession', +- inSignature: '', +- outSignature: 'o' }] +-}; ++const ConsoleKitManagerIface = ++ ++ ++ ++; + +-function ConsoleKitManager() { +- this._init(); +-}; +- +-ConsoleKitManager.prototype = { +- _init: function() { +- this.sessionActive = true; +- +- DBus.system.proxifyObject(this, +- 'org.freedesktop.ConsoleKit', +- '/org/freedesktop/ConsoleKit/Manager'); ++const ConsoleKitManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(ConsoleKitManagerIface); + +- DBus.system.watch_name('org.freedesktop.ConsoleKit', +- false, // do not launch a name-owner if none exists +- Lang.bind(this, this._onManagerAppeared), +- Lang.bind(this, this._onManagerVanished)); +- }, +- +- _onManagerAppeared: function(owner) { +- this.GetCurrentSessionRemote(Lang.bind(this, this._onCurrentSession)); +- }, +- +- _onManagerVanished: function(oldOwner) { +- this.sessionActive = true; +- }, +- +- _onCurrentSession: function(session) { +- this._ckSession = new ConsoleKitSessionProxy(DBus.system, 'org.freedesktop.ConsoleKit', session); +- +- this._ckSession.connect +- ('ActiveChanged', Lang.bind(this, function(object, isActive) { +- this.sessionActive = isActive; +- })); +- this._ckSession.IsActiveRemote(Lang.bind(this, function(isActive) { +- this.sessionActive = isActive; +- })); ++function ConsoleKitManager() { ++ var self = new Gio.DBusProxy({ g_connection: Gio.DBus.system, ++ g_interface_name: ConsoleKitManagerInfo.name, ++ g_interface_info: ConsoleKitManagerInfo, ++ g_name: 'org.freedesktop.ConsoleKit', ++ g_object_path: '/org/freedesktop/ConsoleKit/Manager', ++ g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START | ++ Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) }); ++ ++ self._updateSessionActive = function() { ++ if (self.g_name_owner) { ++ self.GetCurrentSessionRemote(function([session]) { ++ self._ckSession = new ConsoleKitSessionProxy(Gio.DBus.system, 'org.freedesktop.ConsoleKit', session); ++ ++ self._ckSession.connectSignal('ActiveChanged', function(object, senderName, [isActive]) { ++ self.sessionActive = isActive; ++ }); ++ self._ckSession.IsActiveRemote(function([isActive]) { ++ self.sessionActive = isActive; ++ }); ++ }); ++ } else { ++ self.sessionActive = true; ++ } + } +-}; +-DBus.proxifyPrototype(ConsoleKitManager.prototype, ConsoleKitManagerIface); ++ self.connect('notify::g-name-owner', ++ Lang.bind(self, self._updateSessionActive)); ++ ++ self._updateSessionActive(); ++ self.init(null); ++ return self; ++} + + function AutomountManager() { + this._init(); +@@ -85,9 +78,8 @@ AutomountManager.prototype = { + this.ckListener = new ConsoleKitManager(); + + this._ssProxy = new ScreenSaver.ScreenSaverProxy(); +- this._ssProxy.connect('ActiveChanged', +- Lang.bind(this, +- this._screenSaverActiveChanged)); ++ this._ssProxy.connectSignal('ActiveChanged', ++ Lang.bind(this, this._screenSaverActiveChanged)); + + this._volumeMonitor = Gio.VolumeMonitor.get(); + +@@ -110,7 +102,7 @@ AutomountManager.prototype = { + Mainloop.idle_add(Lang.bind(this, this._startupMountAll)); + }, + +- _screenSaverActiveChanged: function(object, isActive) { ++ _screenSaverActiveChanged: function(object, senderName, [isActive]) { + if (!isActive) { + this._volumeQueue.forEach(Lang.bind(this, function(volume) { + this._checkAndMountVolume(volume); +diff --git a/js/ui/autorunManager.js b/js/ui/autorunManager.js +index 02cd4da..99b6fbe 100644 +--- a/js/ui/autorunManager.js ++++ b/js/ui/autorunManager.js +@@ -1,7 +1,6 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + + const Lang = imports.lang; +-const DBus = imports.dbus; + const Gio = imports.gi.Gio; + const St = imports.gi.St; + +@@ -61,25 +60,19 @@ function startAppForMount(app, mount) { + + /******************************************/ + +-const HotplugSnifferIface = { +- name: 'org.Cinnamon.HotplugSniffer', +- methods: [{ name: 'SniffURI', +- inSignature: 's', +- outSignature: 'as' }] +-}; +- +-const HotplugSniffer = function() { +- this._init(); +-}; ++const HotplugSnifferIface = ++ ++ ++ ++ ++; + +-HotplugSniffer.prototype = { +- _init: function() { +- DBus.session.proxifyObject(this, ++const HotplugSnifferProxy = Gio.DBusProxy.makeProxyWrapper(HotplugSnifferIface); ++function HotplugSniffer() { ++ return new HotplugSnifferProxy(Gio.DBus.session, + 'org.Cinnamon.HotplugSniffer', + '/org/Cinnamon/HotplugSniffer'); +- }, +-}; +-DBus.proxifyPrototype(HotplugSniffer.prototype, HotplugSnifferIface); ++} + + function ContentTypeDiscoverer(callback) { + this._init(callback); +diff --git a/js/ui/calendar.js b/js/ui/calendar.js +index ff4777a..a97e2a9 100644 +--- a/js/ui/calendar.js ++++ b/js/ui/calendar.js +@@ -1,6 +1,5 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + +-const DBus = imports.dbus; + const Clutter = imports.gi.Clutter; + const Gio = imports.gi.Gio; + const Lang = imports.lang; +@@ -194,30 +193,34 @@ EmptyEventSource.prototype = { + }; + Signals.addSignalMethods(EmptyEventSource.prototype); + +-const CalendarServerIface = { +- name: 'org.Cinnamon.CalendarServer', +- methods: [{ name: 'GetEvents', +- inSignature: 'xxb', +- outSignature: 'a(sssbxxa{sv})' }], +- signals: [{ name: 'Changed', +- inSignature: '' }] +-}; +- +-const CalendarServer = function () { +- this._init(); +-}; +- +-CalendarServer.prototype = { +- _init: function() { +- DBus.session.proxifyObject(this, 'org.Cinnamon.CalendarServer', '/org/Cinnamon/CalendarServer'); +- } +-}; +- +-DBus.proxifyPrototype(CalendarServer.prototype, CalendarServerIface); ++const CalendarServerIface = ++ ++ ++ ++ ++ ++ ++ ++; ++ ++const CalendarServerInfo = Gio.DBusInterfaceInfo.new_for_xml(CalendarServerIface); ++ ++function CalendarServer() { ++ var self = new Gio.DBusProxy({ g_connection: Gio.DBus.session, ++ g_interface_name: CalendarServerInfo.name, ++ g_interface_info: CalendarServerInfo, ++ g_name: 'org.Cinnamon.CalendarServer', ++ g_object_path: '/org/Cinnamon/CalendarServer', ++ g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START | ++ Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) }); ++ ++ self.init(null); ++ return self; ++} + + // an implementation that reads data from a session bus service +-function DBusEventSource(owner) { +- this._init(owner); ++function DBusEventSource() { ++ this._init(); + } + + function _datesEqual(a, b) { +@@ -240,16 +243,18 @@ function _dateIntervalsOverlap(a0, a1, b0, b1) + + + DBusEventSource.prototype = { +- _init: function(owner) { ++ _init: function() { + this._resetCache(); + +- this._dbusProxy = new CalendarServer(owner); +- this._dbusProxy.connect('Changed', Lang.bind(this, this._onChanged)); ++ this._dbusProxy = new CalendarServer(); ++ this._dbusProxy.connectSignal('Changed', Lang.bind(this, this._onChanged)); + +- DBus.session.watch_name('org.Cinnamon.CalendarServer', +- false, // do not launch a name-owner if none exists +- Lang.bind(this, this._onNameAppeared), +- Lang.bind(this, this._onNameVanished)); ++ this._dbusProxy.connect('notify::g-name-owner', Lang.bind(this, function() { ++ if (this._dbusProxy.g_name_owner) ++ this._onNameAppeared(); ++ else ++ this._onNameVanished(); ++ })); + }, + + _resetCache: function() { +@@ -272,7 +277,7 @@ DBusEventSource.prototype = { + this._loadEvents(false); + }, + +- _onEventsReceived: function(appointments) { ++ _onEventsReceived: function([appointments]) { + let newEvents = []; + if (appointments != null) { + for (let n = 0; n < appointments.length; n++) { +@@ -295,9 +300,9 @@ DBusEventSource.prototype = { + + _loadEvents: function(forceReload) { + if (this._curRequestBegin && this._curRequestEnd){ +- let callFlags = 0; ++ let callFlags = Gio.DBusCallFlags.NO_AUTO_START; + if (forceReload) +- callFlags |= DBus.CALL_FLAG_START; ++ callFlags = Gio.DBusCallFlags.NONE; + this._dbusProxy.GetEventsRemote(this._curRequestBegin.getTime() / 1000, + this._curRequestEnd.getTime() / 1000, + forceReload, +diff --git a/js/ui/cinnamonDBus.js b/js/ui/cinnamonDBus.js +index 600e92f..5d4eb1c 100644 +--- a/js/ui/cinnamonDBus.js ++++ b/js/ui/cinnamonDBus.js +@@ -1,7 +1,7 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + +-const DBus = imports.dbus; + const Lang = imports.lang; ++const Gio = imports.gi.Gio; + + const Config = imports.misc.config; + const Flashspot = imports.ui.flashspot; +@@ -9,48 +9,53 @@ const Main = imports.ui.main; + const AppletManager = imports.ui.appletManager; + const DeskletManager = imports.ui.deskletManager; + +-const CinnamonIface = { +- name: 'org.Cinnamon', +- methods: [{ name: 'Eval', +- inSignature: 's', +- outSignature: 'bs' +- }, +- { name: 'ScreenshotArea', +- inSignature: 'biiiibs', +- outSignature: '' +- }, +- { name: 'ScreenshotWindow', +- inSignature: 'bbbs', +- outSignature: '' +- }, +- { name: 'Screenshot', +- inSignature: 'bbs', +- outSignature: '' +- }, +- { +- name: 'FlashArea', +- inSignature: 'iiii', +- outSignature: '' +- }, +- { +- name: 'highlightApplet', +- inSignature: 'sb', +- outSignature: '' +- }, +- { +- name: 'activateCallback', +- inSignature: 'ssb', +- outSignature: '' +- } +- ], +- signals: [], +- properties: [{ name: 'OverviewActive', +- signature: 'b', +- access: 'readwrite' }, +- { name: 'CinnamonVersion', +- signature: 's', +- access: 'read' }] +-}; ++ ++const CinnamonIface = ++ ++ ++ ++ ++ ++ ++include_cursor ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++include_cursor ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++; + + function Cinnamon() { + this._init(); +@@ -58,7 +63,8 @@ function Cinnamon() { + + Cinnamon.prototype = { + _init: function() { +- DBus.session.exportObject('/org/Cinnamon', this); ++ this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(CinnamonIface, this); ++ this._dbusImpl.export(Gio.DBus.session, '/org/Cinnamon'); + }, + + /** +@@ -215,5 +221,3 @@ Cinnamon.prototype = { + CinnamonVersion: Config.PACKAGE_VERSION + }; + +-DBus.conformExport(Cinnamon.prototype, CinnamonIface); +- +diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js +index e909f5f..4f1f7d0 100644 +--- a/js/ui/endSessionDialog.js ++++ b/js/ui/endSessionDialog.js +@@ -18,19 +18,19 @@ + * 02110-1335, USA. + */ + +-const DBus = imports.dbus; + const Lang = imports.lang; + const Signals = imports.signals; + + const AccountsService = imports.gi.AccountsService; + const Clutter = imports.gi.Clutter; ++const Gio = imports.gi.Gio; + const GLib = imports.gi.GLib; + const Gtk = imports.gi.Gtk; + const Pango = imports.gi.Pango; + const St = imports.gi.St; + const Cinnamon = imports.gi.Cinnamon; + +-const GnomeSession = imports.misc.gnomeSession ++const GnomeSession = imports.misc.gnomeSession; + const ModalDialog = imports.ui.modalDialog; + const Tweener = imports.ui.tweener; + +@@ -40,20 +40,20 @@ const _ITEM_ICON_SIZE = 48; + const _DIALOG_ICON_SIZE = 32; + + const GSM_SESSION_MANAGER_LOGOUT_FORCE = 2; +- +-const EndSessionDialogIface = { +- name: 'org.gnome.SessionManager.EndSessionDialog', +- methods: [{ name: 'Open', +- inSignature: 'uuuao', +- outSignature: '' +- } +- ], +- signals: [{ name: 'Canceled', +- inSignature: '', +- }], +- properties: [] +-}; +- ++const EndSessionDialogIface = ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++; ++ + const logoutDialogContent = { + subjectWithUser: _("Log Out %s"), + subject: _("Log Out"), +@@ -230,8 +230,6 @@ function _setLabelText(label, text) { + function EndSessionDialog() { + if (_endSessionDialog == null) { + this._init(); +- DBus.session.exportObject('/org/gnome/SessionManager/EndSessionDialog', +- this); + _endSessionDialog = this; + } + +@@ -328,6 +326,9 @@ EndSessionDialog.prototype = { + if (this._applicationList.get_children().length == 0) + scrollView.hide(); + })); ++ ++ this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(EndSessionDialogIface, this); ++ this._dbusImpl.export(Gio.DBus.session, '/org/gnome/SessionManager/EndSessionDialog'); + }, + + _onDestroy: function() { +@@ -442,25 +443,19 @@ EndSessionDialog.prototype = { + + close: function() { + ModalDialog.ModalDialog.prototype.close.call(this); +- DBus.session.emit_signal('/org/gnome/SessionManager/EndSessionDialog', +- 'org.gnome.SessionManager.EndSessionDialog', +- 'Closed', '', []); ++ this._dbusImpl.emit_signal('Closed', null); + }, + + cancel: function() { + this._stopTimer(); +- DBus.session.emit_signal('/org/gnome/SessionManager/EndSessionDialog', +- 'org.gnome.SessionManager.EndSessionDialog', +- 'Canceled', '', []); ++ this._dbusImpl.emit_signal('Canceled', null); + this.close(global.get_current_time()); + }, + + _confirm: function(signal) { + this._fadeOutDialog(); + this._stopTimer(); +- DBus.session.emit_signal('/org/gnome/SessionManager/EndSessionDialog', +- 'org.gnome.SessionManager.EndSessionDialog', +- signal, '', []); ++ this._dbusImpl.emit_signal(signal, null); + }, + + _onOpened: function() { +@@ -512,39 +507,41 @@ EndSessionDialog.prototype = { + this._updateContent(); + }, + +- OpenAsync: function(type, timestamp, totalSecondsToStayOpen, inhibitorObjectPaths, callback) { ++ OpenAsync: function(parameters, invocation) { ++ let [type, timestamp, totalSecondsToStayOpen, inhibitorObjectPaths] = parameters; + this._totalSecondsToStayOpen = totalSecondsToStayOpen; + this._inhibitors = []; + this._applicationList.destroy_children(); + this._type = type; + +- if (!(this._type in DialogContent)) +- throw new DBus.DBusError('org.Cinnamon.ModalDialog.TypeError', +- "Unknown dialog type requested"); ++ if (!(this._type in DialogContent)) { ++ invocation.report_dbus_error('org.Cinnamon.ModalDialog.TypeError', ++ "Unknown dialog type requested"); ++ return; ++ } + + for (let i = 0; i < inhibitorObjectPaths.length; i++) { +- let inhibitor = new GnomeSession.Inhibitor(inhibitorObjectPaths[i]); ++ let inhibitor = new GnomeSession.Inhibitor(inhibitorObjectPaths[i], Lang.bind(this, function(proxy, error) { ++ this._onInhibitorLoaded(proxy); ++ })); + +- inhibitor.connect('is-loaded', +- Lang.bind(this, function() { +- this._onInhibitorLoaded(inhibitor); +- })); + this._inhibitors.push(inhibitor); + } + + this._updateButtons(); + +- if (!this.open(timestamp)) +- throw new DBus.DBusError('org.Cinnamon.ModalDialog.GrabError', +- "Cannot grab pointer and keyboard"); ++ if (!this.open(timestamp)) { ++ invocation.report_dbus_error('org.Cinnamon.ModalDialog.GrabError', ++ "Cannot grab pointer and keyboard"); ++ return; ++ } + + this._updateContent(); + + let signalId = this.connect('opened', + Lang.bind(this, function() { +- callback(); ++ invocation.return_value(null); + this.disconnect(signalId); + })); + } + }; +-DBus.conformExport(EndSessionDialog.prototype, EndSessionDialogIface); +diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js +index f55cf93..69edb51 100644 +--- a/js/ui/keyboard.js ++++ b/js/ui/keyboard.js +@@ -2,7 +2,6 @@ + + const Caribou = imports.gi.Caribou; + const Clutter = imports.gi.Clutter; +-const DBus = imports.dbus; + const Gdk = imports.gi.Gdk; + const Gio = imports.gi.Gio; + const GLib = imports.gi.GLib; +@@ -38,28 +37,27 @@ const PRETTY_KEYS = { + 'Alt_L': 'Alt' + }; + +-const CaribouKeyboardIface = { +- name: 'org.gnome.Caribou.Keyboard', +- methods: [ { name: 'Show', +- inSignature: 'u', +- outSignature: '' +- }, +- { name: 'Hide', +- inSignature: 'u', +- outSignature: '' +- }, +- { name: 'SetCursorLocation', +- inSignature: 'iiii', +- outSignature: '' +- }, +- { name: 'SetEntryLocation', +- inSignature: 'iiii', +- outSignature: '' +- } ], +- properties: [ { name: 'Name', +- signature: 's', +- access: 'read' } ] +-}; ++const CaribouKeyboardIface = ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++; + + function Key() { + this._init.apply(this, arguments); +@@ -199,7 +197,8 @@ function Keyboard() { + + Keyboard.prototype = { + _init: function () { +- DBus.session.exportObject('/org/gnome/Caribou/Keyboard', this); ++ this._impl = Gio.DBusExportedObject.wrapJSObject(CaribouKeyboardIface, this); ++ this._impl.export(Gio.DBus.session, '/org/gnome/Caribou/Keyboard'); + + this.actor = null; + +@@ -541,7 +540,6 @@ Keyboard.prototype = { + return 'cinnamon'; + } + }; +-DBus.conformExport(Keyboard.prototype, CaribouKeyboardIface); + + function KeyboardSource() { + this._init.apply(this, arguments); +diff --git a/js/ui/layout.js b/js/ui/layout.js +index 76303b9..b97459e 100644 +--- a/js/ui/layout.js ++++ b/js/ui/layout.js +@@ -488,12 +488,14 @@ Chrome.prototype = { + + this._screenSaverActive = false; + this._screenSaverProxy = new ScreenSaver.ScreenSaverProxy(); +- this._screenSaverProxy.connect('ActiveChanged', Lang.bind(this, this._onScreenSaverActiveChanged)); +- this._screenSaverProxy.GetActiveRemote(Lang.bind(this, +- function(result, err) { +- if (!err) +- this._onScreenSaverActiveChanged(this._screenSaverProxy, result); +- })); ++ this._screenSaverProxy.connectSignal('ActiveChanged', Lang.bind(this, function(proxy, senderName, [isActive]) { ++ this._onScreenSaverActiveChanged(isActive); ++ })); ++ this._screenSaverProxy.GetActiveRemote(Lang.bind(this, function(result, err) { ++ if (!err) ++ this._onScreenSaverActiveChanged(result[0]); ++ })); ++ + + this._relayout(); + }, +diff --git a/js/ui/magnifierDBus.js b/js/ui/magnifierDBus.js +index 72bba26..4d21797 100644 +--- a/js/ui/magnifierDBus.js ++++ b/js/ui/magnifierDBus.js +@@ -1,6 +1,6 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + +-const DBus = imports.dbus; ++const Gio = imports.gi.Gio; + const Main = imports.ui.main; + + const MAG_SERVICE_NAME = 'org.gnome.Magnifier'; +@@ -10,47 +10,85 @@ const ZOOM_SERVICE_PATH = '/org/gnome/Magnifier/ZoomRegion'; + + // Subset of gnome-mag's Magnifier dbus interface -- to be expanded. See: + // http://git.gnome.org/browse/gnome-mag/tree/xml/...Magnifier.xml +-const MagnifierIface = { +- name: MAG_SERVICE_NAME, +- methods: [ +- { name: 'setActive', inSignature: 'b', outSignature: '' }, +- { name: 'isActive', inSignature: '', outSignature: 'b' }, +- { name: 'showCursor', inSignature: '', outSignature: '' }, +- { name: 'hideCursor', inSignature: '', outSignature: '' }, +- { name: 'createZoomRegion', inSignature: 'ddaiai', outSignature: 'o' }, +- { name: 'addZoomRegion', inSignature: 'o', outSignature: 'b' }, +- { name: 'getZoomRegions', inSignature: '', outSignature: 'ao' }, +- { name: 'clearAllZoomRegions', inSignature: '', outSignature: '' }, +- { name: 'fullScreenCapable', inSignature: '', outSignature: 'b' }, +- +- { name: 'setCrosswireSize', inSignature: 'i', outSignature: '' }, +- { name: 'getCrosswireSize', inSignature: '', outSignature: 'i' }, +- { name: 'setCrosswireLength', inSignature: 'i', outSignature: '' }, +- { name: 'getCrosswireLength', inSignature: '', outSignature: 'i' }, +- { name: 'setCrosswireClip', inSignature: 'b', outSignature: '' }, +- { name: 'getCrosswireClip', inSignature: '', outSignature: 'b' }, +- { name: 'setCrosswireColor', inSignature: 'u', outSignature: '' }, +- { name: 'getCrosswireColor', inSignature: '', outSignature: 'u' } +- ], +- signals: [], +- properties: [] +-}; ++const MagnifierIface = ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++; + + // Subset of gnome-mag's ZoomRegion dbus interface -- to be expanded. See: + // http://git.gnome.org/browse/gnome-mag/tree/xml/...ZoomRegion.xml +-const ZoomRegionIface = { +- name: ZOOM_SERVICE_NAME, +- methods: [ +- { name: 'setMagFactor', inSignature: 'dd', outSignature: ''}, +- { name: 'getMagFactor', inSignature: '', outSignature: 'dd' }, +- { name: 'setRoi', inSignature: 'ai', outSignature: '' }, +- { name: 'getRoi', inSignature: '', outSignature: 'ai' }, +- { name: 'shiftContentsTo', inSignature: 'ii', outSignature: 'b' }, +- { name: 'moveResize', inSignature: 'ai', outSignature: '' } +- ], +- signals: [], +- properties: [] +-}; ++const ZoomRegionIface = ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++; + + // For making unique ZoomRegion DBus proxy object paths of the form: + // '/org/gnome/Magnifier/ZoomRegion/zoomer0', +@@ -64,7 +102,9 @@ function CinnamonMagnifier() { + CinnamonMagnifier.prototype = { + _init: function() { + this._zoomers = {}; +- DBus.session.exportObject(MAG_SERVICE_PATH, this); ++ ++ this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(MagnifierIface, this); ++ this._dbusImpl.export(Gio.DBus.session, MAG_SERVICE_PATH); + }, + + /** +@@ -195,10 +235,10 @@ CinnamonMagnifier.prototype = { + Main.magnifier.clearAllZoomRegions(); + for (let objectPath in this._zoomers) { + let proxyAndZoomer = this._zoomers[objectPath]; ++ proxyAndZoomer.proxy.destroy(); + proxyAndZoomer.proxy = null; + proxyAndZoomer.zoomRegion = null; + delete this._zoomers[objectPath]; +- DBus.session.unexportObject(proxyAndZoomer); + } + this._zoomers = {}; + }, +@@ -300,8 +340,9 @@ function CinnamonMagnifierZoomRegion(zoomerObjectPath, zoomRegion) { + CinnamonMagnifierZoomRegion.prototype = { + _init: function(zoomerObjectPath, zoomRegion) { + this._zoomRegion = zoomRegion; +- DBus.session.proxifyObject(this, ZOOM_SERVICE_NAME, zoomerObjectPath); +- DBus.session.exportObject(zoomerObjectPath, this); ++ ++ this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(ZoomRegionIface, this); ++ this._dbusImpl.export(Gio.DBus.session, zoomerObjectPath); + }, + + /** +@@ -376,8 +417,9 @@ CinnamonMagnifierZoomRegion.prototype = { + moveResize: function(viewPort) { + let viewRect = { x: viewPort[0], y: viewPort[1], width: viewPort[2] - viewPort[0], height: viewPort[3] - viewPort[1] }; + this._zoomRegion.setViewPort(viewRect); ++ }, ++ ++ destroy: function() { ++ this._dbusImpl.unexport(); + } + }; +- +-DBus.conformExport(CinnamonMagnifier.prototype, MagnifierIface); +-DBus.conformExport(CinnamonMagnifierZoomRegion.prototype, ZoomRegionIface); +diff --git a/js/ui/main.js b/js/ui/main.js +index 5cae372..180db5c 100644 +--- a/js/ui/main.js ++++ b/js/ui/main.js +@@ -1,7 +1,6 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + + const Clutter = imports.gi.Clutter; +-const DBus = imports.dbus; + const Gio = imports.gi.Gio; + const GLib = imports.gi.GLib; + const Gtk = imports.gi.Gtk; +@@ -199,11 +198,6 @@ function start() { + + cinnamonDBusService = new CinnamonDBus.Cinnamon(); + lookingGlassDBusService = new LookingGlassDBus.CinnamonLookingGlass(); +- // Force a connection now; dbus.js will do this internally +- // if we use its name acquisition stuff but we aren't right +- // now; to do so we'd need to convert from its async calls +- // back into sync ones. +- DBus.session.flush(); + + // Ensure CinnamonWindowTracker and CinnamonAppUsage are initialized; this will + // also initialize CinnamonAppSystem first. CinnamonAppSystem +diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js +index 18d6615..8bed028 100644 +--- a/js/ui/messageTray.js ++++ b/js/ui/messageTray.js +@@ -1388,12 +1388,17 @@ function MessageTray() { + + MessageTray.prototype = { + _init: function() { +- this._presence = new GnomeSession.Presence(); ++ this._presence = new GnomeSession.Presence(Lang.bind(this, function(proxy, error) { ++ this._onStatusChanged(proxy.status); ++ })); ++ + this._userStatus = GnomeSession.PresenceStatus.AVAILABLE; + this._busy = false; + this._backFromAway = false; +- this._presence.connect('StatusChanged', Lang.bind(this, this._onStatusChanged)); +- this._presence.getStatus(Lang.bind(this, this._onStatusChanged)); ++ this._presence.connectSignal('StatusChanged', Lang.bind(this, function(proxy, senderName, [status]) { ++ this._onStatusChanged(status); ++ })); ++ + + this._notificationBin = new St.Bin(); + this._notificationBin.hide(); +@@ -1548,7 +1553,7 @@ MessageTray.prototype = { + this._updateState(); + }, + +- _onStatusChanged: function(presence, status) { ++ _onStatusChanged: function(status) { + this._backFromAway = (this._userStatus == GnomeSession.PresenceStatus.IDLE && this._userStatus != status); + this._userStatus = status; + +diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js +index bee8ffd..b037e07 100644 +--- a/js/ui/notificationDaemon.js ++++ b/js/ui/notificationDaemon.js +@@ -1,7 +1,7 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + + const Clutter = imports.gi.Clutter; +-const DBus = imports.dbus; ++const Gio = imports.gi.Gio; + const GLib = imports.gi.GLib; + const Lang = imports.lang; + const Cinnamon = imports.gi.Cinnamon; +@@ -14,49 +14,52 @@ const Params = imports.misc.params; + + let nextNotificationId = 1; + +-// Should really be defined in dbus.js +-const BusIface = { +- name: 'org.freedesktop.DBus', +- methods: [{ name: 'GetConnectionUnixProcessID', +- inSignature: 's', +- outSignature: 'i' }] +-}; +- +-const Bus = function () { +- this._init(); +-}; +- +-Bus.prototype = { +- _init: function() { +- DBus.session.proxifyObject(this, 'org.freedesktop.DBus', '/org/freedesktop/DBus'); +- } +-}; ++// Should really be defined in Gio.js ++const BusIface = ++ ++ ++ ++ ++; ++ ++var BusProxy = Gio.DBusProxy.makeProxyWrapper(BusIface); ++function Bus() { ++ return new BusProxy(Gio.DBus.session, 'org.freedesktop.DBus', '/org/freedesktop/DBus'); ++} + +-DBus.proxifyPrototype(Bus.prototype, BusIface); +- +-const NotificationDaemonIface = { +- name: 'org.freedesktop.Notifications', +- methods: [{ name: 'Notify', +- inSignature: 'susssasa{sv}i', +- outSignature: 'u' +- }, +- { name: 'CloseNotification', +- inSignature: 'u', +- outSignature: '' +- }, +- { name: 'GetCapabilities', +- inSignature: '', +- outSignature: 'as' +- }, +- { name: 'GetServerInformation', +- inSignature: '', +- outSignature: 'ssss' +- }], +- signals: [{ name: 'NotificationClosed', +- inSignature: 'uu' }, +- { name: 'ActionInvoked', +- inSignature: 'us' }] +-}; ++const NotificationDaemonIface = ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++; + + const NotificationClosedReason = { + EXPIRED: 1, +@@ -88,7 +91,8 @@ function NotificationDaemon() { + + NotificationDaemon.prototype = { + _init: function() { +- DBus.session.exportObject('/org/freedesktop/Notifications', this); ++ this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(NotificationDaemonIface, this); ++ this._dbusImpl.export(Gio.DBus.session, '/org/freedesktop/Notifications'); + + this._sources = []; + this._senderToPid = {}; +@@ -213,8 +217,8 @@ NotificationDaemon.prototype = { + return source; + }, + +- Notify: function(appName, replacesId, icon, summary, body, +- actions, hints, timeout) { ++ NotifyAsync: function(params, invocation) { ++ let [appName, replacesId, icon, summary, body, actions, hints, timeout] = params; + let id; + + let rewrites = rewriteRules[appName]; +@@ -257,51 +261,55 @@ NotificationDaemon.prototype = { + } + this._notifications[id] = ndata; + +- let sender = DBus.getCurrentMessageContext().sender; ++ let sender = invocation.get_sender(); + let pid = this._senderToPid[sender]; + + let source = this._getSource(appName, pid, ndata, sender, null); + + if (source) { + this._notifyForSource(source, ndata); +- return id; ++ return invocation.return_value(GLib.Variant.new('(u)', [id])); + } + + if (replacesId) { + // There's already a pending call to GetConnectionUnixProcessID, + // which will see the new notification data when it finishes, + // so we don't have to do anything. +- return id; ++ return invocation.return_value(GLib.Variant.new('(u)', [id])); + } + +- this._busProxy.GetConnectionUnixProcessIDRemote(sender, Lang.bind(this, +- function (pid, ex) { +- // The app may have updated or removed the notification +- ndata = this._notifications[id]; +- if (!ndata) +- return; +- +- source = this._getSource(appName, pid, ndata, sender, null); +- +- // We only store sender-pid entries for persistent sources. +- // Removing the entries once the source is destroyed +- // would result in the entries associated with transient +- // sources removed once the notification is shown anyway. +- // However, keeping these pairs would mean that we would +- // possibly remove an entry associated with a persistent +- // source when a transient source for the same sender is +- // distroyed. +- if (!source.isTransient) { +- this._senderToPid[sender] = pid; +- source.connect('destroy', Lang.bind(this, +- function() { +- delete this._senderToPid[sender]; +- })); +- } +- this._notifyForSource(source, ndata); +- })); ++ this._busProxy.GetConnectionUnixProcessIDRemote(sender, Lang.bind(this, function (result, excp) { ++ // The app may have updated or removed the notification ++ ndata = this._notifications[id]; ++ if (!ndata) ++ return; + +- return id; ++ if (excp) { ++ logError(excp, 'Call to GetConnectionUnixProcessID failed'); ++ return; ++ } ++ ++ let [pid] = result; ++ source = this._getSource(appName, pid, ndata, sender); ++ ++ // We only store sender-pid entries for persistent sources. ++ // Removing the entries once the source is destroyed ++ // would result in the entries associated with transient ++ // sources removed once the notification is shown anyway. ++ // However, keeping these pairs would mean that we would ++ // possibly remove an entry associated with a persistent ++ // source when a transient source for the same sender is ++ // distroyed. ++ if (!source.isTransient) { ++ this._senderToPid[sender] = pid; ++ source.connect('destroy', Lang.bind(this, function() { ++ delete this._senderToPid[sender]; ++ })); ++ } ++ this._notifyForSource(source, ndata); ++ })); ++ ++ return invocation.return_value(GLib.Variant.new('(u)', [id])); + }, + + _notifyForSource: function(source, ndata) { +@@ -441,17 +449,13 @@ NotificationDaemon.prototype = { + }, + + _emitNotificationClosed: function(id, reason) { +- DBus.session.emit_signal('/org/freedesktop/Notifications', +- 'org.freedesktop.Notifications', +- 'NotificationClosed', 'uu', +- [id, reason]); ++ this._dbusImpl.emit_signal('NotificationClosed', ++ GLib.Variant.new('(uu)', [id, reason])); + }, + + _emitActionInvoked: function(id, action) { +- DBus.session.emit_signal('/org/freedesktop/Notifications', +- 'org.freedesktop.Notifications', +- 'ActionInvoked', 'us', +- [id, action]); ++ this._dbusImpl.emit_signal('ActionInvoked', ++ GLib.Variant.new('(us)', [id, action])); + }, + + _onTrayIconAdded: function(o, icon) { +@@ -465,8 +469,6 @@ NotificationDaemon.prototype = { + } + }; + +-DBus.conformExport(NotificationDaemon.prototype, NotificationDaemonIface); +- + function Source(title, pid, sender, trayIcon) { + this._init(title, pid, sender, trayIcon); + } +@@ -481,15 +483,12 @@ Source.prototype = { + + this.pid = pid; + if (sender) +- // TODO: dbus-glib implementation of watch_name() doesn’t return an id to be used for +- // unwatch_name() or implement unwatch_name(), however when we move to using GDBus implementation, +- // we should save the id here and call unwatch_name() with it in destroy(). +- // Moving to GDBus is the work in progress: https://bugzilla.gnome.org/show_bug.cgi?id=648651 +- // and https://bugzilla.gnome.org/show_bug.cgi?id=622921 . +- DBus.session.watch_name(sender, +- false, +- null, +- Lang.bind(this, this._onNameVanished)); ++ this._nameWatcherId = Gio.DBus.session.watch_name(sender, ++ Gio.BusNameWatcherFlags.NONE, ++ null, ++ Lang.bind(this, this._onNameVanished)); ++ else ++ this._nameWatcherId = 0; + + this._setApp(); + if (this.app) +@@ -596,6 +595,10 @@ Source.prototype = { + }, + + destroy: function() { ++ if (this._nameWatcherId) { ++ Gio.DBus.session.unwatch_name(this._nameWatcherId); ++ this._nameWatcherId = 0; ++ } + MessageTray.Source.prototype.destroy.call(this); + } + }; +diff --git a/js/ui/scripting.js b/js/ui/scripting.js +index 42c4f6d..9163d29 100644 +--- a/js/ui/scripting.js ++++ b/js/ui/scripting.js +@@ -1,6 +1,5 @@ + // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- + +-const DBus = imports.dbus; + const Gio = imports.gi.Gio; + const Mainloop = imports.mainloop; + const Meta = imports.gi.Meta; +@@ -70,24 +69,21 @@ function waitLeisure() { + }; + } + +-const PerfHelperIface = { +- name: 'org.Cinnamon.PerfHelper', +- methods: [{ name: 'CreateWindow', inSignature: 'iibb', outSignature: '' }, +- { name: 'WaitWindows', inSignature: '', outSignature: '' }, +- { name: 'DestroyWindows', inSignature: '', outSignature: ''}] +-}; +- +-const PerfHelper = function () { +- this._init(); +-}; +- +-PerfHelper.prototype = { +- _init: function() { +- DBus.session.proxifyObject(this, 'org.Cinnamon.PerfHelper', '/org/Cinnamon/PerfHelper'); +- } +-}; +- +-DBus.proxifyPrototype(PerfHelper.prototype, PerfHelperIface); ++const PerfHelperIface = ++ ++ ++ ++ ++ ++ ++ ++ ++; ++ ++var PerfHelperProxy = Gio.DBusProxy.makeProxyWrapper(PerfHelperIface); ++function PerfHelper() { ++ return new PerfHelperProxy(Gio.DBus.session, 'org.gnome.Shell.PerfHelper', '/org/gnome/Shell/PerfHelper'); ++} + + let _perfHelper = null; + function _getPerfHelper() { +-- +1.8.1.6 + + +From d85e078c0ed09a8b9f8d3ea2ebec1043b6d150c1 Mon Sep 17 00:00:00 2001 +From: dalcde +Date: Tue, 16 Apr 2013 16:58:30 +0800 +Subject: [PATCH 07/15] [GDBus][Sound/Power Applet] Fix dbus port issues + +--- + .../cinnamon/applets/power@cinnamon.org/applet.js | 2 +- + .../cinnamon/applets/sound@cinnamon.org/applet.js | 83 ++++++++++------------ + 2 files changed, 37 insertions(+), 48 deletions(-) + +diff --git a/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js +index b6b2bcd..fad39ab 100644 +--- a/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js ++++ b/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js +@@ -212,7 +212,7 @@ MyApplet.prototype = { + this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); + this.menu.addSettingsAction(_("Power Settings"), 'power'); + +- this._smProxy.connect('PropertiesChanged', Lang.bind(this, this._devicesChanged)); ++ this._smProxy.connectSignal('PropertiesChanged', Lang.bind(this, this._devicesChanged)); + this._devicesChanged(); + } + catch (e) { +diff --git a/files/usr/share/cinnamon/applets/sound@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/sound@cinnamon.org/applet.js +index 5bfaf26..52b8cde 100644 +--- a/files/usr/share/cinnamon/applets/sound@cinnamon.org/applet.js ++++ b/files/usr/share/cinnamon/applets/sound@cinnamon.org/applet.js +@@ -37,7 +37,7 @@ const MediaServer2PlayerIFace = + + + +- ++ + + + +@@ -256,23 +256,20 @@ Player.prototype = { + this._trackControls.set_child(this.controls); + this.addActor(this._trackControls); + +- this._mediaServer.getRaise(Lang.bind(this, function(sender, raise) { +- if (raise) { +- this._raiseButton = new ControlButton('go-up', +- Lang.bind(this, function () { this._mediaServer.RaiseRemote(); this._system_status_button.menu.actor.hide(); })); +- this._raiseButtonTooltip = new Tooltips.Tooltip(this._raiseButton.button, _("Open Player")); +- this.controls.add_actor(this._raiseButton.getActor()); +- } +- })); +- +- this._mediaServer.getQuit(Lang.bind(this, function(sender, quit) { +- if (quit) { +- this._quitButton = new ControlButton('window-close', +- Lang.bind(this, function () { this._mediaServer.QuitRemote(); })); +- this.controls.add_actor(this._quitButton.getActor()); +- this._quitButtonTooltip = new Tooltips.Tooltip(this._quitButton.button, _("Quit Player")); +- } +- })); ++ let CanRaise = this._mediaServer.CanRaise; ++ let CanQuit = this._mediaServer.CanQuit; ++ if (CanRaise) { ++ this._raiseButton = new ControlButton('go-up', ++ Lang.bind(this, function () { this._mediaServer.RaiseRemote(); this._system_status_button.menu.actor.hide(); })); ++ this._raiseButtonTooltip = new Tooltips.Tooltip(this._raiseButton.button, _("Open Player")); ++ this.controls.add_actor(this._raiseButton.getActor()); ++ } ++ if (CanQuit) { ++ this._quitButton = new ControlButton('window-close', ++ Lang.bind(this, function () { this._mediaServer.QuitRemote(); })); ++ this.controls.add_actor(this._quitButton.getActor()); ++ this._quitButtonTooltip = new Tooltips.Tooltip(this._quitButton.button, _("Quit Player")); ++ } + + /* this players don't support seek */ + if (support_seek.indexOf(this._name) == -1) +@@ -283,14 +280,14 @@ Player.prototype = { + this._currentTime = 0; + this._getPosition(); + +- this._prop.connect('PropertiesChanged', Lang.bind(this, function(sender, iface, value) { ++ this._prop.connectSignal('PropertiesChanged', Lang.bind(this, function(sender, iface, value) { + if (value["PlaybackStatus"]) +- this._setStatus(iface, value["PlaybackStatus"]); ++ this._setStatus(value["PlaybackStatus"]); + if (value["Metadata"]) +- this._setMetadata(iface, value["Metadata"]); ++ this._setMetadata(value["Metadata"]); + })); + +- this._mediaServerPlayer.connect('Seeked', Lang.bind(this, function(sender, value) { ++ this._mediaServerPlayer.connectSignal('Seeked', Lang.bind(this, function(sender, iface, [value]) { + this._setPosition(sender, value); + })); + +@@ -315,19 +312,17 @@ Player.prototype = { + }, + + _getPosition: function() { +- this._mediaServerPlayer.getPosition(Lang.bind(this, +- this._setPosition +- )); ++ this._setPosition(this._mediaServerPlayer.Position); + Mainloop.timeout_add(1000, Lang.bind(this, this._getPosition)); + }, + +- _setMetadata: function(sender, metadata) { ++ _setMetadata: function(metadata) { + if (metadata["mpris:length"]) { + // song length in secs +- this._songLength = metadata["mpris:length"] / 1000000; ++ this._songLength = metadata["mpris:length"].unpack() / 1000000; + // FIXME upstream + if (this._name == "quodlibet") +- this._songLength = metadata["mpris:length"] / 1000; ++ this._songLength = metadata["mpris:length"].unpack() / 1000; + // reset timer + this._stopTimer(); + if (this._playerStatus == "Playing") +@@ -338,15 +333,15 @@ Player.prototype = { + this._stopTimer(); + } + if (metadata["xesam:artist"]) +- this._artist.setLabel(metadata["xesam:artist"].toString()); ++ this._artist.setLabel(metadata["xesam:artist"].unpack()); + else + this._artist.setLabel(_("Unknown Artist")); + if (metadata["xesam:album"]) +- this._album.setLabel(metadata["xesam:album"].toString()); ++ this._album.setLabel(metadata["xesam:album"].unpack()); + else + this._album.setLabel(_("Unknown Album")); + if (metadata["xesam:title"]) +- this._title.setLabel(metadata["xesam:title"].toString()); ++ this._title.setLabel(metadata["xesam:title"].unpack()); + else + this._title.setLabel(_("Unknown Title")); + /*if (metadata["mpris:trackid"]) { +@@ -359,8 +354,8 @@ Player.prototype = { + + let change = false; + if (metadata["mpris:artUrl"]) { +- if (this._trackCoverFile != metadata["mpris:artUrl"].toString()) { +- this._trackCoverFile = metadata["mpris:artUrl"].toString(); ++ if (this._trackCoverFile != metadata["mpris:artUrl"].unpack()) { ++ this._trackCoverFile = metadata["mpris:artUrl"].unpack(); + change = true; + } + } +@@ -392,12 +387,10 @@ Player.prototype = { + }, + + _getMetadata: function() { +- this._mediaServerPlayer.getMetadata(Lang.bind(this, +- this._setMetadata +- )); ++ this._setMetadata(this._mediaServerPlayer.Metadata); + }, + +- _setStatus: function(sender, status) { ++ _setStatus: function(status) { + this._playerStatus = status; + if (status == "Playing") { + this._playButton.setIcon("media-playback-pause"); +@@ -416,15 +409,11 @@ Player.prototype = { + }, + + _getStatus: function() { +- this._mediaServerPlayer.getPlaybackStatus(Lang.bind(this, +- this._setStatus +- )); ++ this._setStatus(this._mediaServerPlayer.PlaybackStatus); + }, + + _updateRate: function() { +- this._mediaServerPlayer.getRate(Lang.bind(this, function(sender, rate) { +- this._rate = rate; +- })); ++ this._rate = this._mediaServerPlayer.Rate; + }, + + _updateTimer: function() { +@@ -569,7 +558,7 @@ MyApplet.prototype = { + this._players = {}; + // watch players + for (var p=0; p +Date: Fri, 19 Apr 2013 19:09:18 -0400 +Subject: [PATCH 08/15] Fix gicon error - power applet + +--- + files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js +index fad39ab..3a13eab 100644 +--- a/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js ++++ b/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js +@@ -323,7 +323,7 @@ MyApplet.prototype = { + let icon = this._proxy.Icon; + if (icon) { + let gicon = Gio.icon_new_for_string(icon); +- this.setGIcon(gicon); ++ this._applet_icon.gicon = gicon + this.actor.show(); + } else { + this.menu.close(); +-- +1.8.1.6 + + +From 3d78b5c929e7e3b0ee24d4b537492740e7bebf2f Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Fri, 19 Apr 2013 19:44:33 -0400 +Subject: [PATCH 09/15] Remove unused + +--- + src/cinnamon-background-manager.c | 34 ---------------------------------- + 1 file changed, 34 deletions(-) + +diff --git a/src/cinnamon-background-manager.c b/src/cinnamon-background-manager.c +index 9d95250..67427ed 100644 +--- a/src/cinnamon-background-manager.c ++++ b/src/cinnamon-background-manager.c +@@ -66,8 +66,6 @@ struct CinnamonBackgroundManagerPrivate + + G_DEFINE_TYPE (CinnamonBackgroundManager, cinnamon_background_manager, G_TYPE_OBJECT) + +-static gpointer manager_object = NULL; +- + static gboolean + dont_draw_background (CinnamonBackgroundManager *manager) + { +@@ -223,36 +221,6 @@ struct CinnamonBackgroundManagerPrivate + } + + static void +-draw_background_after_session_loads (CinnamonBackgroundManager *manager) +-{ +- GError *error = NULL; +- GDBusProxyFlags flags; +- +- flags = G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | +- G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START; +- manager->priv->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, +- flags, +- NULL, /* GDBusInterfaceInfo */ +- "org.gnome.SessionManager", +- "/org/gnome/SessionManager", +- "org.gnome.SessionManager", +- NULL, /* GCancellable */ +- &error); +- if (manager->priv->proxy == NULL) { +- g_warning ("Could not listen to session manager: %s", +- error->message); +- g_error_free (error); +- return; +- } +- +- manager->priv->proxy_signal_id = g_signal_connect (manager->priv->proxy, +- "g-signal", +- G_CALLBACK (on_session_manager_signal), +- manager); +-} +- +- +-static void + disconnect_screen_signals (CinnamonBackgroundManager *manager) + { + GdkDisplay *display; +@@ -312,8 +280,6 @@ struct CinnamonBackgroundManagerPrivate + G_CALLBACK (draw_background_changed), manager); + + setup_bg_and_draw_background (manager); +- //draw_background_after_session_loads (manager); +- + + return TRUE; + } +-- +1.8.1.6 + + +From d08b882470b135591fb99bd9ff7c63619fcaea82 Mon Sep 17 00:00:00 2001 +From: dalcde +Date: Sat, 20 Apr 2013 15:42:13 +0800 +Subject: [PATCH 10/15] [GDBus][Power applet] Some fixes and cleanup + +--- + .../cinnamon/applets/power@cinnamon.org/applet.js | 52 ++++++---------------- + 1 file changed, 14 insertions(+), 38 deletions(-) + +diff --git a/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js +index 3a13eab..5f81d91 100644 +--- a/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js ++++ b/files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js +@@ -48,40 +48,11 @@ const PowerManagerInterface = + + + +- +- +- +- +- + + ; + + const PowerManagerProxy = Gio.DBusProxy.makeProxyWrapper(PowerManagerInterface); + +-const SettingsManagerInterface = +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-; +- +-const SettingsManagerProxy = Gio.DBusProxy.makeProxyWrapper(SettingsManagerInterface); +- + function DeviceItem() { + this._init.apply(this, arguments); + } +@@ -156,8 +127,16 @@ MyApplet.prototype = { + this.menuManager.addMenu(this.menu); + + //this.set_applet_icon_symbolic_name('battery-missing'); +- this._proxy = new PowerManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH); +- this._smProxy = new SettingsManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH); ++ this._proxy = new PowerManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH, ++ Lang.bind(this, function(proxy, error) { ++ if (error) { ++ global.log(error.message); ++ ++ return; ++ } ++ this._proxy.connect('g-properties-changed', Lang.bind(this, this._devicesChanged)); ++ this._devicesChanged(); ++ })); + + let icon = this.actor.get_children()[0]; + this.actor.remove_actor(icon); +@@ -211,9 +190,6 @@ MyApplet.prototype = { + + this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); + this.menu.addSettingsAction(_("Power Settings"), 'power'); +- +- this._smProxy.connectSignal('PropertiesChanged', Lang.bind(this, this._devicesChanged)); +- this._devicesChanged(); + } + catch (e) { + global.logError(e); +@@ -245,14 +221,14 @@ MyApplet.prototype = { + }, + + _readPrimaryDevice: function() { +- this._proxy.GetPrimaryDeviceRemote(Lang.bind(this, function(device, error) { ++ this._proxy.GetPrimaryDeviceRemote(Lang.bind(this, function(result, error) { + if (error) { + this._hasPrimary = false; + this._primaryDeviceId = null; + this._batteryItem.actor.hide(); + return; + } +- let [device_id, device_type, icon, percentage, state, seconds] = device; ++ let [[device_id, device_type, icon, percentage, state, seconds]] = result; + if (device_type == UPDeviceType.BATTERY) { + this._hasPrimary = true; + let time = Math.round(seconds / 60); +@@ -290,7 +266,7 @@ MyApplet.prototype = { + }, + + _readOtherDevices: function() { +- this._proxy.GetDevicesRemote(Lang.bind(this, function(devices, error) { ++ this._proxy.GetDevicesRemote(Lang.bind(this, function([devices], error) { + this._deviceItems.forEach(function(i) { i.destroy(); }); + this._deviceItems = []; + +@@ -336,7 +312,7 @@ MyApplet.prototype = { + }, + + _updateLabel: function() { +- this._proxy.GetDevicesRemote(Lang.bind(this, function(devices, error) { ++ this._proxy.GetDevicesRemote(Lang.bind(this, function([devices], error) { + if (error) { + this._mainLabel.set_text(""); + return; +-- +1.8.1.6 + + +From c93e9746b321ad6d0aa38ec28c15fe7b3f18f8f7 Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Sat, 20 Apr 2013 10:59:54 -0400 +Subject: [PATCH 11/15] Move CLUTTER_DISABLE_XINPUT to session startup file + +--- + files/usr/bin/gnome-session-cinnamon | 2 +- + src/main.c | 3 --- + 2 files changed, 1 insertion(+), 4 deletions(-) + +diff --git a/files/usr/bin/gnome-session-cinnamon b/files/usr/bin/gnome-session-cinnamon +index 315f135..56c37f5 100755 +--- a/files/usr/bin/gnome-session-cinnamon ++++ b/files/usr/bin/gnome-session-cinnamon +@@ -1,3 +1,3 @@ + #! /bin/sh +-exec gnome-session --session cinnamon "$@" ++exec CLUTTER_DISABLE_XINPUT=1 gnome-session --session cinnamon "$@" + +diff --git a/src/main.c b/src/main.c +index 9d37975..418fb60 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -257,9 +257,6 @@ + + g_option_context_free (ctx); + +- /* Disable XInput extension - required for 3.8 compatibility */ +- g_setenv ("CLUTTER_DISABLE_XINPUT", "1", TRUE); +- + meta_plugin_type_register (gnome_cinnamon_plugin_get_type ()); + + /* Prevent meta_init() from causing gtk to load gail and at-bridge */ +-- +1.8.1.6 + + +From de1719e63518884cad6c9d63d508f737eab35d49 Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Sat, 20 Apr 2013 12:23:29 -0400 +Subject: [PATCH 12/15] Add Xinput disable to cinnamon2d + +--- + files/usr/bin/cinnamon2d | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/files/usr/bin/cinnamon2d b/files/usr/bin/cinnamon2d +index 1eced99..7f42517 100755 +--- a/files/usr/bin/cinnamon2d ++++ b/files/usr/bin/cinnamon2d +@@ -1,2 +1,2 @@ + #!/bin/bash +-CLUTTER_PAINT=disable-clipped-redraws:disable-culling LIBGL_ALWAYS_SOFTWARE=1 CINNAMON_SOFTWARE_RENDERING=1 CINNAMON_SLOWDOWN_FACTOR=0.0001 MUFFIN_NO_SHADOWS=1 CLUTTER_DEFAULT_FPS=15 cinnamon $@ ++CLUTTER_DISABLE_XINPUT=1 CLUTTER_PAINT=disable-clipped-redraws:disable-culling LIBGL_ALWAYS_SOFTWARE=1 CINNAMON_SOFTWARE_RENDERING=1 CINNAMON_SLOWDOWN_FACTOR=0.0001 MUFFIN_NO_SHADOWS=1 CLUTTER_DEFAULT_FPS=15 cinnamon $@ +-- +1.8.1.6 + + +From 15d57d1c15f34d44b23f74b21929d996d4465afb Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Sat, 20 Apr 2013 12:29:43 -0400 +Subject: [PATCH 13/15] Fix session file + +--- + files/usr/bin/gnome-session-cinnamon | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/files/usr/bin/gnome-session-cinnamon b/files/usr/bin/gnome-session-cinnamon +index 56c37f5..31c9eff 100755 +--- a/files/usr/bin/gnome-session-cinnamon ++++ b/files/usr/bin/gnome-session-cinnamon +@@ -1,3 +1,3 @@ + #! /bin/sh +-exec CLUTTER_DISABLE_XINPUT=1 gnome-session --session cinnamon "$@" ++CLUTTER_DISABLE_XINPUT=1 exec gnome-session --session cinnamon "$@" + +-- +1.8.1.6 + + +From 03436393c322fd97d8216c3481d28cd34833c656 Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Sat, 20 Apr 2013 12:36:45 -0400 +Subject: [PATCH 14/15] Add cinnamon3d command + +--- + files/usr/bin/cinnamon3d | 2 ++ + 1 file changed, 2 insertions(+) + create mode 100644 files/usr/bin/cinnamon3d + +diff --git a/files/usr/bin/cinnamon3d b/files/usr/bin/cinnamon3d +new file mode 100644 +index 0000000..4891783 +--- /dev/null ++++ b/files/usr/bin/cinnamon3d +@@ -0,0 +1,2 @@ ++#!/bin/bash ++CLUTTER_DISABLE_XINPUT=1 cinnamon $@ +-- +1.8.1.6 + + +From 850da270967622b95be9e0c5edd8e230eb4be5a1 Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Sat, 20 Apr 2013 12:37:26 -0400 +Subject: [PATCH 15/15] Fix perms + +--- + files/usr/bin/cinnamon3d | 0 + 1 file changed, 0 insertions(+), 0 deletions(-) + mode change 100644 => 100755 files/usr/bin/cinnamon3d + +diff --git a/files/usr/bin/cinnamon3d b/files/usr/bin/cinnamon3d +old mode 100644 +new mode 100755 +-- +1.8.1.6 + diff --git a/community/clinica/PKGBUILD b/community/clinica/PKGBUILD index 54794584f..e7ec9d64e 100644 --- a/community/clinica/PKGBUILD +++ b/community/clinica/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 78165 2012-10-16 15:57:54Z bgyorgy $ +# $Id: PKGBUILD 88675 2013-04-21 22:16:41Z heftig $ # Maintainer: Giovanni Scafora # Contributor: Gianmarco Brocchi pkgname=clinica pkgver=0.2.1 -pkgrel=5 +pkgrel=6 pkgdesc="Simple medical records manager" arch=('i686' 'x86_64') url="https://launchpad.net/clinica-project" license=('GPL3') -depends=('libgee' 'libpeas' 'dconf') +depends=('libgee06' 'libpeas' 'dconf') makedepends=('vala' 'intltool' 'python') optdepends=('python2-gobject: for Agenzia del Farmaco plugin') install=clinica.install diff --git a/community/couchdb/PKGBUILD b/community/couchdb/PKGBUILD index c6dd92e95..d60f4c930 100644 --- a/community/couchdb/PKGBUILD +++ b/community/couchdb/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 87877 2013-04-08 12:24:37Z spupykin $ +# $Id: PKGBUILD 88676 2013-04-21 22:16:43Z heftig $ # Maintainer: Sergej Pupykin # Contributor: Vitaliy Berdinskikh ur6lad[at]i.ua # Contributor: Michael Fellinger pkgname=couchdb pkgver=1.2.2 -pkgrel=1 +pkgrel=2 pkgdesc="A document-oriented database that can be queried and indexed in a MapReduce fashion using JSON" arch=('i686' 'x86_64') url="http://couchdb.apache.org" diff --git a/community/cython/PKGBUILD b/community/cython/PKGBUILD index d90482aa5..52bea4ed9 100644 --- a/community/cython/PKGBUILD +++ b/community/cython/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 83887 2013-02-06 11:39:48Z spupykin $ +# $Id: PKGBUILD 88776 2013-04-22 10:14:05Z spupykin $ # Maintainer: Sergej Pupykin # Contributor: Igor Scabini pkgname=('cython' 'cython2') pkgbase=cython -pkgver=0.18 +pkgver=0.19 pkgrel=1 pkgdesc="C-Extensions for Python " arch=(i686 x86_64) @@ -12,7 +12,7 @@ url="http://www.cython.org" license=('APACHE') makedepends=('python-distribute' 'python2-distribute') source=("http://cython.org/release/Cython-$pkgver.tar.gz") -md5sums=('6a72d14e72f3df597b34ac326152f8d2') +md5sums=('76989337dee4cf7afdcb5cde514423f8') build() { true diff --git a/community/denemo/PKGBUILD b/community/denemo/PKGBUILD index d48e7169f..bd1162ece 100644 --- a/community/denemo/PKGBUILD +++ b/community/denemo/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 87840 2013-04-08 09:20:17Z spupykin $ +# $Id: PKGBUILD 88689 2013-04-21 22:17:06Z heftig $ # Maintainer: Sergej Pupykin # Contributor: Philipp Sandhaus # Contributor: Robert Emil Berge @@ -6,7 +6,7 @@ pkgname=denemo pkgver=1.0.0 -pkgrel=1 +pkgrel=3 pkgdesc="A music score editor" arch=('i686' 'x86_64') url="http://www.denemo.org" diff --git a/community/elinks/PKGBUILD b/community/elinks/PKGBUILD index 6b6f6cd7a..2b9d1139c 100644 --- a/community/elinks/PKGBUILD +++ b/community/elinks/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 81104 2012-12-12 00:47:30Z eric $ +# $Id: PKGBUILD 88677 2013-04-21 22:16:44Z heftig $ # Maintainer: Kyle Keen # Maintainer: Sergej Pupykin # Maintainer: Andrea Scarpino @@ -8,39 +8,19 @@ pkgname=elinks pkgver=0.13 _commit="9313aae9062e1d9ff084858fa6844259cd8237d6" -pkgrel=11 +pkgrel=12 pkgdesc="An advanced and well-established feature-rich text mode web browser." arch=("i686" "x86_64") url="http://elinks.or.cz" license=('GPL') -depends=('bzip2' 'expat>=2.0' 'gpm>=1.20.4' 'openssl' 'lua51' 'libidn' 'js' +depends=('bzip2' 'expat>=2.0' 'gpm>=1.20.4' 'openssl' 'lua51' 'libidn' 'js185' 'gc' 'tre') makedepends=('git') -source=() -md5sums=() - -__gitroot="http://elinks.cz/elinks.git" -__gitname="elinks" +source=("git+http://elinks.cz/elinks.git#commit=$_commit") +md5sums=('SKIP') build() { - cd "$srcdir" - msg "Connecting to GIT server...." - - if [ -d $__gitname ] ; then - cd $__gitname && git pull origin - msg "The local files are updated." - else - git clone $__gitroot - fi - - msg "GIT checkout done or server timeout" - msg "Starting make..." - - rm -rf "$srcdir/$__gitname-build" - git clone "$srcdir/$__gitname" "$srcdir/$__gitname-build" - cd "$srcdir/$__gitname-build" - git checkout "$_commit" - + cd elinks [ -x configure ] || sh autogen.sh ./configure --prefix=/usr --mandir=/usr/share/man \ --sysconfdir=/etc \ @@ -51,7 +31,7 @@ build() { } package() { - cd "$srcdir/$__gitname-build" + cd elinks make DESTDIR="$pkgdir" install rm -f "$pkgdir/usr/share/locale/locale.alias" diff --git a/community/freewrl/PKGBUILD b/community/freewrl/PKGBUILD index ec562da65..a5eddbbe9 100644 --- a/community/freewrl/PKGBUILD +++ b/community/freewrl/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 78928 2012-10-27 23:44:21Z ebelanger $ +# $Id: PKGBUILD 88678 2013-04-21 22:16:45Z heftig $ # Maintainer: Sergej Pupykin # Contributor: Sergej Pupykin pkgname=freewrl pkgver=1.22.13.1 _pkgver=1.22.13 -pkgrel=3 +pkgrel=4 pkgdesc="VRML viewer" arch=('i686' 'x86_64') url="http://freewrl.sourceforge.net/" diff --git a/community/gedit-plugins/PKGBUILD b/community/gedit-plugins/PKGBUILD index 9db934a71..161682e5a 100644 --- a/community/gedit-plugins/PKGBUILD +++ b/community/gedit-plugins/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 79119 2012-10-30 23:06:21Z heftig $ +# $Id: PKGBUILD 88687 2013-04-21 22:17:03Z heftig $ # Maintainer: Ionut Biru # Contributor: Alexander Rødseth # Contributor: Hugo Doria @@ -6,20 +6,20 @@ # Contributor: zhuqin pkgname=gedit-plugins -pkgver=3.6.1 +pkgver=3.8.1 pkgrel=1 pkgdesc="Plugins for gedit" -arch=('x86_64' 'i686') -license=('GPL') +arch=(x86_64 i686) +license=(GPL) url="http://live.gnome.org/GeditPlugins" -depends=('gedit' 'dbus-python') +depends=(gedit python-dbus) +makedepends=(intltool gnome-doc-utils vte3) optdepends=('gucharmap: for charmap plugin' 'vte3: for embedded terminal') -makedepends=('intltool' 'gnome-doc-utils' 'vte3') options=('!libtool' '!emptydirs') install=gedit-plugins.install source=("http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz") -sha256sums=('c5e92830e6029110bf1117bd9f31b23a9ad907210b8cb37039772f5bfcf6d174') +sha256sums=('659d379f9edfbba2db37522991c734c5d50e03eb1f70985e978d93a718273141') build() { cd $pkgname-$pkgver diff --git a/community/giggle/PKGBUILD b/community/giggle/PKGBUILD index dc22aa950..13b652f78 100644 --- a/community/giggle/PKGBUILD +++ b/community/giggle/PKGBUILD @@ -1,31 +1,40 @@ -# $Id: PKGBUILD 79629 2012-11-09 09:55:35Z ibiru $ +# $Id: PKGBUILD 88688 2013-04-21 22:17:05Z heftig $ # Maintainer : Ionut Biru # Contributor: neodreams pkgname=giggle pkgver=0.7 -pkgrel=1 +pkgrel=2 pkgdesc="Git repository viewer" -arch=('i686' 'x86_64') +arch=(i686 x86_64) url="http://live.gnome.org/giggle" -license=('GPL') -depends=('git' 'gtksourceview3' 'vte3') -makedepends=('intltool' 'itstool') -source=(http://ftp.gnome.org/pub/GNOME/sources/giggle/0.7/$pkgname-$pkgver.tar.xz) +license=(GPL) +depends=(git gtksourceview3 vte3 desktop-file-utils hicolor-icon-theme) +makedepends=(intltool itstool) options=(!libtool) install=giggle.install -sha256sums=('ae2e2237fa0d0999d99d0a0ee9b7ec147e80bd2472d59a045b2b01eb02261f59') +source=(http://ftp.gnome.org/pub/GNOME/sources/giggle/0.7/$pkgname-$pkgver.tar.xz + gtksourceview3.7.patch) +sha256sums=('ae2e2237fa0d0999d99d0a0ee9b7ec147e80bd2472d59a045b2b01eb02261f59' + 'ca0b841d11bb5072741784dbeb72705eddf8e2bde780b8712355d5b66e456b37') -build() { +prepare() { cd $pkgname-$pkgver + patch -Np1 -i ../gtksourceview3.7.patch +} - ./configure \ - --prefix=/usr +build() { + cd $pkgname-$pkgver + ./configure --prefix=/usr make } -package() { +check() { cd $pkgname-$pkgver + make check +} +package() { + cd $pkgname-$pkgver make DESTDIR="$pkgdir" install } diff --git a/community/giggle/gtksourceview3.7.patch b/community/giggle/gtksourceview3.7.patch new file mode 100644 index 000000000..eb86cdeef --- /dev/null +++ b/community/giggle/gtksourceview3.7.patch @@ -0,0 +1,36 @@ +From 9999a7ff573b7f3320c2065e8d0eaf0fea32a41b Mon Sep 17 00:00:00 2001 +From: Dominique Leuenberger +Date: Wed, 03 Apr 2013 20:26:17 +0000 +Subject: Directly include gtksourcebuffer.h + +Until gtksourceview 3.7, it was included indirectly by gtksourceview.h. + +https://bugzilla.gnome.org/show_bug.cgi?id=697220 +--- +diff --git a/src/giggle-diff-view.c b/src/giggle-diff-view.c +index 3ded28d..ff6bbe3 100644 +--- a/src/giggle-diff-view.c ++++ b/src/giggle-diff-view.c +@@ -29,6 +29,8 @@ + #include + #include + ++#include ++ + typedef struct GiggleDiffViewPriv GiggleDiffViewPriv; + typedef struct GiggleDiffViewFile GiggleDiffViewFile; + typedef struct GiggleDiffViewHunk GiggleDiffViewHunk; +diff --git a/src/giggle-view-file.c b/src/giggle-view-file.c +index 130af4a..517858d 100644 +--- a/src/giggle-view-file.c ++++ b/src/giggle-view-file.c +@@ -40,6 +40,7 @@ + + #include + #include ++#include + + #define GIGGLE_TYPE_VIEW_FILE_SNAPSHOT (giggle_view_file_snapshot_get_type ()) + #define GIGGLE_VIEW_FILE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIGGLE_TYPE_VIEW_FILE_SNAPSHOT, GiggleViewFileSnapshot)) +-- +cgit v0.9.1 diff --git a/community/gitg/PKGBUILD b/community/gitg/PKGBUILD index 1bb606e4e..68d902e4f 100644 --- a/community/gitg/PKGBUILD +++ b/community/gitg/PKGBUILD @@ -1,36 +1,28 @@ -# $Id: PKGBUILD 57270 2011-10-25 06:09:22Z ebelanger $ -# Maintainer: Brad Fanella -# Contributor: Blaž Tomžič -# Contributor: Thomas Dziedzic < gostrc at gmail > -# Contributor: Christoph Zeiler -# Contributor: M Rawash -# Contributor: DonVla +# $Id: PKGBUILD 88690 2013-04-21 22:17:07Z heftig $ +# Maintainer: Eric Bélanger pkgname=gitg -pkgver=0.2.5 +pkgver=0.2.7 pkgrel=1 pkgdesc='A GIT repository viewer based on GTK+' arch=('i686' 'x86_64') -url='http://trac.novowork.com/gitg/' +url='https://git.gnome.org/browse/gitg/' license=('GPL') -depends=('dconf' 'gtksourceview3' 'git' 'desktop-file-utils' 'gsettings-desktop-schemas' \ +depends=('gtksourceview3' 'git' 'desktop-file-utils' 'gsettings-desktop-schemas' \ 'hicolor-icon-theme') makedepends=('intltool') options=('!libtool') -install="${pkgname}.install" -source=("ftp://ftp.gnome.org/pub/GNOME/sources/gitg/0.2/${pkgname}-${pkgver}.tar.xz") -sha256sums=('d3dfff65834d8371d43b2e91926af1421f8ec2128580dfeceb6925b6b1ce6d8c') +install=gitg.install +source=(ftp://ftp.gnome.org/pub/GNOME/sources/gitg/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz) +sha1sums=('7b1428819666e4797d64dc94bb1624d5e7b75e6a') build() { - cd "${srcdir}/${pkgname}-${pkgver}" - - ./configure \ - --prefix=/usr - make + cd ${pkgname}-${pkgver} + ./configure --prefix=/usr + make } package() { - cd "${srcdir}/${pkgname}-${pkgver}" - - make DESTDIR="${pkgdir}" install + cd ${pkgname}-${pkgver} + make DESTDIR="${pkgdir}" install } diff --git a/community/gitg/gitg.install b/community/gitg/gitg.install index 7b356a632..4b90c879e 100644 --- a/community/gitg/gitg.install +++ b/community/gitg/gitg.install @@ -1,19 +1,13 @@ -# Maintainer: Brad Fanella -# Contributor: DonVla -# gitg install file - post_install() { - usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas - update-desktop-database -q - gtk-update-icon-cache -q -t -f usr/share/icons/hicolor + glib-compile-schemas usr/share/glib-2.0/schemas + update-desktop-database -q + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor } post_upgrade() { - post_install $1 + post_install $1 } post_remove() { - usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas - update-desktop-database -q - gtk-update-icon-cache -q -t -f usr/share/icons/hicolor + post_install $1 } diff --git a/community/gnome-applets/01_battstat_upower.patch b/community/gnome-applets/01_battstat_upower.patch new file mode 100644 index 000000000..fa31e720b --- /dev/null +++ b/community/gnome-applets/01_battstat_upower.patch @@ -0,0 +1,622 @@ +From 18a2f4aa3ba2c8c9fc3718b15a9ab366fdd35f05 Mon Sep 17 00:00:00 2001 +From: Joachim Breitner +Date: Mon, 5 Jul 2010 12:20:04 +0200 +Subject: [PATCH] [battstat applet] upower support + +As HAL is being deprecated, the battstat applet is adjusted to talk to +upower, using libupower-glib. (Bug #607254) +--- + battstat/Makefile.am | 6 +- + battstat/battstat-upower.c | 330 +++++++++++++++++++++++++++++++++++++++++ + battstat/battstat-upower.h | 33 ++++ + battstat/battstat_applet.c | 7 +- + battstat/docs/C/battstat.xml | 18 ++- + battstat/docs/de/battstat.xml | 22 +++- + battstat/docs/eu/battstat.xml | 20 ++- + battstat/power-management.c | 66 +++++++-- + configure.in | 22 +++ + 9 files changed, 493 insertions(+), 31 deletions(-) + create mode 100644 battstat/battstat-upower.c + create mode 100644 battstat/battstat-upower.h + +Index: gnome-applets-3.4.1/battstat/Makefile.am +=================================================================== +--- gnome-applets-3.4.1.orig/battstat/Makefile.am 2012-04-13 19:02:29.000000000 +0200 ++++ gnome-applets-3.4.1/battstat/Makefile.am 2012-04-19 00:28:17.246029051 +0200 +@@ -27,6 +27,7 @@ + $(GNOME_APPLETS_CFLAGS) \ + $(LIBNOTIFY_CFLAGS) \ + $(HAL_CFLAGS) \ ++ $(UPOWER_CFLAGS) \ + $(APMINC) \ + $(ACPIINC) \ + $(WARN_CFLAGS) \ +@@ -48,13 +49,17 @@ + acpi-freebsd.c \ + acpi-freebsd.h \ + battstat-hal.c \ +- battstat-hal.h ++ battstat-hal.h \ ++ battstat-upower.c \ ++ battstat-upower.h + + + battstat_applet_2_LDADD = \ + $(GNOME_APPLETS_LIBS) \ + $(LIBNOTIFY_LIBS) \ + $(HAL_LIBS) \ ++ $(UPOWER_LIBS) \ ++ $(LIBM) \ + $(APMLIB) + + schemasdir = @GCONF_SCHEMA_FILE_DIR@ +Index: gnome-applets-3.4.1/battstat/battstat-upower.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gnome-applets-3.4.1/battstat/battstat-upower.c 2012-04-19 00:28:17.246029051 +0200 +@@ -0,0 +1,301 @@ ++/* ++ * Copyright (C) 2010 by Joachim Breitner ++ * ++ * Based on battstat-hal.c: ++ * Copyright (C) 2005 by Ryan Lortie ++ * ++ * 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., 59 Temple Street #330, Boston, MA 02111-1307, USA. ++ * ++ * $Id$ ++ */ ++ ++#include ++ ++#ifdef HAVE_UPOWER ++ ++#include ++#include ++ ++#include "battstat-upower.h" ++ ++static UpClient *upc; ++static void (*status_updated_callback) (void); ++ ++ ++/* status_updated_callback() can not be called directly because at the time of ++ * the device-remove signal, the device is not actually removed from the list ++ * of devices known to the up_client object (see libupower-glib/up-client.c in ++ * upower). Waiting for the next idle timer works around this issue and has has ++ * the additionaly benefit of possibly running status_updated_callback only ++ * once when several events happen very soon after each other. ++ */ ++static gboolean status_update_scheduled; ++ ++static gboolean ++update_status_idle (gpointer junk) ++{ ++ if (status_updated_callback) ++ status_updated_callback (); ++ ++ return status_update_scheduled = FALSE; ++} ++ ++static void ++schedule_status_callback (void) ++{ ++ if (status_update_scheduled) ++ return; ++ ++ status_update_scheduled = TRUE; ++ g_idle_add (update_status_idle, NULL); ++} ++ ++static void ++device_cb (UpClient *client, UpDevice *device, gpointer user_data) { ++ schedule_status_callback(); ++} ++ ++/* ---- public functions ---- */ ++ ++char * ++battstat_upower_initialise (void (*callback) (void)) ++{ ++ status_updated_callback = callback; ++ ++ if( upc != NULL ) ++ return g_strdup( "Already initialised!" ); ++ ++ if( (upc = up_client_new() ) == NULL ) ++ goto error_out; ++ ++ if (! up_client_enumerate_devices_sync( upc, NULL, NULL ) ) { ++ goto error_shutdownclient; ++ } ++ ++ g_signal_connect_after( upc, "device-changed", device_cb, NULL ); ++ g_signal_connect_after( upc, "device-added", device_cb, NULL ); ++ g_signal_connect_after( upc, "device-removed", device_cb, NULL ); ++ ++ return NULL; ++ ++error_shutdownclient: ++ g_object_unref( upc ); ++ upc = NULL; ++ ++error_out: ++ return "Can not initialize upower"; ++} ++ ++void ++battstat_upower_cleanup( void ) ++{ ++ if( upc == NULL ) ++ return; ++ ++ g_object_unref( upc ); ++ upc = NULL; ++} ++ ++#include "battstat.h" ++ ++/* This function currently exists to allow the multiple batteries supported ++ * by the upower backend to appear as a single composite battery device (since ++ * at the current time this is all that battstat supports). ++ * ++ * This entire function is filled with logic to make multiple batteries ++ * appear as one "composite" battery. Comments included as appropriate. ++ * ++ * For more information about some of the assumptions made in the following ++ * code please see the following mailing list post and the resulting thread: ++ * ++ * http://lists.freedesktop.org/archives/hal/2005-July/002841.html ++ */ ++void ++battstat_upower_get_battery_info( BatteryStatus *status ) ++{ ++ ++ GPtrArray *devices = up_client_get_devices( upc ); ++ ++ /* The calculation to get overall percentage power remaining is as follows: ++ * ++ * Sum( Current charges ) / Sum( Full Capacities ) ++ * ++ * We can't just take an average of all of the percentages since this ++ * doesn't deal with the case that one battery might have a larger ++ * capacity than the other. ++ * ++ * In order to do this calculation, we need to keep a running total of ++ * current charge and full capacities. ++ */ ++ double current_charge_total = 0, full_capacity_total = 0; ++ ++ /* Record the time remaining as reported by upower. This is used in the event ++ * that the system has exactly one battery (since, then, upower is capable ++ * of providing an accurate time remaining report and we should trust it.) ++ */ ++ gint64 remaining_time = 0; ++ ++ /* The total (dis)charge rate of the system is the sum of the rates of ++ * the individual batteries. ++ */ ++ double rate_total = 0; ++ ++ /* We need to know if we should report the composite battery as present ++ * at all. The logic is that if at least one actual battery is installed ++ * then the composite battery will be reported to exist. ++ */ ++ int present = 0; ++ ++ /* We need to know if we are on AC power or not. Eventually, we can look ++ * at the AC adaptor upower devices to determine that. For now, we assume that ++ * if any battery is discharging then we must not be on AC power. Else, by ++ * default, we must be on AC. ++ */ ++ int on_ac_power = 1; ++ ++ /* Finally, we consider the composite battery to be "charging" if at least ++ * one of the actual batteries in the system is charging. ++ */ ++ int charging = 0; ++ ++ /* For each physical battery bay... */ ++ int i; ++ for( i = 0; i < devices->len; i++ ) ++ { ++ UpDevice *upd = g_ptr_array_index( devices, i ); ++ ++ int type, state; ++ double current_charge, full_capacity, rate; ++ gint64 time_to_full, time_to_empty; ++ ++ g_object_get( upd, ++ "kind", &type, ++ "state", &state, ++ "energy", ¤t_charge, ++ "energy-full", &full_capacity, ++ "energy-rate", &rate, ++ "time-to-full", &time_to_full, ++ "time-to-empty", &time_to_empty, ++ NULL ); ++ ++ /* Only count batteries here */ ++ ++ if (type != UP_DEVICE_KIND_BATTERY) ++ continue; ++ ++ /* At least one battery present -> composite battery is present. */ ++ present++; ++ ++ /* At least one battery charging -> composite battery is charging. */ ++ if( state == UP_DEVICE_STATE_CHARGING ) ++ charging = 1; ++ ++ /* At least one battery is discharging -> we're not on AC. */ ++ if( state == UP_DEVICE_STATE_DISCHARGING ) ++ on_ac_power = 0; ++ ++ /* Sum the totals for current charge, design capacity, (dis)charge rate. */ ++ current_charge_total += current_charge; ++ full_capacity_total += full_capacity; ++ rate_total += rate; ++ ++ /* Record remaining time too, incase this is the only battery. */ ++ remaining_time = (state == UP_DEVICE_STATE_DISCHARGING ? time_to_empty : time_to_full); ++ } ++ ++ if( !present || full_capacity_total <= 0 || (charging && !on_ac_power) ) ++ { ++ /* Either no battery is present or something has gone horribly wrong. ++ * In either case we must return that the composite battery is not ++ * present. ++ */ ++ status->present = FALSE; ++ status->percent = 0; ++ status->minutes = -1; ++ status->on_ac_power = TRUE; ++ status->charging = FALSE; ++ ++ g_ptr_array_unref( devices ); ++ return; ++ } ++ ++ /* Else, our composite battery is present. */ ++ status->present = TRUE; ++ ++ /* As per above, overall charge is: ++ * ++ * Sum( Current charges ) / Sum( Full Capacities ) ++ */ ++ status->percent = ( current_charge_total / full_capacity_total ) * 100.0 + 0.5; ++ ++ if( present == 1 ) ++ { ++ /* In the case of exactly one battery, report the time remaining figure ++ * from upower directly since it might have come from an authorative source ++ * (ie: the PMU or APM subsystem). ++ * ++ * upower gives remaining time in seconds with a 0 to mean that the ++ * remaining time is unknown. Battstat uses minutes and -1 for ++ * unknown time remaining. ++ */ ++ ++ if( remaining_time == 0 ) ++ status->minutes = -1; ++ else ++ status->minutes = (remaining_time + 30) / 60; ++ } ++ /* Rest of cases to deal with multiple battery systems... */ ++ else if( !on_ac_power && rate_total != 0 ) ++ { ++ /* Then we're discharging. Calculate time remaining until at zero. */ ++ ++ double remaining; ++ ++ remaining = current_charge_total; ++ remaining /= rate_total; ++ status->minutes = (int) floor( remaining * 60.0 + 0.5 ); ++ } ++ else if( charging && rate_total != 0 ) ++ { ++ /* Calculate time remaining until charged. For systems with more than ++ * one battery, this code is very approximate. The assumption is that if ++ * one battery reaches full charge before the other that the other will ++ * start charging faster due to the increase in available power (similar ++ * to how a laptop will charge faster if you're not using it). ++ */ ++ ++ double remaining; ++ ++ remaining = full_capacity_total - current_charge_total; ++ if( remaining < 0 ) ++ remaining = 0; ++ remaining /= rate_total; ++ ++ status->minutes = (int) floor( remaining * 60.0 + 0.5 ); ++ } ++ else ++ { ++ /* On AC power and not charging -or- rate is unknown. */ ++ status->minutes = -1; ++ } ++ ++ /* These are simple and well-explained above. */ ++ status->charging = charging; ++ status->on_ac_power = on_ac_power; ++ ++ g_ptr_array_unref( devices ); ++} ++ ++#endif /* HAVE_UPOWER */ +Index: gnome-applets-3.4.1/battstat/battstat-upower.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gnome-applets-3.4.1/battstat/battstat-upower.h 2012-04-19 00:28:17.254029051 +0200 +@@ -0,0 +1,33 @@ ++/* ++ * Copyright (C) 2010 by Joachim Breitner ++ * ++ * Based on battstat-hal.h: ++ * Copyright (C) 2005 by Ryan Lortie ++ * ++ * 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., 59 Temple Street #330, Boston, MA 02111-1307, USA. ++ * ++ * $Id$ ++ */ ++ ++#ifndef _battstat_upower_h_ ++#define _battstat_upower_h_ ++ ++char *battstat_upower_initialise (void (*) (void)); ++void battstat_upower_cleanup (void); ++ ++#include "battstat.h" ++void battstat_upower_get_battery_info (BatteryStatus *status); ++ ++#endif /* _battstat_upower_h_ */ +Index: gnome-applets-3.4.1/battstat/battstat_applet.c +=================================================================== +--- gnome-applets-3.4.1.orig/battstat/battstat_applet.c 2012-04-13 19:02:29.000000000 +0200 ++++ gnome-applets-3.4.1/battstat/battstat_applet.c 2012-04-19 00:28:17.254029051 +0200 +@@ -1188,9 +1188,12 @@ + + char *comments = g_strdup_printf ("%s\n\n%s", + _("This utility shows the status of your laptop battery."), +- power_management_using_hal () ? ++ power_management_using_upower () ? ++ /* true */ _("upower backend enabled.") : ++ (power_management_using_hal () ? + /* true */ _("HAL backend enabled.") : +- /* false */ _("Legacy (non-HAL) backend enabled.")); ++ /* false */ _("Legacy (non-HAL) backend enabled.") ++ )); + + gtk_show_about_dialog( NULL, + "version", VERSION, +Index: gnome-applets-3.4.1/battstat/docs/C/battstat.xml +=================================================================== +--- gnome-applets-3.4.1.orig/battstat/docs/C/battstat.xml 2012-04-15 15:49:58.000000000 +0200 ++++ gnome-applets-3.4.1/battstat/docs/C/battstat.xml 2012-04-19 00:28:17.254029051 +0200 +@@ -226,10 +226,13 @@ + Power Management Backends + + +- The battery monitor supports a number of power management backends. If it +- is available, the monitor will attempt to use the freedesktop.org +- HAL (Hardware Abstraction +- Layer). If it is unavailable or unsupported on your platform, the ++ The battery monitor supports a number of power management backends. ++ If it is available, the monitor will attempt to use the freedesktop.org ++ upower interface. ++ If it is unavailable or unsupported on your platform, it will fall back ++ to the freedesktop.org ++ HAL (Hardware ++ Abstraction Layer). If that is also not availble, the + battery monitor will attempt direct access to the power management system. + + +@@ -410,10 +413,10 @@ + + Determining the backend + +- If you are using the Hardware Abstraction Layer +- (see ) then that will be +- indicated in the about dialog by placing a star next to the author of the +- HAL backend. ++ If you are using the upower interface, or the the Hardware ++ Abstraction Layer (see ) then ++ that will be indicated in the about dialog by placing a star next to the ++ author of the HAL backend. +

+ Check you're using the HAL backend + +Index: gnome-applets-3.4.1/battstat/power-management.c +=================================================================== +--- gnome-applets-3.4.1.orig/battstat/power-management.c 2012-04-13 19:02:29.000000000 +0200 ++++ gnome-applets-3.4.1/battstat/power-management.c 2012-04-19 00:28:17.254029051 +0200 +@@ -41,6 +41,7 @@ + + #include "battstat.h" + #include "battstat-hal.h" ++#include "battstat-upower.h" + + #define ERR_ACPID _("Can't access ACPI events in /var/run/acpid.socket! " \ + "Make sure the ACPI subsystem is working and " \ +@@ -66,6 +67,9 @@ + #ifdef HAVE_HAL + static int using_hal; + #endif ++#ifdef HAVE_UPOWER ++static int using_upower; ++#endif + + /* + * What follows is a series of platform-specific apm_readinfo functions +@@ -390,6 +394,14 @@ + return NULL; + } + ++#ifdef HAVE_UPOWER ++ if( using_upower ) ++ { ++ battstat_upower_get_battery_info( status ); ++ return NULL; ++ } ++#endif ++ + #ifdef HAVE_HAL + if( using_hal ) + { +@@ -430,27 +442,36 @@ + const char * + power_management_initialise (int no_hal, void (*callback) (void)) + { ++ char *err; ++ err = g_strdup( ":(" ); + #ifdef __linux__ + struct stat statbuf; + #endif +-#ifdef HAVE_HAL +- char *err; ++#ifdef HAVE_UPOWER ++ err = battstat_upower_initialise (callback); + +- if( no_hal ) +- err = g_strdup( ":(" ); +- else +- err = battstat_hal_initialise (callback); +- +- +- if( err == NULL ) /* HAL is up */ ++ if( err == NULL ) /* UPOWER is up */ + { + pm_initialised = 1; +- using_hal = TRUE; ++ using_upower = TRUE; + return NULL; ++ } ++#endif ++ ++#ifdef HAVE_HAL ++ if(! no_hal ) { ++ err = battstat_hal_initialise (callback); ++ ++ if( err == NULL ) /* HAL is up */ ++ { ++ pm_initialised = 1; ++ using_hal = TRUE; ++ return NULL; ++ } + } +- else +- /* fallback to legacy methods */ +- g_free( err ); ++ ++ /* fallback to legacy methods */ ++ g_free( err ); + #endif + + #ifdef __linux__ +@@ -498,6 +519,15 @@ + void + power_management_cleanup( void ) + { ++#ifdef HAVE_UPOWER ++ if( using_upower ) ++ { ++ battstat_upower_cleanup(); ++ pm_initialised = 1; ++ return; ++ } ++#endif ++ + #ifdef HAVE_HAL + if( using_hal ) + { +@@ -525,6 +555,16 @@ + } + + int ++power_management_using_upower( void ) ++{ ++#ifdef HAVE_UPOWER ++ return using_upower; ++#else ++ return 0; ++#endif ++} ++ ++int + power_management_using_hal( void ) + { + #ifdef HAVE_HAL +Index: gnome-applets-3.4.1/configure.in +=================================================================== +--- gnome-applets-3.4.1.orig/configure.in 2012-04-15 15:45:36.000000000 +0200 ++++ gnome-applets-3.4.1/configure.in 2012-04-19 00:28:17.254029051 +0200 +@@ -23,6 +23,7 @@ + LIBWNCK_REQUIRED=2.91.0 + LIBNOTIFY_REQUIRED=0.7 + HAL_REQUIRED=0.5.3 ++UPOWER_REQUIRED=0.9.4 + DBUS_REQUIRED=1.1.2 + DBUS_GLIB_REQUIRED=0.74 + PYGOBJECT_REQUIRED=2.26 +@@ -223,6 +224,30 @@ + AC_SUBST(HAL_CFLAGS) + AC_SUBST(HAL_LIBS) + ++dnl -- check for libupower-glib (optional) -------------------------------------------- ++UPOWER_CFLAGS= ++UPOWER_LIBS= ++AC_ARG_WITH(upower,[ --without-upower build without upower support]) ++ ++if test "x$with_upower" != xno; then ++ PKG_CHECK_MODULES(UPOWER, upower-glib >= $UPOWER_REQUIRED, ++ HAVE_UPOWER="yes", ++ HAVE_UPOWER="no") ++ ++ LT_LIB_M ++ if test "x$HAVE_UPOWER" = "xyes"; then ++ AC_DEFINE(HAVE_UPOWER, 1, [UPOWER available]) ++ fi ++else ++ AC_MSG_WARN(["upower support disabled"]) ++fi ++ ++AC_SUBST(UPOWER_CFLAGS) ++AC_SUBST(UPOWER_LIBS) ++AC_SUBST(LIBM) ++ ++ ++ + dnl -- check for gucharmap (optional) ----------------------------------------- + + PKG_CHECK_MODULES([GUCHARMAP],[gucharmap-2.90 >= $GUCHARMAP3_REQUIRED], +@@ -739,5 +764,6 @@ + Using DBUS: $HAVE_DBUS + Using NetworkManager: $HAVE_NETWORKMANAGER + Using HAL: $HAVE_HAL ++ Using UPOWER: $HAVE_UPOWER + Enabling IPv6: $have_ipv6 + " >&2 diff --git a/community/gnome-applets/PKGBUILD b/community/gnome-applets/PKGBUILD index 59699512e..193c879af 100644 --- a/community/gnome-applets/PKGBUILD +++ b/community/gnome-applets/PKGBUILD @@ -1,35 +1,61 @@ -# $Id: PKGBUILD 87904 2013-04-08 14:47:20Z heftig $ -# Maintainer: Jan de Groot +# $Id: PKGBUILD 88683 2013-04-21 22:16:53Z heftig $ +# Maintainer: Balló György +# Contributor: Jan de Groot pkgname=gnome-applets pkgver=3.5.92 -pkgrel=1 -pkgdesc="GNOME Applets" -arch=(i686 x86_64) +pkgrel=3 +pkgdesc="Small applications for the GNOME panel" +arch=('i686' 'x86_64') license=('GPL') -depends=('gnome-panel' 'libgtop' 'gucharmap' 'libnotify') -makedepends=('gnome-doc-utils' 'intltool' 'gnome-settings-daemon' 'networkmanager') -options=(!emptydirs) -url="http://www.gnome.org" -install=gnome-applets.install -source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('f6178cb702a39a4103fcb97e9a266bf6d05f05ac5064818f119c023d76170e83') +depends=('cpupower' 'gucharmap' 'gstreamer0.10-base-plugins' 'gnome-panel' 'libgtop' 'upower') +makedepends=('gnome-common' 'gnome-doc-utils' 'intltool' 'networkmanager' 'rarian') +url="https://live.gnome.org/GnomeApplets" +install=$pkgname.install +source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz + gnome-applets-cpupower.patch + disable-gweather-applet.patch + fix-autoconf.patch + 01_battstat_upower.patch) +sha256sums=('f6178cb702a39a4103fcb97e9a266bf6d05f05ac5064818f119c023d76170e83' + '942276d7cc18224d9f5b1b57314746ad4d713ee0dcf4aedb25fa72e92db75e65' + '47f6b477c0f76ebb1e8ffc6fe9bd2fac9ac7f511f059cf4bb2687f8425bfb4a8' + '0acd58aee458345e378d5f77256e04b13e3a4c06b166aac390a92309b864e8a4' + '364c9264c76721b42e85eecc48443852ead1bd730d9de937dd2ae00889db836a') build() { cd "$pkgname-$pkgver" - PYTHON=/usr/bin/python2 ./configure --prefix=/usr \ - --sysconfdir=/etc --libexecdir=/usr/lib/gnome-applets \ - --localstatedir=/var --disable-static \ - --disable-scrollkeeper --disable-schemas-install \ - --without-hal + + sed -i 's@^#!.*python$@#!/usr/bin/python2@' invest-applet/invest/* + + # Use cpupower instead of cpufreq + patch -Np1 -i "$srcdir/gnome-applets-cpupower.patch" + + # Add UPower support + patch -Np1 -i "$srcdir/01_battstat_upower.patch" + + # Disable gweather applet, because it's not compatible with libgweather 3.8 + patch -Np1 -i "$srcdir/disable-gweather-applet.patch" + + # Fix build + patch -Np1 -i "$srcdir/fix-autoconf.patch" + + # Turn off unneeded warnings + CFLAGS="$CFLAGS -w" + + autoreconf -fi + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$pkgname \ + --disable-static --disable-schemas-install --disable-scrollkeeper \ + --enable-mixer-applet \ + PYTHON=/usr/bin/python2 make } package() { cd "$pkgname-$pkgver" - make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="$pkgdir" install + make DESTDIR="$pkgdir" install - install -m755 -d "$pkgdir/usr/share/gconf/schemas" - gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/$pkgname.schemas" --domain gnome-applets-3.0 "$pkgdir"/etc/gconf/schemas/*.schemas - rm -f "$pkgdir"/etc/gconf/schemas/*.schemas + mkdir -m755 -p "$pkgdir/usr/share/gconf/schemas" + gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/$pkgname.schemas" "$pkgdir"/etc/gconf/schemas/*.schemas + rm -r "$pkgdir"/etc/gconf } diff --git a/community/gnome-applets/disable-gweather-applet.patch b/community/gnome-applets/disable-gweather-applet.patch new file mode 100644 index 000000000..26f7e4d6b --- /dev/null +++ b/community/gnome-applets/disable-gweather-applet.patch @@ -0,0 +1,12 @@ +diff -Naur gnome-applets-3.5.92.orig/configure.in gnome-applets-3.5.92/configure.in +--- gnome-applets-3.5.92.orig/configure.in 2012-09-20 03:07:34.000000000 +0200 ++++ gnome-applets-3.5.92/configure.in 2013-04-09 10:39:54.214243015 +0200 +@@ -251,7 +251,7 @@ + + dnl -- check for libgweather (required for gweather applet) ------------------ + build_libgweather_applets=false +-PKG_CHECK_MODULES(LIBGWEATHER, gweather-3.0 >= $GWEATHER_REQUIRED, ++PKG_CHECK_MODULES(LIBGWEATHER, gweather-3.0 >= $GWEATHER_REQUIRED gweather-3.0 <= 3.7, + build_libgweather_applets=true, + AC_MSG_WARN([libgweather not found. Not building the weather applet.])) + AC_SUBST(LIBGWEATHER_CFLAGS) diff --git a/community/gnome-applets/fix-autoconf.patch b/community/gnome-applets/fix-autoconf.patch new file mode 100644 index 000000000..fc36c743c --- /dev/null +++ b/community/gnome-applets/fix-autoconf.patch @@ -0,0 +1,12 @@ +diff -Naur gnome-applets-3.5.92.orig/configure.in gnome-applets-3.5.92/configure.in +--- gnome-applets-3.5.92.orig/configure.in 2012-09-20 03:07:34.000000000 +0200 ++++ gnome-applets-3.5.92/configure.in 2013-04-09 09:48:48.427334056 +0200 +@@ -4,7 +4,7 @@ + AC_INIT(gnome-applets, 3.5.92) + AC_PREREQ(2.59) + +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar]) + AC_CONFIG_MACRO_DIR(m4) + m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) diff --git a/community/gnome-applets/gnome-applets-cpupower.patch b/community/gnome-applets/gnome-applets-cpupower.patch new file mode 100644 index 000000000..134a617fc --- /dev/null +++ b/community/gnome-applets/gnome-applets-cpupower.patch @@ -0,0 +1,12 @@ +diff -up gnome-applets-3.1.90/configure.in.cpupower gnome-applets-3.1.90/configure.in +--- gnome-applets-3.1.90/configure.in.cpupower 2011-08-31 18:49:00.628945807 -0400 ++++ gnome-applets-3.1.90/configure.in 2011-08-31 18:49:17.397946966 -0400 +@@ -518,7 +518,7 @@ AC_CHECK_HEADER(cpufreq.h, have_libcpufr + LIBCPUFREQ_LIBS= + if test "x$have_libcpufreq" = "xyes"; then + AC_DEFINE([HAVE_LIBCPUFREQ], [1], [Have libcpufreq.]) +- LIBCPUFREQ_LIBS=-lcpufreq ++ LIBCPUFREQ_LIBS=-lcpupower + fi + AM_CONDITIONAL(HAVE_LIBCPUFREQ, test x$have_libcpufreq = xyes) + AC_SUBST(LIBCPUFREQ_LIBS) diff --git a/community/gnome-packagekit/PKGBUILD b/community/gnome-packagekit/PKGBUILD index 85972a329..cb8d4df7e 100644 --- a/community/gnome-packagekit/PKGBUILD +++ b/community/gnome-packagekit/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 85932 2013-03-09 04:07:22Z jconder $ +# $Id: PKGBUILD 88703 2013-04-21 22:24:13Z heftig $ # Maintainer: Jonathan Conder pkgname=gnome-packagekit -pkgver=3.6.2 +pkgver=3.8.1 pkgrel=1 pkgdesc='Collection of graphical tools for PackageKit to be used in the GNOME desktop' arch=('i686' 'x86_64') @@ -16,7 +16,7 @@ optdepends=('polkit-gnome: required for privileged actions' options=('!emptydirs' '!libtool') install="$pkgname.install" source=("http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz") -sha256sums=('2db1069324cb85d8704bd1ffbbea3c29d57ba7b0d710f45f6563fd963517ef40') +sha256sums=('fe0a6368ee5a67419c9332a3b0031ecf1e3e92aa2fe0eb30aa4273f6224d070a') build() { cd "$srcdir/$pkgname-$pkgver" diff --git a/community/gnome-panel/0001-Add-the-GNOME-Flashback-session.patch b/community/gnome-panel/0001-Add-the-GNOME-Flashback-session.patch new file mode 100644 index 000000000..2c90a9fe2 --- /dev/null +++ b/community/gnome-panel/0001-Add-the-GNOME-Flashback-session.patch @@ -0,0 +1,95 @@ +From a5b951654b856d899e8c6a4116b4ccc4f18aac91 Mon Sep 17 00:00:00 2001 +From: Jeremy Bicha +Date: Sun, 24 Feb 2013 17:22:29 -0500 +Subject: [PATCH] Add the GNOME Flashback session + +This was removed from gnome-session 3.7.4 so let's it add it back here +(under new name) + +https://bugzilla.gnome.org/show_bug.cgi?id=694625 +--- + data/Makefile.am | 18 +++++++++++++++++- + data/gnome-flashback.desktop.in | 7 +++++++ + data/gnome-flashback.session.desktop.in | 3 +++ + po/POTFILES.in | 2 ++ + 4 files changed, 29 insertions(+), 1 deletion(-) + create mode 100644 data/gnome-flashback.desktop.in + create mode 100644 data/gnome-flashback.session.desktop.in + +diff --git a/data/Makefile.am b/data/Makefile.am +index 83f82e2..84e1954 100644 +--- a/data/Makefile.am ++++ b/data/Makefile.am +@@ -30,17 +30,33 @@ gsettings_SCHEMAS = $(gsettings_schemas_in:.xml.in=.xml) + + @GSETTINGS_RULES@ + ++sessiondir = $(datadir)/gnome-session/sessions ++session_in_files = gnome-flashback.session.desktop.in ++session_DATA = $(session_in_files:.session.desktop.in=.session) ++ ++xsessiondir = $(datadir)/xsessions ++xsession_in_files = gnome-flashback.desktop.in ++xsession_DATA = $(xsession_in_files:.desktop.in=.desktop) ++ ++%.session: %.session.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@ ++ ++@INTLTOOL_DESKTOP_RULE@ ++ + default_layoutdir = $(datadir)/gnome-panel + default_layout_DATA = panel-default-layout.layout + + EXTRA_DIST = \ + $(gsettings_schemas_in_in) \ ++ $(session_in_files) \ ++ $(xsession_in_files) \ + $(default_layout_DATA) + + CLEANFILES = \ + $(gsettings__enum_file) \ + $(gsettings_SCHEMAS_in) \ + $(gsettings_SCHEMAS) \ +- *.gschema.valid ++ *.gschema.valid \ ++ $(session_DATA) \ ++ $(xsession_DATA) + + -include $(top_srcdir)/git.mk +diff --git a/data/gnome-flashback.desktop.in b/data/gnome-flashback.desktop.in +new file mode 100644 +index 0000000..4856f75 +--- /dev/null ++++ b/data/gnome-flashback.desktop.in +@@ -0,0 +1,7 @@ ++[Desktop Entry] ++_Name=GNOME Flashback ++_Comment=This session logs you into GNOME with the traditional panel ++Exec=gnome-session --session=gnome-flashback ++TryExec=gnome-session ++Icon= ++Type=Application +diff --git a/data/gnome-flashback.session.desktop.in b/data/gnome-flashback.session.desktop.in +new file mode 100644 +index 0000000..c012c58 +--- /dev/null ++++ b/data/gnome-flashback.session.desktop.in +@@ -0,0 +1,3 @@ ++[GNOME Session] ++_Name=GNOME Flashback ++RequiredComponents=gnome-panel;gnome-settings-daemon;gnome-screensaver;metacity;nautilus-classic;notification-daemon; +diff --git a/po/POTFILES.in b/po/POTFILES.in +index bc65c4c..a6aa6c7 100644 +--- a/po/POTFILES.in ++++ b/po/POTFILES.in +@@ -23,6 +23,8 @@ applets/wncklet/window-menu.c + applets/wncklet/wncklet.c + applets/wncklet/workspace-switcher.c + [type: gettext/glade]applets/wncklet/workspace-switcher.ui ++data/gnome-flashback.desktop.in ++data/gnome-flashback.session.desktop.in + data/org.gnome.gnome-panel.applet.clock.gschema.xml.in.in + data/org.gnome.gnome-panel.applet.fish.gschema.xml.in.in + data/org.gnome.gnome-panel.applet.window-list.gschema.xml.in.in +-- +1.7.10.4 + diff --git a/community/gnome-panel/18_fix_force_quit_applet.patch b/community/gnome-panel/18_fix_force_quit_applet.patch new file mode 100644 index 000000000..8a72c9262 --- /dev/null +++ b/community/gnome-panel/18_fix_force_quit_applet.patch @@ -0,0 +1,98 @@ +Description: Fix Force-Quit panel applet + This patch implements handling of XInput2 extension events in the applet. + Without this patch, the applet fails to recognize such events (either mouse + click for killing application, or escape key for exiting), hence freezing the + desktop. + . + Also fix the event mask in call of gdk_device_grab() for keyboard. +Author: Sébastien Villemot +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698740 +Forwarded: no +Last-Update: 2013-01-28 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/gnome-panel/panel-force-quit.c ++++ b/gnome-panel/panel-force-quit.c +@@ -32,6 +32,8 @@ + #include + #include + ++#include ++ + #include "panel-icon-names.h" + #include "panel-stock-icons.h" + +@@ -246,22 +248,23 @@ + + static void + handle_button_press_event (GtkWidget *popup, +- XKeyEvent *event) ++ Display *display, ++ Window subwindow) + { + Window window; + + remove_popup (popup); + +- if (event->subwindow == None) ++ if (subwindow == None) + return; + + if (wm_state_atom == None) +- wm_state_atom = XInternAtom (event->display, "WM_STATE", FALSE); ++ wm_state_atom = XInternAtom (display, "WM_STATE", FALSE); + +- window = find_managed_window (event->display, event->subwindow); ++ window = find_managed_window (display, subwindow); + + if (window != None) { +- if (!gdk_x11_window_lookup_for_display (gdk_x11_lookup_xdisplay (event->display), window)) ++ if (!gdk_x11_window_lookup_for_display (gdk_x11_lookup_xdisplay (display), window)) + kill_window_question ((gpointer) window); + } + } +@@ -272,10 +275,12 @@ + GtkWidget *popup) + { + XEvent *xevent = (XEvent *) gdk_xevent; ++ XIEvent *xiev; ++ XIDeviceEvent *xidev; + + switch (xevent->type) { + case ButtonPress: +- handle_button_press_event (popup, &xevent->xkey); ++ handle_button_press_event (popup, xevent->xbutton.display, xevent->xbutton.subwindow); + return GDK_FILTER_REMOVE; + case KeyPress: + if (xevent->xkey.keycode == XKeysymToKeycode (xevent->xany.display, XK_Escape)) { +@@ -283,6 +288,21 @@ + return GDK_FILTER_REMOVE; + } + break; ++ case GenericEvent: ++ xiev = (XIEvent *) xevent->xcookie.data; ++ xidev = (XIDeviceEvent *) xiev; ++ switch (xiev->evtype) { ++ case XI_KeyPress: ++ if (xidev->detail == XKeysymToKeycode (xevent->xany.display, XK_Escape)) { ++ remove_popup (popup); ++ return GDK_FILTER_REMOVE; ++ } ++ break; ++ case XI_ButtonPress: ++ handle_button_press_event (popup, xidev->display, xidev->child); ++ return GDK_FILTER_REMOVE; ++ } ++ break; + default: + break; + } +@@ -331,7 +351,7 @@ + + status = gdk_device_grab (keyboard, root, + GDK_OWNERSHIP_NONE, FALSE, +- GDK_KEY_PRESS | GDK_KEY_RELEASE, ++ GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK, + NULL, time); + if (status != GDK_GRAB_SUCCESS) { + g_warning ("Keyboard grab failed\n"); diff --git a/community/gnome-panel/PKGBUILD b/community/gnome-panel/PKGBUILD index 664bc7945..e490594e4 100644 --- a/community/gnome-panel/PKGBUILD +++ b/community/gnome-panel/PKGBUILD @@ -1,38 +1,84 @@ -# $Id: PKGBUILD 87902 2013-04-08 14:46:15Z heftig $ -# Maintainer: Jan de Groot +# $Id: PKGBUILD 88684 2013-04-21 22:16:57Z heftig $ +# Maintainer: Balló György +# Contributor: Jan de Groot -pkgname=gnome-panel +pkgbase=gnome-panel +pkgname=('gnome-panel' 'gnome-flashback-session') pkgver=3.6.2 -pkgrel=1 +pkgrel=3 arch=('i686' 'x86_64') license=('GPL') -pkgdesc="The GNOME Panel" -url="http://www.gnome.org" -depends=('gnome-menus' 'gnome-desktop' 'evolution-data-server' 'librsvg' 'libwnck3' 'libsm' 'dconf' - 'gconf' 'telepathy-glib') -makedepends=('yelp-tools' 'intltool' 'gobject-introspection' 'networkmanager' 'libcanberra') -install=gnome-panel.install -groups=('gnome') -provides=("gnome-panel-bonobo=${pkgver}") -options=('!libtool' '!emptydirs') -source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz) -sha256sums=('a41c45c5512e796b8602ce50bf0d205993eab364c860aae31afa582d77b77079') +pkgdesc="Legacy GNOME panel" +url="https://live.gnome.org/GnomePanel" +depends=('dconf' 'evolution-data-server' 'gconf' 'gnome-desktop' 'gnome-menus' 'librsvg' + 'libwnck3' 'telepathy-glib') +makedepends=('gobject-introspection' 'intltool' 'yelp-tools' 'networkmanager' 'gnome-common') +install=$pkgbase.install +options=('!libtool') +source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver:0:3}/$pkgbase-$pkgver.tar.xz + gnome-desktop-3.8.patch + drop-gweather-xml-include.patch + 18_fix_force_quit_applet.patch + logout-hang-workaround.patch + 0001-Add-the-GNOME-Flashback-session.patch + fix-autoconf.patch) +sha256sums=('a41c45c5512e796b8602ce50bf0d205993eab364c860aae31afa582d77b77079' + '3a67f4b07a7dd356fad6b40a43983f3945123ed40080eb153396a481b34efc0c' + 'e3298c62bc577969817c5d6752be83a5129004fd344e4f7998a0d8aa61874305' + '9d742f675d9e09a032bfe00e0523a4ef7e234589a74a6086243bf335ce212775' + 'e98391114fe618d3c9530cd5ad88e5d0d0e3b62890e4494f7db6a76ec3613a47' + 'f313791d246749f18764ad4af13c4efe54483bc327fab371c47f9fbfc25b20a9' + '6828c097505d2dbbf465ed7ff694adbd646a0af2105c8dd864d1061bf0afea71') build() { - cd "$pkgname-$pkgver" - PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \ - --localstatedir=/var --disable-static \ - --libexecdir=/usr/lib/gnome-panel \ - --disable-scrollkeeper \ - --disable-schemas-compile + cd "$pkgbase-$pkgver" + + # Port to gnome-desktop 3.8 + patch -Np1 -i "$srcdir/gnome-desktop-3.8.patch" + + # Fix build with libgweather 3.8 + patch -Np0 -i "$srcdir/drop-gweather-xml-include.patch" + + # Fix force quit applet to avoid freeze + patch -Np1 -i "$srcdir/18_fix_force_quit_applet.patch" + + # Apply a workaround to avoid hang on logout for 15-20 sec + patch -Np1 -i "$srcdir/logout-hang-workaround.patch" + + # Add GNOME Flashback session + # https://bugzilla.gnome.org/show_bug.cgi?id=694625 + patch -Np1 -i "$srcdir/0001-Add-the-GNOME-Flashback-session.patch" + + # Fix build + patch -Np1 -i "$srcdir/fix-autoconf.patch" + + autoreconf -fi + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$pkgbase \ + --disable-static --disable-schemas-compile \ + PYTHON=/usr/bin/python2 make } -package() { - cd "$pkgname-$pkgver" - make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="$pkgdir" install +package_gnome-panel() { + cd "$pkgbase-$pkgver" + make DESTDIR="$pkgdir" install + + # Remove unneeded script + rm "$pkgdir/usr/lib/gnome-panel/gnome-panel-add" + + # Split out the session files + rm -r "$pkgdir"/usr/share/{gnome-session,xsessions} +} + +package_gnome-flashback-session() { + pkgdesc="Shell for Gnome 3 which was initially called Gnome Fallback" + url="https://live.gnome.org/GnomeFlashback" + depends=('gnome-screensaver' 'gnome-panel' 'gnome-session' 'gnome-settings-daemon' + 'gnome-settings-daemon-compat' 'gnome-themes-standard' 'metacity' 'nautilus' + 'notification-daemon' 'polkit-gnome') + install= - install -m755 -d "$pkgdir/usr/share/gconf/schemas" - gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/$pkgname.schemas" --domain gnome-panel-3.0 "$pkgdir"/etc/gconf/schemas/*.schemas - rm -f "$pkgdir"/etc/gconf/schemas/*.schemas + cd "$pkgbase-$pkgver" + make -C data DESTDIR="$pkgdir" install-sessionDATA + make -C data DESTDIR="$pkgdir" install-xsessionDATA } diff --git a/community/gnome-panel/drop-gweather-xml-include.patch b/community/gnome-panel/drop-gweather-xml-include.patch new file mode 100644 index 000000000..3b3a559f0 --- /dev/null +++ b/community/gnome-panel/drop-gweather-xml-include.patch @@ -0,0 +1,10 @@ +--- applets/clock/clock.c.orig 2012-12-25 14:38:00.101601746 -0600 ++++ applets/clock/clock.c 2012-12-25 14:38:30.331443803 -0600 +@@ -54,7 +54,6 @@ + #define GNOME_DESKTOP_USE_UNSTABLE_API + #include + +-#include + #include + #include + #include diff --git a/community/gnome-panel/fix-autoconf.patch b/community/gnome-panel/fix-autoconf.patch new file mode 100644 index 000000000..17d9e025c --- /dev/null +++ b/community/gnome-panel/fix-autoconf.patch @@ -0,0 +1,11 @@ +diff -Naur gnome-panel-3.6.2.orig/configure.ac gnome-panel-3.6.2/configure.ac +--- gnome-panel-3.6.2.orig/configure.ac 2012-11-12 18:51:14.000000000 +0100 ++++ gnome-panel-3.6.2/configure.ac 2013-04-10 14:50:14.132509059 +0200 +@@ -1,6 +1,6 @@ + AC_INIT([gnome-panel], [3.6.2], + [http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-panel]) +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar -Wno-portability]) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + diff --git a/community/gnome-panel/gnome-desktop-3.8.patch b/community/gnome-panel/gnome-desktop-3.8.patch new file mode 100644 index 000000000..3c8823cd2 --- /dev/null +++ b/community/gnome-panel/gnome-desktop-3.8.patch @@ -0,0 +1,199 @@ +diff -Naur gnome-panel-3.6.2.orig/applets/clock/calendar-window.c gnome-panel-3.6.2/applets/clock/calendar-window.c +--- gnome-panel-3.6.2.orig/applets/clock/calendar-window.c 2012-11-12 18:35:17.000000000 +0100 ++++ gnome-panel-3.6.2/applets/clock/calendar-window.c 2013-04-08 23:10:30.451012763 +0200 +@@ -42,9 +42,6 @@ + #include + #include + +-#define GNOME_DESKTOP_USE_UNSTABLE_API +-#include +- + #include "calendar-window.h" + + #include "clock.h" +@@ -168,6 +165,13 @@ + return; + } + ++ /* FIXME: reintroduce terminal support if a proper GAppInfo port of gnome-panel is ever done */ ++ if (terminal) { ++ g_printerr ("Terminal-based calendar/tasks applications are no longer supported, sorry. " ++ "Please configure a different application.\n"); ++ return; ++ } ++ + command_line = g_find_program_in_path (program); + if (command_line == NULL) { + g_printerr ("Cannot launch calendar/tasks application: %s in path\n", program); +@@ -189,9 +193,6 @@ + screen = gtk_widget_get_screen (calwin->priv->calendar); + error = NULL; + +- if (terminal) +- gnome_desktop_prepend_terminal_to_vector (&argc, &argv); +- + display = gdk_screen_make_display_name (screen); + + result = g_spawn_async (NULL, /* working directory */ +diff -Naur gnome-panel-3.6.2.orig/gnome-panel/panel-run-dialog.c gnome-panel-3.6.2/gnome-panel/panel-run-dialog.c +--- gnome-panel-3.6.2.orig/gnome-panel/panel-run-dialog.c 2012-11-12 18:35:17.000000000 +0100 ++++ gnome-panel-3.6.2/gnome-panel/panel-run-dialog.c 2013-04-08 23:10:52.408175181 +0200 +@@ -25,6 +25,7 @@ + * Havoc Pennington + * George Lebl + * Mark McLoughlin ++ * Tom Tromey (Copyright (C) 1998) + */ + + #include +@@ -42,8 +43,6 @@ + #include + #include + +-#include +- + #include + #include + #include +@@ -335,6 +334,132 @@ + */ + } + ++ ++/** ++ * panel_run_dialog_prepend_terminal_to_vector: ++ * @argc: a pointer to the vector size ++ * @argv: a pointer to the vector ++ * ++ * Description: Prepends a terminal (either the one configured as default in ++ * the user's GNOME setup, or one of the common xterm emulators) to the passed ++ * in vector, modifying it in the process. The vector should be allocated with ++ * #g_malloc, as this will #g_free the original vector. Also all elements must ++ * have been allocated separately. That is the standard glib/GNOME way of ++ * doing vectors however. If the integer that @argc points to is negative, the ++ * size will first be computed. Also note that passing in pointers to a vector ++ * that is empty, will just create a new vector for you. ++ **/ ++/* TODO: throw out this function if there ever is a proper GAppInfo port */ ++static void ++panel_run_dialog_prepend_terminal_to_vector (int *argc, char ***argv) ++{ ++ char **real_argv; ++ int real_argc; ++ int i, j; ++ char **term_argv = NULL; ++ int term_argc = 0; ++ GSettings *settings; ++ ++ gchar *terminal = NULL; ++ ++ char **the_argv; ++ ++ g_return_if_fail (argc != NULL); ++ g_return_if_fail (argv != NULL); ++ ++ /* sanity */ ++ if(*argv == NULL) ++ *argc = 0; ++ ++ the_argv = *argv; ++ ++ /* compute size if not given */ ++ if (*argc < 0) { ++ for (i = 0; the_argv[i] != NULL; i++) ++ ; ++ *argc = i; ++ } ++ ++ settings = g_settings_new ("org.gnome.desktop.default-applications.terminal"); ++ terminal = g_settings_get_string (settings, "exec"); ++ ++ if (terminal) { ++ gchar *command_line; ++ gchar *exec_flag; ++ ++ exec_flag = g_settings_get_string (settings, "exec-arg"); ++ ++ if (exec_flag == NULL) ++ command_line = g_strdup (terminal); ++ else ++ command_line = g_strdup_printf ("%s %s", terminal, ++ exec_flag); ++ ++ g_shell_parse_argv (command_line, ++ &term_argc, ++ &term_argv, ++ NULL /* error */); ++ ++ g_free (command_line); ++ g_free (exec_flag); ++ g_free (terminal); ++ } ++ ++ g_object_unref (settings); ++ ++ if (term_argv == NULL) { ++ char *check; ++ ++ term_argc = 2; ++ term_argv = g_new0 (char *, 3); ++ ++ check = g_find_program_in_path ("gnome-terminal"); ++ if (check != NULL) { ++ term_argv[0] = check; ++ /* Note that gnome-terminal takes -x and ++ * as -e in gnome-terminal is broken we use that. */ ++ term_argv[1] = g_strdup ("-x"); ++ } else { ++ if (check == NULL) ++ check = g_find_program_in_path ("nxterm"); ++ if (check == NULL) ++ check = g_find_program_in_path ("color-xterm"); ++ if (check == NULL) ++ check = g_find_program_in_path ("rxvt"); ++ if (check == NULL) ++ check = g_find_program_in_path ("xterm"); ++ if (check == NULL) ++ check = g_find_program_in_path ("dtterm"); ++ if (check == NULL) { ++ g_warning (_("Cannot find a terminal, using " ++ "xterm, even if it may not work")); ++ check = g_strdup ("xterm"); ++ } ++ term_argv[0] = check; ++ term_argv[1] = g_strdup ("-e"); ++ } ++ } ++ ++ real_argc = term_argc + *argc; ++ real_argv = g_new (char *, real_argc + 1); ++ ++ for (i = 0; i < term_argc; i++) ++ real_argv[i] = term_argv[i]; ++ ++ for (j = 0; j < *argc; j++, i++) ++ real_argv[i] = (char *)the_argv[j]; ++ ++ real_argv[i] = NULL; ++ ++ g_free (*argv); ++ *argv = real_argv; ++ *argc = real_argc; ++ ++ /* we use g_free here as we sucked all the inner strings ++ * out from it into real_argv */ ++ g_free (term_argv); ++} ++ + static gboolean + panel_run_dialog_launch_command (PanelRunDialog *dialog, + const char *command, +@@ -354,7 +479,7 @@ + screen = gtk_window_get_screen (GTK_WINDOW (dialog->run_dialog)); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->terminal_checkbox))) +- gnome_desktop_prepend_terminal_to_vector (&argc, &argv); ++ panel_run_dialog_prepend_terminal_to_vector (&argc, &argv); + + display = gdk_screen_make_display_name (screen); + diff --git a/community/gnome-panel/gnome-panel.install b/community/gnome-panel/gnome-panel.install index 0f9324937..f7e8c46ac 100644 --- a/community/gnome-panel/gnome-panel.install +++ b/community/gnome-panel/gnome-panel.install @@ -1,24 +1,12 @@ -pkgname=gnome-panel - post_install() { - gconfpkg --install $pkgname glib-compile-schemas /usr/share/glib-2.0/schemas gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor } -pre_upgrade() { - pre_remove -} - post_upgrade() { post_install } -pre_remove() { - gconfpkg --uninstall $pkgname -} - post_remove() { - glib-compile-schemas /usr/share/glib-2.0/schemas - gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor + post_install } diff --git a/community/gnome-panel/logout-hang-workaround.patch b/community/gnome-panel/logout-hang-workaround.patch new file mode 100644 index 000000000..0b13e35b6 --- /dev/null +++ b/community/gnome-panel/logout-hang-workaround.patch @@ -0,0 +1,15 @@ +diff -Naur gnome-panel-3.6.2.orig/gnome-panel/panel-session.c gnome-panel-3.6.2/gnome-panel/panel-session.c +--- gnome-panel-3.6.2.orig/gnome-panel/panel-session.c 2012-09-03 17:41:42.000000000 +0200 ++++ gnome-panel-3.6.2/gnome-panel/panel-session.c 2013-04-11 00:59:42.125864185 +0200 +@@ -69,11 +69,6 @@ + + egg_sm_client_set_mode (mode); + +- client = egg_sm_client_get (); +- +- g_signal_connect (client, "quit", +- G_CALLBACK (panel_session_handle_quit), NULL); +- + /* We don't want the WM to try and save/restore our + * window position */ + gdk_x11_set_sm_client_id (NULL); diff --git a/community/gnome-phone-manager/PKGBUILD b/community/gnome-phone-manager/PKGBUILD index a84445874..9cb5ee7da 100644 --- a/community/gnome-phone-manager/PKGBUILD +++ b/community/gnome-phone-manager/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 87900 2013-04-08 14:45:13Z heftig $ +# $Id: PKGBUILD 88702 2013-04-21 22:24:11Z heftig $ # Maintainer: Roman Kyrylych pkgname=gnome-phone-manager -pkgver=0.68 -pkgrel=3 +pkgver=0.69 +pkgrel=1 pkgdesc="Control your mobile phone from your GNOME desktop." arch=('i686' 'x86_64') url="http://live.gnome.org/PhoneManager" @@ -12,10 +12,10 @@ depends=('evolution-data-server' 'gnokii' 'gnome-bluetooth' 'gnome-icon-theme' ' makedepends=('intltool') options=('!emptydirs' '!libtool') install=gnome-phone-manager.install -source=(ftp://ftp.archlinux.org/other/gnome-phone-manager/gnome-phone-manager-0.68-git20121019.tar.xz +source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/$pkgver/$pkgname-$pkgver.tar.xz gnome-phone-manager-0.68-eds.patch) -sha256sums=('885dfa80989c633a5ae8b118c9b7c903e18e44f0e9fc89e6a9bae05da87c9b15' - '98d5c2d3034081eebbaa0dac85f53dcc40c8970114f5711aff8c37bab2931a66') +sha256sums=('35e038ea3afaacdf451046e87af876096cf1520efc04fc3f5b63ea22e0297175' + '232a72108836ddd46d329993d166c38550e2923f161b4dc814d75af4ed5ccc79') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/community/gnome-phone-manager/gnome-phone-manager-0.68-eds.patch b/community/gnome-phone-manager/gnome-phone-manager-0.68-eds.patch index 2a36de13a..924201196 100644 --- a/community/gnome-phone-manager/gnome-phone-manager-0.68-eds.patch +++ b/community/gnome-phone-manager/gnome-phone-manager-0.68-eds.patch @@ -1,7 +1,94 @@ -diff --git a/cut-n-paste/e-contact-entry/e-contact-entry.c b/cut-n-paste/e-contact-entry/e-contact-entry.c -index dc8e2e3..d95e5b9 100644 ---- a/cut-n-paste/e-contact-entry/e-contact-entry.c -+++ b/cut-n-paste/e-contact-entry/e-contact-entry.c +diff -up gnome-phone-manager-0.68/configure.eds gnome-phone-manager-0.68/configure +--- gnome-phone-manager-0.68/configure.eds 2012-10-30 15:03:19.515929969 -0400 ++++ gnome-phone-manager-0.68/configure 2012-10-30 15:03:54.979862209 -0400 +@@ -13939,12 +13939,12 @@ if test -n "$PHONEMGR_CFLAGS"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0 glib-2.0 >= 2.31.0 + libcanberra-gtk3 gconf-2.0 +- \$GNOME_BLUETOOTH_REQS \$evo_pc_file libedataserverui-3.0 ++ \$GNOME_BLUETOOTH_REQS \$evo_pc_file + gmodule-2.0 dbus-glib-1 gnome-icon-theme >= 2.19.1 + \""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0 glib-2.0 >= 2.31.0 + libcanberra-gtk3 gconf-2.0 +- $GNOME_BLUETOOTH_REQS $evo_pc_file libedataserverui-3.0 ++ $GNOME_BLUETOOTH_REQS $evo_pc_file + gmodule-2.0 dbus-glib-1 gnome-icon-theme >= 2.19.1 + ") 2>&5 + ac_status=$? +@@ -13952,7 +13952,7 @@ if test -n "$PHONEMGR_CFLAGS"; then + test $ac_status = 0; }; then + pkg_cv_PHONEMGR_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0 glib-2.0 >= 2.31.0 + libcanberra-gtk3 gconf-2.0 +- $GNOME_BLUETOOTH_REQS $evo_pc_file libedataserverui-3.0 ++ $GNOME_BLUETOOTH_REQS $evo_pc_file + gmodule-2.0 dbus-glib-1 gnome-icon-theme >= 2.19.1 + " 2>/dev/null` + else +@@ -13967,12 +13967,12 @@ if test -n "$PHONEMGR_LIBS"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0 glib-2.0 >= 2.31.0 + libcanberra-gtk3 gconf-2.0 +- \$GNOME_BLUETOOTH_REQS \$evo_pc_file libedataserverui-3.0 ++ \$GNOME_BLUETOOTH_REQS \$evo_pc_file + gmodule-2.0 dbus-glib-1 gnome-icon-theme >= 2.19.1 + \""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0 glib-2.0 >= 2.31.0 + libcanberra-gtk3 gconf-2.0 +- $GNOME_BLUETOOTH_REQS $evo_pc_file libedataserverui-3.0 ++ $GNOME_BLUETOOTH_REQS $evo_pc_file + gmodule-2.0 dbus-glib-1 gnome-icon-theme >= 2.19.1 + ") 2>&5 + ac_status=$? +@@ -13980,7 +13980,7 @@ if test -n "$PHONEMGR_LIBS"; then + test $ac_status = 0; }; then + pkg_cv_PHONEMGR_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0 glib-2.0 >= 2.31.0 + libcanberra-gtk3 gconf-2.0 +- $GNOME_BLUETOOTH_REQS $evo_pc_file libedataserverui-3.0 ++ $GNOME_BLUETOOTH_REQS $evo_pc_file + gmodule-2.0 dbus-glib-1 gnome-icon-theme >= 2.19.1 + " 2>/dev/null` + else +@@ -14004,13 +14004,13 @@ fi + if test $_pkg_short_errors_supported = yes; then + PHONEMGR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.0 glib-2.0 >= 2.31.0 + libcanberra-gtk3 gconf-2.0 +- $GNOME_BLUETOOTH_REQS $evo_pc_file libedataserverui-3.0 ++ $GNOME_BLUETOOTH_REQS $evo_pc_file + gmodule-2.0 dbus-glib-1 gnome-icon-theme >= 2.19.1 + " 2>&1` + else + PHONEMGR_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.0 glib-2.0 >= 2.31.0 + libcanberra-gtk3 gconf-2.0 +- $GNOME_BLUETOOTH_REQS $evo_pc_file libedataserverui-3.0 ++ $GNOME_BLUETOOTH_REQS $evo_pc_file + gmodule-2.0 dbus-glib-1 gnome-icon-theme >= 2.19.1 + " 2>&1` + fi +@@ -14019,7 +14019,7 @@ fi + + as_fn_error $? "Package requirements (gtk+-3.0 >= 3.0 glib-2.0 >= 2.31.0 + libcanberra-gtk3 gconf-2.0 +- $GNOME_BLUETOOTH_REQS $evo_pc_file libedataserverui-3.0 ++ $GNOME_BLUETOOTH_REQS $evo_pc_file + gmodule-2.0 dbus-glib-1 gnome-icon-theme >= 2.19.1 + ) were not met: + +diff -up gnome-phone-manager-0.68/configure.in.eds gnome-phone-manager-0.68/configure.in +--- gnome-phone-manager-0.68/configure.in.eds 2012-10-30 15:03:24.151921087 -0400 ++++ gnome-phone-manager-0.68/configure.in 2012-10-30 15:03:33.865897797 -0400 +@@ -47,7 +47,7 @@ PKG_CHECK_MODULES(LIBGSM, glib-2.0 gobje + + PKG_CHECK_MODULES(PHONEMGR, gtk+-3.0 >= 3.0 glib-2.0 >= 2.31.0 + libcanberra-gtk3 gconf-2.0 +- $GNOME_BLUETOOTH_REQS $evo_pc_file libedataserverui-3.0 ++ $GNOME_BLUETOOTH_REQS $evo_pc_file + gmodule-2.0 dbus-glib-1 gnome-icon-theme >= 2.19.1 + ) + +diff -up gnome-phone-manager-0.68/cut-n-paste/e-contact-entry/e-contact-entry.c.eds gnome-phone-manager-0.68/cut-n-paste/e-contact-entry/e-contact-entry.c +--- gnome-phone-manager-0.68/cut-n-paste/e-contact-entry/e-contact-entry.c.eds 2012-07-29 22:06:12.000000000 -0400 ++++ gnome-phone-manager-0.68/cut-n-paste/e-contact-entry/e-contact-entry.c 2012-10-30 15:02:47.177996584 -0400 @@ -38,11 +38,6 @@ #include #include @@ -32,7 +119,7 @@ index dc8e2e3..d95e5b9 100644 /* A list of EntryLookup structs we are searching */ GList *lookup_entries; /* Number of characters to start searching at */ -@@ -227,7 +222,7 @@ e_contact_entry_display_func (EContact *contact) +@@ -227,7 +222,7 @@ e_contact_entry_display_func (EContact * emails = e_contact_get (contact, E_CONTACT_EMAIL); for (l = emails; l != NULL; l = l->next) { item = g_new0 (EContactEntyItem, 1); @@ -41,7 +128,7 @@ index dc8e2e3..d95e5b9 100644 item->display_string = g_strdup_printf ("%s <%s>", (char*)e_contact_get_const (contact, E_CONTACT_NAME_OR_ORG), item->identifier); items = g_list_prepend (items, item); -@@ -276,22 +271,13 @@ view_contacts_added_cb (EBook *book, GList *contacts, gpointer user_data) +@@ -276,22 +271,13 @@ view_contacts_added_cb (EBook *book, GLi return; photo = e_contact_get (contact, E_CONTACT_PHOTO); @@ -64,7 +151,7 @@ index dc8e2e3..d95e5b9 100644 pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); if (pixbuf) { -@@ -339,16 +325,15 @@ view_contacts_added_cb (EBook *book, GList *contacts, gpointer user_data) +@@ -339,16 +325,15 @@ view_contacts_added_cb (EBook *book, GLi * The query on the EBookView has completed. */ static void @@ -83,7 +170,7 @@ index dc8e2e3..d95e5b9 100644 } /** -@@ -373,8 +358,8 @@ bookview_cb (EBook *book, EBookStatus status, EBookView *book_view, gpointer clo +@@ -373,8 +358,8 @@ bookview_cb (EBook *book, EBookStatus st lookup->bookview = book_view; g_object_add_weak_pointer ((GObject*)book_view, (gpointer*)&lookup->bookview); @@ -94,7 +181,7 @@ index dc8e2e3..d95e5b9 100644 e_book_view_start (book_view); } -@@ -396,6 +381,7 @@ entry_changed_cb (GtkEditable *editable, gpointer user_data) +@@ -396,6 +381,7 @@ entry_changed_cb (GtkEditable *editable, if (lookup->bookview) { e_book_view_stop (lookup->bookview); g_object_unref (lookup->bookview); @@ -102,7 +189,7 @@ index dc8e2e3..d95e5b9 100644 } } -@@ -410,7 +396,7 @@ entry_changed_cb (GtkEditable *editable, gpointer user_data) +@@ -410,7 +396,7 @@ entry_changed_cb (GtkEditable *editable, if (!lookup->open) continue; @@ -111,7 +198,7 @@ index dc8e2e3..d95e5b9 100644 g_signal_emit (entry, signals[ERROR], 0, _("Cannot create searchable view.")); } } -@@ -458,11 +444,12 @@ book_opened_cb (EBook *book, EBookStatus status, gpointer data) +@@ -458,11 +444,12 @@ book_opened_cb (EBook *book, EBookStatus */ void @@ -127,7 +214,7 @@ index dc8e2e3..d95e5b9 100644 g_return_if_fail (E_IS_CONTACT_ENTRY (entry)); -@@ -471,58 +458,48 @@ e_contact_entry_set_source_list (EContactEntry *entry, +@@ -471,58 +458,48 @@ e_contact_entry_set_source_list (EContac g_list_foreach (entry->priv->lookup_entries, (GFunc)lookup_entry_free, NULL); g_list_free (entry->priv->lookup_entries); } @@ -174,23 +261,24 @@ index dc8e2e3..d95e5b9 100644 - uri = g_strdup_printf("%s/%s", e_source_group_peek_base_uri (group), e_source_peek_relative_uri (source)); - e_source_set_absolute_uri (s, uri); - g_free (uri); -+ for (link = list; link != NULL; link = g_list_next (link)) { -+ ESource *source = E_SOURCE (link->data); -+ EntryLookup *lookup; - +- - /* Now add those to the lookup entries list */ - lookup = g_new0 (EntryLookup, 1); - lookup->entry = entry; - lookup->status = E_BOOK_ERROR_OK; - lookup->open = FALSE; ++ for (link = list; link != NULL; link = g_list_next (link)) { ++ ESource *source = E_SOURCE (link->data); ++ EntryLookup *lookup; + +- if ((lookup->book = e_book_new (s, &error)) == NULL) { +- /* TODO handle this better, fire the error signal I guess */ + /* Now add those to the lookup entries list */ + lookup = g_new0 (EntryLookup, 1); + lookup->entry = entry; + lookup->status = E_BOOK_ERROR_OK; + lookup->open = FALSE; - -- if ((lookup->book = e_book_new (s, &error)) == NULL) { -- /* TODO handle this better, fire the error signal I guess */ ++ + if ((lookup->book = e_book_new (source, &error)) == NULL) { + /* TODO handle this better, fire the error signal I guess */ + if (error) { @@ -212,7 +300,7 @@ index dc8e2e3..d95e5b9 100644 } } -@@ -530,12 +507,12 @@ e_contact_entry_set_source_list (EContactEntry *entry, +@@ -530,12 +507,12 @@ e_contact_entry_set_source_list (EContac g_signal_emit (entry, signals[STATE_CHANGE], 0, FALSE); } @@ -228,7 +316,7 @@ index dc8e2e3..d95e5b9 100644 } void -@@ -601,8 +578,8 @@ e_contact_entry_set_property (GObject *object, guint property_id, const GValue * +@@ -601,8 +578,8 @@ e_contact_entry_set_property (GObject *o entry = E_CONTACT_ENTRY (object); switch (property_id) { @@ -239,7 +327,7 @@ index dc8e2e3..d95e5b9 100644 break; case PROP_COMPLETE_LENGTH: e_contact_entry_set_complete_length (entry, g_value_get_int (value)); -@@ -620,8 +597,8 @@ e_contact_entry_get_property (GObject *object, guint property_id, GValue *value, +@@ -620,8 +597,8 @@ e_contact_entry_get_property (GObject *o entry = E_CONTACT_ENTRY (object); switch (property_id) { @@ -250,7 +338,7 @@ index dc8e2e3..d95e5b9 100644 break; case PROP_COMPLETE_LENGTH: g_value_set_int (value, e_contact_entry_get_complete_length (entry)); -@@ -644,7 +621,7 @@ e_contact_entry_finalize (GObject *object) +@@ -644,7 +621,7 @@ e_contact_entry_finalize (GObject *objec g_list_free (entry->priv->lookup_entries); g_object_unref (entry->priv->completion); g_object_unref (entry->priv->store); @@ -259,7 +347,7 @@ index dc8e2e3..d95e5b9 100644 if (entry->priv->display_destroy) { entry->priv->display_destroy (entry->priv->display_func); -@@ -657,7 +634,7 @@ e_contact_entry_finalize (GObject *object) +@@ -657,7 +634,7 @@ e_contact_entry_finalize (GObject *objec static void reset_search_fields (EContactEntry *entry) { @@ -268,7 +356,7 @@ index dc8e2e3..d95e5b9 100644 g_free (entry->priv->search_fields); entry->priv->search_fields = g_new0 (EContactField, G_N_ELEMENTS (fields)); -@@ -716,9 +693,9 @@ e_contact_entry_class_init (EContactEntryClass *klass) +@@ -716,9 +693,9 @@ e_contact_entry_class_init (EContactEntr object_class->finalize = e_contact_entry_finalize; /* Properties */ @@ -289,10 +377,9 @@ index dc8e2e3..d95e5b9 100644 } if (lookup->book) { g_object_unref (lookup->book); -diff --git a/cut-n-paste/e-contact-entry/e-contact-entry.h b/cut-n-paste/e-contact-entry/e-contact-entry.h -index bf6b39b..6fedef7 100644 ---- a/cut-n-paste/e-contact-entry/e-contact-entry.h -+++ b/cut-n-paste/e-contact-entry/e-contact-entry.h +diff -up gnome-phone-manager-0.68/cut-n-paste/e-contact-entry/e-contact-entry.h.eds gnome-phone-manager-0.68/cut-n-paste/e-contact-entry/e-contact-entry.h +--- gnome-phone-manager-0.68/cut-n-paste/e-contact-entry/e-contact-entry.h.eds 2012-07-29 22:06:12.000000000 -0400 ++++ gnome-phone-manager-0.68/cut-n-paste/e-contact-entry/e-contact-entry.h 2012-10-30 15:02:47.177996584 -0400 @@ -23,10 +23,8 @@ #ifndef CONTACT_ENTRY_H #define CONTACT_ENTRY_H @@ -316,10 +403,9 @@ index bf6b39b..6fedef7 100644 void e_contact_entry_set_complete_length(EContactEntry *entry, int length); int e_contact_entry_get_complete_length(EContactEntry *entry); -diff --git a/libgsm/phonemgr-utils.c b/libgsm/phonemgr-utils.c -index 4e62e10..baef34f 100644 ---- a/libgsm/phonemgr-utils.c -+++ b/libgsm/phonemgr-utils.c +diff -up gnome-phone-manager-0.68/libgsm/phonemgr-utils.c.eds gnome-phone-manager-0.68/libgsm/phonemgr-utils.c +--- gnome-phone-manager-0.68/libgsm/phonemgr-utils.c.eds 2012-07-29 22:06:12.000000000 -0400 ++++ gnome-phone-manager-0.68/libgsm/phonemgr-utils.c 2012-10-30 15:02:47.177996584 -0400 @@ -27,7 +27,7 @@ #include #include @@ -329,21 +415,19 @@ index 4e62e10..baef34f 100644 #include #include -diff --git a/src/e-phone-entry.c b/src/e-phone-entry.c -index 5d25622..38f4c2f 100644 ---- a/src/e-phone-entry.c -+++ b/src/e-phone-entry.c -@@ -31,8 +31,7 @@ +diff -up gnome-phone-manager-0.68/src/e-phone-entry.c.eds gnome-phone-manager-0.68/src/e-phone-entry.c +--- gnome-phone-manager-0.68/src/e-phone-entry.c.eds 2012-07-29 22:06:12.000000000 -0400 ++++ gnome-phone-manager-0.68/src/e-phone-entry.c 2012-10-30 15:04:13.471829767 -0400 +@@ -31,8 +31,6 @@ #include #include -#include -#include -+#include #include "e-phone-entry.h" #define CONTACT_FORMAT "%s (%s)" -@@ -181,25 +180,25 @@ e_phone_entry_finalize (GObject *object) +@@ -181,25 +179,25 @@ e_phone_entry_finalize (GObject *object) } static void diff --git a/community/gnome-screensaver/PKGBUILD b/community/gnome-screensaver/PKGBUILD index 909802f6b..0c64c1d6d 100644 --- a/community/gnome-screensaver/PKGBUILD +++ b/community/gnome-screensaver/PKGBUILD @@ -1,37 +1,44 @@ -# $Id: PKGBUILD 87889 2013-04-08 14:39:56Z heftig $ -# Maintainer: Jan Alexander Steffens (heftig) +# $Id: PKGBUILD 88685 2013-04-21 22:16:59Z heftig $ +# Maintainer: Balló György +# Contributor: Jan Alexander Steffens (heftig) # Contributor: Jan de Groot pkgname=gnome-screensaver pkgver=3.6.1 -pkgrel=1 -pkgdesc="Screensaver designed to integrate well with the GNOME desktop." +pkgrel=3 +pkgdesc="Legacy GNOME screensaver" arch=('i686' 'x86_64') license=('GPL') url="http://live.gnome.org/GnomeScreensaver" backup=(etc/pam.d/gnome-screensaver) -depends=('dbus-glib' 'libgnomekbd' 'gnome-desktop' 'gsettings-desktop-schemas' 'libsystemd') -makedepends=('pkgconfig' 'intltool' 'libxss') -groups=('gnome') -options=(!emptydirs) -install=gnome-screensaver.install +depends=('dbus-glib' 'libgnomekbd' 'gnome-desktop') +makedepends=('intltool' 'gnome-common') source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz - gnome-screensaver.pam) + gnome-screensaver.pam + move-desktop-file.patch + fix-autoconf.patch) sha256sums=('f39b78d4f7fed748c7f0a31d694112fb907c6d3c4e63db22eb858df07e962cd0' - 'c19870c4f2d6e91ba0eea2603753a74e0c5c82ff5fa3cacb1198027a38d0a6cb') + 'b6ea9e2eb586d94bcabb617a8f1c2958111df87afdbb51f645882bccdc15cbda' + '4bb96f62aa069c83b629204a79a3f63b146bcaf773569aee8b5dd23fbcd88974' + 'c4da9c18b543ecbc781c1f103321b324a855bdd0979fd36b437f6033736ad4bb') build() { - cd $pkgname-$pkgver - ./configure --prefix=/usr --sysconfdir=/etc \ - --libexecdir=/usr/lib/gnome-screensaver \ - --localstatedir=/var \ - --with-mit-ext --with-systemd + cd "$pkgname-$pkgver" + # Upstream patch that moves gnome-screensaver desktop file out of autostart + patch -Np1 -i "$srcdir/move-desktop-file.patch" + + # Fix build + patch -Np1 -i "$srcdir/fix-autoconf.patch" + + autoreconf -fi + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$pkgname \ + --with-mit-ext make } package() { - cd $pkgname-$pkgver + cd "$pkgname-$pkgver" make DESTDIR="$pkgdir" install install -Dm644 ../gnome-screensaver.pam "$pkgdir/etc/pam.d/gnome-screensaver" } diff --git a/community/gnome-screensaver/fix-autoconf.patch b/community/gnome-screensaver/fix-autoconf.patch new file mode 100644 index 000000000..653b42bc8 --- /dev/null +++ b/community/gnome-screensaver/fix-autoconf.patch @@ -0,0 +1,12 @@ +diff -Naur gnome-screensaver-3.6.1.orig/configure.ac gnome-screensaver-3.6.1/configure.ac +--- gnome-screensaver-3.6.1.orig/configure.ac 2012-10-16 04:28:59.000000000 +0200 ++++ gnome-screensaver-3.6.1/configure.ac 2013-04-10 14:24:44.844833193 +0200 +@@ -10,7 +10,7 @@ + AM_INIT_AUTOMAKE([1.10 no-dist-gzip dist-xz tar-ustar]) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + + AM_MAINTAINER_MODE([enable]) + diff --git a/community/gnome-screensaver/gnome-screensaver.install b/community/gnome-screensaver/gnome-screensaver.install deleted file mode 100644 index d1a42c6ce..000000000 --- a/community/gnome-screensaver/gnome-screensaver.install +++ /dev/null @@ -1,7 +0,0 @@ -pkgname=gnome-screensaver - -pre_upgrade() { - if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then - gconfpkg --uninstall ${pkgname} - fi -} diff --git a/community/gnome-screensaver/gnome-screensaver.pam b/community/gnome-screensaver/gnome-screensaver.pam index 453dae646..8d3baf085 100644 --- a/community/gnome-screensaver/gnome-screensaver.pam +++ b/community/gnome-screensaver/gnome-screensaver.pam @@ -1,3 +1,3 @@ #%PAM-1.0 -auth required pam_unix_auth.so nullok -auth optional pam_gnome_keyring.so +auth substack system-login +-auth optional pam_gnome_keyring.so diff --git a/community/gnome-screensaver/move-desktop-file.patch b/community/gnome-screensaver/move-desktop-file.patch new file mode 100644 index 000000000..d918405ad --- /dev/null +++ b/community/gnome-screensaver/move-desktop-file.patch @@ -0,0 +1,34 @@ +From 1940dc6bc8ad5ee2c029714efb1276c05ca80bd4 Mon Sep 17 00:00:00 2001 +From: Tim Lunn +Date: Thu, 18 Oct 2012 23:08:56 +0000 +Subject: move gnome-screensaver desktop file out of autostart + +https://bugzilla.gnome.org/show_bug.cgi?id=683060 +--- +diff --git a/src/Makefile.am b/src/Makefile.am +index 1dd5d46..97ffa07 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -47,7 +47,7 @@ noinst_PROGRAMS = \ + test-window \ + $(NULL) + +-desktopdir = $(sysconfdir)/xdg/autostart ++desktopdir = $(datadir)/applications + desktop_in_files = gnome-screensaver.desktop.in + desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) + @INTLTOOL_DESKTOP_RULE@ +diff --git a/src/gnome-screensaver.desktop.in.in b/src/gnome-screensaver.desktop.in.in +index fae80c4..82d6d6f 100644 +--- a/src/gnome-screensaver.desktop.in.in ++++ b/src/gnome-screensaver.desktop.in.in +@@ -5,7 +5,6 @@ _Comment=Launch screensaver and locker program + Icon=preferences-desktop-screensaver + Exec=gnome-screensaver + OnlyShowIn=GNOME; +-AutostartCondition=GNOME3 if-session gnome-fallback + NoDisplay=true + X-GNOME-Autostart-Phase=Application + X-GNOME-Autostart-Notify=true +-- +cgit v0.9.1 diff --git a/community/gnome-settings-daemon-compat/PKGBUILD b/community/gnome-settings-daemon-compat/PKGBUILD new file mode 100644 index 000000000..314d38cd1 --- /dev/null +++ b/community/gnome-settings-daemon-compat/PKGBUILD @@ -0,0 +1,61 @@ +# $Id: PKGBUILD 88700 2013-04-21 22:24:08Z heftig $ +# Maintainer: Balló György +# Contributor: Jan Alexander Steffens (heftig) + +pkgname=gnome-settings-daemon-compat +_pkgname=gnome-settings-daemon +pkgver=3.6.4 +pkgrel=1 +pkgdesc="Compatibility package that provides background and mount helpers for the Gnome Flashback session" +arch=('i686' 'x86_64') +license=('GPL') +depends=('gnome-desktop') +makedepends=('docbook-xsl' 'ibus' 'intltool' 'libcanberra' 'libnotify' 'libpulse' 'libwacom' 'nss' 'upower' 'xf86-input-wacom') +url="https://live.gnome.org/GnomeFlashback" +source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver%.*}/$_pkgname-$pkgver.tar.xz + standalone-background-helper.patch + draw-background-unconditionally.patch + sessionisactive-port.patch + flashback-rename.patch + remove-libgsd-dependency.patch) +sha256sums=('3db993f2dbabc0c9d06a309bb12c9a7104b9cdda414ac4b1c301f5114a441c15' + '4c2206b9654bd2b2729297870696c87906e2386b492bae1052b94148e5ea370f' + '1b6b8216434b766e1389e876cba5d6ab61498c5824f6d2cc5d67dcf58a07842a' + '0821f469cd168f3a131da513a5f9dd352c06f9bc31d57d79de4dc063fa2de915' + '57c66068f06599ea682325e9f5b92b751d8f0a4322b53371698f8539f709b101' + '730f11d5689892fbab9aa2896f3720e813d17e2455f34fd3a0751e49f5b4c26c') + +build() { + cd $_pkgname-$pkgver + + # Build background helper as a stand alone binary + patch -Np1 -i ../standalone-background-helper.patch + + # Always draw background + patch -Np1 -i ../draw-background-unconditionally.patch + + # Port to gnome-session's SessionIsActive property + patch -Np1 -i ../sessionisactive-port.patch + + # Remove libgsd dependency + patch -Np1 -i ../remove-libgsd-dependency.patch + + # GNOME Fallback renamed to Flashback + patch -Np1 -i ../flashback-rename.patch + + autoreconf -fi + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$_pkgname \ + --disable-static --enable-systemd + + # https://bugzilla.gnome.org/show_bug.cgi?id=656231 + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + + make -C plugins/automount + make -C plugins/background +} + +package() { + cd $_pkgname-$pkgver + make -C plugins/automount DESTDIR="$pkgdir" install + make -C plugins/background DESTDIR="$pkgdir" install +} diff --git a/community/gnome-settings-daemon-compat/draw-background-unconditionally.patch b/community/gnome-settings-daemon-compat/draw-background-unconditionally.patch new file mode 100644 index 000000000..c279420de --- /dev/null +++ b/community/gnome-settings-daemon-compat/draw-background-unconditionally.patch @@ -0,0 +1,162 @@ +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/gsd-background-manager.c gnome-settings-daemon-3.6.4/plugins/background/gsd-background-manager.c +--- gnome-settings-daemon-3.6.4.orig/plugins/background/gsd-background-manager.c 2013-01-10 14:37:58.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/background/gsd-background-manager.c 2013-04-10 16:33:15.858860586 +0200 +@@ -69,110 +69,6 @@ + + static gpointer manager_object = NULL; + +-static gboolean +-dont_draw_background (GsdBackgroundManager *manager) +-{ +- return !g_settings_get_boolean (manager->priv->settings, +- "draw-background"); +-} +- +-static gboolean +-nautilus_is_drawing_background (GsdBackgroundManager *manager) +-{ +- Atom window_id_atom; +- Window nautilus_xid; +- Atom actual_type; +- int actual_format; +- unsigned long nitems; +- unsigned long bytes_after; +- unsigned char *data; +- Atom wmclass_atom; +- gboolean running; +- gint error; +- gboolean show_desktop_icons; +- +- show_desktop_icons = g_settings_get_boolean (manager->priv->settings, +- "show-desktop-icons"); +- if (! show_desktop_icons) { +- return FALSE; +- } +- +- window_id_atom = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), +- "NAUTILUS_DESKTOP_WINDOW_ID", True); +- +- if (window_id_atom == None) { +- return FALSE; +- } +- +- XGetWindowProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), +- GDK_ROOT_WINDOW (), +- window_id_atom, +- 0, +- 1, +- False, +- XA_WINDOW, +- &actual_type, +- &actual_format, +- &nitems, +- &bytes_after, +- &data); +- +- if (data != NULL) { +- nautilus_xid = *(Window *) data; +- XFree (data); +- } else { +- return FALSE; +- } +- +- if (actual_type != XA_WINDOW) { +- return FALSE; +- } +- if (actual_format != 32) { +- return FALSE; +- } +- +- wmclass_atom = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "WM_CLASS", False); +- +- gdk_error_trap_push (); +- +- XGetWindowProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), +- nautilus_xid, +- wmclass_atom, +- 0, +- 24, +- False, +- XA_STRING, +- &actual_type, +- &actual_format, +- &nitems, +- &bytes_after, +- &data); +- +- error = gdk_error_trap_pop (); +- +- if (error == BadWindow) { +- return FALSE; +- } +- +- if (actual_type == XA_STRING && +- nitems == 24 && +- bytes_after == 0 && +- actual_format == 8 && +- data != NULL && +- !strcmp ((char *)data, "desktop_window") && +- !strcmp ((char *)data + strlen ((char *)data) + 1, "Nautilus")) { +- running = TRUE; +- } else { +- running = FALSE; +- } +- +- if (data != NULL) { +- XFree (data); +- } +- +- return running; +-} +- + static void + on_crossfade_finished (GsdBackgroundManager *manager) + { +@@ -189,11 +85,6 @@ + int i; + + +- if (nautilus_is_drawing_background (manager) || +- dont_draw_background (manager)) { +- return; +- } +- + gnome_settings_profile_start (NULL); + + display = gdk_display_get_default (); +@@ -408,8 +299,7 @@ + const char *key, + GsdBackgroundManager *manager) + { +- if (dont_draw_background (manager) == FALSE) +- setup_bg_and_draw_background (manager); ++ setup_bg_and_draw_background (manager); + } + + gboolean +@@ -422,24 +312,8 @@ + gnome_settings_profile_start (NULL); + + manager->priv->settings = g_settings_new ("org.gnome.desktop.background"); +- g_signal_connect (manager->priv->settings, "changed::draw-background", +- G_CALLBACK (draw_background_changed), manager); + +- /* If this is set, nautilus will draw the background and is +- * almost definitely in our session. however, it may not be +- * running yet (so is_nautilus_running() will fail). so, on +- * startup, just don't do anything if this key is set so we +- * don't waste time setting the background only to have +- * nautilus overwrite it. +- */ +- show_desktop_icons = g_settings_get_boolean (manager->priv->settings, +- "show-desktop-icons"); +- +- if (!show_desktop_icons) { +- setup_bg (manager); +- } else { +- draw_background_after_session_loads (manager); +- } ++ setup_bg (manager); + + gnome_settings_profile_end (NULL); + diff --git a/community/gnome-settings-daemon-compat/flashback-rename.patch b/community/gnome-settings-daemon-compat/flashback-rename.patch new file mode 100644 index 000000000..2aaa9ce22 --- /dev/null +++ b/community/gnome-settings-daemon-compat/flashback-rename.patch @@ -0,0 +1,18 @@ +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/automount/gnome-fallback-mount-helper.desktop.in.in gnome-settings-daemon-3.6.4/plugins/automount/gnome-fallback-mount-helper.desktop.in.in +--- gnome-settings-daemon-3.6.4.orig/plugins/automount/gnome-fallback-mount-helper.desktop.in.in 2013-01-10 14:37:58.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/automount/gnome-fallback-mount-helper.desktop.in.in 2013-04-10 16:58:35.356800871 +0200 +@@ -9,4 +9,4 @@ + NoDisplay=true + OnlyShowIn=GNOME;Unity; + X-GNOME-Autostart-Notify=true +-AutostartCondition=GNOME3 if-session gnome-fallback ++AutostartCondition=GNOME3 if-session gnome-flashback +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-background-helper.desktop.in.in gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.desktop.in.in +--- gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-background-helper.desktop.in.in 2013-04-10 15:57:02.136341000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.desktop.in.in 2013-04-10 16:58:57.593982808 +0200 +@@ -9,4 +9,4 @@ + NoDisplay=true + OnlyShowIn=GNOME;Unity; + X-GNOME-Autostart-Notify=true +-AutostartCondition=GNOME3 if-session gnome-fallback ++AutostartCondition=GNOME3 if-session gnome-flashback diff --git a/community/gnome-settings-daemon-compat/remove-libgsd-dependency.patch b/community/gnome-settings-daemon-compat/remove-libgsd-dependency.patch new file mode 100644 index 000000000..b843ac2ce --- /dev/null +++ b/community/gnome-settings-daemon-compat/remove-libgsd-dependency.patch @@ -0,0 +1,160 @@ +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/automount/gsd-automount-manager.c gnome-settings-daemon-3.6.4/plugins/automount/gsd-automount-manager.c +--- gnome-settings-daemon-3.6.4.orig/plugins/automount/gsd-automount-manager.c 2013-04-10 17:19:51.796298000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/automount/gsd-automount-manager.c 2013-04-10 17:31:27.382311947 +0200 +@@ -28,13 +28,43 @@ + #include + #include + +-#include "gnome-settings-profile.h" +-#include "gnome-settings-session.h" + #include "gsd-automount-manager.h" + #include "gsd-autorun.h" + + #define GSD_AUTOMOUNT_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_AUTOMOUNT_MANAGER, GsdAutomountManagerPrivate)) + ++#define GNOME_SESSION_DBUS_NAME "org.gnome.SessionManager" ++#define GNOME_SESSION_DBUS_OBJECT "/org/gnome/SessionManager" ++#define GNOME_SESSION_DBUS_INTERFACE "org.gnome.SessionManager" ++ ++GDBusProxy * ++get_session_proxy (void) ++{ ++ static GDBusProxy *session_proxy; ++ GError *error = NULL; ++ ++ if (session_proxy != NULL) { ++ g_object_ref (session_proxy); ++ } else { ++ session_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, ++ G_DBUS_PROXY_FLAGS_NONE, ++ NULL, ++ GNOME_SESSION_DBUS_NAME, ++ GNOME_SESSION_DBUS_OBJECT, ++ GNOME_SESSION_DBUS_INTERFACE, ++ NULL, ++ &error); ++ if (error) { ++ g_warning ("Failed to connect to the session manager: %s", error->message); ++ g_error_free (error); ++ } else { ++ g_object_add_weak_pointer (G_OBJECT (session_proxy), (gpointer*)&session_proxy); ++ } ++ } ++ ++ return session_proxy; ++} ++ + struct GsdAutomountManagerPrivate + { + GSettings *settings; +@@ -315,7 +345,7 @@ + static void + do_initialize_session (GsdAutomountManager *manager) + { +- manager->priv->session = gnome_settings_session_get_session_proxy (); ++ manager->priv->session = get_session_proxy (); + g_signal_connect (manager->priv->session, "g-properties-changed", + G_CALLBACK (session_props_changed), manager); + session_props_changed (manager->priv->session, NULL, NULL, manager); +@@ -490,13 +520,10 @@ + GError **error) + { + g_debug ("Starting automounting manager"); +- gnome_settings_profile_start (NULL); + + manager->priv->settings = g_settings_new ("org.gnome.desktop.media-handling"); + setup_automounter (manager); + +- gnome_settings_profile_end (NULL); +- + return TRUE; + } + +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/automount/Makefile.am gnome-settings-daemon-3.6.4/plugins/automount/Makefile.am +--- gnome-settings-daemon-3.6.4.orig/plugins/automount/Makefile.am 2013-01-10 14:37:58.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/automount/Makefile.am 2013-04-10 17:33:09.697997021 +0200 +@@ -8,7 +8,6 @@ + gsd-autorun.h + + gnome_fallback_mount_helper_CPPFLAGS = \ +- -I$(top_srcdir)/gnome-settings-daemon \ + -DGNOME_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \ + $(AM_CPPFLAGS) + +@@ -20,8 +19,7 @@ + gnome_fallback_mount_helper_LDADD = \ + $(SETTINGS_PLUGIN_LIBS) \ + $(SYSTEMD_LIBS) \ +- $(AUTOMOUNT_LIBS) \ +- $(top_builddir)/gnome-settings-daemon/libgsd.la ++ $(AUTOMOUNT_LIBS) + + autostartdir = $(sysconfdir)/xdg/autostart + autostart_in_files = gnome-fallback-mount-helper.desktop.in +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/gsd-background-manager.c gnome-settings-daemon-3.6.4/plugins/background/gsd-background-manager.c +--- gnome-settings-daemon-3.6.4.orig/plugins/background/gsd-background-manager.c 2013-04-10 17:19:51.792965000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/background/gsd-background-manager.c 2013-04-10 17:22:46.930334951 +0200 +@@ -42,7 +42,6 @@ + #include + #include + +-#include "gnome-settings-profile.h" + #include "gsd-background-manager.h" + + #define GSD_BACKGROUND_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_BACKGROUND_MANAGER, GsdBackgroundManagerPrivate)) +@@ -85,8 +84,6 @@ + int i; + + +- gnome_settings_profile_start (NULL); +- + display = gdk_display_get_default (); + n_screens = gdk_display_get_n_screens (display); + +@@ -121,8 +118,6 @@ + + cairo_surface_destroy (surface); + } +- +- gnome_settings_profile_end (NULL); + } + + static void +@@ -309,14 +304,11 @@ + gboolean show_desktop_icons; + + g_debug ("Starting background manager"); +- gnome_settings_profile_start (NULL); + + manager->priv->settings = g_settings_new ("org.gnome.desktop.background"); + + setup_bg (manager); + +- gnome_settings_profile_end (NULL); +- + return TRUE; + } + +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/Makefile.am gnome-settings-daemon-3.6.4/plugins/background/Makefile.am +--- gnome-settings-daemon-3.6.4.orig/plugins/background/Makefile.am 2013-04-10 17:43:32.768975155 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/background/Makefile.am 2013-04-10 17:43:19.115328380 +0200 +@@ -6,18 +6,16 @@ + gsd-background-manager.h + + gnome_fallback_background_helper_CPPFLAGS = \ +- -I$(top_srcdir)/gnome-settings-daemon \ + -DGNOME_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \ + $(AM_CPPFLAGS) + + gnome_fallback_background_helper_CFLAGS = \ + $(SETTINGS_PLUGIN_CFLAGS) \ + $(BACKGROUND_CFLAGS) + + gnome_fallback_background_helper_LDADD = \ + $(SETTINGS_PLUGIN_LIBS) \ +- $(BACKGROUND_LIBS) \ +- $(top_builddir)/gnome-settings-daemon/libgsd.la ++ $(BACKGROUND_LIBS) + + autostartdir = $(sysconfdir)/xdg/autostart + autostart_in_files = gnome-fallback-background-helper.desktop.in diff --git a/community/gnome-settings-daemon-compat/sessionisactive-port.patch b/community/gnome-settings-daemon-compat/sessionisactive-port.patch new file mode 100644 index 000000000..dc5fd260e --- /dev/null +++ b/community/gnome-settings-daemon-compat/sessionisactive-port.patch @@ -0,0 +1,73 @@ +From 32b0b2d85629ae765543df1d940a5ca3c37dcec1 Mon Sep 17 00:00:00 2001 +From: Colin Walters +Date: Tue, 06 Nov 2012 22:47:05 +0000 +Subject: [wip] Port to gnome-session's SessionIsActive property + +Rather than maintaining the systemd code here, monitor gnome-session's +SessionIsActive property. This allows us to drop the compile-time +dependency on systemd. + +The power plugin is declared dependent on systemd at runtime, but the +rest of the code should operate in more "basic functionality" mode. +--- +(limited to 'plugins/automount') + +diff --git a/plugins/automount/gsd-automount-manager.c b/plugins/automount/gsd-automount-manager.c +index 7912f19..d8e9e07 100644 +--- a/plugins/automount/gsd-automount-manager.c ++++ b/plugins/automount/gsd-automount-manager.c +@@ -42,7 +42,7 @@ struct GsdAutomountManagerPrivate + GVolumeMonitor *volume_monitor; + unsigned int automount_idle_id; + +- GnomeSettingsSession *session; ++ GDBusProxy *session; + gboolean session_is_active; + gboolean screensaver_active; + guint ss_watch_id; +@@ -288,17 +288,21 @@ mount_added_callback (GVolumeMonitor *monitor, + + + static void +-session_state_changed (GnomeSettingsSession *session, GParamSpec *pspec, gpointer user_data) ++session_props_changed (GDBusProxy *session, GVariant *v, char **props, gpointer user_data) + { + GsdAutomountManager *manager = user_data; + GsdAutomountManagerPrivate *p = manager->priv; ++ GVariant *active_v = NULL; ++ gboolean is_active; + +- if (gnome_settings_session_get_state (session) == GNOME_SETTINGS_SESSION_STATE_ACTIVE) { +- p->session_is_active = TRUE; +- } +- else { +- p->session_is_active = FALSE; +- } ++ active_v = g_dbus_proxy_get_cached_property (session, "SessionIsActive"); ++ if (!active_v) ++ return; ++ ++ g_variant_get (active_v, "b", &is_active); ++ g_variant_unref (active_v); ++ g_printerr ("AUTOMOUNT: session is active: %d -> %d\n", p->session_is_active, is_active); ++ p->session_is_active = is_active; + + if (!p->session_is_active) { + if (p->volume_queue != NULL) { +@@ -311,10 +315,10 @@ session_state_changed (GnomeSettingsSession *session, GParamSpec *pspec, gpointe + static void + do_initialize_session (GsdAutomountManager *manager) + { +- manager->priv->session = gnome_settings_session_new (); +- g_signal_connect (manager->priv->session, "notify::state", +- G_CALLBACK (session_state_changed), manager); +- session_state_changed (manager->priv->session, NULL, manager); ++ manager->priv->session = gnome_settings_session_get_session_proxy (); ++ g_signal_connect (manager->priv->session, "g-properties-changed", ++ G_CALLBACK (session_props_changed), manager); ++ session_props_changed (manager->priv->session, NULL, NULL, manager); + } + + #define SCREENSAVER_NAME "org.gnome.ScreenSaver" +-- +cgit v0.9.1 diff --git a/community/gnome-settings-daemon-compat/standalone-background-helper.patch b/community/gnome-settings-daemon-compat/standalone-background-helper.patch new file mode 100644 index 000000000..ccbd18f9b --- /dev/null +++ b/community/gnome-settings-daemon-compat/standalone-background-helper.patch @@ -0,0 +1,437 @@ +diff -Naur gnome-settings-daemon-3.6.4.orig/data/org.gnome.settings-daemon.plugins.gschema.xml.in.in gnome-settings-daemon-3.6.4/data/org.gnome.settings-daemon.plugins.gschema.xml.in.in +--- gnome-settings-daemon-3.6.4.orig/data/org.gnome.settings-daemon.plugins.gschema.xml.in.in 2013-01-10 14:37:58.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/data/org.gnome.settings-daemon.plugins.gschema.xml.in.in 2013-04-10 17:39:36.446882275 +0200 +@@ -2,7 +2,6 @@ + + + +- + + + +@@ -45,18 +44,6 @@ + <_summary>Priority to use for this plugin + <_description>Priority to use for this plugin in gnome-settings-daemon startup queue + +- +- +- +- true +- <_summary>Activation of this plugin +- <_description>Whether this plugin would be activated by gnome-settings-daemon or not +- +- +- 97 +- <_summary>Priority to use for this plugin +- <_description>Priority to use for this plugin in gnome-settings-daemon startup queue +- + + + +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/background.gnome-settings-plugin.in gnome-settings-daemon-3.6.4/plugins/background/background.gnome-settings-plugin.in +--- gnome-settings-daemon-3.6.4.orig/plugins/background/background.gnome-settings-plugin.in 2012-04-07 15:21:20.000000000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/background/background.gnome-settings-plugin.in 1970-01-01 01:00:00.000000000 +0100 +@@ -1,8 +0,0 @@ +-[GNOME Settings Plugin] +-Module=background +-IAge=0 +-_Name=Background +-_Description=Background plugin +-Authors= +-Copyright=Copyright © 2007 +-Website= +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-background-helper.c gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.c +--- gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-background-helper.c 1970-01-01 01:00:00.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.c 2013-04-10 17:39:36.450215685 +0200 +@@ -0,0 +1,65 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- ++ * ++ * Copyright (C) 2010 Red Hat, Inc. ++ * ++ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ * Author: Tomas Bzatek ++ */ ++ ++#include "config.h" ++ ++#include ++#include ++#include ++#include ++ ++#include "gsd-background-manager.h" ++ ++int ++main (int argc, ++ char **argv) ++{ ++ GMainLoop *loop; ++ GsdBackgroundManager *manager; ++ GError *error = NULL; ++ ++ g_type_init (); ++ gtk_init (&argc, &argv); ++ ++ bindtextdomain (GETTEXT_PACKAGE, GNOME_SETTINGS_LOCALEDIR); ++ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); ++ textdomain (GETTEXT_PACKAGE); ++ ++ loop = g_main_loop_new (NULL, FALSE); ++ manager = gsd_background_manager_new (); ++ ++ gsd_background_manager_start (manager, &error); ++ ++ if (error != NULL) { ++ g_printerr ("Unable to start the background manager: %s", ++ error->message); ++ ++ g_error_free (error); ++ _exit (1); ++ } ++ ++ g_main_loop_run (loop); ++ ++ gsd_background_manager_stop (manager); ++ g_main_loop_unref (loop); ++ ++ return 0; ++} +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-background-helper.desktop.in.in gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.desktop.in.in +--- gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-background-helper.desktop.in.in 1970-01-01 01:00:00.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.desktop.in.in 2013-04-10 17:39:36.450215685 +0200 +@@ -0,0 +1,12 @@ ++[Desktop Entry] ++_Name=Background Helper ++_Comment=Draw desktop background ++Exec=@LIBEXECDIR@/gnome-fallback-background-helper ++Icon=desktop ++Terminal=false ++Type=Application ++Categories= ++NoDisplay=true ++OnlyShowIn=GNOME;Unity; ++X-GNOME-Autostart-Notify=true ++AutostartCondition=GNOME3 if-session gnome-fallback +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/gsd-background-plugin.c gnome-settings-daemon-3.6.4/plugins/background/gsd-background-plugin.c +--- gnome-settings-daemon-3.6.4.orig/plugins/background/gsd-background-plugin.c 2013-01-10 14:37:58.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/background/gsd-background-plugin.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,104 +0,0 @@ +-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +- * +- * Copyright (C) 2007 William Jon McCann +- * +- * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +- * +- */ +- +-#include "config.h" +- +-#include +-#include +- +-#include "gnome-settings-plugin.h" +-#include "gsd-background-plugin.h" +-#include "gsd-background-manager.h" +- +-struct GsdBackgroundPluginPrivate { +- GsdBackgroundManager *manager; +-}; +- +-#define GSD_BACKGROUND_PLUGIN_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), GSD_TYPE_BACKGROUND_PLUGIN, GsdBackgroundPluginPrivate)) +- +-GNOME_SETTINGS_PLUGIN_REGISTER (GsdBackgroundPlugin, gsd_background_plugin) +- +-static void +-gsd_background_plugin_init (GsdBackgroundPlugin *plugin) +-{ +- plugin->priv = GSD_BACKGROUND_PLUGIN_GET_PRIVATE (plugin); +- +- g_debug ("GsdBackgroundPlugin initializing"); +- +- plugin->priv->manager = gsd_background_manager_new (); +-} +- +-static void +-gsd_background_plugin_finalize (GObject *object) +-{ +- GsdBackgroundPlugin *plugin; +- +- g_return_if_fail (object != NULL); +- g_return_if_fail (GSD_IS_BACKGROUND_PLUGIN (object)); +- +- g_debug ("GsdBackgroundPlugin finalizing"); +- +- plugin = GSD_BACKGROUND_PLUGIN (object); +- +- g_return_if_fail (plugin->priv != NULL); +- +- if (plugin->priv->manager != NULL) { +- g_object_unref (plugin->priv->manager); +- } +- +- G_OBJECT_CLASS (gsd_background_plugin_parent_class)->finalize (object); +-} +- +-static void +-impl_activate (GnomeSettingsPlugin *plugin) +-{ +- gboolean res; +- GError *error; +- +- g_debug ("Activating background plugin"); +- +- error = NULL; +- res = gsd_background_manager_start (GSD_BACKGROUND_PLUGIN (plugin)->priv->manager, &error); +- if (! res) { +- g_warning ("Unable to start background manager: %s", error->message); +- g_error_free (error); +- } +-} +- +-static void +-impl_deactivate (GnomeSettingsPlugin *plugin) +-{ +- g_debug ("Deactivating background plugin"); +- gsd_background_manager_stop (GSD_BACKGROUND_PLUGIN (plugin)->priv->manager); +-} +- +-static void +-gsd_background_plugin_class_init (GsdBackgroundPluginClass *klass) +-{ +- GObjectClass *object_class = G_OBJECT_CLASS (klass); +- GnomeSettingsPluginClass *plugin_class = GNOME_SETTINGS_PLUGIN_CLASS (klass); +- +- object_class->finalize = gsd_background_plugin_finalize; +- +- plugin_class->activate = impl_activate; +- plugin_class->deactivate = impl_deactivate; +- +- g_type_class_add_private (klass, sizeof (GsdBackgroundPluginPrivate)); +-} +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/gsd-background-plugin.h gnome-settings-daemon-3.6.4/plugins/background/gsd-background-plugin.h +--- gnome-settings-daemon-3.6.4.orig/plugins/background/gsd-background-plugin.h 2013-01-10 14:37:58.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/background/gsd-background-plugin.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,59 +0,0 @@ +-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +- * +- * Copyright (C) 2007 William Jon McCann +- * +- * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +- * +- */ +- +-#ifndef __GSD_BACKGROUND_PLUGIN_H__ +-#define __GSD_BACKGROUND_PLUGIN_H__ +- +-#include +-#include +-#include +- +-#include "gnome-settings-plugin.h" +- +-G_BEGIN_DECLS +- +-#define GSD_TYPE_BACKGROUND_PLUGIN (gsd_background_plugin_get_type ()) +-#define GSD_BACKGROUND_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_BACKGROUND_PLUGIN, GsdBackgroundPlugin)) +-#define GSD_BACKGROUND_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_BACKGROUND_PLUGIN, GsdBackgroundPluginClass)) +-#define GSD_IS_BACKGROUND_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_BACKGROUND_PLUGIN)) +-#define GSD_IS_BACKGROUND_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_BACKGROUND_PLUGIN)) +-#define GSD_BACKGROUND_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_BACKGROUND_PLUGIN, GsdBackgroundPluginClass)) +- +-typedef struct GsdBackgroundPluginPrivate GsdBackgroundPluginPrivate; +- +-typedef struct +-{ +- GnomeSettingsPlugin parent; +- GsdBackgroundPluginPrivate *priv; +-} GsdBackgroundPlugin; +- +-typedef struct +-{ +- GnomeSettingsPluginClass parent_class; +-} GsdBackgroundPluginClass; +- +-GType gsd_background_plugin_get_type (void) G_GNUC_CONST; +- +-/* All the plugins must implement this function */ +-G_MODULE_EXPORT GType register_gnome_settings_plugin (GTypeModule *module); +- +-G_END_DECLS +- +-#endif /* __GSD_BACKGROUND_PLUGIN_H__ */ +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/Makefile.am gnome-settings-daemon-3.6.4/plugins/background/Makefile.am +--- gnome-settings-daemon-3.6.4.orig/plugins/background/Makefile.am 2013-01-10 14:37:58.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/background/Makefile.am 2013-04-10 17:40:20.117885180 +0200 +@@ -1,80 +1,34 @@ +-NULL = ++libexec_PROGRAMS = gnome-fallback-background-helper + +-plugin_name = background ++gnome_fallback_background_helper_SOURCES = \ ++ gnome-fallback-background-helper.c \ ++ gsd-background-manager.c \ ++ gsd-background-manager.h + +-libexec_PROGRAMS = gsd-test-background +- +-gsd_test_background_SOURCES = \ +- test-background.c \ +- gsd-background-manager.h \ +- gsd-background-manager.c \ +- $(NULL) +- +-gsd_test_background_CPPFLAGS = \ ++gnome_fallback_background_helper_CPPFLAGS = \ + -I$(top_srcdir)/gnome-settings-daemon \ +- -I$(top_srcdir)/plugins/common \ + -DGNOME_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \ + $(AM_CPPFLAGS) + +-gsd_test_background_CFLAGS = \ +- $(PLUGIN_CFLAGS) \ ++gnome_fallback_background_helper_CFLAGS = \ + $(SETTINGS_PLUGIN_CFLAGS) \ +- $(BACKGROUND_CFLAGS) \ +- $(AM_CFLAGS) +- +-gsd_test_background_LDADD = \ +- $(top_builddir)/gnome-settings-daemon/libgsd.la \ +- $(SETTINGS_PLUGIN_LIBS) \ +- $(BACKGROUND_LIBS) \ +- $(NULL) +- +-plugin_LTLIBRARIES = \ +- libbackground.la \ +- $(NULL) +- +-libbackground_la_SOURCES = \ +- gsd-background-plugin.h \ +- gsd-background-plugin.c \ +- gsd-background-manager.h \ +- gsd-background-manager.c \ +- $(NULL) ++ $(BACKGROUND_CFLAGS) + +-libbackground_la_CPPFLAGS = \ +- -I$(top_srcdir)/gnome-settings-daemon \ +- -I$(top_srcdir)/plugins/background/libbackground \ +- -DGNOME_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \ +- $(AM_CPPFLAGS) +- +-libbackground_la_CFLAGS = \ +- $(SETTINGS_PLUGIN_CFLAGS) \ +- $(BACKGROUND_CFLAGS) \ +- $(AM_CFLAGS) +- +-libbackground_la_LDFLAGS = \ +- $(GSD_PLUGIN_LDFLAGS) \ +- $(NULL) +- +-libbackground_la_LIBADD = \ ++gnome_fallback_background_helper_LDADD = \ + $(SETTINGS_PLUGIN_LIBS) \ + $(BACKGROUND_LIBS) \ +- $(NULL) +- +-plugin_in_files = \ +- background.gnome-settings-plugin.in \ +- $(NULL) ++ $(top_builddir)/gnome-settings-daemon/libgsd.la + +-plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin) ++autostartdir = $(sysconfdir)/xdg/autostart ++autostart_in_files = gnome-fallback-background-helper.desktop.in ++autostart_in_in_files = gnome-fallback-background-helper.desktop.in.in ++autostart_DATA = $(autostart_in_files:.desktop.in=.desktop) + +-EXTRA_DIST = \ +- $(plugin_in_files) \ +- $(NULL) ++$(autostart_in_files): $(autostart_in_in_files) ++ @sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@ + +-CLEANFILES = \ +- $(plugin_DATA) \ +- $(NULL) ++@INTLTOOL_DESKTOP_RULE@ + +-DISTCLEANFILES = \ +- $(plugin_DATA) \ +- $(NULL) ++EXTRA_DIST = $(autostart_in_in_files) + +-@GSD_INTLTOOL_PLUGIN_RULE@ ++CLEANFILES = $(autostart_DATA) $(autostart_in_files) +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/test-background.c gnome-settings-daemon-3.6.4/plugins/background/test-background.c +--- gnome-settings-daemon-3.6.4.orig/plugins/background/test-background.c 2012-06-01 22:02:53.000000000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/background/test-background.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,7 +0,0 @@ +-#define NEW gsd_background_manager_new +-#define START gsd_background_manager_start +-#define STOP gsd_background_manager_stop +-#define MANAGER GsdBackgroundManager +-#include "gsd-background-manager.h" +- +-#include "test-plugin.h" +diff -Naur gnome-settings-daemon-3.6.4.orig/po/POTFILES.in gnome-settings-daemon-3.6.4/po/POTFILES.in +--- gnome-settings-daemon-3.6.4.orig/po/POTFILES.in 2013-01-10 14:37:58.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/po/POTFILES.in 2013-04-10 17:39:36.450215685 +0200 +@@ -21,9 +21,9 @@ + [type: gettext/glade]plugins/a11y-keyboard/gsd-a11y-preferences-dialog.ui + [type: gettext/ini]plugins/a11y-settings/a11y-settings.gnome-settings-plugin.in + plugins/automount/gnome-fallback-mount-helper.desktop.in.in ++plugins/automount/gnome-fallback-background-helper.desktop.in.in + plugins/automount/gsd-automount-manager.c + plugins/automount/gsd-autorun.c +-[type: gettext/ini]plugins/background/background.gnome-settings-plugin.in + [type: gettext/ini]plugins/clipboard/clipboard.gnome-settings-plugin.in + [type: gettext/ini]plugins/color/color.gnome-settings-plugin.in + plugins/color/gsd-color-manager.c +diff -Naur gnome-settings-daemon-3.6.4.orig/po/POTFILES.skip gnome-settings-daemon-3.6.4/po/POTFILES.skip +--- gnome-settings-daemon-3.6.4.orig/po/POTFILES.skip 2012-04-07 18:58:07.000000000 +0200 ++++ gnome-settings-daemon-3.6.4/po/POTFILES.skip 2013-04-10 17:39:36.453549095 +0200 +@@ -20,6 +20,7 @@ + data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in + data/org.gnome.settings-daemon.plugins.xrandr.gschema.xml.in + data/org.gnome.settings-daemon.plugins.xsettings.gschema.xml.in ++plugins/automount/gnome-fallback-background-helper.desktop.in + plugins/automount/gnome-fallback-mount-helper.desktop.in + plugins/power/org.gnome.settings-daemon.plugins.power.policy.in + plugins/wacom/org.gnome.settings-daemon.plugins.wacom.policy.in diff --git a/community/gnome-settings-daemon-updates/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch b/community/gnome-settings-daemon-updates/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch deleted file mode 100644 index ceee6db82..000000000 --- a/community/gnome-settings-daemon-updates/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch +++ /dev/null @@ -1,1476 +0,0 @@ -From f418ff2cd04b233dbffc1129e856630d8c96cd07 Mon Sep 17 00:00:00 2001 -From: Richard Hughes -Date: Fri, 21 Sep 2012 11:56:53 +0100 -Subject: [PATCH] power and media-keys: Use logind for suspending and - rebooting the system - -Use the new logind features to suspend and resume but making sure we opt out -of logind handling the sleep and power keys, and also inhibiting for lid close -auto-suspend if there is an external monitor connected. - -Also use a delay inihibit for logind so that we can do actions on suspend like -blanking the screen using the screensaver and also poking the screensaver on -resume. - -https://bugzilla.gnome.org/show_bug.cgi?id=680689 - -Conflicts: - plugins/power/gsd-power-manager.c ---- - plugins/common/Makefile.am | 4 +- - plugins/common/gsd-power-helper.c | 203 -------- - plugins/common/gsd-power-helper.h | 35 -- - plugins/media-keys/gsd-media-keys-manager.c | 156 +++++-- - plugins/power/gsd-power-manager.c | 697 +++++++++++++++++++--------- - 5 files changed, 594 insertions(+), 501 deletions(-) - delete mode 100644 plugins/common/gsd-power-helper.c - delete mode 100644 plugins/common/gsd-power-helper.h - -diff --git a/plugins/common/Makefile.am b/plugins/common/Makefile.am -index 7e50db4..b0e907c 100644 ---- a/plugins/common/Makefile.am -+++ b/plugins/common/Makefile.am -@@ -6,9 +6,7 @@ libcommon_la_SOURCES = \ - gsd-keygrab.c \ - gsd-keygrab.h \ - gsd-input-helper.c \ -- gsd-input-helper.h \ -- gsd-power-helper.c \ -- gsd-power-helper.h -+ gsd-input-helper.h - - libcommon_la_CPPFLAGS = \ - $(AM_CPPFLAGS) -diff --git a/plugins/common/gsd-power-helper.c b/plugins/common/gsd-power-helper.c -deleted file mode 100644 -index 27d0eda..0000000 ---- a/plugins/common/gsd-power-helper.c -+++ /dev/null -@@ -1,203 +0,0 @@ --/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- -- * -- * Copyright (C) 2012 Bastien Nocera -- * -- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- * -- */ -- --#include "config.h" -- --#include "gsd-power-helper.h" -- --#define SYSTEMD_DBUS_NAME "org.freedesktop.login1" --#define SYSTEMD_DBUS_PATH "/org/freedesktop/login1" --#define SYSTEMD_DBUS_INTERFACE "org.freedesktop.login1.Manager" -- --#define CONSOLEKIT_DBUS_NAME "org.freedesktop.ConsoleKit" --#define CONSOLEKIT_DBUS_PATH_MANAGER "/org/freedesktop/ConsoleKit/Manager" --#define CONSOLEKIT_DBUS_INTERFACE_MANAGER "org.freedesktop.ConsoleKit.Manager" -- --#ifdef HAVE_SYSTEMD --static void --systemd_stop (void) --{ -- GDBusConnection *bus; -- -- bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL); -- g_dbus_connection_call (bus, -- SYSTEMD_DBUS_NAME, -- SYSTEMD_DBUS_PATH, -- SYSTEMD_DBUS_INTERFACE, -- "PowerOff", -- g_variant_new ("(b)", FALSE), -- NULL, 0, G_MAXINT, NULL, NULL, NULL); -- g_object_unref (bus); --} -- --static void --systemd_suspend (void) --{ -- GDBusConnection *bus; -- -- bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL); -- g_dbus_connection_call (bus, -- SYSTEMD_DBUS_NAME, -- SYSTEMD_DBUS_PATH, -- SYSTEMD_DBUS_INTERFACE, -- "Suspend", -- g_variant_new ("(b)", TRUE), -- NULL, 0, G_MAXINT, NULL, NULL, NULL); -- g_object_unref (bus); --} -- --static void --systemd_hibernate (void) --{ -- GDBusConnection *bus; -- -- bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL); -- g_dbus_connection_call (bus, -- SYSTEMD_DBUS_NAME, -- SYSTEMD_DBUS_PATH, -- SYSTEMD_DBUS_INTERFACE, -- "Hibernate", -- g_variant_new ("(b)", TRUE), -- NULL, 0, G_MAXINT, NULL, NULL, NULL); -- g_object_unref (bus); --} -- --#else /* HAVE_SYSTEMD */ -- --static void --consolekit_stop_cb (GObject *source_object, -- GAsyncResult *res, -- gpointer user_data) --{ -- GVariant *result; -- GError *error = NULL; -- -- result = g_dbus_proxy_call_finish (G_DBUS_PROXY (source_object), -- res, -- &error); -- if (result == NULL) { -- g_warning ("couldn't stop using ConsoleKit: %s", -- error->message); -- g_error_free (error); -- } else { -- g_variant_unref (result); -- } --} -- --static void --consolekit_stop (void) --{ -- GError *error = NULL; -- GDBusProxy *proxy; -- -- /* power down the machine in a safe way */ -- proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, -- G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, -- NULL, -- CONSOLEKIT_DBUS_NAME, -- CONSOLEKIT_DBUS_PATH_MANAGER, -- CONSOLEKIT_DBUS_INTERFACE_MANAGER, -- NULL, &error); -- if (proxy == NULL) { -- g_warning ("cannot connect to ConsoleKit: %s", -- error->message); -- g_error_free (error); -- return; -- } -- g_dbus_proxy_call (proxy, -- "Stop", -- NULL, -- G_DBUS_CALL_FLAGS_NONE, -- -1, NULL, -- consolekit_stop_cb, NULL); -- g_object_unref (proxy); --} --static void --upower_sleep_cb (GObject *source_object, -- GAsyncResult *res, -- gpointer user_data) --{ -- GVariant *result; -- GError *error = NULL; -- -- result = g_dbus_proxy_call_finish (G_DBUS_PROXY (source_object), -- res, -- &error); -- if (result == NULL) { -- g_warning ("couldn't sleep using UPower: %s", -- error->message); -- g_error_free (error); -- } else { -- g_variant_unref (result); -- } --} -- --static void --upower_suspend (GDBusProxy *upower_proxy) --{ -- g_dbus_proxy_call (upower_proxy, -- "Suspend", -- NULL, -- G_DBUS_CALL_FLAGS_NONE, -- -1, NULL, -- upower_sleep_cb, NULL); --} -- --static void --upower_hibernate (GDBusProxy *upower_proxy) --{ -- g_dbus_proxy_call (upower_proxy, -- "Hibernate", -- NULL, -- G_DBUS_CALL_FLAGS_NONE, -- -1, NULL, -- upower_sleep_cb, NULL); --} --#endif /* HAVE_SYSTEMD */ -- --void --gsd_power_suspend (GDBusProxy *upower_proxy) --{ --#ifdef HAVE_SYSTEMD -- systemd_suspend (); --#else -- upower_suspend (upower_proxy); --#endif --} -- --void --gsd_power_poweroff (void) --{ --#ifdef HAVE_SYSTEMD -- systemd_stop (); --#else -- consolekit_stop (); --#endif --} -- --void --gsd_power_hibernate (GDBusProxy *upower_proxy) --{ --#ifdef HAVE_SYSTEMD -- systemd_hibernate (); --#else -- upower_hibernate (upower_proxy); --#endif --} -diff --git a/plugins/common/gsd-power-helper.h b/plugins/common/gsd-power-helper.h -deleted file mode 100644 -index e3be14f..0000000 ---- a/plugins/common/gsd-power-helper.h -+++ /dev/null -@@ -1,35 +0,0 @@ --/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- -- * -- * Copyright (C) 2012 Bastien Nocera -- * -- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- */ -- --#ifndef __GSD_POWER_HELPER_H --#define __GSD_POWER_HELPER_H -- --#include -- --G_BEGIN_DECLS -- --#include -- --void gsd_power_suspend (GDBusProxy *upower_proxy); --void gsd_power_hibernate (GDBusProxy *upower_proxy); --void gsd_power_poweroff (void); -- --G_END_DECLS -- --#endif /* __GSD_POWER_HELPER_H */ -diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c -index 9c84d7f..a2f277e 100644 ---- a/plugins/media-keys/gsd-media-keys-manager.c -+++ b/plugins/media-keys/gsd-media-keys-manager.c -@@ -39,6 +39,7 @@ - #include - #include - #include -+#include - - #ifdef HAVE_GUDEV - #include -@@ -51,7 +52,6 @@ - #include "shortcuts-list.h" - #include "gsd-osd-window.h" - #include "gsd-input-helper.h" --#include "gsd-power-helper.h" - #include "gsd-enums.h" - - #include -@@ -105,6 +105,10 @@ static const gchar introspection_xml[] = - #define KEY_CURRENT_INPUT_SOURCE "current" - #define KEY_INPUT_SOURCES "sources" - -+#define SYSTEMD_DBUS_NAME "org.freedesktop.login1" -+#define SYSTEMD_DBUS_PATH "/org/freedesktop/login1" -+#define SYSTEMD_DBUS_INTERFACE "org.freedesktop.login1.Manager" -+ - #define GSD_MEDIA_KEYS_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_MEDIA_KEYS_MANAGER, GsdMediaKeysManagerPrivate)) - - typedef struct { -@@ -148,10 +152,13 @@ struct GsdMediaKeysManagerPrivate - - /* Power stuff */ - GSettings *power_settings; -- GDBusProxy *upower_proxy; - GDBusProxy *power_screen_proxy; - GDBusProxy *power_keyboard_proxy; - -+ /* systemd stuff */ -+ GDBusProxy *logind_proxy; -+ gint inhibit_keys_fd; -+ - /* Multihead stuff */ - GdkScreen *current_screen; - GSList *screens; -@@ -1618,6 +1625,38 @@ do_toggle_contrast_action (GsdMediaKeysManager *manager) - } - - static void -+power_action_suspend (GsdMediaKeysManager *manager) -+{ -+#ifndef HAVE_SYSTEMD -+ g_warning ("no systemd support"); -+ return; -+#endif -+ g_dbus_proxy_call (manager->priv->logind_proxy, -+ "Suspend", -+ g_variant_new ("(b)", TRUE), -+ G_DBUS_CALL_FLAGS_NONE, -+ G_MAXINT, -+ manager->priv->bus_cancellable, -+ NULL, NULL); -+} -+ -+static void -+power_action_hibernate (GsdMediaKeysManager *manager) -+{ -+#ifndef HAVE_SYSTEMD -+ g_warning ("no systemd support"); -+ return; -+#endif -+ g_dbus_proxy_call (manager->priv->logind_proxy, -+ "Hibernate", -+ g_variant_new ("(b)", TRUE), -+ G_DBUS_CALL_FLAGS_NONE, -+ G_MAXINT, -+ manager->priv->bus_cancellable, -+ NULL, NULL); -+} -+ -+static void - do_config_power_action (GsdMediaKeysManager *manager, - const gchar *config_key) - { -@@ -1627,14 +1666,14 @@ do_config_power_action (GsdMediaKeysManager *manager, - config_key); - switch (action_type) { - case GSD_POWER_ACTION_SUSPEND: -- gsd_power_suspend (manager->priv->upower_proxy); -+ power_action_suspend (manager); - break; - case GSD_POWER_ACTION_INTERACTIVE: - case GSD_POWER_ACTION_SHUTDOWN: - gnome_session_shutdown (manager); - break; - case GSD_POWER_ACTION_HIBERNATE: -- gsd_power_hibernate (manager->priv->upower_proxy); -+ power_action_hibernate (manager); - break; - case GSD_POWER_ACTION_BLANK: - case GSD_POWER_ACTION_NOTHING: -@@ -2248,6 +2287,7 @@ gsd_media_keys_manager_stop (GsdMediaKeysManager *manager) - } - #endif /* HAVE_GUDEV */ - -+ g_clear_object (&priv->logind_proxy); - if (priv->settings) { - g_object_unref (priv->settings); - priv->settings = NULL; -@@ -2268,11 +2308,6 @@ gsd_media_keys_manager_stop (GsdMediaKeysManager *manager) - priv->power_keyboard_proxy = NULL; - } - -- if (priv->upower_proxy) { -- g_object_unref (priv->upower_proxy); -- priv->upower_proxy = NULL; -- } -- - if (priv->cancellable != NULL) { - g_cancellable_cancel (priv->cancellable); - g_object_unref (priv->cancellable); -@@ -2363,9 +2398,85 @@ gsd_media_keys_manager_class_init (GsdMediaKeysManagerClass *klass) - } - - static void -+inhibit_done (GObject *source, -+ GAsyncResult *result, -+ gpointer user_data) -+{ -+ GDBusProxy *proxy = G_DBUS_PROXY (source); -+ GsdMediaKeysManager *manager = GSD_MEDIA_KEYS_MANAGER (user_data); -+ GError *error = NULL; -+ GVariant *res; -+ GUnixFDList *fd_list = NULL; -+ gint idx; -+ -+ res = g_dbus_proxy_call_with_unix_fd_list_finish (proxy, &fd_list, result, &error); -+ if (res == NULL) { -+ g_warning ("Unable to inhibit keypresses: %s", error->message); -+ g_error_free (error); -+ } else { -+ g_variant_get (res, "(h)", &idx); -+ manager->priv->inhibit_keys_fd = g_unix_fd_list_get (fd_list, idx, &error); -+ if (manager->priv->inhibit_keys_fd == -1) { -+ g_warning ("Failed to receive system inhibitor fd: %s", error->message); -+ g_error_free (error); -+ } -+ g_debug ("System inhibitor fd is %d", manager->priv->inhibit_keys_fd); -+ g_object_unref (fd_list); -+ g_variant_unref (res); -+ } -+} -+ -+static void - gsd_media_keys_manager_init (GsdMediaKeysManager *manager) - { -+ GError *error; -+ GDBusConnection *bus; -+ -+ error = NULL; - manager->priv = GSD_MEDIA_KEYS_MANAGER_GET_PRIVATE (manager); -+ -+ bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); -+ if (bus == NULL) { -+ g_warning ("Failed to connect to system bus: %s", -+ error->message); -+ g_error_free (error); -+ return; -+ } -+ -+ manager->priv->logind_proxy = -+ g_dbus_proxy_new_sync (bus, -+ 0, -+ NULL, -+ SYSTEMD_DBUS_NAME, -+ SYSTEMD_DBUS_PATH, -+ SYSTEMD_DBUS_INTERFACE, -+ NULL, -+ &error); -+ -+ if (manager->priv->logind_proxy == NULL) { -+ g_warning ("Failed to connect to systemd: %s", -+ error->message); -+ g_error_free (error); -+ } -+ -+ g_object_unref (bus); -+ -+ g_debug ("Adding system inhibitors for power keys"); -+ manager->priv->inhibit_keys_fd = -1; -+ g_dbus_proxy_call_with_unix_fd_list (manager->priv->logind_proxy, -+ "Inhibit", -+ g_variant_new ("(ssss)", -+ "handle-power-key:handle-suspend-key:handle-hibernate-key", -+ g_get_user_name (), -+ "GNOME handling keypresses", -+ "block"), -+ 0, -+ G_MAXINT, -+ NULL, -+ NULL, -+ inhibit_done, -+ manager); -+ - } - - static void -@@ -2382,6 +2493,8 @@ gsd_media_keys_manager_finalize (GObject *object) - - if (media_keys_manager->priv->start_idle_id != 0) - g_source_remove (media_keys_manager->priv->start_idle_id); -+ if (media_keys_manager->priv->inhibit_keys_fd != -1) -+ close (media_keys_manager->priv->inhibit_keys_fd); - - G_OBJECT_CLASS (gsd_media_keys_manager_parent_class)->finalize (object); - } -@@ -2401,21 +2514,6 @@ xrandr_ready_cb (GObject *source_object, - } - - static void --upower_ready_cb (GObject *source_object, -- GAsyncResult *res, -- GsdMediaKeysManager *manager) --{ -- GError *error = NULL; -- -- manager->priv->upower_proxy = g_dbus_proxy_new_finish (res, &error); -- if (manager->priv->upower_proxy == NULL) { -- g_warning ("Failed to get proxy for upower: %s", -- error->message); -- g_error_free (error); -- } --} -- --static void - power_screen_ready_cb (GObject *source_object, - GAsyncResult *res, - GsdMediaKeysManager *manager) -@@ -2517,16 +2615,6 @@ register_manager (GsdMediaKeysManager *manager) - manager->priv->bus_cancellable, - (GAsyncReadyCallback) on_bus_gotten, - manager); -- -- g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM, -- G_DBUS_PROXY_FLAGS_NONE, -- NULL, -- "org.freedesktop.UPower", -- "/org/freedesktop/UPower", -- "org.freedesktop.UPower", -- NULL, -- (GAsyncReadyCallback) upower_ready_cb, -- manager); - } - - GsdMediaKeysManager * -diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c -index 1c594d8..bb7224c 100644 ---- a/plugins/power/gsd-power-manager.c -+++ b/plugins/power/gsd-power-manager.c -@@ -1,7 +1,7 @@ - /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- - * - * Copyright (C) 2007 William Jon McCann -- * Copyright (C) 2011 Richard Hughes -+ * Copyright (C) 2011-2012 Richard Hughes - * Copyright (C) 2011 Ritesh Khadgaray - * - * This program is free software; you can redistribute it and/or modify -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - - #define GNOME_DESKTOP_USE_UNSTABLE_API - #include -@@ -43,7 +44,6 @@ - #include "gnome-settings-session.h" - #include "gsd-enums.h" - #include "gsd-power-manager.h" --#include "gsd-power-helper.h" - - #define GNOME_SESSION_DBUS_NAME "org.gnome.SessionManager" - #define GNOME_SESSION_DBUS_PATH "/org/gnome/SessionManager" -@@ -78,6 +78,10 @@ - #define GSD_POWER_MANAGER_RECALL_DELAY 30 /* seconds */ - #define GSD_POWER_MANAGER_LID_CLOSE_SAFETY_TIMEOUT 30 /* seconds */ - -+#define SYSTEMD_DBUS_NAME "org.freedesktop.login1" -+#define SYSTEMD_DBUS_PATH "/org/freedesktop/login1" -+#define SYSTEMD_DBUS_INTERFACE "org.freedesktop.login1.Manager" -+ - /* Keep this in sync with gnome-shell */ - #define SCREENSAVER_FADE_TIME 10 /* seconds */ - -@@ -193,15 +197,21 @@ struct GsdPowerManagerPrivate - ca_context *canberra_context; - ca_proplist *critical_alert_loop_props; - guint32 critical_alert_timeout_id; -- GDBusProxy *screensaver_proxy; - GDBusProxy *session_proxy; - GDBusProxy *session_presence_proxy; - GpmIdletime *idletime; - GsdPowerIdleMode current_idle_mode; -- guint lid_close_safety_timer_id; - GtkStatusIcon *status_icon; - guint xscreensaver_watchdog_timer_id; - gboolean is_virtual_machine; -+ -+ /* systemd stuff */ -+ GDBusProxy *logind_proxy; -+ gint inhibit_lid_switch_fd; -+ gboolean inhibit_lid_switch_taken; -+ gint inhibit_suspend_fd; -+ gboolean inhibit_suspend_taken; -+ guint inhibit_lid_switch_timer_id; - }; - - enum { -@@ -218,8 +228,8 @@ static GIcon *engine_get_icon (GsdPowerManager *manager); - static gchar *engine_get_summary (GsdPowerManager *manager); - static void do_power_action_type (GsdPowerManager *manager, GsdPowerActionType action_type); - static void do_lid_closed_action (GsdPowerManager *manager); --static void lock_screensaver (GsdPowerManager *manager); --static void kill_lid_close_safety_timer (GsdPowerManager *manager); -+static void uninhibit_lid_switch (GsdPowerManager *manager); -+static gboolean external_monitor_is_connected (GnomeRRScreen *screen); - - G_DEFINE_TYPE (GsdPowerManager, gsd_power_manager, G_TYPE_OBJECT) - -@@ -2049,6 +2059,57 @@ gnome_session_shutdown (void) - } - - static void -+action_poweroff (GsdPowerManager *manager) -+{ -+ if (manager->priv->logind_proxy == NULL) { -+ g_warning ("no systemd support"); -+ return; -+ } -+ g_dbus_proxy_call (manager->priv->logind_proxy, -+ "PowerOff", -+ g_variant_new ("(b)", FALSE), -+ G_DBUS_CALL_FLAGS_NONE, -+ G_MAXINT, -+ NULL, -+ NULL, -+ NULL); -+} -+ -+static void -+action_suspend (GsdPowerManager *manager) -+{ -+ if (manager->priv->logind_proxy == NULL) { -+ g_warning ("no systemd support"); -+ return; -+ } -+ g_dbus_proxy_call (manager->priv->logind_proxy, -+ "Suspend", -+ g_variant_new ("(b)", FALSE), -+ G_DBUS_CALL_FLAGS_NONE, -+ G_MAXINT, -+ NULL, -+ NULL, -+ NULL); -+} -+ -+static void -+action_hibernate (GsdPowerManager *manager) -+{ -+ if (manager->priv->logind_proxy == NULL) { -+ g_warning ("no systemd support"); -+ return; -+ } -+ g_dbus_proxy_call (manager->priv->logind_proxy, -+ "Hibernate", -+ g_variant_new ("(b)", FALSE), -+ G_DBUS_CALL_FLAGS_NONE, -+ G_MAXINT, -+ NULL, -+ NULL, -+ NULL); -+} -+ -+static void - do_power_action_type (GsdPowerManager *manager, - GsdPowerActionType action_type) - { -@@ -2057,19 +2118,19 @@ do_power_action_type (GsdPowerManager *manager, - - switch (action_type) { - case GSD_POWER_ACTION_SUSPEND: -- gsd_power_suspend (manager->priv->upower_proxy); -+ action_suspend (manager); - break; - case GSD_POWER_ACTION_INTERACTIVE: - gnome_session_shutdown (); - break; - case GSD_POWER_ACTION_HIBERNATE: -- gsd_power_hibernate (manager->priv->upower_proxy); -+ action_hibernate (manager); - break; - case GSD_POWER_ACTION_SHUTDOWN: - /* this is only used on critically low battery where - * hibernate is not available and is marginally better - * than just powering down the computer mid-write */ -- gsd_power_poweroff (); -+ action_poweroff (manager); - break; - case GSD_POWER_ACTION_BLANK: - ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen, -@@ -2141,85 +2202,20 @@ upower_kbd_toggle (GsdPowerManager *manager, - return ret; - } - --static void --do_lid_open_action (GsdPowerManager *manager) --{ -- gboolean ret; -- GError *error = NULL; -- -- /* play a sound, using sounds from the naming spec */ -- ca_context_play (manager->priv->canberra_context, 0, -- CA_PROP_EVENT_ID, "lid-open", -- /* TRANSLATORS: this is the sound description */ -- CA_PROP_EVENT_DESCRIPTION, _("Lid has been opened"), -- NULL); -- -- /* ensure we turn the panel back on after lid open */ -- ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen, -- GNOME_RR_DPMS_ON, -- &error); -- if (!ret) { -- g_warning ("failed to turn the panel on after lid open: %s", -- error->message); -- g_clear_error (&error); -- } -- -- /* only toggle keyboard if present and already toggled off */ -- if (manager->priv->upower_kdb_proxy != NULL && -- manager->priv->kbd_brightness_old != -1) { -- ret = upower_kbd_toggle (manager, &error); -- if (!ret) { -- g_warning ("failed to turn the kbd backlight on: %s", -- error->message); -- g_error_free (error); -- } -- } -- -- kill_lid_close_safety_timer (manager); --} -- - static gboolean --is_on (GnomeRROutput *output) -+inhibit_lid_switch_timer_cb (GsdPowerManager *manager) - { -- GnomeRRCrtc *crtc; -- -- crtc = gnome_rr_output_get_crtc (output); -- if (!crtc) -- return FALSE; -- return gnome_rr_crtc_get_current_mode (crtc) != NULL; --} -- --static gboolean --non_laptop_outputs_are_all_off (GnomeRRScreen *screen) --{ -- GnomeRROutput **outputs; -- int i; -- -- outputs = gnome_rr_screen_list_outputs (screen); -- for (i = 0; outputs[i] != NULL; i++) { -- if (gnome_rr_output_is_laptop (outputs[i])) -- continue; -- -- if (is_on (outputs[i])) -- return FALSE; -+ if (!external_monitor_is_connected (manager->priv->x11_screen) || -+ g_settings_get_boolean (manager->priv->settings, -+ "lid-close-suspend-with-external-monitor")) { -+ g_debug ("no external monitors for a while; uninhibiting lid close"); -+ uninhibit_lid_switch (manager); -+ manager->priv->inhibit_lid_switch_timer_id = 0; -+ return G_SOURCE_REMOVE; - } - -- return TRUE; --} -- --/* Timeout callback used to check conditions when the laptop's lid is closed but -- * the machine is not suspended yet. We try to suspend again, so that the laptop -- * won't overheat if placed in a backpack. -- */ --static gboolean --lid_close_safety_timer_cb (GsdPowerManager *manager) --{ -- manager->priv->lid_close_safety_timer_id = 0; -- -- g_debug ("lid has been closed for a while; trying to suspend again"); -- do_lid_closed_action (manager); -- -- return FALSE; -+ g_debug ("external monitor still there; trying again later"); -+ return G_SOURCE_CONTINUE; - } - - /* Sets up a timer to be triggered some seconds after closing the laptop lid -@@ -2227,82 +2223,73 @@ lid_close_safety_timer_cb (GsdPowerManager *manager) - * again in the timeout handler to see if we can suspend then. - */ - static void --setup_lid_close_safety_timer (GsdPowerManager *manager) -+setup_inhibit_lid_switch_timer (GsdPowerManager *manager) - { -- if (manager->priv->lid_close_safety_timer_id != 0) -+ if (manager->priv->inhibit_lid_switch_timer_id != 0) { -+ g_debug ("lid close safety timer already set up"); - return; -+ } -+ -+ g_debug ("setting up lid close safety timer"); - -- manager->priv->lid_close_safety_timer_id = g_timeout_add_seconds (GSD_POWER_MANAGER_LID_CLOSE_SAFETY_TIMEOUT, -- (GSourceFunc) lid_close_safety_timer_cb, -+ manager->priv->inhibit_lid_switch_timer_id = g_timeout_add_seconds (GSD_POWER_MANAGER_LID_CLOSE_SAFETY_TIMEOUT, -+ (GSourceFunc) inhibit_lid_switch_timer_cb, - manager); -- g_source_set_name_by_id (manager->priv->lid_close_safety_timer_id, "[GsdPowerManager] lid close safety timer"); -+ g_source_set_name_by_id (manager->priv->inhibit_lid_switch_timer_id, "[GsdPowerManager] lid close safety timer"); - } - - static void --kill_lid_close_safety_timer (GsdPowerManager *manager) -+restart_inhibit_lid_switch_timer (GsdPowerManager *manager) - { -- if (manager->priv->lid_close_safety_timer_id != 0) { -- g_source_remove (manager->priv->lid_close_safety_timer_id); -- manager->priv->lid_close_safety_timer_id = 0; -+ if (manager->priv->inhibit_lid_switch_timer_id != 0) { -+ g_debug ("restarting lid close safety timer"); -+ g_source_remove (manager->priv->inhibit_lid_switch_timer_id); -+ manager->priv->inhibit_lid_switch_timer_id = 0; -+ setup_inhibit_lid_switch_timer (manager); - } - } - - static void --suspend_with_lid_closed (GsdPowerManager *manager) -+do_lid_open_action (GsdPowerManager *manager) - { - gboolean ret; - GError *error = NULL; -- GsdPowerActionType action_type; - -- /* maybe lock the screen if the lid is closed */ -- lock_screensaver (manager); -- -- /* we have different settings depending on AC state */ -- if (up_client_get_on_battery (manager->priv->up_client)) { -- action_type = g_settings_get_enum (manager->priv->settings, -- "lid-close-battery-action"); -- } else { -- action_type = g_settings_get_enum (manager->priv->settings, -- "lid-close-ac-action"); -- } -- -- /* check we won't melt when the lid is closed */ -- if (action_type != GSD_POWER_ACTION_SUSPEND && -- action_type != GSD_POWER_ACTION_HIBERNATE) { -- if (up_client_get_lid_force_sleep (manager->priv->up_client)) { -- g_warning ("to prevent damage, now forcing suspend"); -- do_power_action_type (manager, GSD_POWER_ACTION_SUSPEND); -- return; -- } -- } -+ /* play a sound, using sounds from the naming spec */ -+ ca_context_play (manager->priv->canberra_context, 0, -+ CA_PROP_EVENT_ID, "lid-open", -+ /* TRANSLATORS: this is the sound description */ -+ CA_PROP_EVENT_DESCRIPTION, _("Lid has been opened"), -+ NULL); - -- /* ensure we turn the panel back on after resume */ -+ /* ensure we turn the panel back on after lid open */ - ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen, -- GNOME_RR_DPMS_OFF, -+ GNOME_RR_DPMS_ON, - &error); - if (!ret) { -- g_warning ("failed to turn the panel off after lid close: %s", -+ g_warning ("failed to turn the panel on after lid open: %s", - error->message); - g_clear_error (&error); - } - -- /* only toggle keyboard if present and not already toggled */ -- if (manager->priv->upower_kdb_proxy && -- manager->priv->kbd_brightness_old == -1) { -+ /* only toggle keyboard if present and already toggled off */ -+ if (manager->priv->upower_kdb_proxy != NULL && -+ manager->priv->kbd_brightness_old != -1) { - ret = upower_kbd_toggle (manager, &error); - if (!ret) { -- g_warning ("failed to turn the kbd backlight off: %s", -+ g_warning ("failed to turn the kbd backlight on: %s", - error->message); - g_error_free (error); - } - } -- -- do_power_action_type (manager, action_type); - } - - static void - do_lid_closed_action (GsdPowerManager *manager) - { -+ gboolean ret; -+ GError *error = NULL; -+ - /* play a sound, using sounds from the naming spec */ - ca_context_play (manager->priv->canberra_context, 0, - CA_PROP_EVENT_ID, "lid-close", -@@ -2310,21 +2297,22 @@ do_lid_closed_action (GsdPowerManager *manager) - CA_PROP_EVENT_DESCRIPTION, _("Lid has been closed"), - NULL); - -+ /* turn the panel off if the lid is closed (mainly for Dells...) */ -+ ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen, -+ GNOME_RR_DPMS_OFF, -+ &error); -+ if (!ret) { -+ g_warning ("failed to turn the panel off after lid close: %s", -+ error->message); -+ g_error_free (error); -+ } -+ - /* refresh RANDR so we get an accurate view of what monitors are plugged in when the lid is closed */ - gnome_rr_screen_refresh (manager->priv->x11_screen, NULL); /* NULL-GError */ - -- /* perform policy action */ -- if (g_settings_get_boolean (manager->priv->settings, "lid-close-suspend-with-external-monitor") -- || non_laptop_outputs_are_all_off (manager->priv->x11_screen)) { -- g_debug ("lid is closed; suspending or hibernating"); -- suspend_with_lid_closed (manager); -- } else { -- g_debug ("lid is closed; not suspending nor hibernating since some external monitor outputs are still active"); -- setup_lid_close_safety_timer (manager); -- } -+ restart_inhibit_lid_switch_timer (manager); - } - -- - static void - up_client_changed_cb (UpClient *client, GsdPowerManager *manager) - { -@@ -2344,6 +2332,7 @@ up_client_changed_cb (UpClient *client, GsdPowerManager *manager) - if (manager->priv->lid_is_closed == tmp) - return; - manager->priv->lid_is_closed = tmp; -+ g_debug ("up changed: lid is now %s", tmp ? "closed" : "open"); - - /* fake a keypress */ - if (tmp) -@@ -3302,30 +3291,6 @@ gsd_power_manager_class_init (GsdPowerManagerClass *klass) - } - - static void --sleep_cb_screensaver_proxy_ready_cb (GObject *source_object, -- GAsyncResult *res, -- gpointer user_data) --{ -- GError *error = NULL; -- GsdPowerManager *manager = GSD_POWER_MANAGER (user_data); -- -- manager->priv->screensaver_proxy = g_dbus_proxy_new_for_bus_finish (res, &error); -- if (manager->priv->screensaver_proxy == NULL) { -- g_warning ("Could not connect to gnome-screensaver: %s", -- error->message); -- g_error_free (error); -- return; -- } -- -- /* Finish the upower_notify_sleep_cb() call by locking the screen */ -- g_debug ("gnome-screensaver activated, doing gnome-screensaver lock"); -- g_dbus_proxy_call (manager->priv->screensaver_proxy, -- "Lock", -- NULL, G_DBUS_CALL_FLAGS_NONE, -1, -- NULL, NULL, NULL); --} -- --static void - idle_dbus_signal_cb (GDBusProxy *proxy, - const gchar *sender_name, - const gchar *signal_name, -@@ -3477,75 +3442,38 @@ out: - } - - static void --lock_screensaver (GsdPowerManager *manager) -+lock_screensaver (GsdPowerManager *manager, -+ GSourceFunc done_cb) - { - gboolean do_lock; - - do_lock = g_settings_get_boolean (manager->priv->settings_screensaver, - "lock-enabled"); -- if (!do_lock) -+ if (!do_lock && done_cb) { -+ done_cb (manager); - return; -- -- if (manager->priv->screensaver_proxy != NULL) { -- g_debug ("doing gnome-screensaver lock"); -- g_dbus_proxy_call (manager->priv->screensaver_proxy, -- "Lock", -- NULL, G_DBUS_CALL_FLAGS_NONE, -1, -- NULL, NULL, NULL); -- } else { -- /* connect to the screensaver first */ -- g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION, -- G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, -- NULL, -- GS_DBUS_NAME, -- GS_DBUS_PATH, -- GS_DBUS_INTERFACE, -- NULL, -- sleep_cb_screensaver_proxy_ready_cb, -- manager); -- } --} -- --static void --upower_notify_sleep_cb (UpClient *client, -- UpSleepKind sleep_kind, -- GsdPowerManager *manager) --{ -- lock_screensaver (manager); --} -- --static void --upower_notify_resume_cb (UpClient *client, -- UpSleepKind sleep_kind, -- GsdPowerManager *manager) --{ -- gboolean ret; -- GError *error = NULL; -- -- /* this displays the unlock dialogue so the user doesn't have -- * to move the mouse or press any key before the window comes up */ -- if (manager->priv->screensaver_proxy != NULL) { -- g_dbus_proxy_call (manager->priv->screensaver_proxy, -- "SimulateUserActivity", -- NULL, -- G_DBUS_CALL_FLAGS_NONE, -- -1, NULL, NULL, NULL); - } - -- /* close existing notifications on resume, the system power -- * state is probably different now */ -- notify_close_if_showing (manager->priv->notification_low); -- notify_close_if_showing (manager->priv->notification_discharging); -- -- /* ensure we turn the panel back on after resume */ -- ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen, -- GNOME_RR_DPMS_ON, -- &error); -- if (!ret) { -- g_warning ("failed to turn the panel on after resume: %s", -- error->message); -- g_error_free (error); -- } -+ g_dbus_connection_call (manager->priv->connection, -+ GS_DBUS_NAME, -+ GS_DBUS_PATH, -+ GS_DBUS_INTERFACE, -+ "Lock", -+ NULL, NULL, -+ G_DBUS_CALL_FLAGS_NONE, -1, -+ NULL, NULL, NULL); -+ -+ /* Wait until gnome-shell shield animation is done -+ * -+ * FIXME: the shell should mark the lock as active -+ * when the shield is down, then we could wait for -+ * that. This would also fix the problem that we wait -+ * needlessly when the shell has already locked the -+ * screen because it is initiating the suspend. -+ * -+ * https://bugzilla.gnome.org/show_bug.cgi?id=685053 -+ */ -+ g_timeout_add (500, done_cb, manager); - } - - static void -@@ -3755,6 +3683,287 @@ out: - return ret; - } - -+static void -+inhibit_lid_switch_done (GObject *source, -+ GAsyncResult *result, -+ gpointer user_data) -+{ -+ GDBusProxy *proxy = G_DBUS_PROXY (source); -+ GsdPowerManager *manager = GSD_POWER_MANAGER (user_data); -+ GError *error = NULL; -+ GVariant *res; -+ GUnixFDList *fd_list = NULL; -+ gint idx; -+ -+ res = g_dbus_proxy_call_with_unix_fd_list_finish (proxy, &fd_list, result, &error); -+ if (res == NULL) { -+ g_warning ("Unable to inhibit lid switch: %s", error->message); -+ g_error_free (error); -+ } else { -+ g_variant_get (res, "(h)", &idx); -+ manager->priv->inhibit_lid_switch_fd = g_unix_fd_list_get (fd_list, idx, &error); -+ if (manager->priv->inhibit_lid_switch_fd == -1) { -+ g_warning ("Failed to receive system inhibitor fd: %s", error->message); -+ g_error_free (error); -+ } -+ g_debug ("System inhibitor fd is %d", manager->priv->inhibit_lid_switch_fd); -+ g_object_unref (fd_list); -+ g_variant_unref (res); -+ } -+} -+ -+static void -+inhibit_lid_switch (GsdPowerManager *manager) -+{ -+ GVariant *params; -+ -+ if (manager->priv->inhibit_lid_switch_taken) { -+ g_debug ("already inhibited lid-switch"); -+ return; -+ } -+ g_debug ("Adding lid switch system inhibitor"); -+ manager->priv->inhibit_lid_switch_taken = TRUE; -+ -+ params = g_variant_new ("(ssss)", -+ "handle-lid-switch", -+ g_get_user_name (), -+ "Multiple displays attached", -+ "block"); -+ g_dbus_proxy_call_with_unix_fd_list (manager->priv->logind_proxy, -+ "Inhibit", -+ params, -+ 0, -+ G_MAXINT, -+ NULL, -+ NULL, -+ inhibit_lid_switch_done, -+ manager); -+} -+ -+static void -+uninhibit_lid_switch (GsdPowerManager *manager) -+{ -+ if (manager->priv->inhibit_lid_switch_fd == -1) { -+ g_debug ("no lid-switch inhibitor"); -+ return; -+ } -+ g_debug ("Removing lid switch system inhibitor"); -+ close (manager->priv->inhibit_lid_switch_fd); -+ manager->priv->inhibit_lid_switch_fd = -1; -+ manager->priv->inhibit_lid_switch_taken = FALSE; -+} -+ -+static void -+inhibit_suspend_done (GObject *source, -+ GAsyncResult *result, -+ gpointer user_data) -+{ -+ GDBusProxy *proxy = G_DBUS_PROXY (source); -+ GsdPowerManager *manager = GSD_POWER_MANAGER (user_data); -+ GError *error = NULL; -+ GVariant *res; -+ GUnixFDList *fd_list = NULL; -+ gint idx; -+ -+ res = g_dbus_proxy_call_with_unix_fd_list_finish (proxy, &fd_list, result, &error); -+ if (res == NULL) { -+ g_warning ("Unable to inhibit suspend: %s", error->message); -+ g_error_free (error); -+ } else { -+ g_variant_get (res, "(h)", &idx); -+ manager->priv->inhibit_suspend_fd = g_unix_fd_list_get (fd_list, idx, &error); -+ if (manager->priv->inhibit_suspend_fd == -1) { -+ g_warning ("Failed to receive system inhibitor fd: %s", error->message); -+ g_error_free (error); -+ } -+ g_debug ("System inhibitor fd is %d", manager->priv->inhibit_suspend_fd); -+ g_object_unref (fd_list); -+ g_variant_unref (res); -+ } -+} -+ -+/* We take a delay inhibitor here, which causes logind to send a -+ * PrepareToSleep signal, which gives us a chance to lock the screen -+ * and do some other preparations. -+ */ -+static void -+inhibit_suspend (GsdPowerManager *manager) -+{ -+ if (manager->priv->inhibit_suspend_taken) { -+ g_debug ("already inhibited lid-switch"); -+ return; -+ } -+ g_debug ("Adding suspend delay inhibitor"); -+ manager->priv->inhibit_suspend_taken = TRUE; -+ g_dbus_proxy_call_with_unix_fd_list (manager->priv->logind_proxy, -+ "Inhibit", -+ g_variant_new ("(ssss)", -+ "sleep", -+ g_get_user_name (), -+ "GNOME needs to lock the screen", -+ "delay"), -+ 0, -+ G_MAXINT, -+ NULL, -+ NULL, -+ inhibit_suspend_done, -+ manager); -+} -+ -+static void -+uninhibit_suspend (GsdPowerManager *manager) -+{ -+ if (manager->priv->inhibit_suspend_fd == -1) { -+ g_debug ("no suspend delay inhibitor"); -+ return; -+ } -+ g_debug ("Removing suspend delay inhibitor"); -+ close (manager->priv->inhibit_suspend_fd); -+ manager->priv->inhibit_suspend_fd = -1; -+ manager->priv->inhibit_suspend_taken = FALSE; -+} -+ -+static gboolean -+randr_output_is_on (GnomeRROutput *output) -+{ -+ GnomeRRCrtc *crtc; -+ -+ crtc = gnome_rr_output_get_crtc (output); -+ if (!crtc) -+ return FALSE; -+ return gnome_rr_crtc_get_current_mode (crtc) != NULL; -+} -+ -+static gboolean -+external_monitor_is_connected (GnomeRRScreen *screen) -+{ -+ GnomeRROutput **outputs; -+ guint i; -+ -+ if (g_file_test ("/tmp/external_connected", G_FILE_TEST_EXISTS)) -+ return TRUE; -+ -+ /* see if we have more than one screen plugged in */ -+ outputs = gnome_rr_screen_list_outputs (screen); -+ for (i = 0; outputs[i] != NULL; i++) { -+ if (randr_output_is_on (outputs[i]) && -+ !gnome_rr_output_is_laptop (outputs[i])) -+ return TRUE; -+ } -+ -+ return FALSE; -+} -+ -+static void -+on_randr_event (GnomeRRScreen *screen, gpointer user_data) -+{ -+ GsdPowerManager *manager = GSD_POWER_MANAGER (user_data); -+ -+ /* when a second monitor is plugged in, we take the -+ * handle-lid-switch inhibitor lock of logind to prevent -+ * it from suspending. -+ * -+ * Uninhibiting is done in the inhibit_lid_switch_timer, -+ * since we want to give users a few seconds when unplugging -+ * and replugging an external monitor, not suspend right away. -+ */ -+ if (external_monitor_is_connected (screen) && -+ !g_settings_get_boolean (manager->priv->settings, -+ "lid-close-suspend-with-external-monitor")) { -+ inhibit_lid_switch (manager); -+ setup_inhibit_lid_switch_timer (manager); -+ } -+ else { -+ restart_inhibit_lid_switch_timer (manager); -+ } -+} -+ -+static gboolean -+screen_lock_done_cb (gpointer data) -+{ -+ GsdPowerManager *manager = data; -+ -+ /* lift the delay inhibit, so logind can proceed */ -+ uninhibit_suspend (manager); -+ -+ return FALSE; -+} -+ -+static void -+handle_suspend_actions (GsdPowerManager *manager) -+{ -+ gboolean ret; -+ GError *error = NULL; -+ -+ /* ensure we turn the panel back on after resume */ -+ ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen, -+ GNOME_RR_DPMS_ON, -+ &error); -+ if (!ret) { -+ g_warning ("failed to turn the panel on after resume: %s", -+ error->message); -+ g_error_free (error); -+ } -+ -+ lock_screensaver (manager, screen_lock_done_cb); -+} -+ -+static void -+handle_resume_actions (GsdPowerManager *manager) -+{ -+ gboolean ret; -+ GError *error = NULL; -+ -+ /* this displays the unlock dialogue so the user doesn't have -+ * to move the mouse or press any key before the window comes up */ -+ g_dbus_connection_call (manager->priv->connection, -+ GS_DBUS_NAME, -+ GS_DBUS_PATH, -+ GS_DBUS_INTERFACE, -+ "SimulateUserActivity", -+ NULL, NULL, -+ G_DBUS_CALL_FLAGS_NONE, -1, -+ NULL, NULL, NULL); -+ -+ /* close existing notifications on resume, the system power -+ * state is probably different now */ -+ notify_close_if_showing (manager->priv->notification_low); -+ notify_close_if_showing (manager->priv->notification_discharging); -+ -+ /* ensure we turn the panel back on after resume */ -+ ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen, -+ GNOME_RR_DPMS_ON, -+ &error); -+ if (!ret) { -+ g_warning ("failed to turn the panel on after resume: %s", -+ error->message); -+ g_error_free (error); -+ } -+ -+ /* set up the delay again */ -+ inhibit_suspend (manager); -+} -+ -+static void -+logind_proxy_signal_cb (GDBusProxy *proxy, -+ const gchar *sender_name, -+ const gchar *signal_name, -+ GVariant *parameters, -+ gpointer user_data) -+{ -+ GsdPowerManager *manager = GSD_POWER_MANAGER (user_data); -+ gboolean is_about_to_suspend; -+ -+ if (g_strcmp0 (signal_name, "PrepareForSleep") != 0) -+ return; -+ g_variant_get (parameters, "(b)", &is_about_to_suspend); -+ if (is_about_to_suspend) { -+ handle_suspend_actions (manager); -+ } else { -+ handle_resume_actions (manager); -+ } -+} -+ - gboolean - gsd_power_manager_start (GsdPowerManager *manager, - GError **error) -@@ -3764,6 +3973,25 @@ gsd_power_manager_start (GsdPowerManager *manager, - g_debug ("Starting power manager"); - gnome_settings_profile_start (NULL); - -+ manager->priv->logind_proxy = -+ g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, -+ 0, -+ NULL, -+ SYSTEMD_DBUS_NAME, -+ SYSTEMD_DBUS_PATH, -+ SYSTEMD_DBUS_INTERFACE, -+ NULL, -+ error); -+ if (manager->priv->logind_proxy == NULL) { -+ g_warning ("no systemd support"); -+ return FALSE; -+ } -+ g_signal_connect (manager->priv->logind_proxy, "g-signal", -+ G_CALLBACK (logind_proxy_signal_cb), -+ manager); -+ /* Set up a delay inhibitor to be informed about suspend attempts */ -+ inhibit_suspend (manager); -+ - /* track the active session */ - manager->priv->session = gnome_settings_session_new (); - g_signal_connect (manager->priv->session, "notify::state", -@@ -3778,10 +4006,6 @@ gsd_power_manager_start (GsdPowerManager *manager, - G_CALLBACK (engine_settings_key_changed_cb), manager); - manager->priv->settings_screensaver = g_settings_new ("org.gnome.desktop.screensaver"); - manager->priv->up_client = up_client_new (); -- g_signal_connect (manager->priv->up_client, "notify-sleep", -- G_CALLBACK (upower_notify_sleep_cb), manager); -- g_signal_connect (manager->priv->up_client, "notify-resume", -- G_CALLBACK (upower_notify_resume_cb), manager); - manager->priv->lid_is_closed = up_client_get_lid_is_closed (manager->priv->up_client); - g_signal_connect (manager->priv->up_client, "device-added", - G_CALLBACK (engine_device_added_cb), manager); -@@ -3895,6 +4119,9 @@ gsd_power_manager_start (GsdPowerManager *manager, - G_CALLBACK (idle_idletime_reset_cb), manager); - g_signal_connect (manager->priv->idletime, "alarm-expired", - G_CALLBACK (idle_idletime_alarm_expired_cb), manager); -+ g_signal_connect (manager->priv->x11_screen, "changed", G_CALLBACK (on_randr_event), manager); -+ /* set up initial state */ -+ on_randr_event (manager->priv->x11_screen, manager); - - /* ensure the default dpms timeouts are cleared */ - ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen, -@@ -3927,6 +4154,11 @@ gsd_power_manager_stop (GsdPowerManager *manager) - { - g_debug ("Stopping power manager"); - -+ if (manager->priv->inhibit_lid_switch_timer_id != 0) { -+ g_source_remove (manager->priv->inhibit_lid_switch_timer_id); -+ manager->priv->inhibit_lid_switch_timer_id = 0; -+ } -+ - if (manager->priv->bus_cancellable != NULL) { - g_cancellable_cancel (manager->priv->bus_cancellable); - g_object_unref (manager->priv->bus_cancellable); -@@ -3938,8 +4170,6 @@ gsd_power_manager_stop (GsdPowerManager *manager) - manager->priv->introspection_data = NULL; - } - -- kill_lid_close_safety_timer (manager); -- - g_signal_handlers_disconnect_by_data (manager->priv->up_client, manager); - - g_clear_object (&manager->priv->connection); -@@ -3947,6 +4177,19 @@ gsd_power_manager_stop (GsdPowerManager *manager) - g_clear_object (&manager->priv->settings); - g_clear_object (&manager->priv->settings_screensaver); - g_clear_object (&manager->priv->up_client); -+ -+ if (manager->priv->inhibit_lid_switch_fd != -1) { -+ close (manager->priv->inhibit_lid_switch_fd); -+ manager->priv->inhibit_lid_switch_fd = -1; -+ manager->priv->inhibit_lid_switch_taken = FALSE; -+ } -+ if (manager->priv->inhibit_suspend_fd != -1) { -+ close (manager->priv->inhibit_suspend_fd); -+ manager->priv->inhibit_suspend_fd = -1; -+ manager->priv->inhibit_suspend_taken = FALSE; -+ } -+ -+ g_clear_object (&manager->priv->logind_proxy); - g_clear_object (&manager->priv->x11_screen); - - g_ptr_array_unref (manager->priv->devices_array); -@@ -3980,6 +4223,8 @@ static void - gsd_power_manager_init (GsdPowerManager *manager) - { - manager->priv = GSD_POWER_MANAGER_GET_PRIVATE (manager); -+ manager->priv->inhibit_lid_switch_fd = -1; -+ manager->priv->inhibit_suspend_fd = -1; - } - - static void --- -1.8.0 - diff --git a/community/gnome-settings-daemon-updates/PKGBUILD b/community/gnome-settings-daemon-updates/PKGBUILD index e4125e240..ba4a392af 100644 --- a/community/gnome-settings-daemon-updates/PKGBUILD +++ b/community/gnome-settings-daemon-updates/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 82410 2013-01-16 23:40:08Z jconder $ +# $Id: PKGBUILD 88701 2013-04-21 22:24:09Z heftig $ # Maintainer: Jonathan Conder _pkgname=gnome-settings-daemon pkgname=$_pkgname-updates -pkgver=3.6.4 -pkgrel=2 +pkgver=3.8.1 +pkgrel=1 pkgdesc="Updates plugin for the GNOME Settings daemon" arch=('i686' 'x86_64') license=('GPL') @@ -14,28 +14,20 @@ options=('!emptydirs' '!libtool') install=$_pkgname.install url="http://www.gnome.org" source=("http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver%.*}/$_pkgname-$pkgver.tar.xz" - '0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch' 'arch.patch') -sha256sums=('3db993f2dbabc0c9d06a309bb12c9a7104b9cdda414ac4b1c301f5114a441c15' - 'dbea64c93db308cbcae52cf0c512986c6f07a0bd5023b0641255416af863011e' +sha256sums=('367a770ec7affff3c85a43bc39ced5a02a1b1761780d954329f6b21c0f2efcee' '32f18a02698bb24aa8ae293eb7bf74a8261e3ce2c5149d259a87bd14500089ea') build() { cd "$srcdir/$_pkgname-$pkgver" - patch -Np1 -i "$srcdir/0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch" patch -Np1 -i "$srcdir/arch.patch" - aclocal - autoconf - automake --add-missing ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --libexecdir=/usr/lib/gnome-settings-daemon \ - --disable-static \ - --enable-systemd \ - --disable-ibus + --disable-static #https://bugzilla.gnome.org/show_bug.cgi?id=656231 sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool diff --git a/community/gnote/PKGBUILD b/community/gnote/PKGBUILD index 761cdf404..90582160b 100644 --- a/community/gnote/PKGBUILD +++ b/community/gnote/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 82837 2013-01-24 20:04:23Z ioni $ +# $Id: PKGBUILD 88699 2013-04-21 22:24:06Z heftig $ # Maintainer: Ionut Biru # Contributor: uastasi pkgname=gnote -pkgver=3.6.2 +pkgver=3.8.0 pkgrel=1 pkgdesc="A note taking application." arch=('i686' 'x86_64') @@ -13,7 +13,7 @@ makedepends=('intltool' 'itstool' 'boost') options=('!libtool') install=gnote.install source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('38f3b069874658f281445e04b8376d946580e4a5e39620f7e30fdd8216d46c1e') +sha256sums=('603e2cc8782f910a5b4fdfd3588d955d59f0f4ddcd5685d1f2feadb955e0e9e6') build() { cd $pkgname-$pkgver diff --git a/community/gtksourceviewmm/PKGBUILD b/community/gtksourceviewmm/PKGBUILD index 208e12cbb..1b7d00a51 100644 --- a/community/gtksourceviewmm/PKGBUILD +++ b/community/gtksourceviewmm/PKGBUILD @@ -1,10 +1,10 @@ -#$Id: PKGBUILD 82071 2013-01-07 09:40:20Z arodseth $ +#$Id: PKGBUILD 88691 2013-04-21 22:17:11Z heftig $ # Maintainer: Alexander Rødseth # Contributor: Ionut Biru pkgname=gtksourceviewmm pkgver=3.2.0 -pkgrel=2 +pkgrel=4 pkgdesc='C++ bindings for the gtksourceview library' arch=('x86_64' 'i686') url='http://projects.gnome.org/gtksourceviewmm/' diff --git a/community/gtranslator/PKGBUILD b/community/gtranslator/PKGBUILD index 82881fd7c..6c4e2d718 100644 --- a/community/gtranslator/PKGBUILD +++ b/community/gtranslator/PKGBUILD @@ -1,31 +1,31 @@ -# $Id: PKGBUILD 87242 2013-03-28 21:28:56Z bgyorgy $ +# $Id: PKGBUILD 88692 2013-04-21 22:17:13Z heftig $ # Maintainer: Jaroslav Lichtblau +# Maintainer: Alexander Rødseth # Contributor: Hugo Doria # Contributor: Christer Solskogen (solskogen@carebears.mine.nu) pkgname=gtranslator pkgver=2.91.6 -pkgrel=3 -pkgdesc="An enhanced gettext po file editor for the GNOME" -arch=('i686' 'x86_64') -url="http://projects.gnome.org/gtranslator/" +pkgrel=4 +pkgdesc='Enhanced gettext po file editor for the GNOME' +arch=('x86_64' 'i686') +url='http://projects.gnome.org/gtranslator/' license=('GPL') depends=('desktop-file-utils' 'gdl' 'gettext' 'gtksourceview3' 'gtkspell3' 'iso-codes' 'libgda' 'libpeas' 'gsettings-desktop-schemas' 'hicolor-icon-theme' 'dconf') makedepends=('intltool' 'itstool' 'gnome-doc-utils' 'gucharmap' 'json-glib' 'gnome-common' 'yelp-tools') optdepends=('gucharmap: for charmap plugin' 'json-glib: for open-tran plugin') options=('!libtool') -install=$pkgname.install -changelog=$pkgname.changelog -source=(http://ftp.acc.umu.se/pub/GNOME/sources/$pkgname/2.91/$pkgname-$pkgver.tar.xz - gtkspell3-port.patch) +install="$pkgname.install" +source=("http://ftp.acc.umu.se/pub/GNOME/sources/$pkgname/2.91/$pkgname-$pkgver.tar.xz" + 'gtkspell3-port.patch') sha256sums=('a1fd4b17b1f32cc7223a31d34e34f95b20acc7b5a23768351a34ff0b7a4bcdf6' '29afb55c692869cbd47d0181ddd93acdd53f5b236ebabd9a96a983da66d4cb9d') build() { - cd ${srcdir}/${pkgname}-${pkgver} + cd "$srcdir/$pkgname-$pkgver" - # Port to the new gtkspell3 + # port to the new gtkspell3 patch -Np1 -i "$srcdir/gtkspell3-port.patch" autoreconf -fi @@ -34,7 +34,9 @@ build() { } package() { - cd ${srcdir}/${pkgname}-${pkgver} + cd "$srcdir/$pkgname-$pkgver" - make DESTDIR=${pkgdir} install + make DESTDIR="$pkgdir" install } + +# vim:set ts=2 sw=2 et: diff --git a/community/gwibber/PKGBUILD b/community/gwibber/PKGBUILD index 378218f5d..6bf243222 100644 --- a/community/gwibber/PKGBUILD +++ b/community/gwibber/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 87240 2013-03-28 21:28:09Z bgyorgy $ +# $Id: PKGBUILD 88679 2013-04-21 22:16:47Z heftig $ # Maintainer: Balló György pkgname=gwibber pkgver=3.6.0 -pkgrel=3 +pkgrel=4 pkgdesc="Microblogging client for GNOME, which supports Facebook, Identi.ca, Twitter, Flickr, Foursquare, Sina and Sohu" arch=('i686' 'x86_64') url="http://gwibber.com/" license=('GPL') -depends=('libgee' 'account-plugins' 'libnotify' 'libsoup' 'dee' 'json-glib' 'gtkspell3' 'python2-dbus' 'python2-gobject' 'python2-gobject2' 'python2-httplib2' 'python2-oauth' 'python2-imaging' 'python2-xdg' 'dconf') +depends=('libgee06' 'account-plugins' 'libnotify' 'libsoup' 'dee' 'json-glib' 'gtkspell3' 'python2-dbus' 'python2-gobject' 'python2-gobject2' 'python2-httplib2' 'python2-oauth' 'python2-imaging' 'python2-xdg' 'dconf') makedepends=('intltool' 'vala') options=('!libtool') install=$pkgname.install diff --git a/community/ktoblzcheck/PKGBUILD b/community/ktoblzcheck/PKGBUILD index 22fa63751..f898512e5 100644 --- a/community/ktoblzcheck/PKGBUILD +++ b/community/ktoblzcheck/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 80490 2012-11-22 19:42:25Z spupykin $ +# $Id: PKGBUILD 88778 2013-04-22 10:14:34Z spupykin $ # Maintainer: Sergej Pupykin # Contributor: Philipp Sandhaus pkgname=ktoblzcheck -pkgver=1.40 +pkgver=1.41 pkgrel=1 pkgdesc="A library to check account numbers and bank codes of German banks" arch=(i686 x86_64) @@ -14,7 +14,7 @@ depends=('gcc-libs' 'python') optdepends=('perl') source=(http://downloads.sourceforge.net/sourceforge/ktoblzcheck/ktoblzcheck-$pkgver.tar.gz ktoblzcheck-python3.patch) -md5sums=('fe29ec3ef8b48adf0302fd9d2607580b' +md5sums=('48f6d0086d780d1c101b17b5b63706f3' 'a81a697bb3aaeffb7fac0ad7d9166e3f') build() { diff --git a/community/metacity/PKGBUILD b/community/metacity/PKGBUILD index 4919a27eb..5955d5b88 100644 --- a/community/metacity/PKGBUILD +++ b/community/metacity/PKGBUILD @@ -1,30 +1,46 @@ -# $Id: PKGBUILD 87887 2013-04-08 14:38:04Z heftig $ -# Maintainer: Jan de Groot +# $Id: PKGBUILD 88686 2013-04-21 22:17:01Z heftig $ +# Maintainer: Balló György +# Contributor: Jan de Groot pkgname=metacity pkgver=2.34.13 -pkgrel=1 -pkgdesc="A window manager for GNOME" -arch=(i686 x86_64) +pkgrel=4 +pkgdesc="Legacy GNOME window manager" +arch=('i686' 'x86_64') license=('GPL') -depends=('dconf' 'gtk2' 'gsettings-desktop-schemas' 'libcanberra' 'libgtop' 'libsm' 'startup-notification' 'zenity') -makedepends=('intltool' 'yelp-tools') -url="http://www.gnome.org" -groups=('gnome') -options=('!libtool' '!emptydirs') +depends=('dconf' 'libcanberra' 'libgtop' 'gsettings-desktop-schemas' 'gtk2' 'startup-notification' 'zenity') +makedepends=('intltool' 'itstool') +url="https://live.gnome.org/Metacity" +options=('!libtool') install=metacity.install source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz - fix_compositing_startup.patch) + fix_compositing_startup.patch + fix_force_quit.patch + fix_shadows.patch + enable_compositing.patch) sha256sums=('8cf4dbf0da0a6f36357ce7db7f829ec685908a7792453c662fb8184572b91075' - '5094a0ffe3eb8289ed752829877c2e1b743eddf938ad3fc92fb4574b42765ae2') + '5094a0ffe3eb8289ed752829877c2e1b743eddf938ad3fc92fb4574b42765ae2' + '917760ac3375894ebb4052dfc7c8dff1ac556fb81033d7a7caf02123ceede50d' + 'a0981477e9b3fd108fd03b7637bfd1f17a1f6cb13ec703d86b424b55076096f3' + 'e53c1c20e19cd3d94d05d08045c7a9a373ce52051928ccc69bf3068081f30f9a') build() { cd "$pkgname-$pkgver" - patch -Np1 -i "${srcdir}/fix_compositing_startup.patch" - ./configure --prefix=/usr --sysconfdir=/etc \ - --libexecdir=/usr/lib/metacity \ - --localstatedir=/var --disable-static \ - --disable-schemas-compile + + # https://bugzilla.gnome.org/show_bug.cgi?id=658036 + patch -Np1 -i "$srcdir/fix_compositing_startup.patch" + + # https://bugzilla.gnome.org/show_bug.cgi?id=687938 + patch -Np1 -i "$srcdir/fix_force_quit.patch" + + # https://bugzilla.gnome.org/show_bug.cgi?id=648340 + patch -Np1 -i "$srcdir/fix_shadows.patch" + + # Enable compositing by default (required for the desktop rendering feature of nautilus) + patch -Np1 -i "$srcdir/enable_compositing.patch" + + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$pkgname \ + --disable-static --disable-schemas-compile make } diff --git a/community/metacity/enable_compositing.patch b/community/metacity/enable_compositing.patch new file mode 100644 index 000000000..3c5f09666 --- /dev/null +++ b/community/metacity/enable_compositing.patch @@ -0,0 +1,12 @@ +diff -Naur metacity-2.34.13.orig/src/org.gnome.metacity.gschema.xml.in metacity-2.34.13/src/org.gnome.metacity.gschema.xml.in +--- metacity-2.34.13.orig/src/org.gnome.metacity.gschema.xml.in 2012-02-15 18:31:44.000000000 +0100 ++++ metacity-2.34.13/src/org.gnome.metacity.gschema.xml.in 2013-04-10 20:14:39.837033219 +0200 +@@ -3,7 +3,7 @@ + + +- false ++ true + <_summary>Compositing Manager + <_description> + Determines whether Metacity is a compositing manager. diff --git a/community/metacity/fix_force_quit.patch b/community/metacity/fix_force_quit.patch new file mode 100644 index 000000000..020f427c4 --- /dev/null +++ b/community/metacity/fix_force_quit.patch @@ -0,0 +1,222 @@ +diff -Naur metacity-2.34.13.orig/src/core/delete.c metacity-2.34.13/src/core/delete.c +--- metacity-2.34.13.orig/src/core/delete.c 2011-11-10 15:14:34.000000000 +0100 ++++ metacity-2.34.13/src/core/delete.c 2012-11-08 21:36:48.373976906 +0100 +@@ -90,23 +90,41 @@ + return; + } + +- window_title = g_locale_from_utf8 (window->title, -1, NULL, NULL, NULL); ++ /* This is to get a better string if the title isn't representable ++ * in the locale encoding; actual conversion to UTF-8 is done inside ++ * meta_show_dialog */ ++ ++ if (window->title && window->title[0]) ++ { ++ tmp = g_locale_from_utf8 (window->title, -1, NULL, NULL, NULL); ++ if (tmp == NULL) ++ window_title = NULL; ++ else ++ window_title = window->title; ++ g_free (tmp); ++ } ++ else ++ { ++ window_title = NULL; ++ } + + /* Translators: %s is a window title */ +- tmp = g_strdup_printf (_("%s is not responding."), +- window_title); ++ if (window_title) ++ tmp = g_markup_printf_escaped (_("%s is not responding."), ++ window_title); ++ else ++ tmp = g_strdup (_("Application is not responding.")); ++ + window_content = g_strdup_printf ( + "%s\n\n%s", + tmp, + _("You may choose to wait a short while for it to " + "continue or force the application to quit entirely.")); + +- g_free (window_title); +- + dialog_pid = + meta_show_dialog ("--question", +- window_content, 0, +- window->screen->number, ++ window_content, NULL, ++ window->screen->screen_name, + _("_Wait"), _("_Force Quit"), window->xwindow, + NULL, NULL); + +diff -Naur metacity-2.34.13.orig/src/core/session.c metacity-2.34.13/src/core/session.c +--- metacity-2.34.13.orig/src/core/session.c 2011-11-10 15:14:34.000000000 +0100 ++++ metacity-2.34.13/src/core/session.c 2012-11-08 21:35:56.896216322 +0100 +@@ -1809,7 +1809,7 @@ + "and will have to be restarted manually next time " + "you log in."), + "240", +- meta_screen_get_screen_number (meta_get_display()->active_screen), ++ meta_get_display()->active_screen->screen_name, + NULL, NULL, + None, + columns, +diff -Naur metacity-2.34.13.orig/src/core/util.c metacity-2.34.13/src/core/util.c +--- metacity-2.34.13.orig/src/core/util.c 2011-11-10 15:14:34.000000000 +0100 ++++ metacity-2.34.13/src/core/util.c 2012-11-08 21:36:41.373828115 +0100 +@@ -538,11 +538,30 @@ + } + } + ++/* Command line arguments are passed in the locale encoding; in almost ++ * all cases, we'd hope that is UTF-8 and no conversion is necessary. ++ * If it's not UTF-8, then it's possible that the message isn't ++ * representable in the locale encoding. ++ */ ++static void ++append_argument (GPtrArray *args, ++ const char *arg) ++{ ++ char *locale_arg = g_locale_from_utf8 (arg, -1, NULL, NULL, NULL); ++ ++ /* This is cheesy, but it's better to have a few ???'s in the dialog ++ * for an unresponsive application than no dialog at all appear */ ++ if (!locale_arg) ++ locale_arg = g_strdup ("???"); ++ ++ g_ptr_array_add (args, locale_arg); ++} ++ + GPid + meta_show_dialog (const char *type, + const char *message, + const char *timeout, +- const gint screen_number, ++ const char *display, + const char *ok_text, + const char *cancel_text, + const int transient_for, +@@ -550,61 +569,58 @@ + GSList *entries) + { + GError *error = NULL; +- char *screen_number_text = g_strdup_printf("%d", screen_number); + GSList *tmp; +- int i=0; + GPid child_pid; +- const char **argvl = g_malloc(sizeof (char*) * +- (17 + +- g_slist_length (columns)*2 + +- g_slist_length (entries))); +- +- argvl[i++] = "zenity"; +- argvl[i++] = type; +- argvl[i++] = "--screen"; +- argvl[i++] = screen_number_text; +- argvl[i++] = "--class"; +- argvl[i++] = "metacity-dialog"; +- argvl[i++] = "--title"; ++ GPtrArray *args; ++ ++ args = g_ptr_array_new (); ++ ++ append_argument (args, "zenity"); ++ append_argument (args, type); ++ append_argument (args, "--display"); ++ append_argument (args, display); ++ append_argument (args, "--class"); ++ append_argument (args, "metaicty-dialog"); ++ append_argument (args, "--title"); + /* Translators: This is the title used on dialog boxes */ +- argvl[i++] = _("Metacity"); +- argvl[i++] = "--text"; +- argvl[i++] = message; +- ++ append_argument (args, _("Metacity")); ++ append_argument (args, "--text"); ++ append_argument (args, message); ++ + if (timeout) + { +- argvl[i++] = "--timeout"; +- argvl[i++] = timeout; ++ append_argument (args, "--timeout"); ++ append_argument (args, timeout); + } + + if (ok_text) + { +- argvl[i++] = "--ok-label"; +- argvl[i++] = ok_text; ++ append_argument (args, "--ok-label"); ++ append_argument (args, ok_text); + } + + if (cancel_text) + { +- argvl[i++] = "--cancel-label"; +- argvl[i++] = cancel_text; ++ append_argument (args, "--cancel-label"); ++ append_argument (args, cancel_text); + } +- ++ + tmp = columns; + while (tmp) + { +- argvl[i++] = "--column"; +- argvl[i++] = tmp->data; ++ append_argument (args, "--column"); ++ append_argument (args, tmp->data); + tmp = tmp->next; + } + + tmp = entries; + while (tmp) + { +- argvl[i++] = tmp->data; ++ append_argument (args, tmp->data); + tmp = tmp->next; + } +- +- argvl[i] = NULL; ++ ++ g_ptr_array_add (args, NULL); /* NULL-terminate */ + + if (transient_for) + { +@@ -615,7 +631,7 @@ + + g_spawn_async ( + "/", +- (gchar**) argvl, /* ugh */ ++ (gchar**) args->pdata, + NULL, + G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD, + NULL, NULL, +@@ -626,8 +642,7 @@ + if (transient_for) + unsetenv ("WINDOWID"); + +- g_free (argvl); +- g_free (screen_number_text); ++ g_ptr_array_free (args, TRUE); + + if (error) + { +diff -Naur metacity-2.34.13.orig/src/include/util.h metacity-2.34.13/src/include/util.h +--- metacity-2.34.13.orig/src/include/util.h 2011-11-10 15:14:34.000000000 +0100 ++++ metacity-2.34.13/src/include/util.h 2012-11-08 21:36:27.206860608 +0100 +@@ -99,9 +99,9 @@ + void meta_free_gslist_and_elements (GSList *list_to_deep_free); + + GPid meta_show_dialog (const char *type, +- const char *title, + const char *message, +- gint timeout, ++ const char *timeout, ++ const char *display, + const char *ok_text, + const char *cancel_text, + const int transient_for, diff --git a/community/metacity/fix_shadows.patch b/community/metacity/fix_shadows.patch new file mode 100644 index 000000000..8d4bf9939 --- /dev/null +++ b/community/metacity/fix_shadows.patch @@ -0,0 +1,39 @@ +diff -Naur metacity-2.34.13.orig/src/compositor/compositor-xrender.c metacity-2.34.13/src/compositor/compositor-xrender.c +--- metacity-2.34.13.orig/src/compositor/compositor-xrender.c 2011-11-10 15:14:34.000000000 +0100 ++++ metacity-2.34.13/src/compositor/compositor-xrender.c 2012-11-09 13:51:42.492411570 +0100 +@@ -905,35 +905,6 @@ + } + } + +- /* Never put a shadow around shaped windows */ +- if (cw->shaped) { +- meta_verbose ("Window has no shadow as it is shaped\n"); +- return FALSE; +- } +- +- /* Don't put shadow around DND icon windows */ +- if (cw->type == META_COMP_WINDOW_DND || +- cw->type == META_COMP_WINDOW_DESKTOP) { +- meta_verbose ("Window has no shadow as it is DND or Desktop\n"); +- return FALSE; +- } +- +- if (cw->mode != WINDOW_ARGB) { +- meta_verbose ("Window has shadow as it is not ARGB\n"); +- return TRUE; +- } +- +- if (cw->type == META_COMP_WINDOW_MENU || +- cw->type == META_COMP_WINDOW_DROP_DOWN_MENU) { +- meta_verbose ("Window has shadow as it is a menu\n"); +- return TRUE; +- } +- +- if (cw->type == META_COMP_WINDOW_TOOLTIP) { +- meta_verbose ("Window has shadow as it is a tooltip\n"); +- return TRUE; +- } +- + meta_verbose ("Window has no shadow as it fell through\n"); + return FALSE; + } diff --git a/community/muffin/PKGBUILD b/community/muffin/PKGBUILD index e77f3c76d..8732424f9 100644 --- a/community/muffin/PKGBUILD +++ b/community/muffin/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 85924 2013-03-09 00:51:47Z faidoc $ +# $Id: PKGBUILD 88697 2013-04-21 22:24:03Z heftig $ # Contributor: Adam Hani Schakaki # Contributor: Ner0 pkgname=muffin -pkgver=1.7.2 +pkgver=1.7.3 pkgrel=1 pkgdesc="Cinnamon window manager based on Mutter" arch=('i686' 'x86_64') @@ -11,20 +11,16 @@ url="https://github.com/linuxmint/muffin" license=('GPL') depends=('libsm' 'clutter' 'gobject-introspection' 'gsettings-desktop-schemas' \ 'libcanberra' 'startup-notification' 'zenity' 'dconf') -makedepends=('intltool' 'gnome-doc-utils') -provides=('muffin-wm') -conflicts=('muffin-wm') -replaces=('muffin-wm') +makedepends=('intltool' 'gnome-doc-utils' 'gnome-common') options=('!libtool' '!emptydirs') install=$pkgname.install source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/muffin/tarball/$pkgver") -md5sums=('c39cd212959c7de8f834abe9e3fee8da') +md5sums=('30e329da6af10e825dace490f13e445f') build() { cd linuxmint-muffin-* - autoreconf -vfi - PYTHON=python2 ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/muffin \ + PYTHON=python2 ./autogen.sh --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/muffin \ --localstatedir=/var --disable-static --disable-schemas-compile make } diff --git a/community/nemiver/PKGBUILD b/community/nemiver/PKGBUILD index 8c6f3a4e7..1c36a5330 100644 --- a/community/nemiver/PKGBUILD +++ b/community/nemiver/PKGBUILD @@ -1,17 +1,16 @@ -# $Id: PKGBUILD 82907 2013-01-25 12:43:46Z arodseth $ +# $Id: PKGBUILD 88693 2013-04-21 22:17:15Z heftig $ # Maintainer: Alexander Rødseth # Contributor: jordz pkgname=nemiver pkgver=0.9.4 -pkgrel=1 +pkgrel=2 pkgdesc='C/C++ debugger for GNOME' arch=('x86_64' 'i686') license=('GPL') url='http://www.gnome.org/projects/nemiver/' -depends=('gdlmm' 'gdb' 'gtksourceviewmm' 'libgtop' 'vte3' 'ghex' 'dconf' 'gsettings-desktop-schemas' 'itstool') -makedepends=('boost' 'intltool' 'gnome-doc-utils') -install=nemiver.install +depends=('gdlmm' 'gdb' 'gtksourceviewmm' 'libgtop' 'vte3' 'ghex' 'dconf' 'gsettings-desktop-schemas') +makedepends=('boost' 'intltool' 'itstool') source=("http://ftp.acc.umu.se/pub/GNOME/sources/nemiver/0.9/$pkgname-$pkgver.tar.xz") options=('!libtool' '!emptydirs') sha256sums=('12cc5b6092ba720f2524f59928bee4d736e5e5ffeeffb6fd06f99695f17d683f') diff --git a/community/nemiver/nemiver.install b/community/nemiver/nemiver.install deleted file mode 100644 index f6a1886e7..000000000 --- a/community/nemiver/nemiver.install +++ /dev/null @@ -1,15 +0,0 @@ -post_upgrade() { - usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas - #update-desktop-database -q - #gtk-update-icon-cache -q -t -f usr/share/icons/hicolor -} - -post_install() { - post_upgrade -} - -post_remove() { - post_upgrade -} - -# vim:set ts=2 sw=2 et: diff --git a/community/nemo/PKGBUILD b/community/nemo/PKGBUILD index 778009bb6..f2b15964c 100644 --- a/community/nemo/PKGBUILD +++ b/community/nemo/PKGBUILD @@ -1,33 +1,39 @@ -# $Id: PKGBUILD 86851 2013-03-22 21:28:54Z faidoc $ +# $Id: PKGBUILD 88773 2013-04-22 09:44:29Z faidoc $ # Maintainer: Alexandre Filgueira # Contributor: Ner0 pkgname=nemo -pkgver=1.7.2 -pkgrel=1 +pkgver=1.7.3 +pkgrel=2 pkgdesc="Cinnamon file manager (Nautilus fork)" arch=('i686' 'x86_64') url="https://github.com/linuxmint/nemo" license=('GPL') depends=('libexif' 'gvfs' 'dconf' 'desktop-file-utils' 'exempi' 'python2' - 'gnome-desktop' 'gnome-icon-theme' 'libnotify' 'libtracker-sparql') + 'gnome-desktop' 'gnome-icon-theme' 'libnotify' 'libtracker-sparql' + 'cinnamon') makedepends=('gtk-doc' 'gobject-introspection' 'intltool' 'gnome-common') optdepends=('gksu: Open as Root') -provides=('nemo-fm') -replaces=('nemo-fm') -conflicts=('nemo-fm') options=('!emptydirs' '!libtool') install=nemo.install source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/nemo/tarball/$pkgver" - "use-terminal-config.patch") -md5sums=('809cf58f472a9e5de628a763d441b246' - '6cca080cc8fe3df7e725c0f8cd5fa485') + "tracker-0.16.patch" + "remove-desktop-background.patch") +md5sums=('04c021da543e2562b712107c2be9a8c2' + '9e170cc74eee901634b3367b06a209c6' + '700b595dfcf06e39f9dc3bdb7c81e086') build() { cd linuxmint-nemo-* - # Read the default terminal app from GSettings - patch -Np1 -i ../use-terminal-config.patch + # Python2 fix + sed -i 's/bin\/python/bin\/python2/g' files/usr/share/nemo/actions/myaction.py + + # https://github.com/linuxmint/nemo/pull/258 + patch -Np1 -i ../tracker-0.16.patch + + # https://github.com/linuxmint/nemo/pull/263 + patch -Np1 -i ../remove-desktop-background.patch ./autogen.sh --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var --disable-static \ @@ -43,7 +49,4 @@ package() { cd linuxmint-nemo-* make DESTDIR="$pkgdir/" install - - # Python2 fix - sed -i 's/bin\/python/bin\/python2/g' "${pkgdir}/usr/share/nemo/actions/myaction.py" } diff --git a/community/nemo/remove-desktop-background.patch b/community/nemo/remove-desktop-background.patch new file mode 100644 index 000000000..793d5650c --- /dev/null +++ b/community/nemo/remove-desktop-background.patch @@ -0,0 +1,964 @@ +From 5f82ebba474f6c1068a21f51ded2b0e26869ecaf Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Mon, 15 Apr 2013 18:44:35 -0400 +Subject: [PATCH 1/4] Don't render the background. Need to fix selected icon + style + +--- + src/nemo-desktop-icon-view.c | 18 +++--------------- + src/nemo-desktop-window.c | 15 ++++++++++++++- + 2 files changed, 17 insertions(+), 16 deletions(-) + +diff --git a/src/nemo-desktop-icon-view.c b/src/nemo-desktop-icon-view.c +index b903c5b..37cd8cb 100644 +--- a/src/nemo-desktop-icon-view.c ++++ b/src/nemo-desktop-icon-view.c +@@ -243,16 +243,6 @@ struct NemoDesktopIconViewDetails + static void + real_begin_loading (NemoView *object) + { +- NemoIconContainer *icon_container; +- NemoDesktopIconView *view; +- +- view = NEMO_DESKTOP_ICON_VIEW (object); +- +- icon_container = get_icon_container (view); +- if (view->details->background == NULL) { +- view->details->background = nemo_desktop_background_new (icon_container); +- } +- + NEMO_VIEW_CLASS (nemo_desktop_icon_view_parent_class)->begin_loading (object); + } + +@@ -298,11 +288,6 @@ struct NemoDesktopIconViewDetails + nemo_view_update_menus, + icon_view); + +- if (icon_view->details->background != NULL) { +- g_object_unref (icon_view->details->background); +- icon_view->details->background = NULL; +- } +- + G_OBJECT_CLASS (nemo_desktop_icon_view_parent_class)->dispose (object); + } + +@@ -652,6 +637,9 @@ struct NemoDesktopIconViewDetails + G_CALLBACK (nemo_view_update_menus), + desktop_icon_view); + ++ GdkRGBA transparent = { 0, 0, 0, 0 }; ++ gtk_widget_override_background_color (GTK_WIDGET (icon_container), GTK_STATE_FLAG_NORMAL, &transparent); ++ + have_cinnamon_settings = g_find_program_in_path ("cinnamon-settings") != NULL; + } + +diff --git a/src/nemo-desktop-window.c b/src/nemo-desktop-window.c +index 9c80c62..2d5c4e8 100644 +--- a/src/nemo-desktop-window.c ++++ b/src/nemo-desktop-window.c +@@ -97,6 +97,7 @@ struct NemoDesktopWindowDetails { + g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_DESKTOP_IS_HOME_DIR, + G_CALLBACK (nemo_desktop_window_update_directory), + window); ++ + } + + static void +@@ -189,6 +190,12 @@ struct NemoDesktopWindowDetails { + /* Chain up to realize our children */ + GTK_WIDGET_CLASS (nemo_desktop_window_parent_class)->map (widget); + gdk_window_lower (gtk_widget_get_window (widget)); ++ ++ GdkWindow *window; ++ GdkRGBA transparent = { 0, 0, 0, 0 }; ++ ++ window = gtk_widget_get_window (widget); ++ gdk_window_set_background_rgba (window, &transparent); + } + + static void +@@ -254,6 +261,7 @@ struct NemoDesktopWindowDetails { + { + NemoDesktopWindow *window; + NemoDesktopWindowDetails *details; ++ GdkVisual *visual; + + window = NEMO_DESKTOP_WINDOW (widget); + details = window->details; +@@ -261,7 +269,12 @@ struct NemoDesktopWindowDetails { + /* Make sure we get keyboard events */ + gtk_widget_set_events (widget, gtk_widget_get_events (widget) + | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK); +- ++ ++ visual = gdk_screen_get_rgba_visual (gtk_widget_get_screen (widget)); ++ if (visual) { ++ gtk_widget_set_visual (widget, visual); ++ } ++ + /* Do the work of realizing. */ + GTK_WIDGET_CLASS (nemo_desktop_window_parent_class)->realize (widget); + +-- +1.8.1.5 + + +From 6b013acb8f0ad855d042d0e8d51350c539a37c21 Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Mon, 15 Apr 2013 20:03:03 -0400 +Subject: [PATCH 2/4] Remove nemo-desktop-background, the desktop window makes + a transparent background and just uses the existing rendered background from + muffin/g-s-d + +--- + libnemo-private/Makefile.am | 2 - + libnemo-private/nemo-desktop-background.c | 578 ------------------------------ + libnemo-private/nemo-desktop-background.h | 65 ---- + src/nemo-desktop-icon-view.c | 26 +- + 4 files changed, 13 insertions(+), 658 deletions(-) + delete mode 100644 libnemo-private/nemo-desktop-background.c + delete mode 100644 libnemo-private/nemo-desktop-background.h + +diff --git a/libnemo-private/Makefile.am b/libnemo-private/Makefile.am +index 3b46318..5fd797c 100644 +--- a/libnemo-private/Makefile.am ++++ b/libnemo-private/Makefile.am +@@ -81,8 +81,6 @@ libnemo_private_la_SOURCES = \ + nemo-debug.h \ + nemo-default-file-icon.c \ + nemo-default-file-icon.h \ +- nemo-desktop-background.c \ +- nemo-desktop-background.h \ + nemo-desktop-directory-file.c \ + nemo-desktop-directory-file.h \ + nemo-desktop-directory.c \ +diff --git a/libnemo-private/nemo-desktop-background.c b/libnemo-private/nemo-desktop-background.c +deleted file mode 100644 +index f8dc979..0000000 +--- a/libnemo-private/nemo-desktop-background.c ++++ /dev/null +@@ -1,578 +0,0 @@ +-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +- +-/* +- * nemo-desktop-background.c: Helper object to handle desktop background +- * changes. +- * +- * Copyright (C) 2000 Eazel, Inc. +- * Copyright (C) 2010 Cosimo Cecchi +- * +- * 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 Street - Suite 500, +- * Boston, MA 02110-1335, USA. +- * +- * Authors: Darin Adler +- * Cosimo Cecchi +- */ +- +-#include +- +-#include "nemo-desktop-background.h" +- +-#include +-#include +- +-#include "nemo-global-preferences.h" +- +-#define GNOME_DESKTOP_USE_UNSTABLE_API +-#include +-#include +- +-#include +-#include +- +-static void init_fade (NemoDesktopBackground *self); +-static void free_fade (NemoDesktopBackground *self); +-static void queue_background_change (NemoDesktopBackground *self); +- +-static NemoDesktopBackground *singleton = NULL; +- +-G_DEFINE_TYPE (NemoDesktopBackground, nemo_desktop_background, G_TYPE_OBJECT); +- +-enum { +- PROP_WIDGET = 1, +- NUM_PROPERTIES, +-}; +- +-struct NemoDesktopBackgroundDetails { +- +- GtkWidget *widget; +- GnomeBG *bg; +- +- /* Realized data: */ +- cairo_surface_t *background_surface; +- GnomeBGCrossfade *fade; +- int background_entire_width; +- int background_entire_height; +- GdkColor default_color; +- +- /* Desktop screen size watcher */ +- gulong screen_size_handler; +- /* Desktop monitors configuration watcher */ +- gulong screen_monitors_handler; +- guint change_idle_id; +-}; +- +- +-static gboolean +-background_settings_change_event_cb (GSettings *settings, +- gpointer keys, +- gint n_keys, +- gpointer user_data); +- +- +-static void +-free_fade (NemoDesktopBackground *self) +-{ +- if (self->details->fade != NULL) { +- g_object_unref (self->details->fade); +- self->details->fade = NULL; +- } +-} +- +-static void +-free_background_surface (NemoDesktopBackground *self) +-{ +- cairo_surface_t *surface; +- +- surface = self->details->background_surface; +- if (surface != NULL) { +- cairo_surface_destroy (surface); +- self->details->background_surface = NULL; +- } +-} +- +-static void +-nemo_desktop_background_finalize (GObject *object) +-{ +- NemoDesktopBackground *self; +- +- self = NEMO_DESKTOP_BACKGROUND (object); +- +- g_signal_handlers_disconnect_by_func (gnome_background_preferences, +- background_settings_change_event_cb, +- self); +- +- free_background_surface (self); +- free_fade (self); +- +- g_clear_object (&self->details->bg); +- +- G_OBJECT_CLASS (nemo_desktop_background_parent_class)->finalize (object); +-} +- +-static void +-nemo_desktop_background_unrealize (NemoDesktopBackground *self) +-{ +- free_background_surface (self); +- +- self->details->background_entire_width = 0; +- self->details->background_entire_height = 0; +- self->details->default_color.red = 0xffff; +- self->details->default_color.green = 0xffff; +- self->details->default_color.blue = 0xffff; +-} +- +-static void +-nemo_desktop_background_set_image_uri (NemoDesktopBackground *self, +- const char *image_uri) +-{ +- char *filename; +- +- if (image_uri != NULL) { +- filename = g_filename_from_uri (image_uri, NULL, NULL); +- } +- else { +- filename = NULL; +- } +- +- gnome_bg_set_filename (self->details->bg, filename); +- +- g_free (filename); +-} +- +-static void +-init_fade (NemoDesktopBackground *self) +-{ +- GtkWidget *widget; +- gboolean do_fade; +- +- widget = self->details->widget; +- +- if (widget == NULL || !gtk_widget_get_realized (widget)) +- return; +- +- do_fade = g_settings_get_boolean (nemo_desktop_preferences, +- NEMO_PREFERENCES_DESKTOP_BACKGROUND_FADE); +- +- if (!do_fade) { +- return; +- } +- +- if (self->details->fade == NULL) { +- GdkWindow *window; +- GdkScreen *screen; +- int old_width, old_height, width, height; +- +- /* If this was the result of a screen size change, +- * we don't want to crossfade +- */ +- window = gtk_widget_get_window (widget); +- old_width = gdk_window_get_width (window); +- old_height = gdk_window_get_height (window); +- +- screen = gtk_widget_get_screen (widget); +- width = gdk_screen_get_width (screen); +- height = gdk_screen_get_height (screen); +- +- if (old_width == width && old_height == height) { +- self->details->fade = gnome_bg_crossfade_new (width, height); +- g_signal_connect_swapped (self->details->fade, +- "finished", +- G_CALLBACK (free_fade), +- self); +- } +- } +- +- if (self->details->fade != NULL && !gnome_bg_crossfade_is_started (self->details->fade)) { +- cairo_surface_t *start_surface; +- +- if (self->details->background_surface == NULL) { +- start_surface = gnome_bg_get_surface_from_root (gtk_widget_get_screen (widget)); +- } else { +- start_surface = cairo_surface_reference (self->details->background_surface); +- } +- gnome_bg_crossfade_set_start_surface (self->details->fade, +- start_surface); +- cairo_surface_destroy (start_surface); +- } +-} +- +-static void +-screen_size_changed (GdkScreen *screen, +- NemoDesktopBackground *self) +-{ +- queue_background_change (self); +-} +- +-static gboolean +-nemo_desktop_background_ensure_realized (NemoDesktopBackground *self) +-{ +- int entire_width; +- int entire_height; +- GdkScreen *screen; +- GdkWindow *window; +- +- screen = gtk_widget_get_screen (self->details->widget); +- entire_height = gdk_screen_get_height (screen); +- entire_width = gdk_screen_get_width (screen); +- +- /* If the window size is the same as last time, don't update */ +- if (entire_width == self->details->background_entire_width && +- entire_height == self->details->background_entire_height) { +- return FALSE; +- } +- +- free_background_surface (self); +- +- window = gtk_widget_get_window (self->details->widget); +- self->details->background_surface = gnome_bg_create_surface (self->details->bg, +- window, +- entire_width, entire_height, +- TRUE); +- +- /* We got the surface and everything, so we don't care about a change +- that is pending (unless things actually change after this time) */ +- g_object_set_data (G_OBJECT (self), +- "ignore-pending-change", GINT_TO_POINTER (TRUE)); +- +- self->details->background_entire_width = entire_width; +- self->details->background_entire_height = entire_height; +- +- return TRUE; +-} +- +-static void +-on_fade_finished (GnomeBGCrossfade *fade, +- GdkWindow *window, +- gpointer user_data) +-{ +- NemoDesktopBackground *self = user_data; +- +- nemo_desktop_background_ensure_realized (self); +- gnome_bg_set_surface_as_root (gdk_window_get_screen (window), +- self->details->background_surface); +-} +- +-static gboolean +-fade_to_surface (NemoDesktopBackground *self, +- GdkWindow *window, +- cairo_surface_t *surface) +-{ +- if (self->details->fade == NULL) { +- return FALSE; +- } +- +- if (!gnome_bg_crossfade_set_end_surface (self->details->fade, +- surface)) { +- return FALSE; +- } +- +- if (!gnome_bg_crossfade_is_started (self->details->fade)) { +- gnome_bg_crossfade_start (self->details->fade, window); +- g_signal_connect (self->details->fade, +- "finished", +- G_CALLBACK (on_fade_finished), self); +- } +- +- return gnome_bg_crossfade_is_started (self->details->fade); +-} +- +-static void +-nemo_desktop_background_set_up_widget (NemoDesktopBackground *self) +-{ +- GdkWindow *window; +- gboolean in_fade = FALSE; +- GtkWidget *widget; +- +- widget = self->details->widget; +- +- if (!gtk_widget_get_realized (widget)) { +- return; +- } +- +- nemo_desktop_background_ensure_realized (self); +- window = gtk_layout_get_bin_window (GTK_LAYOUT (widget)); +- +- in_fade = fade_to_surface (self, window, +- self->details->background_surface); +- +- if (!in_fade) { +- cairo_pattern_t *pattern; +- +- pattern = cairo_pattern_create_for_surface (self->details->background_surface); +- gdk_window_set_background_pattern (window, pattern); +- cairo_pattern_destroy (pattern); +- +- gnome_bg_set_surface_as_root (gtk_widget_get_screen (widget), +- self->details->background_surface); +- } +-} +- +-static gboolean +-background_changed_cb (NemoDesktopBackground *self) +-{ +- self->details->change_idle_id = 0; +- +- nemo_desktop_background_unrealize (self); +- nemo_desktop_background_set_up_widget (self); +- +- gtk_widget_queue_draw (self->details->widget); +- +- return FALSE; +-} +- +-static void +-queue_background_change (NemoDesktopBackground *self) +-{ +- if (self->details->change_idle_id != 0) { +- g_source_remove (self->details->change_idle_id); +- } +- +- self->details->change_idle_id = +- g_idle_add ((GSourceFunc) background_changed_cb, self); +-} +- +-static void +-nemo_desktop_background_changed (GnomeBG *bg, +- gpointer user_data) +-{ +- NemoDesktopBackground *self; +- +- self = user_data; +- init_fade (self); +- queue_background_change (self); +-} +- +-static void +-nemo_desktop_background_transitioned (GnomeBG *bg, +- gpointer user_data) +-{ +- NemoDesktopBackground *self; +- +- self = user_data; +- free_fade (self); +- queue_background_change (self); +-} +- +-static void +-widget_realize_cb (GtkWidget *widget, +- gpointer user_data) +-{ +- GdkScreen *screen; +- NemoDesktopBackground *self = user_data; +- +- screen = gtk_widget_get_screen (widget); +- +- if (self->details->screen_size_handler > 0) { +- g_signal_handler_disconnect (screen, +- self->details->screen_size_handler); +- } +- self->details->screen_size_handler = +- g_signal_connect (screen, "size_changed", +- G_CALLBACK (screen_size_changed), self); +- +- if (self->details->screen_monitors_handler > 0) { +- g_signal_handler_disconnect (screen, +- self->details->screen_monitors_handler); +- } +- self->details->screen_monitors_handler = +- g_signal_connect (screen, "monitors-changed", +- G_CALLBACK (screen_size_changed), self); +- nemo_desktop_background_set_up_widget (self); +-} +- +-static void +-widget_unrealize_cb (GtkWidget *widget, +- gpointer user_data) +-{ +- NemoDesktopBackground *self = user_data; +- +- if (self->details->screen_size_handler > 0) { +- g_signal_handler_disconnect (gtk_widget_get_screen (GTK_WIDGET (widget)), +- self->details->screen_size_handler); +- self->details->screen_size_handler = 0; +- } +- if (self->details->screen_monitors_handler > 0) { +- g_signal_handler_disconnect (gtk_widget_get_screen (GTK_WIDGET (widget)), +- self->details->screen_monitors_handler); +- self->details->screen_monitors_handler = 0; +- } +-} +- +-static void +-on_widget_destroyed (GtkWidget *widget, +- gpointer user_data) +-{ +- NemoDesktopBackground *self = user_data; +- +- if (self->details->change_idle_id != 0) { +- g_source_remove (self->details->change_idle_id); +- self->details->change_idle_id = 0; +- } +- +- free_fade (self); +- self->details->widget = NULL; +-} +- +-static gboolean +-background_change_event_idle_cb (NemoDesktopBackground *self) +-{ +- gnome_bg_load_from_preferences (self->details->bg, +- gnome_background_preferences); +- +- g_object_unref (self); +- +- return FALSE; +-} +- +-static gboolean +-background_settings_change_event_cb (GSettings *settings, +- gpointer keys, +- gint n_keys, +- gpointer user_data) +-{ +- NemoDesktopBackground *self = user_data; +- +- /* Need to defer signal processing otherwise +- * we would make the dconf backend deadlock. +- */ +- g_idle_add ((GSourceFunc) background_change_event_idle_cb, +- g_object_ref (self)); +- +- return FALSE; +-} +- +-static void +-nemo_desktop_background_constructed (GObject *obj) +-{ +- NemoDesktopBackground *self; +- GtkWidget *widget; +- +- self = NEMO_DESKTOP_BACKGROUND (obj); +- +- if (G_OBJECT_CLASS (nemo_desktop_background_parent_class)->constructed != NULL) { +- G_OBJECT_CLASS (nemo_desktop_background_parent_class)->constructed (obj); +- } +- +- widget = self->details->widget; +- +- g_assert (widget != NULL); +- +- g_signal_connect_object (widget, "destroy", +- G_CALLBACK (on_widget_destroyed), self, 0); +- g_signal_connect_object (widget, "realize", +- G_CALLBACK (widget_realize_cb), self, 0); +- g_signal_connect_object (widget, "unrealize", +- G_CALLBACK (widget_unrealize_cb), self, 0); +- +- gnome_bg_load_from_preferences (self->details->bg, +- gnome_background_preferences); +- +- /* Let's receive batch change events instead of every single one */ +- g_signal_connect (gnome_background_preferences, +- "change-event", +- G_CALLBACK (background_settings_change_event_cb), +- self); +- +- queue_background_change (self); +-} +- +-static void +-nemo_desktop_background_set_property (GObject *object, +- guint property_id, +- const GValue *value, +- GParamSpec *pspec) +-{ +- NemoDesktopBackground *self; +- +- self = NEMO_DESKTOP_BACKGROUND (object); +- +- switch (property_id) { +- case PROP_WIDGET: +- self->details->widget = g_value_get_object (value); +- break; +- default: +- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +- break; +- } +-} +- +-static GObject * +-nemo_desktop_background_constructor (GType type, +- guint n_construct_params, +- GObjectConstructParam *construct_params) +-{ +- GObject *retval; +- +- if (singleton != NULL) { +- return g_object_ref (singleton); +- } +- +- retval = G_OBJECT_CLASS (nemo_desktop_background_parent_class)->constructor +- (type, n_construct_params, construct_params); +- +- singleton = NEMO_DESKTOP_BACKGROUND (retval); +- g_object_add_weak_pointer (retval, (gpointer) &singleton); +- +- return retval; +-} +- +-static void +-nemo_desktop_background_class_init (NemoDesktopBackgroundClass *klass) +-{ +- GObjectClass *object_class; +- GParamSpec *pspec; +- +- object_class = G_OBJECT_CLASS (klass); +- object_class->finalize = nemo_desktop_background_finalize; +- object_class->set_property = nemo_desktop_background_set_property; +- object_class->constructor = nemo_desktop_background_constructor; +- object_class->constructed = nemo_desktop_background_constructed; +- +- pspec = g_param_spec_object ("widget", "The widget for this background", +- "The widget that gets its background set", +- NEMO_TYPE_ICON_CONTAINER, +- G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); +- g_object_class_install_property (object_class, PROP_WIDGET, pspec); +- +- g_type_class_add_private (klass, sizeof (NemoDesktopBackgroundDetails)); +-} +- +-static void +-nemo_desktop_background_init (NemoDesktopBackground *self) +-{ +- self->details = +- G_TYPE_INSTANCE_GET_PRIVATE (self, +- NEMO_TYPE_DESKTOP_BACKGROUND, +- NemoDesktopBackgroundDetails); +- +- self->details->bg = gnome_bg_new (); +- self->details->default_color.red = 0xffff; +- self->details->default_color.green = 0xffff; +- self->details->default_color.blue = 0xffff; +- +- g_signal_connect (self->details->bg, "changed", +- G_CALLBACK (nemo_desktop_background_changed), self); +- g_signal_connect (self->details->bg, "transitioned", +- G_CALLBACK (nemo_desktop_background_transitioned), self); +-} +- +-NemoDesktopBackground * +-nemo_desktop_background_new (NemoIconContainer *container) +-{ +- return g_object_new (NEMO_TYPE_DESKTOP_BACKGROUND, +- "widget", container, +- NULL); +-} +diff --git a/libnemo-private/nemo-desktop-background.h b/libnemo-private/nemo-desktop-background.h +deleted file mode 100644 +index 8755cb1..0000000 +--- a/libnemo-private/nemo-desktop-background.h ++++ /dev/null +@@ -1,65 +0,0 @@ +-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +- +-/* +- * nemo-desktop-background.c: Helper object to handle desktop background +- * changes. +- * +- * Copyright (C) 2000 Eazel, Inc. +- * Copyright (C) 2010 Cosimo Cecchi +- * +- * 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 Street - Suite 500, +- * Boston, MA 02110-1335, USA. +- * +- * Authors: Darin Adler +- * Cosimo Cecchi +- */ +- +-#ifndef __NAUTILIUS_DESKTOP_BACKGROUND_H__ +-#define __NAUTILIUS_DESKTOP_BACKGROUND_H__ +- +-#include +- +-#include "nemo-icon-container.h" +- +-typedef struct NemoDesktopBackground NemoDesktopBackground; +-typedef struct NemoDesktopBackgroundClass NemoDesktopBackgroundClass; +- +-#define NEMO_TYPE_DESKTOP_BACKGROUND nemo_desktop_background_get_type() +-#define NEMO_DESKTOP_BACKGROUND(obj) \ +- (G_TYPE_CHECK_INSTANCE_CAST ((obj), NEMO_TYPE_DESKTOP_BACKGROUND, NemoDesktopBackground)) +-#define NEMO_DESKTOP_BACKGROUND_CLASS(klass) \ +- (G_TYPE_CHECK_CLASS_CAST ((klass), NEMO_TYPE_DESKTOP_BACKGROUND, NemoDesktopBackgroundClass)) +-#define NEMO_IS_DESKTOP_BACKGROUND(obj) \ +- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NEMO_TYPE_DESKTOP_BACKGROUND)) +-#define NEMO_IS_DESKTOP_BACKGROUND_CLASS(klass) \ +- (G_TYPE_CHECK_CLASS_TYPE ((klass), NEMO_TYPE_DESKTOP_BACKGROUND)) +-#define NEMO_DESKTOP_BACKGROUND_GET_CLASS(obj) \ +- (G_TYPE_INSTANCE_GET_CLASS ((obj), NEMO_TYPE_DESKTOP_BACKGROUND, NemoDesktopBackgroundClass)) +- +-GType nemo_desktop_background_get_type (void); +-NemoDesktopBackground * nemo_desktop_background_new (NemoIconContainer *container); +- +-typedef struct NemoDesktopBackgroundDetails NemoDesktopBackgroundDetails; +- +-struct NemoDesktopBackground { +- GObject parent; +- NemoDesktopBackgroundDetails *details; +-}; +- +-struct NemoDesktopBackgroundClass { +- GObjectClass parent_class; +-}; +- +-#endif /* __NAUTILIUS_DESKTOP_BACKGROUND_H__ */ +diff --git a/src/nemo-desktop-icon-view.c b/src/nemo-desktop-icon-view.c +index 37cd8cb..5dec8b5 100644 +--- a/src/nemo-desktop-icon-view.c ++++ b/src/nemo-desktop-icon-view.c +@@ -41,7 +41,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -76,8 +75,6 @@ struct NemoDesktopIconViewDetails + gulong delayed_init_signal; + guint reload_desktop_timeout; + gboolean pending_rescan; +- +- NemoDesktopBackground *background; + }; + + static void default_zoom_level_changed (gpointer user_data); +@@ -240,12 +237,6 @@ struct NemoDesktopIconViewDetails + return GDK_FILTER_CONTINUE; + } + +-static void +-real_begin_loading (NemoView *object) +-{ +- NEMO_VIEW_CLASS (nemo_desktop_icon_view_parent_class)->begin_loading (object); +-} +- + static const char * + real_get_id (NemoView *view) + { +@@ -300,7 +291,6 @@ struct NemoDesktopIconViewDetails + + G_OBJECT_CLASS (class)->dispose = nemo_desktop_icon_view_dispose; + +- vclass->begin_loading = real_begin_loading; + vclass->merge_menus = real_merge_menus; + vclass->update_menus = real_update_menus; + vclass->get_view_id = real_get_id; +@@ -428,6 +418,17 @@ struct NemoDesktopIconViewDetails + desktop_icon_view); + } + ++static void ++desktop_icon_container_realize (GtkWidget *widget, ++ NemoDesktopIconView *desktop_icon_view) ++{ ++ GdkWindow *bin_window; ++ GdkRGBA transparent = { 0, 0, 0, 0 }; ++ ++ bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (widget)); ++ gdk_window_set_background_rgba (bin_window, &transparent); ++} ++ + static NemoZoomLevel + get_default_zoom_level (void) + { +@@ -614,6 +615,8 @@ struct NemoDesktopIconViewDetails + + g_signal_connect_object (icon_container, "middle_click", + G_CALLBACK (nemo_desktop_icon_view_handle_middle_click), desktop_icon_view, 0); ++ g_signal_connect_object (icon_container, "realize", ++ G_CALLBACK (desktop_icon_container_realize), desktop_icon_view, 0); + g_signal_connect_object (desktop_icon_view, "realize", + G_CALLBACK (realized_callback), desktop_icon_view, 0); + g_signal_connect_object (desktop_icon_view, "unrealize", +@@ -637,9 +640,6 @@ struct NemoDesktopIconViewDetails + G_CALLBACK (nemo_view_update_menus), + desktop_icon_view); + +- GdkRGBA transparent = { 0, 0, 0, 0 }; +- gtk_widget_override_background_color (GTK_WIDGET (icon_container), GTK_STATE_FLAG_NORMAL, &transparent); +- + have_cinnamon_settings = g_find_program_in_path ("cinnamon-settings") != NULL; + } + +-- +1.8.1.5 + + +From b40990397b6fff55878481a806a1b5574e43951f Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Mon, 15 Apr 2013 20:14:40 -0400 +Subject: [PATCH 3/4] Forgot an include + +--- + libnemo-private/nemo-icon-dnd.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/libnemo-private/nemo-icon-dnd.c b/libnemo-private/nemo-icon-dnd.c +index 017c6a7..2ed073c 100644 +--- a/libnemo-private/nemo-icon-dnd.c ++++ b/libnemo-private/nemo-icon-dnd.c +@@ -52,7 +52,6 @@ + #include + #include + +-#include + #include + #include + #include +-- +1.8.1.5 + + +From 020d4dc15fa9c0e1303cef7795e45e688ede7726 Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Tue, 16 Apr 2013 18:00:01 -0400 +Subject: [PATCH 4/4] Change to use cinnamon background keys + +--- + libnemo-private/nemo-global-preferences.c | 2 +- + libnemo-private/nemo-global-preferences.h | 2 +- + src/nemo-places-sidebar.c | 2 +- + src/nemo-view.c | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/libnemo-private/nemo-global-preferences.c b/libnemo-private/nemo-global-preferences.c +index d3ad20a..336afc3 100644 +--- a/libnemo-private/nemo-global-preferences.c ++++ b/libnemo-private/nemo-global-preferences.c +@@ -76,7 +76,7 @@ + nemo_desktop_preferences = g_settings_new("org.nemo.desktop"); + nemo_tree_sidebar_preferences = g_settings_new("org.nemo.sidebar-panels.tree"); + gnome_lockdown_preferences = g_settings_new("org.gnome.desktop.lockdown"); +- gnome_background_preferences = g_settings_new("org.gnome.desktop.background"); ++ cinnamon_background_preferences = g_settings_new("org.cinnamon.background"); + gnome_media_handling_preferences = g_settings_new("org.gnome.desktop.media-handling"); + gnome_terminal_preferences = g_settings_new("org.gnome.desktop.default-applications.terminal"); + } +diff --git a/libnemo-private/nemo-global-preferences.h b/libnemo-private/nemo-global-preferences.h +index 2b9c56a..c1ec61a 100644 +--- a/libnemo-private/nemo-global-preferences.h ++++ b/libnemo-private/nemo-global-preferences.h +@@ -226,7 +226,7 @@ enum + GSettings *nemo_tree_sidebar_preferences; + GSettings *nemo_window_state; + GSettings *gnome_lockdown_preferences; +-GSettings *gnome_background_preferences; ++GSettings *cinnamon_background_preferences; + GSettings *gnome_media_handling_preferences; + GSettings *gnome_terminal_preferences; + +diff --git a/src/nemo-places-sidebar.c b/src/nemo-places-sidebar.c +index a0bc4d4..ca32193 100644 +--- a/src/nemo-places-sidebar.c ++++ b/src/nemo-places-sidebar.c +@@ -3825,7 +3825,7 @@ static void expand_or_collapse_category (NemoPlacesSidebar *sidebar, + bookmarks_popup_menu_detach_cb, + sidebar); + +- g_signal_handlers_disconnect_by_func (gnome_background_preferences, ++ g_signal_handlers_disconnect_by_func (cinnamon_background_preferences, + desktop_setting_changed_callback, + sidebar); + +diff --git a/src/nemo-view.c b/src/nemo-view.c +index ab03b44..3ece32a 100644 +--- a/src/nemo-view.c ++++ b/src/nemo-view.c +@@ -6945,7 +6945,7 @@ static void slot_changed_pane (NemoWindowSlot *slot, + + uri = nemo_file_info_get_uri (file); + +- g_settings_set_string (gnome_background_preferences, ++ g_settings_set_string (cinnamon_background_preferences, + "picture-uri", uri); + g_free (uri); + } +-- +1.8.1.5 + diff --git a/community/nemo/tracker-0.16.patch b/community/nemo/tracker-0.16.patch new file mode 100644 index 000000000..49964678d --- /dev/null +++ b/community/nemo/tracker-0.16.patch @@ -0,0 +1,33 @@ +From 88459a57ac2fcf06400ade5c6d0189bf1aa2334d Mon Sep 17 00:00:00 2001 +From: Nick Black +Date: Fri, 12 Apr 2013 17:10:46 -0400 +Subject: [PATCH] build with tracker 0.16 + +--- + configure.in | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/configure.in b/configure.in +index ec72f73..21afbe4 100644 +--- a/configure.in ++++ b/configure.in +@@ -249,11 +249,13 @@ AC_ARG_ENABLE(tracker, + + build_tracker=no + if test "x$enable_tracker" != "xno"; then +- PKG_CHECK_MODULES(TRACKER, tracker-sparql-0.14, ++ PKG_CHECK_MODULES(TRACKER, tracker-sparql-0.16, + [build_tracker=yes], +- [PKG_CHECK_MODULES(TRACKER, tracker-sparql-0.12, ++ [PKG_CHECK_MODULES(TRACKER, tracker-sparql-0.14, ++ [build_tracker=yes], ++ [PKG_CHECK_MODULES(TRACKER, tracker-sparql-0.12, + [build_tracker=yes], +- [build_tracker=no])]) ++ [build_tracker=no])])]) + if test "x$build_tracker" = "xyes"; then + AC_DEFINE(ENABLE_TRACKER, 1, [Define to enable Tracker support]) + fi +-- +1.8.1.5 + diff --git a/community/nemo/use-terminal-config.patch b/community/nemo/use-terminal-config.patch deleted file mode 100644 index a6af75d48..000000000 --- a/community/nemo/use-terminal-config.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff -Naur linuxmint-nemo-63f7b44.orig/libnemo-private/nemo-global-preferences.c linuxmint-nemo-63f7b44/libnemo-private/nemo-global-preferences.c ---- linuxmint-nemo-63f7b44.orig/libnemo-private/nemo-global-preferences.c 2013-02-19 17:30:18.000000000 +0100 -+++ linuxmint-nemo-63f7b44/libnemo-private/nemo-global-preferences.c 2013-03-04 04:05:13.472897136 +0100 -@@ -77,5 +77,6 @@ - nemo_tree_sidebar_preferences = g_settings_new("org.nemo.sidebar-panels.tree"); - gnome_lockdown_preferences = g_settings_new("org.gnome.desktop.lockdown"); - gnome_background_preferences = g_settings_new("org.gnome.desktop.background"); -- gnome_media_handling_preferences = g_settings_new("org.gnome.desktop.media-handling"); -+ gnome_media_handling_preferences = g_settings_new("org.gnome.desktop.media-handling"); -+ gnome_terminal_preferences = g_settings_new("org.gnome.desktop.default-applications.terminal"); - } -diff -Naur linuxmint-nemo-63f7b44.orig/libnemo-private/nemo-global-preferences.h linuxmint-nemo-63f7b44/libnemo-private/nemo-global-preferences.h ---- linuxmint-nemo-63f7b44.orig/libnemo-private/nemo-global-preferences.h 2013-02-19 17:30:18.000000000 +0100 -+++ linuxmint-nemo-63f7b44/libnemo-private/nemo-global-preferences.h 2013-03-04 04:49:20.581767625 +0100 -@@ -211,6 +211,9 @@ - #define GNOME_DESKTOP_MEDIA_HANDLING_AUTOMOUNT_OPEN "automount-open" - #define GNOME_DESKTOP_MEDIA_HANDLING_AUTORUN "autorun-never" - -+/* Terminal */ -+#define GNOME_DESKTOP_TERMINAL_EXEC "exec" -+ - void nemo_global_preferences_init (void); - char *nemo_global_preferences_get_default_folder_viewer_preference_as_iid (void); - -@@ -224,6 +227,7 @@ - GSettings *gnome_lockdown_preferences; - GSettings *gnome_background_preferences; - GSettings *gnome_media_handling_preferences; -+GSettings *gnome_terminal_preferences; - - G_END_DECLS - -diff -Naur linuxmint-nemo-63f7b44.orig/src/nemo-view.c linuxmint-nemo-63f7b44/src/nemo-view.c ---- linuxmint-nemo-63f7b44.orig/src/nemo-view.c 2013-02-19 17:30:18.000000000 +0100 -+++ linuxmint-nemo-63f7b44/src/nemo-view.c 2013-03-04 04:14:47.222310992 +0100 -@@ -6716,7 +6716,8 @@ - open_in_terminal (gchar *location) - { - gchar *argv[2]; -- argv[0] = "x-terminal-emulator"; -+ argv[0] = g_settings_get_string (gnome_terminal_preferences, -+ GNOME_DESKTOP_TERMINAL_EXEC); - argv[1] = NULL; - g_spawn_async(location, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL); - } diff --git a/community/notion/PKGBUILD b/community/notion/PKGBUILD index 7baeaa3d5..a94cee35b 100644 --- a/community/notion/PKGBUILD +++ b/community/notion/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 81125 2012-12-12 00:49:36Z eric $ +# $Id: PKGBUILD 88793 2013-04-22 10:31:24Z spupykin $ # Maintainer: Sergej Pupykin # Maintainer: Eugen Zagorodniy e dot zagorodniy at gmail dot com # Contributor: aunoor pkgname=notion -pkgver=20121114 +pkgver=20130422 pkgrel=1 pkgdesc="Tabbed tiling, window manager. Fork of Ion3" url="http://sourceforge.net/projects/notion/" @@ -16,51 +16,41 @@ makedepends=('git' 'pkgconfig' 'libxinerama' 'libxrandr' 'rubber' 'latex2html' 'texlive-htmlxml' 'texlive-latexextra') provides=('libtu' 'libextl') changelog=ChangleLog -_gitroots=("git://notion.git.sourceforge.net/gitroot/notion/notion" - "git://notion.git.sourceforge.net/gitroot/notion/libtu" - "git://notion.git.sourceforge.net/gitroot/notion/libextl" - "git://notion.git.sourceforge.net/gitroot/notion/notion-doc" - "git://notion.git.sourceforge.net/gitroot/notion/mod_xinerama" - "git://notion.git.sourceforge.net/gitroot/notion/mod_xkbevents" - "git://notion.git.sourceforge.net/gitroot/notion/mod_xrandr" - "git://notion.git.sourceforge.net/gitroot/notion/mod_notionflux" - "git://notion.git.sourceforge.net/gitroot/notion/contrib") -md5sums=() -md5sums=() +source=("git://notion.git.sourceforge.net/gitroot/notion/notion" + "git://notion.git.sourceforge.net/gitroot/notion/libtu" + "git://notion.git.sourceforge.net/gitroot/notion/libextl" + "git://notion.git.sourceforge.net/gitroot/notion/notion-doc" + "git://notion.git.sourceforge.net/gitroot/notion/mod_xinerama" + "git://notion.git.sourceforge.net/gitroot/notion/mod_xkbevents" + "git://notion.git.sourceforge.net/gitroot/notion/mod_xrandr" + "git://notion.git.sourceforge.net/gitroot/notion/mod_notionflux" + "git://notion.git.sourceforge.net/gitroot/notion/contrib") +md5sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP') build() { cd ${srcdir} - # git clone - for _gitroot in ${_gitroots[@]}; do - msg "Connecting to the git repository..." - _gitname=`basename ${_gitroot}` - if [ -d ${srcdir}/${_gitname} ]; then - pushd ${srcdir}/${_gitname} - git pull origin - popd - else - git clone --depth 1 ${_gitroot} - fi - msg "GIT checkout done or server timeout" - done - - # copy to notion-build - rm -rf ${srcdir}/notion-build - cp -r ${srcdir}/notion ${srcdir}/notion-build for i in libextl libtu mod_xinerama mod_xkbevents mod_xrandr mod_notionflux notion-doc; do - cp -r ${srcdir}/$i ${srcdir}/notion-build/ + cp -r ${srcdir}/$i ${srcdir}/notion/ done # build notion - cd ${srcdir}/notion-build + cd ${srcdir}/notion msg "Starting make..." sed -e 's/^\(PREFIX=\).*$/\1\/usr/' \ -e 's/^\(ETCDIR=\).*$/\1\/etc\/notion/' \ -e 's/^\(LUA_DIR=\).*$/\1\/usr/' \ -e 's/^\(X11_PREFIX=\).*/\1\/usr/' \ -i system-autodetect.mk - make INCLUDES=-I${srcdir}/notion-build + make INCLUDES=-I${srcdir}/notion # build doc and modules for i in mod_xinerama mod_xkbevents mod_xrandr; do @@ -71,7 +61,7 @@ build() { } package() { - cd ${srcdir}/notion-build + cd ${srcdir}/notion # notion make PREFIX=${pkgdir}/usr ETCDIR=${pkgdir}/etc/notion install diff --git a/community/shotwell/PKGBUILD b/community/shotwell/PKGBUILD index c196db66f..7726c625c 100644 --- a/community/shotwell/PKGBUILD +++ b/community/shotwell/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 87716 2013-04-05 10:40:18Z spupykin $ +# $Id: PKGBUILD 88680 2013-04-21 22:16:49Z heftig $ # Maintainer: Sergej Pupykin # Maintainer : Ionut Biru # Contributor: Joeny Ang pkgname=shotwell pkgver=0.14.1 -pkgrel=1 +pkgrel=3 pkgdesc="A digital photo organizer designed for the GNOME desktop environment" arch=('i686' 'x86_64') url="http://yorba.org/shotwell/" license=('LGPL2.1') -depends=('libgee' 'libwebkit3' 'libgexiv2' 'libraw' 'rest' +depends=('libgee06' 'libwebkit3' 'libgexiv2' 'libraw' 'rest' 'desktop-file-utils' 'dconf' 'hicolor-icon-theme' 'json-glib' 'gst-plugins-base' 'libgphoto2') makedepends=('intltool' 'vala>=0.17.2' 'libunique3') diff --git a/community/synapse/PKGBUILD b/community/synapse/PKGBUILD index c54dbcd3a..c6a3accf1 100644 --- a/community/synapse/PKGBUILD +++ b/community/synapse/PKGBUILD @@ -1,22 +1,22 @@ -# $Id: PKGBUILD 81698 2012-12-27 01:23:31Z fyan $ +# $Id: PKGBUILD 88681 2013-04-21 22:16:50Z heftig $ # Maintainer: Felix Yan # Contributor: Alessio Sergi pkgname=synapse pkgver=0.2.10 -pkgrel=3 +pkgrel=5 pkgdesc="A semantic file launcher" arch=('i686' 'x86_64') url="https://launchpad.net/synapse-project" license=('GPL3') -depends=('gtkhotkey' 'hicolor-icon-theme' 'json-glib' 'libgee' 'libnotify' \ +depends=('gtkhotkey' 'hicolor-icon-theme' 'json-glib' 'libgee06' 'libnotify' \ 'libunique' 'libzeitgeist' 'rest' 'xdg-utils') makedepends=('intltool' 'vala') optdepends=('banshee: banshee plugin' 'bc: calculator plugin' 'devhelp: documentation plugin' 'gnome-screensaver: screensaver plugin' - 'gnome-utils: dictionary plugin' + 'gnome-dictionary: dictionary plugin' 'openssh: ssh plugin' 'pastebinit: pastebin plugin' 'rhythmbox: rhythmbox plugin' diff --git a/community/ubuntuone-client-gnome/PKGBUILD b/community/ubuntuone-client-gnome/PKGBUILD index d3cbd7d1a..c1c9c1c7b 100644 --- a/community/ubuntuone-client-gnome/PKGBUILD +++ b/community/ubuntuone-client-gnome/PKGBUILD @@ -1,24 +1,29 @@ -# $Id: PKGBUILD 87514 2013-04-02 00:47:12Z bgyorgy $ +# $Id: PKGBUILD 88682 2013-04-21 22:16:52Z heftig $ # Maintainer: Balló György pkgname=ubuntuone-client-gnome pkgver=4.2.0 -pkgrel=1 +pkgrel=2 pkgdesc="Some plug-ins, extensions, and data for integrating Ubuntu One features in some core parts of GNOME" arch=('i686' 'x86_64') url="https://launchpad.net/ubuntuone-client-gnome" license=('GPL') depends=('nautilus' 'gconf' 'ubuntuone-client') makedepends=('intltool' 'gnome-settings-daemon') -optdepends=('gnome-settings-daemon: shows a warning when Ubuntu One runs out of space') options=('!libtool') install=$pkgname.install -source=(https://launchpad.net/ubuntuone-client-gnome/stable-4-2/$pkgver/+download/$pkgname-$pkgver.tar.gz) -md5sums=('e2f5e4ef6f4eca6ffcf838b3aa46c3ef') +source=(https://launchpad.net/ubuntuone-client-gnome/stable-4-2/$pkgver/+download/$pkgname-$pkgver.tar.gz + disable-gsd-plugin.patch) +md5sums=('e2f5e4ef6f4eca6ffcf838b3aa46c3ef' + 'e2b1b677844c3b61530f3653808b6644') build() { cd "$srcdir/$pkgname-$pkgver" + # Disable gsd plugin, as it's not compatible with gnome-settings-daemon 3.8 + patch -Np1 -i "$srcdir/disable-gsd-plugin.patch" + + autoreconf -fi ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ --disable-static --disable-schemas-compile make diff --git a/community/ubuntuone-client-gnome/disable-gsd-plugin.patch b/community/ubuntuone-client-gnome/disable-gsd-plugin.patch new file mode 100644 index 000000000..2199536e2 --- /dev/null +++ b/community/ubuntuone-client-gnome/disable-gsd-plugin.patch @@ -0,0 +1,21 @@ +diff -Naur ubuntuone-client-gnome-4.2.0.orig/configure.ac ubuntuone-client-gnome-4.2.0/configure.ac +--- ubuntuone-client-gnome-4.2.0.orig/configure.ac 2013-03-26 20:48:40.000000000 +0100 ++++ ubuntuone-client-gnome-4.2.0/configure.ac 2013-04-09 22:26:38.135983473 +0200 +@@ -5,7 +5,7 @@ + AC_CONFIG_SRCDIR([config.h.in]) + + AM_INIT_AUTOMAKE([1.10 foreign]) +-AM_CONFIG_HEADER([config.h]) ++AC_CONFIG_HEADERS([config.h]) + + m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) + +diff -Naur ubuntuone-client-gnome-4.2.0.orig/Makefile.am ubuntuone-client-gnome-4.2.0/Makefile.am +--- ubuntuone-client-gnome-4.2.0.orig/Makefile.am 2013-03-21 18:13:58.000000000 +0100 ++++ ubuntuone-client-gnome-4.2.0/Makefile.am 2013-04-09 22:22:05.109626589 +0200 +@@ -1,4 +1,4 @@ +-SUBDIRS = gsd nautilus po ++SUBDIRS = nautilus po + + # Shut libtoolize up + ACLOCAL_AMFLAGS = -I m4 diff --git a/community/virtualbox-modules-lts/PKGBUILD b/community/virtualbox-modules-lts/PKGBUILD index dd6ecae95..4dba9fb7f 100644 --- a/community/virtualbox-modules-lts/PKGBUILD +++ b/community/virtualbox-modules-lts/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 88157 2013-04-12 15:58:47Z seblu $ +# $Id: PKGBUILD 88762 2013-04-22 09:40:39Z tpowa $ # Maintainer: Bartłomiej Piotrowski # Contributor: Ionut Biru # Contributor: Sébastien Luttringer @@ -6,7 +6,7 @@ pkgbase=virtualbox-modules-lts pkgname=('virtualbox-host-modules-lts' 'virtualbox-guest-modules-lts') pkgver=4.2.12 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') url='http://virtualbox.org' license=('GPL') diff --git a/community/virtualbox-modules/PKGBUILD b/community/virtualbox-modules/PKGBUILD index 3941dbe84..7d2e3f867 100644 --- a/community/virtualbox-modules/PKGBUILD +++ b/community/virtualbox-modules/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 88161 2013-04-12 16:17:46Z seblu $ +# $Id: PKGBUILD 88763 2013-04-22 09:42:07Z tpowa $ # Maintainer: Ionut Biru # Maintainer: Sébastien Luttringer pkgbase=virtualbox-modules pkgname=('virtualbox-host-modules' 'virtualbox-guest-modules') pkgver=4.2.12 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') url='http://virtualbox.org' license=('GPL') diff --git a/community/xdebug/PKGBUILD b/community/xdebug/PKGBUILD index 505bd2f59..d35adfd72 100644 --- a/community/xdebug/PKGBUILD +++ b/community/xdebug/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 88528 2013-04-19 10:32:46Z spupykin $ +# $Id: PKGBUILD 88795 2013-04-22 10:32:02Z spupykin $ # Maintainer: Sergej Pupykin # Maintainer: Jonathan Wiersma # Contributor: Jonathan Wiersma @@ -6,7 +6,7 @@ pkgname=xdebug pkgver=2.2.2 -pkgrel=1 +pkgrel=2 pkgdesc="PHP debugging extension" arch=('i686' 'x86_64') url="http://www.xdebug.org" @@ -22,8 +22,6 @@ md5sums=('5687bca6270b9668721090d780c7c966' '68de800943369d4c76bdf7eb35c8463b') build() { - local PHPVER=`php -r 'echo phpversion();'` - cd $srcdir/$pkgname-$pkgver phpize ./configure --prefix=/usr --enable-xdebug @@ -35,12 +33,14 @@ build() { } package() { + local PHPVER=`php -r 'echo phpversion();'` + cd $srcdir/$pkgname-$pkgver/debugclient make DESTDIR=$pkgdir install cd $srcdir/$pkgname-$pkgver if [ "$PHPVER" \< "5.3.0" ] ; then - install -D -m 744 modules/xdebug.so $pkgdir/usr/lib/php/xdebug.so + install -D -m 744 modules/xdebug.so $pkgdir/usr/lib/php/modules/xdebug.so install -D -m 644 $srcdir/xdebug-5.2.ini $pkgdir/etc/php/conf.d/xdebug.ini else install -D -m 744 modules/xdebug.so $pkgdir/usr/lib/php/modules/xdebug.so diff --git a/community/xsettings-client/PKGBUILD b/community/xsettings-client/PKGBUILD index afef330ad..d314d7aa4 100644 --- a/community/xsettings-client/PKGBUILD +++ b/community/xsettings-client/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 65273 2012-02-20 12:44:47Z spupykin $ +# $Id: PKGBUILD 88791 2013-04-22 10:19:12Z spupykin $ # Maintainer: Sergej Pupykin # Contributor: Alois Belaska @@ -11,12 +11,16 @@ license=('GPL') url="http://matchbox-project.org" depends=('libx11') options=('!libtool') -source=(http://matchbox-project.org/sources/optional-dependencies/Xsettings-client-$pkgver.tar.gz) +source=(http://downloads.yoctoproject.org/releases/matchbox/optional-dependencies/Xsettings-client-$pkgver.tar.gz) md5sums=('c14aa9db6c097e0306dac97fb7da1add') build() { cd $srcdir/Xsettings-client-$pkgver ./configure --prefix=/usr make +} + +package() { + cd $srcdir/Xsettings-client-$pkgver make DESTDIR=$pkgdir install } diff --git a/community/zeitgeist-datahub/PKGBUILD b/community/zeitgeist-datahub/PKGBUILD deleted file mode 100644 index 535899a65..000000000 --- a/community/zeitgeist-datahub/PKGBUILD +++ /dev/null @@ -1,29 +0,0 @@ -# $Id: PKGBUILD 79124 2012-10-30 23:06:48Z heftig $ -# Maintainer: Balló György -# Contributor: Leontius Adhika Pradhana -# Contributor: Ner0 - -pkgname=zeitgeist-datahub -pkgver=0.9.5 -pkgrel=2 -pkgdesc="Provides passive plugins which insert events into Zeitgeist" -arch=('i686' 'x86_64') -url="https://launchpad.net/zeitgeist-datahub" -license=('GPL3') -depends=('libzeitgeist' 'json-glib' 'gtk2' 'telepathy-glib' 'zeitgeist') -makedepends=('intltool' 'vala') -source=(http://launchpad.net/$pkgname/${pkgver%.*}/$pkgver/+download/$pkgname-$pkgver.tar.gz) -md5sums=('b2b76b82b67363c45e5fe4f39a172775') - -build() { - cd "$srcdir/$pkgname-$pkgver" - - ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var - make -} - -package() { - cd "$srcdir/$pkgname-$pkgver" - - make DESTDIR="$pkgdir/" install -} -- cgit v1.2.3-54-g00ecf From 6e4a9ce4b0809e1eeb57f514f5ea71e2e77355bb Mon Sep 17 00:00:00 2001 From: root Date: Wed, 24 Apr 2013 00:49:38 -0700 Subject: Wed Apr 24 00:49:37 PDT 2013 --- community/avr-gcc/PKGBUILD | 8 ++-- community/fcitx/PKGBUILD | 15 ++++--- community/gnome-panel/PKGBUILD | 9 +--- community/gnome-panel/logout-hang-workaround.patch | 15 ------- community/libmatio/PKGBUILD | 19 +++++--- community/metacity/PKGBUILD | 13 ++++-- community/metacity/application-switcher.patch | 26 +++++++++++ community/mplayer2/PKGBUILD | 5 ++- community/puzzles/PKGBUILD | 4 +- community/tinc/PKGBUILD | 8 ++-- extra/brltty/PKGBUILD | 21 +++++---- extra/brltty/brltty.service | 2 +- extra/dconf/PKGBUILD | 4 +- extra/msmtp/PKGBUILD | 15 ++++--- extra/opengtl/PKGBUILD | 17 +++---- .../opengtl-0.9.17-fix-ftbfs-with-llvm-3.2.patch | 38 ---------------- extra/pyqt/PKGBUILD | 12 ++--- libre/blender-libre/PKGBUILD | 47 ++++++++++--------- libre/opencollada/PKGBUILD | 52 ++++++++++++++++++++++ 19 files changed, 181 insertions(+), 149 deletions(-) delete mode 100644 community/gnome-panel/logout-hang-workaround.patch create mode 100644 community/metacity/application-switcher.patch delete mode 100644 extra/opengtl/opengtl-0.9.17-fix-ftbfs-with-llvm-3.2.patch create mode 100644 libre/opencollada/PKGBUILD (limited to 'community') diff --git a/community/avr-gcc/PKGBUILD b/community/avr-gcc/PKGBUILD index d7bca6f70..3bcecdca4 100644 --- a/community/avr-gcc/PKGBUILD +++ b/community/avr-gcc/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 88221 2013-04-14 18:17:00Z schuay $ +# $Id: PKGBUILD 88836 2013-04-23 14:57:29Z schuay $ # Maintainer: schuay # Contributor: Brad Fanella # Contributor: Corrado Primier @@ -9,7 +9,7 @@ pkgname=avr-gcc _pkgname=gcc pkgver=4.8.0 -pkgrel=1 +pkgrel=2 pkgdesc="The GNU AVR Compiler Collection" arch=('i686' 'x86_64') license=('GPL' 'LGPL' 'FDL' 'custom') @@ -43,12 +43,15 @@ build() { cd ${srcdir} mkdir gcc-build && cd gcc-build + # --disable-linker-build-id: https://bugs.archlinux.org/task/34902 + ${srcdir}/${_basedir}/configure \ --disable-cloog-version-check \ --disable-install-libiberty \ --disable-libssp \ --disable-libstdcxx-pch \ --disable-libunwind-exceptions \ + --disable-linker-build-id \ --disable-nls \ --disable-werror \ --enable-__cxa_atexit \ @@ -59,7 +62,6 @@ build() { --enable-gold \ --enable-languages=c,c++ \ --enable-ld=default \ - --enable-linker-build-id \ --enable-lto \ --enable-plugin \ --enable-shared \ diff --git a/community/fcitx/PKGBUILD b/community/fcitx/PKGBUILD index 24f81dac5..ffe35ec54 100644 --- a/community/fcitx/PKGBUILD +++ b/community/fcitx/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 88243 2013-04-15 01:48:05Z fyan $ +# $Id: PKGBUILD 88842 2013-04-23 18:22:53Z fyan $ # Maintainer: Felix Yan # Contributor: Andrea Scarpino # Contributor: csslayer @@ -6,7 +6,7 @@ pkgbase=fcitx pkgname=('fcitx' 'fcitx-gtk2' 'fcitx-gtk3' 'fcitx-qt4') pkgver=4.2.7 -pkgrel=6 +pkgrel=7 groups=('fcitx-im') arch=('i686' 'x86_64') url="http://code.google.com/p/fcitx/" @@ -22,6 +22,8 @@ source=(http://fcitx.googlecode.com/files/${pkgbase}-${pkgver}_dict.tar.xz build() { #source /etc/profile.d/qt4.sh + export CFLAGS+=" -Wall" + cd "$srcdir/$pkgbase-$pkgver" patch -Np1 -i "$srcdir/9937b68bad3a7e9465e17b711ce9c0a072d3071f.patch" patch -Np1 -i "$srcdir/10ff96ca1215187444951cdbebe9e0beacacdf5e.patch" @@ -54,9 +56,8 @@ package_fcitx() { pkgdesc="Flexible Context-aware Input Tool with eXtension" depends=('pango' 'libxinerama' 'gtk-update-icon-cache' 'shared-mime-info' \ 'hicolor-icon-theme' 'desktop-file-utils' 'libxkbfile' \ - 'libxfixes' 'dbus-core' 'icu') - optdepends=('enchant: for word predication support' - 'opencc: optional engine to do chinese convert' + 'libxfixes' 'dbus-core' 'icu' 'enchant') + optdepends=('opencc: optional engine to do chinese convert' 'fcitx-anthy: Hiragana text to Kana Kanji mixed text Japanese input method' 'fcitx-chewing: Intelligent Zhuyin input method library for traditional Chinese' 'fcitx-cloudpinyin: Standalone module for fcitx that uses pinyin API on the internet to provide additional input candidates' @@ -127,6 +128,6 @@ package_fcitx-qt4() { } md5sums=('6e291717c24615b9dc9bfaa2949af3a7' - 'ce299aa5b596cc52dc9e66b47795e627' + '246e36c2232f107ed1692a52ebc43c39' '6f420547bc8af9627db2e5290f758433' - '51e53377e1b83661f2896e25d1a46242') + '51e53377e1b83661f2896e25d1a46242') diff --git a/community/gnome-panel/PKGBUILD b/community/gnome-panel/PKGBUILD index e490594e4..a287972a4 100644 --- a/community/gnome-panel/PKGBUILD +++ b/community/gnome-panel/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 88684 2013-04-21 22:16:57Z heftig $ +# $Id: PKGBUILD 88822 2013-04-23 02:28:34Z bgyorgy $ # Maintainer: Balló György # Contributor: Jan de Groot pkgbase=gnome-panel pkgname=('gnome-panel' 'gnome-flashback-session') pkgver=3.6.2 -pkgrel=3 +pkgrel=4 arch=('i686' 'x86_64') license=('GPL') pkgdesc="Legacy GNOME panel" @@ -19,14 +19,12 @@ source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver:0:3}/$pkgbase-$ gnome-desktop-3.8.patch drop-gweather-xml-include.patch 18_fix_force_quit_applet.patch - logout-hang-workaround.patch 0001-Add-the-GNOME-Flashback-session.patch fix-autoconf.patch) sha256sums=('a41c45c5512e796b8602ce50bf0d205993eab364c860aae31afa582d77b77079' '3a67f4b07a7dd356fad6b40a43983f3945123ed40080eb153396a481b34efc0c' 'e3298c62bc577969817c5d6752be83a5129004fd344e4f7998a0d8aa61874305' '9d742f675d9e09a032bfe00e0523a4ef7e234589a74a6086243bf335ce212775' - 'e98391114fe618d3c9530cd5ad88e5d0d0e3b62890e4494f7db6a76ec3613a47' 'f313791d246749f18764ad4af13c4efe54483bc327fab371c47f9fbfc25b20a9' '6828c097505d2dbbf465ed7ff694adbd646a0af2105c8dd864d1061bf0afea71') @@ -42,9 +40,6 @@ build() { # Fix force quit applet to avoid freeze patch -Np1 -i "$srcdir/18_fix_force_quit_applet.patch" - # Apply a workaround to avoid hang on logout for 15-20 sec - patch -Np1 -i "$srcdir/logout-hang-workaround.patch" - # Add GNOME Flashback session # https://bugzilla.gnome.org/show_bug.cgi?id=694625 patch -Np1 -i "$srcdir/0001-Add-the-GNOME-Flashback-session.patch" diff --git a/community/gnome-panel/logout-hang-workaround.patch b/community/gnome-panel/logout-hang-workaround.patch deleted file mode 100644 index 0b13e35b6..000000000 --- a/community/gnome-panel/logout-hang-workaround.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -Naur gnome-panel-3.6.2.orig/gnome-panel/panel-session.c gnome-panel-3.6.2/gnome-panel/panel-session.c ---- gnome-panel-3.6.2.orig/gnome-panel/panel-session.c 2012-09-03 17:41:42.000000000 +0200 -+++ gnome-panel-3.6.2/gnome-panel/panel-session.c 2013-04-11 00:59:42.125864185 +0200 -@@ -69,11 +69,6 @@ - - egg_sm_client_set_mode (mode); - -- client = egg_sm_client_get (); -- -- g_signal_connect (client, "quit", -- G_CALLBACK (panel_session_handle_quit), NULL); -- - /* We don't want the WM to try and save/restore our - * window position */ - gdk_x11_set_sm_client_id (NULL); diff --git a/community/libmatio/PKGBUILD b/community/libmatio/PKGBUILD index 7bc220d2c..da7660150 100644 --- a/community/libmatio/PKGBUILD +++ b/community/libmatio/PKGBUILD @@ -1,28 +1,33 @@ -# $Id: PKGBUILD 84665 2013-02-21 12:00:20Z arodseth $ +# $Id: PKGBUILD 88815 2013-04-23 01:03:57Z eric $ # Maintainer: Alexander Rødseth # Contributor: Stefan Husmann # Contributor: William Rea pkgname=libmatio -pkgver=1.5.0 -pkgrel=2 +pkgver=1.5.1 +pkgrel=1 pkgdesc='C library with a fortran 90/95 module interface for reading/writing MATLAB MAT-files' arch=('x86_64' 'i686') license=('LGPL') url='http://sourceforge.net/projects/matio' depends=('zlib') options=('!libtool' '!emptydirs') -source=("http://downloads.sourceforge.net/matio/matio-$pkgver.tar.gz") -sha256sums=('550dfa642c4ca7ad5ce5a0249264436ced14c72c116aee9fd14e99c7bd8cc72e') +source=("http://downloads.sourceforge.net/matio/matio-$pkgver.tar.bz2") +sha1sums=('12b8ed59688b2f41903ddc3e7975f21f10fe42bb') build() { - cd "$srcdir/matio-$pkgver" + cd matio-$pkgver ./configure --prefix=/usr --enable-shared make } + +check() { + cd matio-$pkgver + make check +} package() { - cd "$srcdir/matio-$pkgver" + cd matio-$pkgver make DESTDIR="$pkgdir" install } diff --git a/community/metacity/PKGBUILD b/community/metacity/PKGBUILD index 5955d5b88..1eef10aa0 100644 --- a/community/metacity/PKGBUILD +++ b/community/metacity/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 88686 2013-04-21 22:17:01Z heftig $ +# $Id: PKGBUILD 88820 2013-04-23 01:21:30Z bgyorgy $ # Maintainer: Balló György # Contributor: Jan de Groot pkgname=metacity pkgver=2.34.13 -pkgrel=4 +pkgrel=5 pkgdesc="Legacy GNOME window manager" arch=('i686' 'x86_64') license=('GPL') @@ -17,12 +17,14 @@ source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$p fix_compositing_startup.patch fix_force_quit.patch fix_shadows.patch - enable_compositing.patch) + enable_compositing.patch + application-switcher.patch) sha256sums=('8cf4dbf0da0a6f36357ce7db7f829ec685908a7792453c662fb8184572b91075' '5094a0ffe3eb8289ed752829877c2e1b743eddf938ad3fc92fb4574b42765ae2' '917760ac3375894ebb4052dfc7c8dff1ac556fb81033d7a7caf02123ceede50d' 'a0981477e9b3fd108fd03b7637bfd1f17a1f6cb13ec703d86b424b55076096f3' - 'e53c1c20e19cd3d94d05d08045c7a9a373ce52051928ccc69bf3068081f30f9a') + 'e53c1c20e19cd3d94d05d08045c7a9a373ce52051928ccc69bf3068081f30f9a' + '177ded8203c3ff25f59a24445145cb54da9aba4216a0014c34979b7c12f3c099') build() { cd "$pkgname-$pkgver" @@ -39,6 +41,9 @@ build() { # Enable compositing by default (required for the desktop rendering feature of nautilus) patch -Np1 -i "$srcdir/enable_compositing.patch" + # Rename switch-windows to switch-applications (required for GNOME 3.8 compatibility) + patch -Np1 -i "$srcdir/application-switcher.patch" + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$pkgname \ --disable-static --disable-schemas-compile make diff --git a/community/metacity/application-switcher.patch b/community/metacity/application-switcher.patch new file mode 100644 index 000000000..2832d262c --- /dev/null +++ b/community/metacity/application-switcher.patch @@ -0,0 +1,26 @@ +diff -Naur metacity-2.34.13.orig/src/50-metacity-navigation.xml.in metacity-2.34.13/src/50-metacity-navigation.xml.in +--- metacity-2.34.13.orig/src/50-metacity-navigation.xml.in 2012-10-15 20:06:27.000000000 +0200 ++++ metacity-2.34.13/src/50-metacity-navigation.xml.in 2013-04-23 02:35:18.000734619 +0200 +@@ -29,7 +29,7 @@ + + +- + + # Contributor: Martin Panter # Contributor: Stéphane Gaudreault @@ -23,7 +23,8 @@ provides=('mplayer') conflicts=('mplayer') options=(!emptydirs) source=(ftp://ftp.archlinux.org/other/community/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}) -sha256sums=('03aeccbd82b3598e0656b54ae6ab60c79afdb78eabe1b2915e7912db7efbd343') +sha256sums=('03aeccbd82b3598e0656b54ae6ab60c79afdb78eabe1b2915e7912db7efbd343' + 'SKIP') build() { cd $pkgname-$pkgver diff --git a/community/puzzles/PKGBUILD b/community/puzzles/PKGBUILD index 7d33b4d16..404bfa286 100644 --- a/community/puzzles/PKGBUILD +++ b/community/puzzles/PKGBUILD @@ -3,7 +3,7 @@ # Maintainer: schuay pkgname=puzzles -pkgver=9694 +pkgver=9835 pkgrel=1 pkgdesc="Simon Tatham's Portable Puzzle Collection" arch=('i686' 'x86_64') @@ -38,4 +38,4 @@ package() { mv ${pkgdir}/usr/bin/blackbox ${pkgdir}/usr/bin/puzzles-blackbox } -md5sums=('f5e7b7b2a1bab3c939bb03e4ff8201c1') +md5sums=('0db6e36f2ac04490f38ace15aabab555') diff --git a/community/tinc/PKGBUILD b/community/tinc/PKGBUILD index 227efcbec..d16e10cd1 100644 --- a/community/tinc/PKGBUILD +++ b/community/tinc/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 85671 2013-03-04 16:46:31Z tredaelli $ +# $Id: PKGBUILD 88838 2013-04-23 16:26:01Z tredaelli $ # Maintainer: Timothy Redaelli # Contributor: helios # Contributor: Lothar Gesslein # Contributor: Dominik George pkgname=tinc -pkgver=1.0.20 +pkgver=1.0.21 pkgrel=1 pkgdesc="VPN (Virtual Private Network) daemon" arch=('i686' 'x86_64') @@ -16,8 +16,8 @@ backup=(etc/conf.d/tincd.conf) install=tinc.install source=(http://www.tinc-vpn.org/packages/tinc-$pkgver.tar.gz{,.sig} tincd.rc tincd.conf tincd@.service) -md5sums=('001277e0ccd7ca29f7fa4039774ad611' - '8ad9e8784712bdc1496223c6dbd99ab9' +md5sums=('d7bc9ca38672c9da08d74ff2a3e8e36d' + 'SKIP' '64bb53748d9051255f243003f0d511f5' '7c0276d4812cc5d3cc18142562a3aa82' '035b0e549b08da55d19a8df5b8306e4d') diff --git a/extra/brltty/PKGBUILD b/extra/brltty/PKGBUILD index c86f5b324..b374331bd 100644 --- a/extra/brltty/PKGBUILD +++ b/extra/brltty/PKGBUILD @@ -1,31 +1,32 @@ -# $Id: PKGBUILD 183336 2013-04-21 22:08:36Z heftig $ -# Maintainer: +# $Id: PKGBUILD 183561 2013-04-23 13:10:19Z tomegun $ +# Maintainer: Tom Gundersen # Contributor: Jan de Groot # Contributor: Giovanni Scafora pkgname=brltty pkgver=4.5 -pkgrel=1 +pkgrel=3 pkgdesc="Braille display driver for Linux/Unix" arch=(i686 x86_64) url="http://mielke.cc/brltty" license=(GPL LGPL) -depends=(libxaw at-spi2-core gpm 'icu>=51.1' tcl atk cython) -makedepends=(bluez) -optdepends=('bluez: bluetooth support') +depends=(libxaw gpm icu tcl cython) +makedepends=(bluez at-spi2-core) +optdepends=('bluez: bluetooth support' + 'at-spi2-core: X11/GNOME Apps accessibility' + 'atk: ATK bridge for X11/GNOME accessibility') backup=(etc/brltty.conf) options=('!emptydirs') install=brltty.install source=(http://mielke.cc/$pkgname/releases/$pkgname-$pkgver.tar.gz brltty.service) -md5sums=('7b52fa7746fed41ed344a1f75ce55951' - '7acecd700b9f94d76fe4a6ad56cb0448') + build() { cd $pkgname-$pkgver ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ --mandir=/usr/share/man \ --with-tables-directory=/usr/share/brltty \ - --with-screen-driver=a2 \ + --with-screen-driver=lx \ --enable-gpm \ --disable-java-bindings \ --disable-static @@ -39,3 +40,5 @@ package() { install -Dm644 Documents/brltty.conf "$pkgdir/etc/brltty.conf" install -Dm644 ../brltty.service "$pkgdir/usr/lib/systemd/system/brltty.service" } +md5sums=('7b52fa7746fed41ed344a1f75ce55951' + '0cad54bb5470122535f5e3a11d5ca123') diff --git a/extra/brltty/brltty.service b/extra/brltty/brltty.service index 1b9d55e32..4ef39c3fc 100644 --- a/extra/brltty/brltty.service +++ b/extra/brltty/brltty.service @@ -9,4 +9,4 @@ Type=forking PIDFile=/run/brltty.pid [Install] -WantedBy=multi-user.target +WantedBy=sysinit.target diff --git a/extra/dconf/PKGBUILD b/extra/dconf/PKGBUILD index d7557337a..a12c0d2ec 100644 --- a/extra/dconf/PKGBUILD +++ b/extra/dconf/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 183343 2013-04-21 22:08:45Z heftig $ +# $Id: PKGBUILD 183552 2013-04-23 04:49:12Z eric $ # Maintainer: Ionut Biru pkgname=dconf @@ -9,7 +9,7 @@ arch=(i686 x86_64) url="http://live.gnome.org/dconf" license=('LGPL2.1') depends=('glib2' 'gtk-update-icon-cache') -makedepends=('vala' 'gtk3' 'intltool' 'docbook-xsl' 'python') +makedepends=('vala' 'gtk3' 'intltool' 'docbook-xsl' 'python' 'python2') optdepends=('gtk3: for dconf-editor') install=dconf.install source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) diff --git a/extra/msmtp/PKGBUILD b/extra/msmtp/PKGBUILD index 83e5fa89a..8b0964afa 100644 --- a/extra/msmtp/PKGBUILD +++ b/extra/msmtp/PKGBUILD @@ -1,19 +1,24 @@ -# $Id: PKGBUILD 169483 2012-10-22 00:13:27Z eric $ +# $Id: PKGBUILD 183544 2013-04-22 22:24:46Z eric $ # Maintainer: Eric Bélanger pkgbase=msmtp pkgname=('msmtp' 'msmtp-mta') -pkgver=1.4.30 +pkgver=1.4.31 pkgrel=1 arch=('i686' 'x86_64') license=('GPL3') url="http://msmtp.sourceforge.net" makedepends=('texlive-core' 'gsasl' 'libgnome-keyring') source=(http://download.sourceforge.net/sourceforge/msmtp/${pkgbase}-${pkgver}.tar.bz2) -sha1sums=('fd469bae0c3394b30b771780e62bbd41c4d5d175') +sha1sums=('c0edce1e1951968853f15209c8509699ff9e9ab5') + +prepare() { + cd ${pkgbase}-${pkgver} + sed -i 's|/usr/bin/python|/usr/bin/python2|' scripts/msmtp-gnome-tool/msmtp-gnome-tool.py +} build() { - cd "${srcdir}/${pkgbase}-${pkgver}" + cd ${pkgbase}-${pkgver} ./configure --prefix=/usr --sysconfdir=/etc --with-ssl=gnutls make make -C doc html pdf @@ -24,7 +29,7 @@ package_msmtp() { depends=('gsasl' 'libgnome-keyring') install=msmtp.install - cd "${srcdir}/${pkgbase}-${pkgver}" + cd ${pkgbase}-${pkgver} make DESTDIR="${pkgdir}" install make DESTDIR="${pkgdir}" -C doc install-html install-pdf diff --git a/extra/opengtl/PKGBUILD b/extra/opengtl/PKGBUILD index 227a66368..67d61514a 100644 --- a/extra/opengtl/PKGBUILD +++ b/extra/opengtl/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 173974 2012-12-30 15:30:38Z foutrelis $ +# $Id: PKGBUILD 183549 2013-04-23 00:30:16Z eric $ # Maintainer: # Contributor: Ronald van Haren # Contributor: Andries Radu pkgname=opengtl -pkgver=0.9.17 -pkgrel=2 +pkgver=0.9.18 +pkgrel=1 pkgdesc="A set of libraries for using and integrating transformation algorithms (such as filter or color conversion) in graphics applications" url="http://www.opengtl.org" arch=('i686' 'x86_64') @@ -13,18 +13,11 @@ license=('GPL') depends=('gcc-libs' 'llvm') makedepends=('cmake' 'libpng') optdepends=('libpng: for using the png extension') -source=(http://download.opengtl.org/OpenGTL-$pkgver.tar.bz2 - opengtl-0.9.17-fix-ftbfs-with-llvm-3.2.patch) -sha256sums=('89a37394fe71f2e771d7230333c86b93706f0083f86a58a86a670bca7e4f905e' - 'd3e12d964c927e6f659df00e6210815c803c9126b34e9e92d4ccfebd6d30c8d7') +source=(http://download.opengtl.org/OpenGTL-$pkgver.tar.bz2) +sha256sums=('f094b3d2a1a60519975bb3badc05e704f2b93c7a3d2cb753041f2ff27cfcd9f8') build() { cd "$srcdir" - - # Fix build with LLVM 3.2 - patch -d OpenGTL-$pkgver -Np1 -i \ - "$srcdir/opengtl-0.9.17-fix-ftbfs-with-llvm-3.2.patch" - mkdir build cd build cmake ../OpenGTL-$pkgver \ diff --git a/extra/opengtl/opengtl-0.9.17-fix-ftbfs-with-llvm-3.2.patch b/extra/opengtl/opengtl-0.9.17-fix-ftbfs-with-llvm-3.2.patch deleted file mode 100644 index c148c88bb..000000000 --- a/extra/opengtl/opengtl-0.9.17-fix-ftbfs-with-llvm-3.2.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff -upr OpenGTL-0.9.17.orig/CMakeLists.txt OpenGTL-0.9.17/CMakeLists.txt ---- OpenGTL-0.9.17.orig/CMakeLists.txt 2012-06-04 17:51:43.000000000 +0300 -+++ OpenGTL-0.9.17/CMakeLists.txt 2012-12-25 03:00:30.000000000 +0200 -@@ -47,8 +47,8 @@ configure_file(config-endian.h.cmake ${C - - find_package(LLVM REQUIRED) - --if( NOT MSVC AND NOT (LLVM_VERSION STREQUAL "3.1" OR LLVM_VERSION STREQUAL "3.0" ) ) # There is no way with MSVC to know the llvm version -- message(FATAL_ERROR "LLVM 3.0 or 3.1 is required.") -+if( NOT MSVC AND NOT LLVM_VERSION STREQUAL "3.2" ) # There is no way with MSVC to know the llvm version -+ message(FATAL_ERROR "LLVM 3.2 is required.") - endif() - - if(MSVC) -diff -upr OpenGTL-0.9.17.orig/OpenCTL/OpenCTL/Program.cpp OpenGTL-0.9.17/OpenCTL/OpenCTL/Program.cpp ---- OpenGTL-0.9.17.orig/OpenCTL/OpenCTL/Program.cpp 2012-06-04 17:51:43.000000000 +0300 -+++ OpenGTL-0.9.17/OpenCTL/OpenCTL/Program.cpp 2012-12-25 02:59:17.000000000 +0200 -@@ -29,7 +29,7 @@ - #include - #include - #include --#include -+#include - #include - - // GTLCore -diff -upr OpenGTL-0.9.17.orig/OpenGTL/GTLCore/ModuleData_p.cpp OpenGTL-0.9.17/OpenGTL/GTLCore/ModuleData_p.cpp ---- OpenGTL-0.9.17.orig/OpenGTL/GTLCore/ModuleData_p.cpp 2012-06-04 17:51:43.000000000 +0300 -+++ OpenGTL-0.9.17/OpenGTL/GTLCore/ModuleData_p.cpp 2012-12-25 02:59:34.000000000 +0200 -@@ -23,7 +23,7 @@ - - #include - #include --#include -+#include - #include - #include - #include diff --git a/extra/pyqt/PKGBUILD b/extra/pyqt/PKGBUILD index 2e2064da0..6ed0b16ad 100644 --- a/extra/pyqt/PKGBUILD +++ b/extra/pyqt/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 179560 2013-03-07 08:19:05Z andrea $ +# $Id: PKGBUILD 183563 2013-04-23 13:10:46Z andrea $ # Maintainer: Andrea Scarpino # Contributor: Douglas Soares de Andrade # Contributor: riai Ben pkgbase=pyqt pkgname=('pyqt-common' 'pyqt' 'python2-pyqt') -pkgver=4.10 +pkgver=4.10.1 pkgrel=1 arch=('i686' 'x86_64') url="http://riverbankcomputing.co.uk/software/pyqt/intro" @@ -13,7 +13,7 @@ license=('GPL') makedepends=('python-sip' 'python-dbus' 'python2-sip' 'phonon' 'mesa' 'python2-opengl' 'qt-assistant-compat' 'qtwebkit' 'python2-dbus') source=("http://downloads.sourceforge.net/${pkgbase}/PyQt-x11-gpl-${pkgver}.tar.gz") -md5sums=('b5953e96d0f82d322d0cba008163321e') +md5sums=('e5973c4ec0b0469f329bc00209d2ad9c') build() { cp -r PyQt-x11-gpl-${pkgver} Py2Qt-x11-gpl-${pkgver} @@ -27,9 +27,6 @@ build() { # Thanks Gerardo for the rpath fix find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g' - # Ugly workaround to fix build - sed -i 's|/usr/include/qt4/phonon|/usr/include/phonon|' phonon/Makefile - make ### Python2 version ### @@ -43,9 +40,6 @@ build() { # Thanks Gerardo for the rpath fix find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g' - # Ugly workaround to fix build - sed -i 's|/usr/include/qt4/phonon|/usr/include/phonon|' phonon/Makefile - make } diff --git a/libre/blender-libre/PKGBUILD b/libre/blender-libre/PKGBUILD index 441e658a9..e303d8d2b 100644 --- a/libre/blender-libre/PKGBUILD +++ b/libre/blender-libre/PKGBUILD @@ -1,4 +1,3 @@ -# $Id$ # Maintainer: Márcio Silva _spacenav=false @@ -14,7 +13,7 @@ fi epoch=7 pkgver=2.66a _pyver=3.3 -pkgrel=3 +pkgrel=4 pkgdesc="Fully integrated 3D graphics creation suite, without nonfree povray and cuda support$_spndesc" arch=( i686 @@ -22,21 +21,23 @@ arch=( mips64el ) license=GPL -url="http://www.${_pkgname%-$_pkgflag}.org" +url=http://www.${_pkgname%-$_pkgflag}.org depends=( desktop-file-utils - ffmpeg - fftw - freetype2 + 'ffmpeg=1:1.2' + fftw #3.3.3 + freetype2 #2.4.11 hicolor-icon-theme + 'ilmbase=2.0.0' jack - libpng - libtiff - openal - openimageio - opencollada - opencolorio - openshadinglanguage + libpng #1.5.15 + libtiff #4.0.3 + openal #1.15.1 + 'openexr=2.0.0' + openimageio #1.1.9 + 'opencollada=20130305' + opencolorio #1.0.8 + openshadinglanguage #1.3.0 shared-mime-info xdg-utils ) @@ -45,27 +46,29 @@ if [ $_spacenav == true ]; then libspnav ) fi -optdepends='bullet: for Rigid Bodies and Physics Simulation' +optdepends=( + 'bullet: for Rigid Bodies and Physics Simulation' + 'xcftools: for import GIMP images to scene (pcr repo)' +) makedepends=( boost cmake mesa subversion ) -provides=( - ${_pkgname%-$_pkgflag}=$epoch:$pkgver -) +provides=(${_pkgname%-$_pkgflag}=$epoch:$pkgver) conflicts=${_pkgname%-$_pkgflag} replaces=${_pkgname%-$_pkgflag} install=$_pkgname.install -source="http://download.${_pkgname%-$_pkgflag}.org/source/${_pkgname%-$_pkgflag}-$pkgver.tar.gz" +source=http://download.${_pkgname%-$_pkgflag}.org/source/${_pkgname%-$_pkgflag}-$pkgver.tar.gz sha512sums=ea5def031daa220991f6165950234b311e8ae3baa6785d6226efefa90b64e1b83e8635f71f9a7fc7ae23923ce313d5ae48ffa0c54cf7ff794a4fb2dacbe8714f -build() { - cd $srcdir/${_pkgname%-$_pkgflag}-$pkgver +prepare() { + mkdir cd $srcdir/${_pkgname%-$_pkgflag}-$pkgver/build +} - mkdir build - cd build +build() { + cd $srcdir/${_pkgname%-$_pkgflag}-$pkgver/build [[ $CARCH == i686 ]] && DSUPPORT_SSE2_BUILD='-DSUPPORT_SSE2_BUILD=OFF' diff --git a/libre/opencollada/PKGBUILD b/libre/opencollada/PKGBUILD new file mode 100644 index 000000000..2cf700e1f --- /dev/null +++ b/libre/opencollada/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer: Márcio Silva + +pkgname=opencollada +pkgver=20130305 +pkgrel=1 +pkgdesc="Stream based reader and writer library for COLLADA files (built for the blender-libre package)" +arch=( + i686 + x86_64 + mips64el +) +url=https://github.com/KhronosGroup/OpenCOLLADA +license=GPL +depends=( + libxml2 + pcre +) +makedepends=( + git + cmake +) +source=git://github.com/KhronosGroup/OpenCOLLADA.git +sha512sums=SKIP + +prepare() { + cd $srcdir/OpenCOLLADA + + # adapt source to last blender release + git reset --hard da9f1c3d5da28d475f35ff1175d60cb74fa0f661 # Tue Mar 5 11:30:27 2013 +0100 + + [[ -d build ]] && rm -r build + mkdir build +} + +build() { + cd $srcdir/OpenCOLLADA/build + + setarch $CARCH cmake .. -DCMAKE_INSTALL_PREFIX=/usr + setarch $CARCH make +} + +package() { + cd $srcdir/OpenCOLLADA/build + + setarch $CARCH make DESTDIR=$pkgdir install + + install -d $pkgdir/etc/ld.so.conf.d + echo /usr/lib/$pkgname > $pkgdir/etc/ld.so.conf.d/$pkgname.conf +} + +# vim:set ts=2 sw=2 et: + -- cgit v1.2.3-54-g00ecf From 9c9a534c011e220f1fcdc4bd56c21d7d8cfc94a1 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 25 Apr 2013 01:16:48 -0700 Subject: Thu Apr 25 01:16:48 PDT 2013 --- community/cairo-dock-plugins/PKGBUILD | 4 +- community/cairo-dock/PKGBUILD | 4 +- community/darktable/PKGBUILD | 6 +- community/dia/PKGBUILD | 10 +- community/fcitx/PKGBUILD | 16 +- community/gmic/PKGBUILD | 8 +- community/gnome-settings-daemon-compat/PKGBUILD | 26 +- .../flashback-rename.patch | 15 +- .../revert-input-sources.patch | 123 +++++ .../standalone-background-helper.patch | 4 +- .../standalone-media-keys-helper.patch | 564 +++++++++++++++++++++ .../gnome-settings-daemon-compat/xinput.patch | 36 ++ community/haskell-dlist/PKGBUILD | 8 +- community/haskell-pcre-light/PKGBUILD | 2 +- community/mongodb/PKGBUILD | 6 +- community/muffin/PKGBUILD | 16 +- community/muffin/switch-applications.patch | 20 + community/nemo/PKGBUILD | 9 +- community/nemo/remove-desktop-background.patch | 102 +++- community/nginx/PKGBUILD | 6 +- community/nodejs/PKGBUILD | 14 +- community/opencollada/PKGBUILD | 39 -- community/opencollada/opencollada.conf | 1 - community/pokerth/PKGBUILD | 20 +- community/pokerth/pokerth_game.pro.patch | 18 - extra/atkmm/PKGBUILD | 6 +- extra/clamav/PKGBUILD | 12 +- extra/gparted/PKGBUILD | 8 +- extra/libsoup/PKGBUILD | 6 +- extra/pangomm/PKGBUILD | 8 +- libre/blender-addon-luxrender/PKGBUILD | 35 ++ libre/cgminer-libre/PKGBUILD | 4 +- libre/luxblend25/PKGBUILD | 35 -- libre/luxrender-libre/PKGBUILD | 8 +- .../boost-1.53-shared_array_constructor.diff | 62 +++ pcr/python-sfml2/PKGBUILD | 32 +- pcr/python2-sfml2/PKGBUILD | 34 +- pcr/ryzom-client/PKGBUILD | 63 --- pcr/ryzom-hg/PKGBUILD | 116 +++++ pcr/ryzom-hg/ryzom.desktop | 11 + pcr/ryzom-hg/ryzom.sh | 9 + pcr/ryzom-nel/PKGBUILD | 68 --- pcr/xcftools/xcftools.patch | 27 + pcr/yafaray-git/PKGBUILD | 115 ++--- 44 files changed, 1310 insertions(+), 426 deletions(-) create mode 100644 community/gnome-settings-daemon-compat/revert-input-sources.patch create mode 100644 community/gnome-settings-daemon-compat/standalone-media-keys-helper.patch create mode 100644 community/gnome-settings-daemon-compat/xinput.patch create mode 100644 community/muffin/switch-applications.patch delete mode 100644 community/opencollada/PKGBUILD delete mode 100644 community/opencollada/opencollada.conf delete mode 100644 community/pokerth/pokerth_game.pro.patch create mode 100644 libre/blender-addon-luxrender/PKGBUILD delete mode 100644 libre/luxblend25/PKGBUILD create mode 100644 libre/luxrender-libre/boost-1.53-shared_array_constructor.diff delete mode 100644 pcr/ryzom-client/PKGBUILD create mode 100644 pcr/ryzom-hg/PKGBUILD create mode 100644 pcr/ryzom-hg/ryzom.desktop create mode 100644 pcr/ryzom-hg/ryzom.sh delete mode 100644 pcr/ryzom-nel/PKGBUILD create mode 100644 pcr/xcftools/xcftools.patch (limited to 'community') diff --git a/community/cairo-dock-plugins/PKGBUILD b/community/cairo-dock-plugins/PKGBUILD index c2bba4804..cad086944 100755 --- a/community/cairo-dock-plugins/PKGBUILD +++ b/community/cairo-dock-plugins/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 88459 2013-04-18 09:05:42Z alucryd $ +# $Id: PKGBUILD 88927 2013-04-24 21:31:30Z alucryd $ # Maintainer: Maxime Gauduin # Contributor: Tofe # Contributor: zhuqin @@ -7,7 +7,7 @@ pkgname=cairo-dock-plugins pkgver=3.2.1 -pkgrel=1 +pkgrel=2 pkgdesc="Plugins for Cairo-Dock" url="https://launchpad.net/cairo-dock" license=('GPL') diff --git a/community/cairo-dock/PKGBUILD b/community/cairo-dock/PKGBUILD index 3820dd2fc..8f910fe66 100755 --- a/community/cairo-dock/PKGBUILD +++ b/community/cairo-dock/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 88485 2013-04-18 13:57:25Z alucryd $ +# $Id: PKGBUILD 88925 2013-04-24 21:20:34Z alucryd $ # Maintainer: Maxime Gauduin # Contributor: Tofe # Contributor: erm67 pkgname=cairo-dock pkgver=3.2.1 -pkgrel=2 +pkgrel=3 pkgdesc="Light eye-candy fully themable animated dock" arch=('i686' 'x86_64') url="https://launchpad.net/cairo-dock-core" diff --git a/community/darktable/PKGBUILD b/community/darktable/PKGBUILD index 6acd4b76f..7edf61f33 100644 --- a/community/darktable/PKGBUILD +++ b/community/darktable/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 88609 2013-04-20 16:45:02Z heftig $ +# $Id: PKGBUILD 88866 2013-04-24 14:09:28Z spupykin $ # Maintainer: Sergej Pupykin # Maintainer: Christian Himpel # Contributor: Johannes Hanika @@ -6,14 +6,14 @@ pkgname=darktable pkgver=1.2 _pkgver=1.2 -pkgrel=2 +pkgrel=3 pkgdesc="Utility to organize and develop raw images" arch=('i686' 'x86_64') url=http://darktable.sf.net/ license=('GPL3') depends=('exiv2>=0.18' 'intltool>=0.40' 'lcms2' 'lensfun>=0.2.3' 'libglade' 'dbus-glib' 'curl' 'libgnome-keyring' 'libgphoto2' 'libusb-compat' 'openexr' 'sqlite' 'libxslt' - 'libsoup') + 'libsoup' 'gtk-engines') makedepends=('intltool>=0.40' 'cmake' 'librsvg') optdepends=('librsvg') install=darktable.install diff --git a/community/dia/PKGBUILD b/community/dia/PKGBUILD index 106c0ec9b..47d9a2810 100644 --- a/community/dia/PKGBUILD +++ b/community/dia/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 69446 2012-04-16 11:44:58Z spupykin $ +# $Id: PKGBUILD 88862 2013-04-24 13:59:45Z spupykin $ # Maintainer: Thorsten Töpper # Maintainer: Sergej Pupykin # Contributor: Juergen Hoetzel @@ -6,7 +6,7 @@ pkgname=dia pkgver=0.97.2 -pkgrel=3 +pkgrel=4 pkgdesc="A GTK+ based diagram creation program" arch=('i686' 'x86_64') license=('GPL') @@ -17,9 +17,9 @@ makedepends=('intltool' 'python2' 'docbook-xsl') optdepends=('python2') options=('!libtool' 'docs' '!emptydirs') source=("ftp://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.97/${pkgname}-${pkgver}.tar.xz" - "dia-overflow-fix.patch") + "dia-crash.patch::https://git.gnome.org/browse/dia/patch/?id=213bdfe956bf8fe57c86316f68a09408fef1647e") md5sums=('1e1180a513fb567709b09bc19f12105e' - '8fd9a2ad35b5a6fd8c758d7c73dbfe66') + '2ad4fcfbfb561930a1d0335cc942a07b') build() { cd "${srcdir}/${pkgname}-${pkgver}" @@ -29,7 +29,7 @@ build() { sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' "$file" done sed -i 's#python2\.1#python2 python2.1#' configure -# patch -p1 <$srcdir/dia-overflow-fix.patch + patch -p1 <$srcdir/dia-crash.patch ./configure --prefix=/usr \ --with-cairo \ diff --git a/community/fcitx/PKGBUILD b/community/fcitx/PKGBUILD index ffe35ec54..3dca22164 100644 --- a/community/fcitx/PKGBUILD +++ b/community/fcitx/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 88842 2013-04-23 18:22:53Z fyan $ +# $Id: PKGBUILD 88848 2013-04-24 06:26:30Z fyan $ # Maintainer: Felix Yan # Contributor: Andrea Scarpino # Contributor: csslayer @@ -6,7 +6,7 @@ pkgbase=fcitx pkgname=('fcitx' 'fcitx-gtk2' 'fcitx-gtk3' 'fcitx-qt4') pkgver=4.2.7 -pkgrel=7 +pkgrel=8 groups=('fcitx-im') arch=('i686' 'x86_64') url="http://code.google.com/p/fcitx/" @@ -17,17 +17,17 @@ source=(http://fcitx.googlecode.com/files/${pkgbase}-${pkgver}_dict.tar.xz https://github.com/fcitx/fcitx/commit/9937b68bad3a7e9465e17b711ce9c0a072d3071f.patch https://github.com/fcitx/fcitx/commit/10ff96ca1215187444951cdbebe9e0beacacdf5e.patch https://github.com/fcitx/fcitx/commit/dc36c1a88f863971f81a76b8d9ec0db23b0d9387.patch + https://github.com/fcitx/fcitx/commit/a9e6570046f9c1477dd6ec6e30e91e020e62d698.patch ) build() { #source /etc/profile.d/qt4.sh - export CFLAGS+=" -Wall" - cd "$srcdir/$pkgbase-$pkgver" patch -Np1 -i "$srcdir/9937b68bad3a7e9465e17b711ce9c0a072d3071f.patch" patch -Np1 -i "$srcdir/10ff96ca1215187444951cdbebe9e0beacacdf5e.patch" git apply -v -p1 "$srcdir/dc36c1a88f863971f81a76b8d9ec0db23b0d9387.patch" + patch -Np1 -i "$srcdir/a9e6570046f9c1477dd6ec6e30e91e020e62d698.patch" cd "$srcdir" mkdir -p build @@ -56,8 +56,9 @@ package_fcitx() { pkgdesc="Flexible Context-aware Input Tool with eXtension" depends=('pango' 'libxinerama' 'gtk-update-icon-cache' 'shared-mime-info' \ 'hicolor-icon-theme' 'desktop-file-utils' 'libxkbfile' \ - 'libxfixes' 'dbus-core' 'icu' 'enchant') - optdepends=('opencc: optional engine to do chinese convert' + 'libxfixes' 'dbus-core' 'icu') + optdepends=('enchant: for word predication support' + 'opencc: optional engine to do chinese convert' 'fcitx-anthy: Hiragana text to Kana Kanji mixed text Japanese input method' 'fcitx-chewing: Intelligent Zhuyin input method library for traditional Chinese' 'fcitx-cloudpinyin: Standalone module for fcitx that uses pinyin API on the internet to provide additional input candidates' @@ -130,4 +131,5 @@ package_fcitx-qt4() { md5sums=('6e291717c24615b9dc9bfaa2949af3a7' '246e36c2232f107ed1692a52ebc43c39' '6f420547bc8af9627db2e5290f758433' - '51e53377e1b83661f2896e25d1a46242') + '51e53377e1b83661f2896e25d1a46242' + '5e9f90817722a138b459b2bf6a926f96') diff --git a/community/gmic/PKGBUILD b/community/gmic/PKGBUILD index ba20f9ea9..19fd40f9b 100644 --- a/community/gmic/PKGBUILD +++ b/community/gmic/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 88611 2013-04-20 16:45:04Z heftig $ +# $Id: PKGBUILD 88860 2013-04-24 13:40:06Z spupykin $ # Maintainer: Sergej Pupykin # Maintainer: Jan "heftig" Steffens # Contributor: farid @@ -6,8 +6,8 @@ pkgbase=gmic pkgname=("gmic" "gimp-plugin-gmic" "zart") -pkgver=1.5.5.1 -pkgrel=2 +pkgver=1.5.5.2 +pkgrel=1 arch=("i686" "x86_64") url="http://gmic.sourceforge.net" license=("custom:CeCILL") @@ -25,6 +25,8 @@ prepare() { find "${srcdir}/gmic-${pkgver}/zart" -type d -execdir chmod 755 '{}' \; sed -i 's|qmake zart.pro|qmake-qt4 zart.pro|' src/Makefile } +md5sums=('7d3a8e5cf9e866dd8979dc7c759a21a6' + '120319b0d6c81c5af186abe2281b79ca') build() { cd "${srcdir}/gmic-${pkgver}" diff --git a/community/gnome-settings-daemon-compat/PKGBUILD b/community/gnome-settings-daemon-compat/PKGBUILD index 314d38cd1..108f1ab5a 100644 --- a/community/gnome-settings-daemon-compat/PKGBUILD +++ b/community/gnome-settings-daemon-compat/PKGBUILD @@ -1,35 +1,42 @@ -# $Id: PKGBUILD 88700 2013-04-21 22:24:08Z heftig $ +# $Id: PKGBUILD 88858 2013-04-24 12:55:15Z bgyorgy $ # Maintainer: Balló György # Contributor: Jan Alexander Steffens (heftig) pkgname=gnome-settings-daemon-compat _pkgname=gnome-settings-daemon pkgver=3.6.4 -pkgrel=1 +pkgrel=2 pkgdesc="Compatibility package that provides background and mount helpers for the Gnome Flashback session" arch=('i686' 'x86_64') license=('GPL') -depends=('gnome-desktop') +depends=('gnome-settings-daemon') makedepends=('docbook-xsl' 'ibus' 'intltool' 'libcanberra' 'libnotify' 'libpulse' 'libwacom' 'nss' 'upower' 'xf86-input-wacom') url="https://live.gnome.org/GnomeFlashback" source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver%.*}/$_pkgname-$pkgver.tar.xz standalone-background-helper.patch + standalone-media-keys-helper.patch draw-background-unconditionally.patch sessionisactive-port.patch + revert-input-sources.patch + xinput.patch flashback-rename.patch remove-libgsd-dependency.patch) sha256sums=('3db993f2dbabc0c9d06a309bb12c9a7104b9cdda414ac4b1c301f5114a441c15' - '4c2206b9654bd2b2729297870696c87906e2386b492bae1052b94148e5ea370f' + 'f9781a17d7baa2777b16fa2c71fb6053612131cffcfffcc635d49f9dacb1e637' + '4776de33b1517976b308a9ce23661cd0ac68ddd2bcf41465c73f8a2e2d09d20c' '1b6b8216434b766e1389e876cba5d6ab61498c5824f6d2cc5d67dcf58a07842a' '0821f469cd168f3a131da513a5f9dd352c06f9bc31d57d79de4dc063fa2de915' - '57c66068f06599ea682325e9f5b92b751d8f0a4322b53371698f8539f709b101' + '02da2467e287620c3b717c7ff5ffea7403cce714d5aa32e27d051b6571451e2a' + 'fe8cafee074e36a7a393c9ae7f65db1c13a0959213aaae94ab8a3543bf20a25d' + '1edabf1a5a56d4b797ccdb7d5003bad396eebe98541d5aa330c9851340b68dfe' '730f11d5689892fbab9aa2896f3720e813d17e2455f34fd3a0751e49f5b4c26c') build() { cd $_pkgname-$pkgver - # Build background helper as a stand alone binary + # Build background and media keys helpers as a stand alone binary patch -Np1 -i ../standalone-background-helper.patch + patch -Np1 -i ../standalone-media-keys-helper.patch # Always draw background patch -Np1 -i ../draw-background-unconditionally.patch @@ -37,6 +44,10 @@ build() { # Port to gnome-session's SessionIsActive property patch -Np1 -i ../sessionisactive-port.patch + # Add compatibility patches for media keys plugin + patch -Np1 -i ../revert-input-sources.patch + patch -Np1 -i ../xinput.patch + # Remove libgsd dependency patch -Np1 -i ../remove-libgsd-dependency.patch @@ -50,12 +61,15 @@ build() { # https://bugzilla.gnome.org/show_bug.cgi?id=656231 sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make -C plugins/common make -C plugins/automount make -C plugins/background + make -C plugins/media-keys } package() { cd $_pkgname-$pkgver make -C plugins/automount DESTDIR="$pkgdir" install make -C plugins/background DESTDIR="$pkgdir" install + make -C plugins/media-keys DESTDIR="$pkgdir" install } diff --git a/community/gnome-settings-daemon-compat/flashback-rename.patch b/community/gnome-settings-daemon-compat/flashback-rename.patch index 2aaa9ce22..8f3816bef 100644 --- a/community/gnome-settings-daemon-compat/flashback-rename.patch +++ b/community/gnome-settings-daemon-compat/flashback-rename.patch @@ -1,6 +1,6 @@ diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/automount/gnome-fallback-mount-helper.desktop.in.in gnome-settings-daemon-3.6.4/plugins/automount/gnome-fallback-mount-helper.desktop.in.in --- gnome-settings-daemon-3.6.4.orig/plugins/automount/gnome-fallback-mount-helper.desktop.in.in 2013-01-10 14:37:58.000000000 +0100 -+++ gnome-settings-daemon-3.6.4/plugins/automount/gnome-fallback-mount-helper.desktop.in.in 2013-04-10 16:58:35.356800871 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/automount/gnome-fallback-mount-helper.desktop.in.in 2013-04-24 14:34:43.743878119 +0200 @@ -9,4 +9,4 @@ NoDisplay=true OnlyShowIn=GNOME;Unity; @@ -8,8 +8,17 @@ diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/automount/gnome-fallback-mou -AutostartCondition=GNOME3 if-session gnome-fallback +AutostartCondition=GNOME3 if-session gnome-flashback diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-background-helper.desktop.in.in gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.desktop.in.in ---- gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-background-helper.desktop.in.in 2013-04-10 15:57:02.136341000 +0200 -+++ gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.desktop.in.in 2013-04-10 16:58:57.593982808 +0200 +--- gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-background-helper.desktop.in.in 2013-04-24 14:32:47.290988000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.desktop.in.in 2013-04-24 14:34:43.743878119 +0200 +@@ -9,4 +9,4 @@ + NoDisplay=true + OnlyShowIn=GNOME;Unity; + X-GNOME-Autostart-Notify=true +-AutostartCondition=GNOME3 if-session gnome-fallback ++AutostartCondition=GNOME3 if-session gnome-flashback +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in gnome-settings-daemon-3.6.4/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in +--- gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in 2013-04-24 14:32:52.807791000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in 2013-04-24 14:35:16.714696636 +0200 @@ -9,4 +9,4 @@ NoDisplay=true OnlyShowIn=GNOME;Unity; diff --git a/community/gnome-settings-daemon-compat/revert-input-sources.patch b/community/gnome-settings-daemon-compat/revert-input-sources.patch new file mode 100644 index 000000000..dc769de4e --- /dev/null +++ b/community/gnome-settings-daemon-compat/revert-input-sources.patch @@ -0,0 +1,123 @@ +From cc45fec342713745f391533a202976e97670f9e5 Mon Sep 17 00:00:00 2001 +From: Rui Matos +Date: Wed, 12 Dec 2012 09:31:40 +0000 +Subject: Revert "media-keys: Add key bindings to switch input sources" + +These are now provided by gnome-shell. + +This reverts commit fc58c347900f906e304591135ca6c13d9950ab4d. + +https://bugzilla.gnome.org/show_bug.cgi?id=690106 +--- +diff --git a/data/org.gnome.settings-daemon.plugins.media-keys.gschema.xml.in.in b/data/org.gnome.settings-daemon.plugins.media-keys.gschema.xml.in.in +index b56b5d1..25e5f3e 100644 +--- a/data/org.gnome.settings-daemon.plugins.media-keys.gschema.xml.in.in ++++ b/data/org.gnome.settings-daemon.plugins.media-keys.gschema.xml.in.in +@@ -175,16 +175,6 @@ + <_summary>Magnifier zoom out + <_description>Binding for the magnifier to zoom out + +- +- '' +- <_summary>Switch input source +- <_description>Binding to select the next input source +- +- +- '' +- <_summary>Switch input source backward +- <_description>Binding to select the previous input source +- + + + +diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c +index e5977d0..cd6fbc2 100644 +--- a/plugins/media-keys/gsd-media-keys-manager.c ++++ b/plugins/media-keys/gsd-media-keys-manager.c +@@ -98,10 +98,6 @@ static const gchar introspection_xml[] = + #define VOLUME_STEP 6 /* percents for one volume button press */ + #define MAX_VOLUME 65536.0 + +-#define GNOME_DESKTOP_INPUT_SOURCES_DIR "org.gnome.desktop.input-sources" +-#define KEY_CURRENT_INPUT_SOURCE "current" +-#define KEY_INPUT_SOURCES "sources" +- + #define GSD_MEDIA_KEYS_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_MEDIA_KEYS_MANAGER, GsdMediaKeysManagerPrivate)) + + typedef struct { +@@ -1807,40 +1803,6 @@ do_keyboard_brightness_action (GsdMediaKeysManager *manager, + } + + static void +-do_switch_input_source_action (GsdMediaKeysManager *manager, +- MediaKeyType type) +-{ +- GSettings *settings; +- GVariant *sources; +- gint i, n; +- +- settings = g_settings_new (GNOME_DESKTOP_INPUT_SOURCES_DIR); +- sources = g_settings_get_value (settings, KEY_INPUT_SOURCES); +- +- n = g_variant_n_children (sources); +- if (n < 2) +- goto out; +- +- i = g_settings_get_uint (settings, KEY_CURRENT_INPUT_SOURCE); +- +- if (type == SWITCH_INPUT_SOURCE_KEY) +- i += 1; +- else +- i -= 1; +- +- if (i < 0) +- i = n - 1; +- else if (i >= n) +- i = 0; +- +- g_settings_set_uint (settings, KEY_CURRENT_INPUT_SOURCE, i); +- +- out: +- g_variant_unref (sources); +- g_object_unref (settings); +-} +- +-static void + do_custom_action (GsdMediaKeysManager *manager, + MediaKey *key, + gint64 timestamp) +@@ -1999,10 +1961,6 @@ do_action (GsdMediaKeysManager *manager, + case BATTERY_KEY: + do_execute_desktop (manager, "gnome-power-statistics.desktop", timestamp); + break; +- case SWITCH_INPUT_SOURCE_KEY: +- case SWITCH_INPUT_SOURCE_BACKWARD_KEY: +- do_switch_input_source_action (manager, type); +- break; + /* Note, no default so compiler catches missing keys */ + case CUSTOM_KEY: + g_assert_not_reached (); +diff --git a/plugins/media-keys/shortcuts-list.h b/plugins/media-keys/shortcuts-list.h +index a16d0e7..437ed2c 100644 +--- a/plugins/media-keys/shortcuts-list.h ++++ b/plugins/media-keys/shortcuts-list.h +@@ -80,8 +80,6 @@ typedef enum { + KEYBOARD_BRIGHTNESS_DOWN_KEY, + KEYBOARD_BRIGHTNESS_TOGGLE_KEY, + BATTERY_KEY, +- SWITCH_INPUT_SOURCE_KEY, +- SWITCH_INPUT_SOURCE_BACKWARD_KEY, + CUSTOM_KEY + } MediaKeyType; + +@@ -148,8 +146,6 @@ static struct { + { KEYBOARD_BRIGHTNESS_UP_KEY, NULL, "XF86KbdBrightnessUp" }, + { KEYBOARD_BRIGHTNESS_DOWN_KEY, NULL, "XF86KbdBrightnessDown" }, + { KEYBOARD_BRIGHTNESS_TOGGLE_KEY, NULL, "XF86KbdLightOnOff" }, +- { SWITCH_INPUT_SOURCE_KEY, "switch-input-source", NULL }, +- { SWITCH_INPUT_SOURCE_BACKWARD_KEY, "switch-input-source-backward", NULL }, + { BATTERY_KEY, NULL, "XF86Battery" }, + }; + +-- +cgit v0.9.1 diff --git a/community/gnome-settings-daemon-compat/standalone-background-helper.patch b/community/gnome-settings-daemon-compat/standalone-background-helper.patch index ccbd18f9b..884f3031e 100644 --- a/community/gnome-settings-daemon-compat/standalone-background-helper.patch +++ b/community/gnome-settings-daemon-compat/standalone-background-helper.patch @@ -417,7 +417,7 @@ diff -Naur gnome-settings-daemon-3.6.4.orig/po/POTFILES.in gnome-settings-daemon [type: gettext/glade]plugins/a11y-keyboard/gsd-a11y-preferences-dialog.ui [type: gettext/ini]plugins/a11y-settings/a11y-settings.gnome-settings-plugin.in plugins/automount/gnome-fallback-mount-helper.desktop.in.in -+plugins/automount/gnome-fallback-background-helper.desktop.in.in ++plugins/background/gnome-fallback-background-helper.desktop.in.in plugins/automount/gsd-automount-manager.c plugins/automount/gsd-autorun.c -[type: gettext/ini]plugins/background/background.gnome-settings-plugin.in @@ -431,7 +431,7 @@ diff -Naur gnome-settings-daemon-3.6.4.orig/po/POTFILES.skip gnome-settings-daem data/org.gnome.settings-daemon.plugins.updates.gschema.xml.in data/org.gnome.settings-daemon.plugins.xrandr.gschema.xml.in data/org.gnome.settings-daemon.plugins.xsettings.gschema.xml.in -+plugins/automount/gnome-fallback-background-helper.desktop.in ++plugins/background/gnome-fallback-background-helper.desktop.in plugins/automount/gnome-fallback-mount-helper.desktop.in plugins/power/org.gnome.settings-daemon.plugins.power.policy.in plugins/wacom/org.gnome.settings-daemon.plugins.wacom.policy.in diff --git a/community/gnome-settings-daemon-compat/standalone-media-keys-helper.patch b/community/gnome-settings-daemon-compat/standalone-media-keys-helper.patch new file mode 100644 index 000000000..dec5ff3e8 --- /dev/null +++ b/community/gnome-settings-daemon-compat/standalone-media-keys-helper.patch @@ -0,0 +1,564 @@ +diff -Naur gnome-settings-daemon-3.6.4.orig/data/org.gnome.settings-daemon.plugins.gschema.xml.in.in gnome-settings-daemon-3.6.4/data/org.gnome.settings-daemon.plugins.gschema.xml.in.in +--- gnome-settings-daemon-3.6.4.orig/data/org.gnome.settings-daemon.plugins.gschema.xml.in.in 2013-04-24 03:11:02.893859531 +0200 ++++ gnome-settings-daemon-3.6.4/data/org.gnome.settings-daemon.plugins.gschema.xml.in.in 2013-04-24 13:43:11.128884064 +0200 +@@ -9,7 +9,6 @@ + + + +- + + + +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gnome-fallback-media-keys-helper.c gnome-settings-daemon-3.6.4/plugins/media-keys/gnome-fallback-media-keys-helper.c +--- gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gnome-fallback-media-keys-helper.c 1970-01-01 01:00:00.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/media-keys/gnome-fallback-media-keys-helper.c 2013-04-24 13:43:11.132217470 +0200 +@@ -0,0 +1,65 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- ++ * ++ * Copyright (C) 2010 Red Hat, Inc. ++ * ++ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ * Author: Tomas Bzatek ++ */ ++ ++#include "config.h" ++ ++#include ++#include ++#include ++#include ++ ++#include "gsd-media-keys-manager.h" ++ ++int ++main (int argc, ++ char **argv) ++{ ++ GMainLoop *loop; ++ GsdMediaKeysManager *manager; ++ GError *error = NULL; ++ ++ g_type_init (); ++ gtk_init (&argc, &argv); ++ ++ bindtextdomain (GETTEXT_PACKAGE, GNOME_SETTINGS_LOCALEDIR); ++ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); ++ textdomain (GETTEXT_PACKAGE); ++ ++ loop = g_main_loop_new (NULL, FALSE); ++ manager = gsd_media_keys_manager_new (); ++ ++ gsd_media_keys_manager_start (manager, &error); ++ ++ if (error != NULL) { ++ g_printerr ("Unable to start the media-keys manager: %s", ++ error->message); ++ ++ g_error_free (error); ++ _exit (1); ++ } ++ ++ g_main_loop_run (loop); ++ ++ gsd_media_keys_manager_stop (manager); ++ g_main_loop_unref (loop); ++ ++ return 0; ++} +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in gnome-settings-daemon-3.6.4/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in +--- gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in 1970-01-01 01:00:00.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in 2013-04-24 13:43:11.132217470 +0200 +@@ -0,0 +1,12 @@ ++[Desktop Entry] ++_Name=Media keys ++_Comment=Handle media keys ++Exec=@LIBEXECDIR@/gnome-fallback-media-keys-helper ++Icon=drive-optical ++Terminal=false ++Type=Application ++Categories= ++NoDisplay=true ++OnlyShowIn=GNOME;Unity; ++X-GNOME-Autostart-Notify=true ++AutostartCondition=GNOME3 if-session gnome-fallback +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gsd-media-keys-manager.c gnome-settings-daemon-3.6.4/plugins/media-keys/gsd-media-keys-manager.c +--- gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gsd-media-keys-manager.c 2013-01-10 14:37:58.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/media-keys/gsd-media-keys-manager.c 2013-04-24 13:43:11.132217470 +0200 +@@ -44,7 +44,6 @@ + #include + #endif + +-#include "gnome-settings-profile.h" + #include "gsd-marshal.h" + #include "gsd-media-keys-manager.h" + +@@ -622,8 +621,6 @@ + char **custom_paths; + int i; + +- gnome_settings_profile_start (NULL); +- + gdk_error_trap_push (); + + manager->priv->keys = g_ptr_array_new_with_free_func ((GDestroyNotify) media_key_free); +@@ -661,8 +658,6 @@ + gdk_flush (); + if (gdk_error_trap_pop ()) + g_warning ("Grab failed for some keys, another application may already have access the them."); +- +- gnome_settings_profile_end (NULL); + } + + static void +@@ -2090,7 +2085,6 @@ + char *theme_name; + + g_debug ("Starting media_keys manager"); +- gnome_settings_profile_start (NULL); + + manager->priv->settings = g_settings_new (SETTINGS_BINDING_DIR); + g_signal_connect (G_OBJECT (manager->priv->settings), "changed", +@@ -2137,19 +2131,14 @@ + + /* Start filtering the events */ + for (l = manager->priv->screens; l != NULL; l = l->next) { +- gnome_settings_profile_start ("gdk_window_add_filter"); +- + g_debug ("adding key filter for screen: %d", + gdk_screen_get_number (l->data)); + + gdk_window_add_filter (gdk_screen_get_root_window (l->data), + (GdkFilterFunc) filter_key_events, + manager); +- gnome_settings_profile_end ("gdk_window_add_filter"); + } + +- gnome_settings_profile_end (NULL); +- + manager->priv->start_idle_id = 0; + + return FALSE; +@@ -2161,8 +2150,6 @@ + { + const char * const subsystems[] = { "input", "usb", "sound", NULL }; + +- gnome_settings_profile_start (NULL); +- + if (supports_xinput2_devices (&manager->priv->opcode) == FALSE) { + g_debug ("No Xinput2 support, disabling plugin"); + return TRUE; +@@ -2179,8 +2166,6 @@ + * The rest (grabbing and setting the keys) can happen in an + * idle. + */ +- gnome_settings_profile_start ("gvc_mixer_control_new"); +- + manager->priv->volume = gvc_mixer_control_new ("GNOME Volume Control Media Keys"); + + g_signal_connect (manager->priv->volume, +@@ -2198,14 +2183,10 @@ + + gvc_mixer_control_open (manager->priv->volume); + +- gnome_settings_profile_end ("gvc_mixer_control_new"); +- + manager->priv->start_idle_id = g_idle_add ((GSourceFunc) start_media_keys_idle_cb, manager); + + register_manager (manager_object); + +- gnome_settings_profile_end (NULL); +- + return TRUE; + } + +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gsd-media-keys-plugin.c gnome-settings-daemon-3.6.4/plugins/media-keys/gsd-media-keys-plugin.c +--- gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gsd-media-keys-plugin.c 2013-01-10 14:37:58.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/media-keys/gsd-media-keys-plugin.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,104 +0,0 @@ +-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +- * +- * Copyright (C) 2007 William Jon McCann +- * +- * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +- * +- */ +- +-#include "config.h" +- +-#include +-#include +- +-#include "gnome-settings-plugin.h" +-#include "gsd-media-keys-plugin.h" +-#include "gsd-media-keys-manager.h" +- +-struct GsdMediaKeysPluginPrivate { +- GsdMediaKeysManager *manager; +-}; +- +-#define GSD_MEDIA_KEYS_PLUGIN_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), GSD_TYPE_MEDIA_KEYS_PLUGIN, GsdMediaKeysPluginPrivate)) +- +-GNOME_SETTINGS_PLUGIN_REGISTER (GsdMediaKeysPlugin, gsd_media_keys_plugin) +- +-static void +-gsd_media_keys_plugin_init (GsdMediaKeysPlugin *plugin) +-{ +- plugin->priv = GSD_MEDIA_KEYS_PLUGIN_GET_PRIVATE (plugin); +- +- g_debug ("GsdMediaKeysPlugin initializing"); +- +- plugin->priv->manager = gsd_media_keys_manager_new (); +-} +- +-static void +-gsd_media_keys_plugin_finalize (GObject *object) +-{ +- GsdMediaKeysPlugin *plugin; +- +- g_return_if_fail (object != NULL); +- g_return_if_fail (GSD_IS_MEDIA_KEYS_PLUGIN (object)); +- +- g_debug ("GsdMediaKeysPlugin finalizing"); +- +- plugin = GSD_MEDIA_KEYS_PLUGIN (object); +- +- g_return_if_fail (plugin->priv != NULL); +- +- if (plugin->priv->manager != NULL) { +- g_object_unref (plugin->priv->manager); +- } +- +- G_OBJECT_CLASS (gsd_media_keys_plugin_parent_class)->finalize (object); +-} +- +-static void +-impl_activate (GnomeSettingsPlugin *plugin) +-{ +- gboolean res; +- GError *error; +- +- g_debug ("Activating media_keys plugin"); +- +- error = NULL; +- res = gsd_media_keys_manager_start (GSD_MEDIA_KEYS_PLUGIN (plugin)->priv->manager, &error); +- if (! res) { +- g_warning ("Unable to start media_keys manager: %s", error->message); +- g_error_free (error); +- } +-} +- +-static void +-impl_deactivate (GnomeSettingsPlugin *plugin) +-{ +- g_debug ("Deactivating media_keys plugin"); +- gsd_media_keys_manager_stop (GSD_MEDIA_KEYS_PLUGIN (plugin)->priv->manager); +-} +- +-static void +-gsd_media_keys_plugin_class_init (GsdMediaKeysPluginClass *klass) +-{ +- GObjectClass *object_class = G_OBJECT_CLASS (klass); +- GnomeSettingsPluginClass *plugin_class = GNOME_SETTINGS_PLUGIN_CLASS (klass); +- +- object_class->finalize = gsd_media_keys_plugin_finalize; +- +- plugin_class->activate = impl_activate; +- plugin_class->deactivate = impl_deactivate; +- +- g_type_class_add_private (klass, sizeof (GsdMediaKeysPluginPrivate)); +-} +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gsd-media-keys-plugin.h gnome-settings-daemon-3.6.4/plugins/media-keys/gsd-media-keys-plugin.h +--- gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gsd-media-keys-plugin.h 2013-01-10 14:37:58.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/media-keys/gsd-media-keys-plugin.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,59 +0,0 @@ +-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +- * +- * Copyright (C) 2007 William Jon McCann +- * +- * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +- * +- */ +- +-#ifndef __GSD_MEDIA_KEYS_PLUGIN_H__ +-#define __GSD_MEDIA_KEYS_PLUGIN_H__ +- +-#include +-#include +-#include +- +-#include "gnome-settings-plugin.h" +- +-G_BEGIN_DECLS +- +-#define GSD_TYPE_MEDIA_KEYS_PLUGIN (gsd_media_keys_plugin_get_type ()) +-#define GSD_MEDIA_KEYS_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_MEDIA_KEYS_PLUGIN, GsdMediaKeysPlugin)) +-#define GSD_MEDIA_KEYS_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_MEDIA_KEYS_PLUGIN, GsdMediaKeysPluginClass)) +-#define GSD_IS_MEDIA_KEYS_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_MEDIA_KEYS_PLUGIN)) +-#define GSD_IS_MEDIA_KEYS_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_MEDIA_KEYS_PLUGIN)) +-#define GSD_MEDIA_KEYS_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_MEDIA_KEYS_PLUGIN, GsdMediaKeysPluginClass)) +- +-typedef struct GsdMediaKeysPluginPrivate GsdMediaKeysPluginPrivate; +- +-typedef struct +-{ +- GnomeSettingsPlugin parent; +- GsdMediaKeysPluginPrivate *priv; +-} GsdMediaKeysPlugin; +- +-typedef struct +-{ +- GnomeSettingsPluginClass parent_class; +-} GsdMediaKeysPluginClass; +- +-GType gsd_media_keys_plugin_get_type (void) G_GNUC_CONST; +- +-/* All the plugins must implement this function */ +-G_MODULE_EXPORT GType register_gnome_settings_plugin (GTypeModule *module); +- +-G_END_DECLS +- +-#endif /* __GSD_MEDIA_KEYS_PLUGIN_H__ */ +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/media-keys/Makefile.am gnome-settings-daemon-3.6.4/plugins/media-keys/Makefile.am +--- gnome-settings-daemon-3.6.4.orig/plugins/media-keys/Makefile.am 2013-01-10 14:37:58.000000000 +0100 ++++ gnome-settings-daemon-3.6.4/plugins/media-keys/Makefile.am 2013-04-24 14:26:01.414463895 +0200 +@@ -1,17 +1,11 @@ + icondir = $(datadir)/icons/hicolor + context = actions + +-plugin_name = media-keys +- +-NULL = +- + SUBDIRS = cut-n-paste +-plugin_LTLIBRARIES = libmedia-keys.la + + BUILT_SOURCES = \ + gsd-marshal.h \ +- gsd-marshal.c \ +- $(NULL) ++ gsd-marshal.c + + gsd-marshal.c: gsd-marshal.list + $(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=gsd_marshal $< --header --body --internal > $@ +@@ -19,62 +13,16 @@ + gsd-marshal.h: gsd-marshal.list + $(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=gsd_marshal $< --header --internal > $@ + +-libmedia_keys_la_SOURCES = \ +- gsd-media-keys-plugin.h \ +- gsd-media-keys-plugin.c \ +- gsd-media-keys-manager.h \ +- gsd-media-keys-manager.c \ +- gsd-osd-window.c \ +- gsd-osd-window.h \ +- gsd-osd-window-private.h \ +- shortcuts-list.h \ +- $(BUILT_SOURCES) \ +- $(NULL) +- +-libmedia_keys_la_CPPFLAGS = \ +- -I$(top_srcdir)/data/ \ +- -I$(top_srcdir)/gnome-settings-daemon \ +- -I$(top_srcdir)/plugins/common \ +- -I$(top_srcdir)/plugins/media-keys/cut-n-paste \ +- -DBINDIR=\"$(bindir)\" \ +- -DPIXMAPDIR=\""$(pkgdatadir)"\" \ +- -DGTKBUILDERDIR=\""$(pkgdatadir)"\" \ +- -DGNOME_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \ +- $(AM_CPPFLAGS) +- +-libmedia_keys_la_CFLAGS = \ +- $(PLUGIN_CFLAGS) \ +- $(SETTINGS_PLUGIN_CFLAGS) \ +- $(MEDIA_KEYS_CFLAGS) \ +- $(AM_CFLAGS) +- +-libmedia_keys_la_LDFLAGS = \ +- $(GSD_PLUGIN_LDFLAGS) +- +-libmedia_keys_la_LIBADD = \ +- $(top_builddir)/plugins/common/libcommon.la \ +- $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \ +- $(MEDIA_KEYS_LIBS) \ +- $(SETTINGS_PLUGIN_LIBS) \ +- -lm +- +-plugin_in_files = \ +- media-keys.gnome-settings-plugin.in +- +-plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin) +- + noinst_PROGRAMS = test-media-window + + test_media_window_SOURCES = \ + gsd-osd-window.c \ + gsd-osd-window.h \ + gsd-osd-window-private.h \ +- test-media-window.c \ +- $(NULL) ++ test-media-window.c + + test_media_window_CPPFLAGS = \ + -I$(top_srcdir)/data/ \ +- -I$(top_srcdir)/gnome-settings-daemon \ + -I$(top_srcdir)/plugins/common \ + -I$(top_srcdir)/plugins/media-keys/cut-n-paste \ + -DDATADIR=\""$(datadir)"\" \ +@@ -93,21 +41,19 @@ + $(SETTINGS_PLUGIN_LIBS) \ + -lm + +-libexec_PROGRAMS = gsd-test-media-keys ++libexec_PROGRAMS = gnome-fallback-media-keys-helper + +-gsd_test_media_keys_SOURCES = \ ++gnome_fallback_media_keys_helper_SOURCES = \ + gsd-media-keys-manager.c \ + gsd-media-keys-manager.h \ + gsd-osd-window.c \ + gsd-osd-window.h \ + gsd-osd-window-private.h \ +- test-media-keys.c \ +- $(BUILT_SOURCES) \ +- $(NULL) ++ gnome-fallback-media-keys-helper.c \ ++ $(BUILT_SOURCES) + +-gsd_test_media_keys_CPPFLAGS = \ ++gnome_fallback_media_keys_helper_CPPFLAGS = \ + -I$(top_srcdir)/data/ \ +- -I$(top_srcdir)/gnome-settings-daemon \ + -I$(top_srcdir)/plugins/common \ + -I$(top_srcdir)/plugins/media-keys/cut-n-paste \ + -DBINDIR=\"$(bindir)\" \ +@@ -116,14 +62,12 @@ + -DGNOME_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \ + $(AM_CPPFLAGS) + +-gsd_test_media_keys_CFLAGS = \ ++gnome_fallback_media_keys_helper_CFLAGS = \ + $(PLUGIN_CFLAGS) \ + $(SETTINGS_PLUGIN_CFLAGS) \ +- $(MEDIA_KEYS_CFLAGS) \ +- $(AM_CFLAGS) ++ $(MEDIA_KEYS_CFLAGS) + +-gsd_test_media_keys_LDADD = \ +- $(top_builddir)/gnome-settings-daemon/libgsd.la \ ++gnome_fallback_media_keys_helper_LDADD = \ + $(top_builddir)/plugins/common/libcommon.la \ + $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \ + $(SETTINGS_DAEMON_LIBS) \ +@@ -131,17 +75,24 @@ + $(MEDIA_KEYS_LIBS) \ + -lm + ++autostartdir = $(sysconfdir)/xdg/autostart ++autostart_in_files = gnome-fallback-media-keys-helper.desktop.in ++autostart_in_in_files = gnome-fallback-media-keys-helper.desktop.in.in ++autostart_DATA = $(autostart_in_files:.desktop.in=.desktop) ++ ++$(autostart_in_files): $(autostart_in_in_files) ++ @sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@ ++ ++@INTLTOOL_DESKTOP_RULE@ ++ + EXTRA_DIST = \ + gsd-marshal.list \ + README.media-keys-API \ + test-media-window-clutter.c \ +- $(plugin_in_files) ++ $(autostart_in_in_files) + + CLEANFILES = \ + $(BUILT_SOURCES) \ +- $(plugin_DATA) +- +-DISTCLEANFILES = \ +- $(plugin_DATA) ++ $(autostart_DATA) \ ++ $(autostart_in_files) + +-@GSD_INTLTOOL_PLUGIN_RULE@ +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/media-keys/media-keys.gnome-settings-plugin.in gnome-settings-daemon-3.6.4/plugins/media-keys/media-keys.gnome-settings-plugin.in +--- gnome-settings-daemon-3.6.4.orig/plugins/media-keys/media-keys.gnome-settings-plugin.in 2012-04-07 15:21:20.000000000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/media-keys/media-keys.gnome-settings-plugin.in 1970-01-01 01:00:00.000000000 +0100 +@@ -1,8 +0,0 @@ +-[GNOME Settings Plugin] +-Module=media-keys +-IAge=0 +-_Name=Media keys +-_Description=Media keys plugin +-Authors= +-Copyright=Copyright © 2007 +-Website= +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/media-keys/test-media-keys.c gnome-settings-daemon-3.6.4/plugins/media-keys/test-media-keys.c +--- gnome-settings-daemon-3.6.4.orig/plugins/media-keys/test-media-keys.c 2012-06-01 22:02:53.000000000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/media-keys/test-media-keys.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,7 +0,0 @@ +-#define NEW gsd_media_keys_manager_new +-#define START gsd_media_keys_manager_start +-#define STOP gsd_media_keys_manager_stop +-#define MANAGER GsdMediaKeysManager +-#include "gsd-media-keys-manager.h" +- +-#include "test-plugin.h" +diff -Naur gnome-settings-daemon-3.6.4.orig/po/POTFILES.in gnome-settings-daemon-3.6.4/po/POTFILES.in +--- gnome-settings-daemon-3.6.4.orig/po/POTFILES.in 2013-04-24 03:11:02.897192946 +0200 ++++ gnome-settings-daemon-3.6.4/po/POTFILES.in 2013-04-24 13:43:11.132217470 +0200 +@@ -34,7 +34,7 @@ + [type: gettext/ini]plugins/keyboard/keyboard.gnome-settings-plugin.in + plugins/media-keys/cut-n-paste/gvc-mixer-control.c + plugins/media-keys/gsd-media-keys-manager.c +-[type: gettext/ini]plugins/media-keys/media-keys.gnome-settings-plugin.in ++plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in + plugins/mouse/gsd-mouse-manager.c + [type: gettext/ini]plugins/mouse/mouse.gnome-settings-plugin.in + plugins/power/gpm-common.c +diff -Naur gnome-settings-daemon-3.6.4.orig/po/POTFILES.skip gnome-settings-daemon-3.6.4/po/POTFILES.skip +--- gnome-settings-daemon-3.6.4.orig/po/POTFILES.skip 2013-04-24 03:11:02.897192946 +0200 ++++ gnome-settings-daemon-3.6.4/po/POTFILES.skip 2013-04-24 13:43:11.132217470 +0200 +@@ -22,5 +22,6 @@ + data/org.gnome.settings-daemon.plugins.xsettings.gschema.xml.in + plugins/background/gnome-fallback-background-helper.desktop.in + plugins/automount/gnome-fallback-mount-helper.desktop.in ++plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in + plugins/power/org.gnome.settings-daemon.plugins.power.policy.in + plugins/wacom/org.gnome.settings-daemon.plugins.wacom.policy.in diff --git a/community/gnome-settings-daemon-compat/xinput.patch b/community/gnome-settings-daemon-compat/xinput.patch new file mode 100644 index 000000000..67c8082cb --- /dev/null +++ b/community/gnome-settings-daemon-compat/xinput.patch @@ -0,0 +1,36 @@ +From 14f92b1479aa065edf3f0aa86b87d4c4ff1fe2ba Mon Sep 17 00:00:00 2001 +From: Matthias Clasen +Date: Thu, 07 Feb 2013 04:14:22 +0000 +Subject: Fix media-keys handling with GTK+ 3.7.8 + +GDK now requests XI 2.3 and if the X server supports that +version, subsequent requests for a lower version yield +a BadValue. Therefore, we need to change the code in +gsd-input-helper.c to request 2.3 as well. +--- +diff --git a/plugins/common/gsd-input-helper.c b/plugins/common/gsd-input-helper.c +index 54427af..d5d2a2a 100644 +--- a/plugins/common/gsd-input-helper.c ++++ b/plugins/common/gsd-input-helper.c +@@ -144,18 +144,11 @@ supports_xinput2_devices (int *opcode) + gdk_error_trap_push (); + + major = 2; +- minor = 0; ++ minor = 3; + + if (XIQueryVersion (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &major, &minor) != Success) { + gdk_error_trap_pop_ignored (); +- /* try for 2.2, maybe gtk has already announced 2.2 support */ +- gdk_error_trap_push (); +- major = 2; +- minor = 2; +- if (XIQueryVersion (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &major, &minor) != Success) { +- gdk_error_trap_pop_ignored (); + return FALSE; +- } + } + gdk_error_trap_pop_ignored (); + +-- +cgit v0.9.1 diff --git a/community/haskell-dlist/PKGBUILD b/community/haskell-dlist/PKGBUILD index 925c91c72..90c9573d3 100644 --- a/community/haskell-dlist/PKGBUILD +++ b/community/haskell-dlist/PKGBUILD @@ -1,3 +1,5 @@ +# $Id: PKGBUILD 88875 2013-04-24 14:23:10Z jelle $ +# Maintainer: Daniel Wallace # Contributor: Don Stewart # Contributor: Lex Black @@ -5,13 +7,13 @@ pkgname=haskell-dlist pkgver=0.5 _hkgname=dlist _licensefile=LICENSE -pkgrel=1 +pkgrel=23 pkgdesc="Differences lists" url="http://code.haskell.org/~dons/code/dlist/" license=("BSD3") arch=('i686' 'x86_64') -makedepends=('ghc') -depends=('ghc') +makedepends=('ghc=7.6.2') +depends=('ghc=7.6.2') options=('strip') source=("http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz") sha256sums=('4780e5409eff55bbfdd7470ef802a087a04048c9cd5efe0482c82878292f19ea') diff --git a/community/haskell-pcre-light/PKGBUILD b/community/haskell-pcre-light/PKGBUILD index 7dcd58e6d..56ccb9c8c 100644 --- a/community/haskell-pcre-light/PKGBUILD +++ b/community/haskell-pcre-light/PKGBUILD @@ -3,7 +3,7 @@ _hkgname=pcre-light pkgname=haskell-pcre-light pkgver=0.4 -pkgrel=19 +pkgrel=20 pkgdesc="A small, efficient and portable regex library for Perl 5 compatible regular expressions" url="http://code.haskell.org/~dons/code/pcre-light" license=(custom:BSD3) diff --git a/community/mongodb/PKGBUILD b/community/mongodb/PKGBUILD index ddd110ef1..6db2976d1 100644 --- a/community/mongodb/PKGBUILD +++ b/community/mongodb/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 88479 2013-04-18 12:55:25Z fyan $ +# $Id: PKGBUILD 88850 2013-04-24 10:16:56Z fyan $ # Maintainer: Felix Yan # Contributor: Sven-Hendrik Haase # Contributor: Thomas Dziedzic < gostrc at gmail > @@ -6,7 +6,7 @@ # Contributor: Alec Thomas pkgname=mongodb -pkgver=2.4.2 +pkgver=2.4.3 pkgrel=1 pkgdesc='A high-performance, open source, schema-free document-oriented database' arch=('i686' 'x86_64') @@ -64,7 +64,7 @@ package() { mv ${pkgdir}/usr/lib64/libmongoclient.a ${pkgdir}/usr/lib/ || true rm -r ${pkgdir}/usr/lib64 || true } -md5sums=('8c65fa1d678763dbc855b0129d1eea96' +md5sums=('ff6a9c90bdaca66a7e997ba8490fc222' '4839fe1d638187ca3226e8267b947318' '96ab4517b48974ce0e566d9746a75a4f' 'a9529e2a6e392ffecef7a9178394c814' diff --git a/community/muffin/PKGBUILD b/community/muffin/PKGBUILD index 8732424f9..6c2e8d005 100644 --- a/community/muffin/PKGBUILD +++ b/community/muffin/PKGBUILD @@ -1,25 +1,31 @@ -# $Id: PKGBUILD 88697 2013-04-21 22:24:03Z heftig $ +# $Id: PKGBUILD 88909 2013-04-24 17:12:07Z bgyorgy $ +# Maintainer: Alexandre Filgueira # Contributor: Adam Hani Schakaki # Contributor: Ner0 pkgname=muffin pkgver=1.7.3 -pkgrel=1 +pkgrel=2 pkgdesc="Cinnamon window manager based on Mutter" arch=('i686' 'x86_64') url="https://github.com/linuxmint/muffin" license=('GPL') -depends=('libsm' 'clutter' 'gobject-introspection' 'gsettings-desktop-schemas' \ +depends=('clutter' 'gobject-introspection' 'gsettings-desktop-schemas' \ 'libcanberra' 'startup-notification' 'zenity' 'dconf') makedepends=('intltool' 'gnome-doc-utils' 'gnome-common') options=('!libtool' '!emptydirs') install=$pkgname.install -source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/muffin/tarball/$pkgver") -md5sums=('30e329da6af10e825dace490f13e445f') +source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/muffin/tarball/$pkgver" + "switch-applications.patch") +md5sums=('30e329da6af10e825dace490f13e445f' + 'a5d5d76dc281277a8afc83d7affdcc7b') build() { cd linuxmint-muffin-* + # Fix windows switcher keybinding with default settings in GNOME 3.8 + patch -Np1 -i ../switch-applications.patch + PYTHON=python2 ./autogen.sh --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/muffin \ --localstatedir=/var --disable-static --disable-schemas-compile make diff --git a/community/muffin/switch-applications.patch b/community/muffin/switch-applications.patch new file mode 100644 index 000000000..61b727b57 --- /dev/null +++ b/community/muffin/switch-applications.patch @@ -0,0 +1,20 @@ +diff -Naur linuxmint-muffin-1ad6bd4.orig/src/core/keybindings.c linuxmint-muffin-1ad6bd4/src/core/keybindings.c +--- linuxmint-muffin-1ad6bd4.orig/src/core/keybindings.c 2013-04-15 15:53:35.000000000 +0200 ++++ linuxmint-muffin-1ad6bd4/src/core/keybindings.c 2013-04-24 18:37:54.028549911 +0200 +@@ -3774,14 +3774,14 @@ + handle_switch, META_TAB_LIST_GROUP); + + add_builtin_keybinding (display, +- "switch-windows", ++ "switch-applications", + SCHEMA_COMMON_KEYBINDINGS, + META_KEY_BINDING_REVERSES, + META_KEYBINDING_ACTION_SWITCH_WINDOWS, + handle_switch, META_TAB_LIST_NORMAL); + + add_builtin_keybinding (display, +- "switch-windows-backward", ++ "switch-applications-backward", + SCHEMA_COMMON_KEYBINDINGS, + REVERSES_AND_REVERSED, + META_KEYBINDING_ACTION_SWITCH_WINDOWS_BACKWARD, diff --git a/community/nemo/PKGBUILD b/community/nemo/PKGBUILD index f2b15964c..00ab3bc7f 100644 --- a/community/nemo/PKGBUILD +++ b/community/nemo/PKGBUILD @@ -1,17 +1,16 @@ -# $Id: PKGBUILD 88773 2013-04-22 09:44:29Z faidoc $ +# $Id: PKGBUILD 88912 2013-04-24 17:42:52Z bgyorgy $ # Maintainer: Alexandre Filgueira # Contributor: Ner0 pkgname=nemo pkgver=1.7.3 -pkgrel=2 +pkgrel=3 pkgdesc="Cinnamon file manager (Nautilus fork)" arch=('i686' 'x86_64') url="https://github.com/linuxmint/nemo" license=('GPL') depends=('libexif' 'gvfs' 'dconf' 'desktop-file-utils' 'exempi' 'python2' - 'gnome-desktop' 'gnome-icon-theme' 'libnotify' 'libtracker-sparql' - 'cinnamon') + 'gnome-desktop' 'gnome-icon-theme' 'libnotify' 'libtracker-sparql') makedepends=('gtk-doc' 'gobject-introspection' 'intltool' 'gnome-common') optdepends=('gksu: Open as Root') options=('!emptydirs' '!libtool') @@ -21,7 +20,7 @@ source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/nemo/tarball/$pkg "remove-desktop-background.patch") md5sums=('04c021da543e2562b712107c2be9a8c2' '9e170cc74eee901634b3367b06a209c6' - '700b595dfcf06e39f9dc3bdb7c81e086') + 'f10af52377e44e1efe8ec4934aa4d4d2') build() { cd linuxmint-nemo-* diff --git a/community/nemo/remove-desktop-background.patch b/community/nemo/remove-desktop-background.patch index 793d5650c..0301cc820 100644 --- a/community/nemo/remove-desktop-background.patch +++ b/community/nemo/remove-desktop-background.patch @@ -1,7 +1,7 @@ From 5f82ebba474f6c1068a21f51ded2b0e26869ecaf Mon Sep 17 00:00:00 2001 From: Michael Webster Date: Mon, 15 Apr 2013 18:44:35 -0400 -Subject: [PATCH 1/4] Don't render the background. Need to fix selected icon +Subject: [PATCH 1/6] Don't render the background. Need to fix selected icon style --- @@ -100,13 +100,13 @@ index 9c80c62..2d5c4e8 100644 GTK_WIDGET_CLASS (nemo_desktop_window_parent_class)->realize (widget); -- -1.8.1.5 +1.8.1.6 From 6b013acb8f0ad855d042d0e8d51350c539a37c21 Mon Sep 17 00:00:00 2001 From: Michael Webster Date: Mon, 15 Apr 2013 20:03:03 -0400 -Subject: [PATCH 2/4] Remove nemo-desktop-background, the desktop window makes +Subject: [PATCH 2/6] Remove nemo-desktop-background, the desktop window makes a transparent background and just uses the existing rendered background from muffin/g-s-d @@ -867,13 +867,13 @@ index 37cd8cb..5dec8b5 100644 } -- -1.8.1.5 +1.8.1.6 From b40990397b6fff55878481a806a1b5574e43951f Mon Sep 17 00:00:00 2001 From: Michael Webster Date: Mon, 15 Apr 2013 20:14:40 -0400 -Subject: [PATCH 3/4] Forgot an include +Subject: [PATCH 3/6] Forgot an include --- libnemo-private/nemo-icon-dnd.c | 1 - @@ -892,13 +892,13 @@ index 017c6a7..2ed073c 100644 #include #include -- -1.8.1.5 +1.8.1.6 From 020d4dc15fa9c0e1303cef7795e45e688ede7726 Mon Sep 17 00:00:00 2001 From: Michael Webster Date: Tue, 16 Apr 2013 18:00:01 -0400 -Subject: [PATCH 4/4] Change to use cinnamon background keys +Subject: [PATCH 4/6] Change to use cinnamon background keys --- libnemo-private/nemo-global-preferences.c | 2 +- @@ -960,5 +960,91 @@ index ab03b44..3ece32a 100644 g_free (uri); } -- -1.8.1.5 +1.8.1.6 + + +From f487954ebce3f564744e9c83b5dd40fa8f8fad6d Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Mon, 22 Apr 2013 08:33:41 -0400 +Subject: [PATCH 5/6] Fall back to org.gnome.desktop.background schema when + cinnamon is not installed + +--- + libnemo-private/nemo-global-preferences.c | 20 +++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +diff --git a/libnemo-private/nemo-global-preferences.c b/libnemo-private/nemo-global-preferences.c +index 336afc3..7eb04ef 100644 +--- a/libnemo-private/nemo-global-preferences.c ++++ b/libnemo-private/nemo-global-preferences.c +@@ -76,7 +76,25 @@ + nemo_desktop_preferences = g_settings_new("org.nemo.desktop"); + nemo_tree_sidebar_preferences = g_settings_new("org.nemo.sidebar-panels.tree"); + gnome_lockdown_preferences = g_settings_new("org.gnome.desktop.lockdown"); +- cinnamon_background_preferences = g_settings_new("org.cinnamon.background"); + gnome_media_handling_preferences = g_settings_new("org.gnome.desktop.media-handling"); + gnome_terminal_preferences = g_settings_new("org.gnome.desktop.default-applications.terminal"); ++ ++ const gchar * const *schema_list = g_settings_list_schemas (); ++ int i = 0; ++ gboolean has_cinnamon = FALSE; ++ if (schema_list != NULL) { ++ while (schema_list[i] != NULL) { ++ if (g_strcmp0 (schema_list[i], "org.cinnamon.background") == 0) { ++ has_cinnamon = TRUE; ++ break; ++ } ++ i++; ++ } ++ } ++ ++ if (has_cinnamon) { ++ cinnamon_background_preferences = g_settings_new ("org.cinnamon.background"); ++ } else { ++ cinnamon_background_preferences = g_settings_new ("org.gnome.desktop.background"); ++ } + } +-- +1.8.1.6 + + +From 9739a1b30603868ea6b8b12cf7aeb167be5aea22 Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Mon, 22 Apr 2013 09:31:49 -0400 +Subject: [PATCH 6/6] simplify schema check + +--- + libnemo-private/nemo-global-preferences.c | 17 +++-------------- + 1 file changed, 3 insertions(+), 14 deletions(-) + +diff --git a/libnemo-private/nemo-global-preferences.c b/libnemo-private/nemo-global-preferences.c +index 7eb04ef..0470595 100644 +--- a/libnemo-private/nemo-global-preferences.c ++++ b/libnemo-private/nemo-global-preferences.c +@@ -79,20 +79,9 @@ + gnome_media_handling_preferences = g_settings_new("org.gnome.desktop.media-handling"); + gnome_terminal_preferences = g_settings_new("org.gnome.desktop.default-applications.terminal"); + +- const gchar * const *schema_list = g_settings_list_schemas (); +- int i = 0; +- gboolean has_cinnamon = FALSE; +- if (schema_list != NULL) { +- while (schema_list[i] != NULL) { +- if (g_strcmp0 (schema_list[i], "org.cinnamon.background") == 0) { +- has_cinnamon = TRUE; +- break; +- } +- i++; +- } +- } +- +- if (has_cinnamon) { ++ GSettingsSchemaSource *schema_source; ++ schema_source = g_settings_schema_source_get_default(); ++ if (g_settings_schema_source_lookup (schema_source, "org.cinnamon.background", FALSE)) { + cinnamon_background_preferences = g_settings_new ("org.cinnamon.background"); + } else { + cinnamon_background_preferences = g_settings_new ("org.gnome.desktop.background"); +-- +1.8.1.6 diff --git a/community/nginx/PKGBUILD b/community/nginx/PKGBUILD index 48c00e91c..fca931cac 100644 --- a/community/nginx/PKGBUILD +++ b/community/nginx/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 87542 2013-04-02 19:17:59Z bpiotrowski $ +# $Id: PKGBUILD 88886 2013-04-24 15:32:13Z bpiotrowski $ # Maintainer: Sergej Pupykin # Maintainer: Bartłomiej Piotrowski # Contributor: Miroslaw Szot @@ -7,7 +7,7 @@ _cfgdir=/etc/nginx _tmpdir=/var/lib/nginx pkgname=nginx -pkgver=1.2.8 +pkgver=1.4.0 pkgrel=1 pkgdesc='Lightweight HTTP server and IMAP/POP3 proxy server' arch=('i686' 'x86_64') @@ -29,7 +29,7 @@ backup=(${_cfgdir:1}/fastcgi.conf source=(http://nginx.org/download/nginx-$pkgver.tar.gz service logrotate) -sha256sums=('d2947c98c5bed311b1e6c04e35a730af92e40e2e6bfe9201fa7f404987457137' +sha256sums=('84aeb7a131fccff036dc80283dd98c989d2844eb84359cfe7c4863475de923a9' '77da8ce4d8378048606a25e09270ee187d6b226ee750b6cb4313af5549f5156a' '9523a1fdd5eb61bf62f3049f6ee088b198e36d5edcce2d9b08bbeb2930aa5a16') diff --git a/community/nodejs/PKGBUILD b/community/nodejs/PKGBUILD index 571fc58a8..738d4a395 100644 --- a/community/nodejs/PKGBUILD +++ b/community/nodejs/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 88176 2013-04-13 10:02:06Z bpiotrowski $ +# $Id: PKGBUILD 88884 2013-04-24 15:09:27Z bpiotrowski $ # Maintainer: Bartłomiej Piotrowski # Contributor: Thomas Dziedzic < gostrc at gmail > # Contributor: James Campos @@ -8,7 +8,7 @@ # Contributor: TIanyi Cui pkgname=nodejs -pkgver=0.10.4 +pkgver=0.10.5 pkgrel=1 pkgdesc='Evented I/O for V8 javascript' arch=('i686' 'x86_64') @@ -18,7 +18,7 @@ depends=('openssl' 'python2') checkdepends=('curl') options=('!emptydirs') source=(http://nodejs.org/dist/v${pkgver}/node-v${pkgver}.tar.gz) -sha256sums=('1c960d2822447a9e4f7c46b832ff05e86743033c6643d644975af1cbf6a44fb8') +sha256sums=('1c22bd15cb13b1109610ee256699300ec6999b335f3bc85dc3c0312ec9312cfd') build() { cd node-v${pkgver} @@ -47,15 +47,15 @@ check() { package() { cd node-v${pkgver} - make DESTDIR=$pkgdir install + make DESTDIR="$pkgdir" install # install docs as per user request - install -d $pkgdir/usr/share/doc/nodejs + install -d "$pkgdir"/usr/share/doc/nodejs cp -r doc/api/*.html \ - $pkgdir/usr/share/doc/nodejs + "$pkgdir"/usr/share/doc/nodejs install -D -m644 LICENSE \ - $pkgdir/usr/share/licenses/nodejs/LICENSE + "$pkgdir"/usr/share/licenses/nodejs/LICENSE } # vim:set ts=2 sw=2 et: diff --git a/community/opencollada/PKGBUILD b/community/opencollada/PKGBUILD deleted file mode 100644 index a11e7afc8..000000000 --- a/community/opencollada/PKGBUILD +++ /dev/null @@ -1,39 +0,0 @@ -# $Id: PKGBUILD 87935 2013-04-08 20:59:14Z svenstaro $ -# Maintainer: Sven-Hendrik Haase -pkgname=opencollada -pkgver=20130408 -pkgrel=1 -pkgdesc="Stream based reader and writer library for COLLADA files" -arch=(i686 x86_64) -url="https://github.com/KhronosGroup/OpenCOLLADA" -license=('GPL') -depends=('libxml2' 'pcre') -makedepends=('git' 'cmake') -source=('opencollada.conf' - 'git://github.com/KhronosGroup/OpenCOLLADA.git') -md5sums=('5f7e9d79ab86756648b648ee5ed6ce1d' - 'SKIP') - -build() { - cd "$srcdir"/OpenCOLLADA - - [[ -d build ]] && rm -r build - mkdir build && cd build - -# Activate these once pr#124 is merged -# -DUSE_SHARED=ON \ -# -DUSE_STATIC=OFF \ - cmake .. \ - -DCMAKE_INSTALL_PREFIX=/usr - make -} - -package() { - cd "$srcdir"/OpenCOLLADA/build - - make DESTDIR=$pkgdir install - - install -Dm644 $srcdir/opencollada.conf $pkgdir/etc/ld.so.conf.d/opencollada.conf -} - -# vim:set ts=2 sw=2 et: diff --git a/community/opencollada/opencollada.conf b/community/opencollada/opencollada.conf deleted file mode 100644 index cd7c2a5c5..000000000 --- a/community/opencollada/opencollada.conf +++ /dev/null @@ -1 +0,0 @@ -/usr/lib/opencollada diff --git a/community/pokerth/PKGBUILD b/community/pokerth/PKGBUILD index 3b544b250..a4c35b662 100644 --- a/community/pokerth/PKGBUILD +++ b/community/pokerth/PKGBUILD @@ -1,13 +1,14 @@ -# $Id: PKGBUILD 87656 2013-04-05 07:06:16Z cinelli $ -# Maintainer: Mateusz Herych -# Maintainer: Bartłomiej Piotrowski +# $Id: PKGBUILD 88844 2013-04-23 22:37:15Z svenstaro $ +# Maintainer: Sven-Hendrik Haase +# Contributor: Mateusz Herych +# Contributor: Bartłomiej Piotrowski # Contributor: Vasco Costa # Contributor: Federico Cinelli pkgname=pokerth _realname=PokerTH -pkgver=1.0 -pkgrel=6 +pkgver=1.0.1 +pkgrel=1 pkgdesc="Poker game written in C++/QT4" arch=('i686' 'x86_64') url="http://www.pokerth.net/" @@ -15,17 +16,12 @@ license=('GPL' 'custom') depends=('curl' 'boost-libs' 'gsasl' 'gnutls' 'protobuf' 'qt4' 'sdl_mixer' 'libircclient' 'tinyxml') makedepends=('boost') -source=("http://downloads.sourceforge.net/sourceforge/pokerth/$_realname-$pkgver-src.tar.bz2" - "pokerth_game.pro.patch") -md5sums=('1d8686b8968475cfc76e873a17a53efc' - '967b79b37407be5a68e6a864c2b7828a') +source=("http://downloads.sourceforge.net/sourceforge/pokerth/$_realname-$pkgver-src.tar.bz2") +md5sums=('c6dcf0ed68ab50af91371348ffad5d00') build() { cd "$srcdir/$_realname-$pkgver-src" - - sed -i '31 i #include ' src/net/common/ircthread.cpp - patch -Np2 < "$srcdir/pokerth_game.pro.patch" qmake-qt4 "$pkgname.pro" make } diff --git a/community/pokerth/pokerth_game.pro.patch b/community/pokerth/pokerth_game.pro.patch deleted file mode 100644 index e19ba3bcb..000000000 --- a/community/pokerth/pokerth_game.pro.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- src/PokerTH-1.0-src/pokerth_game.pro 2013-01-01 07:23:55.596627882 -0800 -+++ pokerth_game.pro 2013-04-04 11:14:16.583877931 -0700 -@@ -3,7 +3,6 @@ - isEmpty( PREFIX ){ - PREFIX =/usr - } -- - TEMPLATE = app - CODECFORSRC = UTF-8 - CONFIG += qt \ -@@ -21,6 +20,7 @@ - DEFINES += ENABLE_IPV6 TIXML_USE_STL BOOST_FILESYSTEM_DEPRECATED - DEFINES += PREFIX=\"$${PREFIX}\" - TARGET = pokerth -+QMAKE_MOC = $$QMAKE_MOC -DBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - # PRECOMPILED_HEADER = src/pch_game.h - diff --git a/extra/atkmm/PKGBUILD b/extra/atkmm/PKGBUILD index 1cb843d48..9ba7fdc0b 100644 --- a/extra/atkmm/PKGBUILD +++ b/extra/atkmm/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 79583 2010-05-04 15:21:15Z ibiru $ +# $Id: PKGBUILD 183599 2013-04-24 15:17:51Z heftig $ # Maintainer: Jan "heftig" Steffens pkgbase=atkmm pkgname=(atkmm atkmm-docs) -pkgver=2.22.6 +pkgver=2.22.7 pkgrel=1 arch=('i686' 'x86_64') makedepends=('atk' 'glibmm' 'glibmm-docs' 'libsigc++') @@ -11,7 +11,7 @@ license=('LGPL') options=('!libtool' '!emptydirs') url="http://gtkmm.sourceforge.net/" source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/2.22/${pkgbase}-${pkgver}.tar.xz) -sha256sums=('0a74295106b9e3ae552b169eb4e098b8b825c4115045b9d5134a6c79a238aeb6') +sha256sums=('bfbf846b409b4c5eb3a52fa32a13d86936021969406b3dcafd4dd05abd70f91b') build() { cd "${srcdir}/${pkgbase}-${pkgver}" diff --git a/extra/clamav/PKGBUILD b/extra/clamav/PKGBUILD index 3ce9e16f8..92d1eca88 100644 --- a/extra/clamav/PKGBUILD +++ b/extra/clamav/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 180031 2013-03-14 21:45:11Z bisson $ +# $Id: PKGBUILD 183595 2013-04-24 06:52:38Z bisson $ # Contributor: Dale Blount # Contributor: Gregor Ibic # Maintainer: Gaetan Bisson pkgname=clamav -pkgver=0.97.7 +pkgver=0.97.8 pkgrel=1 pkgdesc='Anti-virus toolkit for Unix' url='http://www.clamav.net/' @@ -21,7 +21,7 @@ source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver 'logrotate' 'tmpfiles.d' 'config.patch') -sha1sums=('9b911c557e0b7b5079de86c65b5d83fa78fadfff' +sha1sums=('078c0ac2b4e69d27eecd7544a8361abcd859e73c' 'c9d508c1e5972f0f849d8694c1872455fa9e74de' 'cb116cdab49a810381a515cbcfb6a6c148547f07' 'df522b0488f3901e491f148c9300f6bae348c605' @@ -32,11 +32,13 @@ sha1sums=('9b911c557e0b7b5079de86c65b5d83fa78fadfff' install=install -build() { +prepare() { cd "${srcdir}/${pkgname}-${pkgver}" - patch -p1 -i ../config.patch +} +build() { + cd "${srcdir}/${pkgname}-${pkgver}" ./configure \ --prefix=/usr \ --sysconfdir=/etc/clamav \ diff --git a/extra/gparted/PKGBUILD b/extra/gparted/PKGBUILD index 468d34062..90ba19000 100644 --- a/extra/gparted/PKGBUILD +++ b/extra/gparted/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 180372 2013-03-20 18:31:23Z giovanni $ +# $Id: PKGBUILD 183602 2013-04-24 16:54:38Z giovanni $ # Maintainer: Giovanni Scafora # Contributor: Andrew Simmons # Contributor: György Balló pkgname=gparted -pkgver=0.15.0 +pkgver=0.16.0 pkgrel=1 pkgdesc="A Partition Magic clone, frontend to GNU Parted" arch=('i686' 'x86_64') url="http://gparted.sourceforge.net" license=('GPL') -depends=('parted' 'gtkmm' 'hicolor-icon-theme' 'polkit') +depends=('parted' 'gtkmm' 'hicolor-icon-theme') makedepends=('intltool' 'pkg-config' 'gnome-doc-utils') optdepends=('dosfstools: for FAT16 and FAT32 partitions' 'jfsutils: for jfs partitions' @@ -24,7 +24,7 @@ optdepends=('dosfstools: for FAT16 and FAT32 partitions' install=gparted.install source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.bz2" 'org.archlinux.pkexec.gparted.policy') -md5sums=('b18393ec3a8524333b02234c3d3a531f' +md5sums=('880e58673c9ef195181c0d721717a601' 'c031d7d2b845ccb025b9f83e0ddd5653') build() { diff --git a/extra/libsoup/PKGBUILD b/extra/libsoup/PKGBUILD index 7e38599ae..b20d6635e 100644 --- a/extra/libsoup/PKGBUILD +++ b/extra/libsoup/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 183439 2013-04-21 22:11:35Z heftig $ +# $Id: PKGBUILD 183606 2013-04-24 20:33:35Z heftig $ # Maintainer: Jan de Groot pkgname=libsoup -pkgver=2.42.1 +pkgver=2.42.2 pkgrel=1 pkgdesc="GNOME HTTP Library" arch=(i686 x86_64) @@ -15,7 +15,7 @@ conflicts=(libsoup-gnome) replaces=(libsoup-gnome) options=('!libtool' '!emptydirs') source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('20bd5365bb3e7de70fade91ac82c9dea31636318df90b8c26bc4cde2523a8c91') +sha256sums=('1f4f9cc55ba483dc8defea0c3f97cc507dc48384c5529179e29c1e6d05630dbf') build() { cd $pkgname-$pkgver diff --git a/extra/pangomm/PKGBUILD b/extra/pangomm/PKGBUILD index 3699ffa68..51f1aabb0 100644 --- a/extra/pangomm/PKGBUILD +++ b/extra/pangomm/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 141215 2011-10-26 14:54:11Z ibiru $ +# $Id: PKGBUILD 183600 2013-04-24 15:18:44Z heftig $ # Maintainer: Jan de Groot pkgbase=pangomm pkgname=('pangomm' 'pangomm-docs') -pkgver=2.28.4 +pkgver=2.34.0 pkgrel=1 arch=('i686' 'x86_64') license=('LGPL') makedepends=('pango' 'glibmm' 'glibmm-docs' 'cairomm' 'pkgconfig') -source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.28/${pkgname}-${pkgver}.tar.xz) +source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver::4}/${pkgname}-${pkgver}.tar.xz) options=('!libtool') url="http://gtkmm.sourceforge.net/" -sha256sums=('778dcb66a793cbfd52a9f92ee5a71b888c3603a913fc1ddc48a30204de6d6c82') +sha256sums=('0e82bbff62f626692a00f3772d8b17169a1842b8cc54d5f2ddb1fec2cede9e41') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/libre/blender-addon-luxrender/PKGBUILD b/libre/blender-addon-luxrender/PKGBUILD new file mode 100644 index 000000000..97a1b4f12 --- /dev/null +++ b/libre/blender-addon-luxrender/PKGBUILD @@ -0,0 +1,35 @@ +# Maintainer (Parabola): Márcio Silva + +pkgname=blender-addon-luxrender +_pkgname=${pkgname:14:3}${pkgname::5}25 +_srcver=c9deae0646d0 +pkgver=1.2.1.v2.66 +_pkgver=${pkgver::5} +_reqname=${pkgname::7} +_reqver=${pkgver:7} +_reqep=7 +pkgrel=2 +pkgdesc="$_pkgname: A addon for the ${_reqname^} which allows render and export with LuxRender (built for the $_reqname-libre package)" +arch=any +url=http://www.${pkgname:14}.net/ +license=GPL +depends=( + ${pkgname:14}=$_pkgver + "$_reqname>=$(($_reqep-1)):$_reqver" + "$_reqname<$_reqep:${_reqver::2}$((${_reqver:2:4}+1))" +) +provides=($_pkgname=$_pkgver) +conflicts=$_pkgname +replaces=$_pkgname +source=http://src.${pkgname:14}.net/$_pkgname/archive/$_srcver.tar.bz2 +sha512sums=e8d93d5d9d73c1cd4f2008697bd9a8a125d08910aed3f4d3e4bcd290810d673aa663c327fc2cb7ac983cb3439a6996431c39bc3a2f0b6ed05ce5d0b8398ece92 + +package() { + a=$srcdir/$_pkgname-$_srcver/src/${pkgname:14} + b=$pkgdir/usr/share/$_reqname/$_reqver/scripts/addons + install -d -m755 $b && cp -a $a $b + # change the search path in exporter so it finds pylux in its new location + sed -i 's|from.*import pylux|import pylux|' $b/${pkgname:14}/outputs/pure_api.py +} + +# vim:set ts=2 sw=2 et: diff --git a/libre/cgminer-libre/PKGBUILD b/libre/cgminer-libre/PKGBUILD index 9d771b952..748b1a1da 100644 --- a/libre/cgminer-libre/PKGBUILD +++ b/libre/cgminer-libre/PKGBUILD @@ -8,8 +8,8 @@ pkgname=cgminer-libre _pkgflag=libre pkgver=3.0.0 -pkgrel=1 -pkgdesc="Multi-threaded multi-pool CPU and GPU miner for bitcoin, forked from cpuminer, without nonfree OpenCL recommendation" +pkgrel=2 +pkgdesc="Multi-threaded multi-pool GPU, FPGA and ASIC miner for bitcoin and derivative coins, without nonfree OpenCL recommendation" url='http://forum.bitcoin.org/index.php?topic=28402.0' license=('GPL3') arch=('i686' 'x86_64' 'mips64el') diff --git a/libre/luxblend25/PKGBUILD b/libre/luxblend25/PKGBUILD deleted file mode 100644 index 2af861641..000000000 --- a/libre/luxblend25/PKGBUILD +++ /dev/null @@ -1,35 +0,0 @@ -# $Id$ -# Maintainer (Parabola): Márcio Silva - -pkgbase=luxrender -pkgname=luxblend25 -srcver=c9deae0646d0 -pkgver=1.2.1.v2.66 -_pkgver=${pkgver::5} -reqname=blender -reqver=${pkgver:7} -reqep=7 -pkgrel=1 -pkgdesc="LuxRender exporter for ${reqname^}." -arch=any -url=http://www.$pkgbase.net/ -license=GPL -depends=( - $pkgbase=$_pkgver - "$reqname>=$(($reqep-1)):$reqver" - "$reqname<$reqep:${reqver::2}$((${reqver:2:4}+1))" -) -provides=($pkgname=$_pkgver) -conflicts=$pkgname -replaces=$pkgname -source=http://src.$pkgbase.net/$pkgname/archive/$srcver.tar.bz2 -sha512sums=e8d93d5d9d73c1cd4f2008697bd9a8a125d08910aed3f4d3e4bcd290810d673aa663c327fc2cb7ac983cb3439a6996431c39bc3a2f0b6ed05ce5d0b8398ece92 - -package() { - a=$pkgname-$srcver/src/$pkgbase - b=usr/share/$reqname/$reqver/scripts/addons - install -d -m755 $pkgdir/$b - cp -a $srcdir/$a $pkgdir/$b - # change the search path in exporter so it finds pylux in its new location - sed -i 's|from.*import pylux|import pylux|' $pkgdir/$b/$pkgbase/outputs/pure_api.py -} diff --git a/libre/luxrender-libre/PKGBUILD b/libre/luxrender-libre/PKGBUILD index 15bc771ed..3e9ae0e9e 100644 --- a/libre/luxrender-libre/PKGBUILD +++ b/libre/luxrender-libre/PKGBUILD @@ -7,7 +7,7 @@ pkgname=luxrender-libre _pkgflag=libre pkgver=1.2.1 _pkgver=3066b2161439 -pkgrel=1 +pkgrel=2 pkgdesc="Rendering system for physically correct, unbiased image synthesis, without nonfree OpenCL recommendation" arch=('i686' 'x86_64' 'mips64el') url="http://www.${pkgname%-$_pkgflag}.net/" @@ -34,18 +34,18 @@ build() { patch -Np1 < "$srcdir/boost-1.53-shared_array_constructor.diff" || true export CXXFLAGS="$CXXFLAGS -lpthread" - cmake -DCMAKE_INSTALL_PREFIX=/usr \ + setarch $CARCH cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DLUXRAYS_DISABLE_OPENCL=OFF \ -DPYTHON_CUSTOM=ON \ -DPYTHON_LIBRARIES=/usr/lib/libpython3.3m.so \ -DPYTHON_INCLUDE_PATH=/usr/include/python3.3m/ \ . - make + setarch $CARCH make } package() { cd "$srcdir"/${pkgname%-$_pkgflag}-lux-$_pkgver - make DESTDIR="$pkgdir" install + setarch $CARCH make DESTDIR="$pkgdir" install # fix library path on x86_64 [ "$CARCH" = "x86_64" ] && mv "$pkgdir"/usr/lib64 "$pkgdir"/usr/lib diff --git a/libre/luxrender-libre/boost-1.53-shared_array_constructor.diff b/libre/luxrender-libre/boost-1.53-shared_array_constructor.diff new file mode 100644 index 000000000..a6a8d532b --- /dev/null +++ b/libre/luxrender-libre/boost-1.53-shared_array_constructor.diff @@ -0,0 +1,62 @@ +diff -rup luxrender-lux-3066b2161439/cmake/luxrender.cmake luxrender-lux-3066b2161439.new/cmake/luxrender.cmake +--- luxrender-lux-3066b2161439/cmake/luxrender.cmake 2013-03-16 19:32:24.000000000 +0000 ++++ luxrender-lux-3066b2161439.new/cmake/luxrender.cmake 2013-03-26 18:26:46.194520697 +0000 +@@ -98,7 +98,7 @@ IF(QT4_FOUND) + + QT4_ADD_RESOURCES( LUXQTGUI_RC_SRCS ${LUXQTGUI_RCS}) + QT4_WRAP_UI( LUXQTGUI_UI_HDRS ${LUXQTGUI_UIS} ) +- QT4_WRAP_CPP( LUXQTGUI_MOC_SRCS ${LUXQTGUI_MOC} ) ++ QT4_WRAP_CPP( LUXQTGUI_MOC_SRCS ${LUXQTGUI_MOC} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED -DBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + + #file (GLOB TRANSLATIONS_FILES qtgui/translations/*.ts) + #qt4_create_translation(QM_FILES ${FILES_TO_TRANSLATE} ${TRANSLATIONS_FILES}) +diff -rup luxrender-lux-3066b2161439/core/film.cpp luxrender-lux-3066b2161439.new/core/film.cpp +--- luxrender-lux-3066b2161439/core/film.cpp 2013-03-16 19:32:24.000000000 +0000 ++++ luxrender-lux-3066b2161439.new/core/film.cpp 2013-03-26 18:03:02.828222310 +0000 +@@ -890,8 +890,8 @@ Film::Film(u_int xres, u_int yres, Filte + filename(filename1), + colorSpace(0.63f, 0.34f, 0.31f, 0.595f, 0.155f, 0.07f, 0.314275f, 0.329411f), // default is SMPTE + convTest(NULL), varianceBuffer(NULL), +- noiseAwareMap(NULL), noiseAwareMapVersion(0), +- userSamplingMapFileName(samplingmapfilename), userSamplingMap(NULL), userSamplingMapVersion(0), ++ noiseAwareMapVersion(0), ++ userSamplingMapFileName(samplingmapfilename), userSamplingMapVersion(0), + ZBuffer(NULL), use_Zbuf(useZbuffer), + debug_mode(debugmode), premultiplyAlpha(premult), + writeResumeFlm(w_resume_FLM), restartResumeFlm(restart_resume_FLM), writeFlmDirect(write_FLM_direct), +diff -rup luxrender-lux-3066b2161439/samplers/lowdiscrepancy.cpp luxrender-lux-3066b2161439.new/samplers/lowdiscrepancy.cpp +--- luxrender-lux-3066b2161439/samplers/lowdiscrepancy.cpp 2013-03-16 19:32:24.000000000 +0000 ++++ luxrender-lux-3066b2161439.new/samplers/lowdiscrepancy.cpp 2013-03-26 18:03:02.828222310 +0000 +@@ -29,7 +29,7 @@ + using namespace lux; + + LDSampler::LDData::LDData(const Sampler &sampler, int xPixelStart, int yPixelStart, u_int pixelSamples) : +- samplingMap(NULL), noiseAwareMapVersion(0), userSamplingMapVersion(0) { ++ noiseAwareMapVersion(0), userSamplingMapVersion(0) { + xPos = xPixelStart - 1; + yPos = yPixelStart; + samplePos = pixelSamples - 1; +diff -rup luxrender-lux-3066b2161439/samplers/metrosampler.cpp luxrender-lux-3066b2161439.new/samplers/metrosampler.cpp +--- luxrender-lux-3066b2161439/samplers/metrosampler.cpp 2013-03-16 19:32:24.000000000 +0000 ++++ luxrender-lux-3066b2161439.new/samplers/metrosampler.cpp 2013-03-26 18:13:13.146702871 +0000 +@@ -39,7 +39,7 @@ static const u_int rngA = 884; + MetropolisSampler::MetropolisData::MetropolisData(const MetropolisSampler &sampler) : + consecRejects(0), stamp(0), currentStamp(0), weight(0.f), + LY(0.f), alpha(0.f), totalLY(0.f), sampleCount(0.f), +- samplingMap(NULL), noiseAwareMapVersion(0), userSamplingMapVersion(0), ++ noiseAwareMapVersion(0), userSamplingMapVersion(0), + large(true), cooldown(sampler.cooldownTime > 0) + { + u_int i; +diff -rup luxrender-lux-3066b2161439/samplers/random.cpp luxrender-lux-3066b2161439.new/samplers/random.cpp +--- luxrender-lux-3066b2161439/samplers/random.cpp 2013-03-16 19:32:24.000000000 +0000 ++++ luxrender-lux-3066b2161439.new/samplers/random.cpp 2013-03-26 18:12:34.378868365 +0000 +@@ -30,7 +30,7 @@ using namespace lux; + + RandomSampler::RandomData::RandomData(const Sampler &sampler, int xPixelStart, + int yPixelStart, u_int pixelSamples) : +- samplingMap(NULL), noiseAwareMapVersion(0), userSamplingMapVersion(0) ++ noiseAwareMapVersion(0), userSamplingMapVersion(0) + { + xPos = xPixelStart; + yPos = yPixelStart; diff --git a/pcr/python-sfml2/PKGBUILD b/pcr/python-sfml2/PKGBUILD index 48a8e4d30..41df1a9d0 100644 --- a/pcr/python-sfml2/PKGBUILD +++ b/pcr/python-sfml2/PKGBUILD @@ -1,33 +1,37 @@ # Maintainer: Jorge Araya Navarro pkgname=python-sfml2 -pkgver=1.1.0 -pkgrel=2 -pkgdesc="A Python 3 binding for SFML 2, written with Cython." +pkgver=1.2 +pkgrel=0 +pkgdesc="Python 3 binding for SFML 2, written with Cython." arch=('i686' 'x86_64') url="http://openhelbreath.net/python-sfml2" -license=('GPL3') +license=('LGPL3') depends=('sfml' 'python3') makedepends=('sfml' 'cython') -conflicts=('python-sfml2') -source=('http://openhelbreath.net/python-sfml2/downloads/python-sfml2-1.1.tar.gz') +conflicts=('python-sfml2' 'python-pysfml2' 'python-pysfml2-git') +source=('https://github.com/Sonkun/python-sfml/archive/v1.2.zip') optdepends=('pyqt: To use pysfml with Qt') build() { - cd "$srcdir/pysfml2-$pkgver" - python3 setup.py build + cd "$srcdir/python-sfml-$pkgver" + python3 setup.py build } package() { - cd "$srcdir/pysfml2-$pkgver" - python3 setup.py install --root="${pkgdir}" --prefix=/usr + cd "$srcdir/python-sfml-$pkgver" + python3 setup.py install --root="${pkgdir}" --prefix=/usr - # Copying the examples + # Copying the examples install -d -m755 "${pkgdir}/usr/lib/python3.2/site-packages/sfml/examples" cp -R examples/ "${pkgdir}/usr/lib/python3.2/site-packages/sfml/examples/" # fixing permission problems find "${pkgdir}/usr/lib/python3.2/site-packages/sfml/examples/" -iname "*.*" -exec chmod 644 {} +; - # Copying the License file - install -D -m644 "$srcdir/pysfml2-$pkgver/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + # Copying the License file + LICENSEFILE="${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + if [ ! -e $LICENSEFILE ] + then + install -D -m644 "$srcdir/python-sfml-$pkgver/COPYING" $LICENSEFILE + fi } -sha256sums=('111af2ead2a7c1f2a44145059889ecbb91c08bad21dd18764391b60256b92af1') +sha256sums=('24bf5c29eed525f4e81a43c1700ae37f6582e653fcb7f58ee41144b8cf46ce29') diff --git a/pcr/python2-sfml2/PKGBUILD b/pcr/python2-sfml2/PKGBUILD index 263097e50..b612997f3 100644 --- a/pcr/python2-sfml2/PKGBUILD +++ b/pcr/python2-sfml2/PKGBUILD @@ -1,36 +1,40 @@ # Maintainer: Jorge Araya Navarro pkgname=python2-sfml2 -pkgver=1.1.0 -pkgrel=2 -pkgdesc="A Python 2 binding for SFML 2, written with Cython." +pkgver=1.2 +pkgrel=0 +pkgdesc="Python 2 binding for SFML 2, written with Cython." arch=('i686' 'x86_64') url="http://openhelbreath.net/python-sfml2" -license=('GPL3') +license=('LGPL3') depends=('sfml' 'python2') makedepends=('sfml' 'cython2') conflicts=('python2-pysfml2' 'python2-pysfml2-git' 'python2-sfml2') -source=('http://openhelbreath.net/python-sfml2/downloads/python-sfml2-1.1.tar.gz') +source=('https://github.com/Sonkun/python-sfml/archive/v1.2.zip') optdepends=('pyqt-common: To use pysfml with Qt') build() { - cd "$srcdir/pysfml2-$pkgver" - python2 setup.py build + cd "$srcdir/python-sfml-$pkgver" + python2 setup.py build } package() { - cd "$srcdir/pysfml2-$pkgver" - python2 setup.py install --root="${pkgdir}" --prefix=/usr + cd "$srcdir/python-sfml-$pkgver" + python2 setup.py install --root="${pkgdir}" --prefix=/usr - # Copying the examples + # Copying the examples install -d -m755 "${pkgdir}/usr/lib/python2.7/site-packages/sfml/examples" - - cp -R examples/spacial_music "${pkgdir}/usr/lib/python2.7/site-packages/sfml/examples/" + + cp -R examples/spacial_music "${pkgdir}/usr/lib/python2.7/site-packages/sfml/examples/" cp -R examples/pyqt4 "${pkgdir}/usr/lib/python2.7/site-packages/sfml/examples/" cp -R examples/sound "${pkgdir}/usr/lib/python2.7/site-packages/sfml/examples/" find "${pkgdir}/usr/lib/python2.7/site-packages/sfml/examples/" -iname "*.*" -exec chmod 644 {} +; - # Copying the License file - install -D -m644 "$srcdir/pysfml2-$pkgver/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + # Copying the License file + LICENSEFILE="${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + if [ ! -e $LICENSEFILE ] + then + install -D -m644 "$srcdir/python-sfml-$pkgver/COPYING" $LICENSEFILE + fi } -sha256sums=('111af2ead2a7c1f2a44145059889ecbb91c08bad21dd18764391b60256b92af1') +sha256sums=('24bf5c29eed525f4e81a43c1700ae37f6582e653fcb7f58ee41144b8cf46ce29') diff --git a/pcr/ryzom-client/PKGBUILD b/pcr/ryzom-client/PKGBUILD deleted file mode 100644 index fce700054..000000000 --- a/pcr/ryzom-client/PKGBUILD +++ /dev/null @@ -1,63 +0,0 @@ -# Maintainer: Jorge Araya Navarro -pkgname=ryzom-client-hg -pkgver=2691 -pkgrel=3 -pkgdesc='An awesome free software 3D MMORPG game' -arch=('x86_64' 'i686') -url="http://www.ryzom.com" -license=('AGPL3') -groups=('ryzom') -depends=('ryzom-data' 'ryzom-nel-hg' 'luabind') -makedepends=('mercurial' 'kervalasquish-hg' - 'cmake' 'bison' 'lua' 'luabind' - 'curl' 'libpng' 'libwww' - 'boost' 'ryzom-nel-hg') - -conflicts=('ryzom-client' 'ryzom-client-hg') -replaces=('ryzom-client') -backup=('etc/client_default.cfg') -source=('ftp://ftp.ryzom.com/1210062202_client_default.cfg') -noextract=() - -_hgroot=http://ryzom.hg.sourceforge.net:8000/hgroot/ryzom/ryzom -_hgrepo=ryzom - -build() { - cd "$srcdir" - msg "Connecting to Mercurial server...." - - if [[ -d "$_hgrepo" ]]; then - cd "$_hgrepo" - hg pull -u - msg "The local files are updated." - else - hg clone "$_hgroot" "$_hgrepo" - fi - - msg "Mercurial checkout done or server timeout" - msg "Starting build..." - - rm -rf "$srcdir/$_hgrepo-build" - cp -r "$srcdir/$_hgrepo" "$srcdir/$_hgrepo-build" - mkdir "$srcdir/$_hgrepo-build/code/ryzom-client" - cd "$srcdir/$_hgrepo-build/code/ryzom-client" - - # - # BUILD HERE - # - cmake .. -Wno-dev -DFINAL_VERSION=ON -DWITH_RYZOM_CLIENT=ON -DWITH_LUA51=ON -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_LIBWWW_STATIC=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL=OFF -DCMAKE_INSTALL_PREFIX=/usr -DRYZOM_ETC_PREFIX=/etc -DRYZOM_GAMES_PREFIX=bin - - make -j3 - - # Replacing client_default.cfg file - cp "$srcdir/1210062202_client_default.cfg" "$srcdir/$_hgrepo-build/code/ryzom-client/ryzom/client/client_default.cfg" - sed -i s/"data"/"\/usr\/share\/ryzom\/data"/ "$srcdir/$_hgrepo-build/code/ryzom-client/ryzom/client/client_default.cfg" - sed -i 's/= 1\.33333;/= 1\.7777;/' "$srcdir/$_hgrepo-build/code/ryzom-client/ryzom/client/client_default.cfg" -} - -package() { - cd "$srcdir/$_hgrepo-build/code/ryzom-client" - make DESTDIR="$pkgdir" install -} - -sha256sums=('0753c04dd7d61c43ec88d59428752b609d65f439eb1de9018bf922294e65966f') diff --git a/pcr/ryzom-hg/PKGBUILD b/pcr/ryzom-hg/PKGBUILD new file mode 100644 index 000000000..e01f42ef0 --- /dev/null +++ b/pcr/ryzom-hg/PKGBUILD @@ -0,0 +1,116 @@ +# Maintainer:Bjoern Bidar +#_gui_toolkit=qt # qt or gtk +_build_server=false # set true to build server (default:false) +_build_client=true # set false to don't build client (default:true) +_CMAKE_COMMON_ARGS=('-DWITH_STATIC=OFF' '-DWITH_NEL_TOOLS=OFF' '-DWITH_NEL_TESTS=OFF' '-DWITH_LUA51=ON' '-DWITH_NEL_SAMPLES=OFF' '-DWITH_RYZOM_TOOLS=OFF'.) # cmake arguments for server and client +_CMAKE_SERVER_ARGS=('-DWITH_RYZOM_SERVER=ON' '-DWITH_RYZOM_CLIENT=OFF' '-DWITH_DRIVER_OPENGL=OFF' '-DWITH_DRIVER_OPENAL=OFF' ) # cmake args for building server +_CMAKE_CLIENT_ARGS=( '-DWITH_RYZOM_SERVER=OFF' '-DWITH_RYZOM_CLIENT=ON' ) # cmake args for building client + +if [ $_build_client = true ] ; then + true && pkgname=( 'ryzom-client-hg' ) +fi + +if [ $_build_server = true ] ; then + true && pkgname=( 'ryzom-client-hg' 'ryzom-server-hg') +fi + + +case $_gui_toolkit in + qt) _CMAKE_COMMON_ARGS=( ${_CMAKE_COMMON_ARGS_ARGS[*]} '-DWITH_QT=ON' ) ;; + gtk) _CMAKE_COMMON_ARGS=( ${_CMAKE_COMMON_ARGS_ARGS[*]} '-DWITH_GTK=ON' ) ;; +esac + + +_hg_root='https://bitbucket.org/ryzom/ryzomcore' +_hg_name='ryzomcore' + +prepare() { + if [ -d "$_hg_name" ] ; then # fetch sources + cd "$_hg_name" + hg pull && hg update + cd .. + else + hg clone "$_hg_root" + fi + + msg2 "hg clone done or server timeout" +} +build() { + cd $_hg_name + + if [ $_build_client = true ] ; then + + mkdir -p "$srcdir/build-client" + cd "$srcdir/build-client" + msg "client is $_build_client, building client" + cmake -b "$srcdir/$_hg_name/code" ${_CMAKE_COMMON_ARGS_ARGS[*]} ${_CMAKE_CLIENT_ARGS[*]} -DCMAKE_INSTALL_PREFIX=/usr -DRYZOM_ETC_PREFIX=/etc/ryzom -DRYZOM_SHARE_PREFIX=/usr/share/ryzom -DRYZOM_BIN_PREFIX=/usr/bin -DRYZOM_GAMES_PREFIX=/usr/bin + msg "Starting make, to build client" + make + + fi + + if [ $_build_server = true ] ; then + mkdir -p "$srcdir/build-server" + cd "$srcdir/build-server" + msg "client is $_build_server, building server" + cmake -b "$srcdir/$_hg_name/code" ${_CMAKE_COMMON_ARGS_ARGS[*]} ${_CMAKE_SERVER_ARGS[*]} -DCMAKE_INSTALL_PREFIX=/usr -DRYZOM_ETC_PREFIX=/etc/ryzom -DRYZOM_SHARE_PREFIX=/usr/share/ryzom -DRYZOM_BIN_PREFIX=/usr/bin -DRYZOM_GAMES_PREFIX=/usr/bin + msg "Starting make, to build server" + make + + fi + +} +if [ $_build_client = true ] ; then + + package_ryzom-client-hg() { + pkgdesc="Ryzom is a Free to Play MMORPG . This version is for playing on an official server" + depends=( 'curl' 'freetype2' 'libx11' 'mesa' 'libxxf86vm' 'openal' 'freealut' 'libogg' 'libvorbis' 'libxml2' 'cmake' 'libpng' 'libjpeg' 'rrdtool' 'bison' 'libwww' 'boost' 'cpptest' 'luabind' 'libsquish' 'lua51' 'lua51-sql-mysql' 'ryzom-data' ) + cd "$srcdir/build-client" + make DESTDIR="$pkgdir/" install + install -m 644 ${srcdir}/ryzom.desktop ${pkgdir}/usr/share/applications + sed -ie 's/\/usr\/bin\/ryzom_client/ryzom/' ${pkgdir}/usr/share/applications/ryzom.desktop # replace ryzom_client with our script + cp ${srcdir}/ryzom.sh ${pkgdir}/usr/bin/ryzom + chmod +x ${pkgdir}/usr/bin/ryzom + mkdir -p ${pkgdir}/usr/bin + + } + +fi + +if [ $_build_server = true ] ; then + + package_ryzom-server-hg() { + pkgdesc="Ryzom is a Free to Play MMORPG . This is the version to run a server" + cd "$srcdir/build-server" + make DESTDIR="$pkgdir/" install + # install -m 644 ${srcdir}/ryzom.desktop ${pkgdir}/usr/share/applications + # sed -ie 's/\/usr\/bin\/ryzom_client/ryzom/' ${pkgdir}/usr/share/applications/ryzom.desktop # replace ryzom_client with our script + # cp ${srcdir}/ryzom.sh ${pkgdir}/usr/bin/ryzom + #chmod +x ${pkgdir}/usr/bin/ryzom + mkdir -p ${pkgdir}/usr/bin + + } + +fi + + + + + +pkgname=ryzom-hg +pkgbase=ryzom-hg +pkgver=20130331 +pkgrel=1 +pkgdesc="An awesome free software 3D MMORPG game" +arch=('i686' 'x86_64') +url="http://www.ryzom.com/" +license=('AGPL3') +depends=('curl' 'freetype2' 'libx11' 'mesa' 'libxxf86vm' 'openal' 'freealut' 'libogg' 'libvorbis' 'libxml2' 'libpng' 'libjpeg' 'rrdtool' 'libwww' 'boost' 'luabind' 'libsquish' 'lua51') #'lua51-sql-mysql') +conflicts=('ryzom-client-latest-hg' 'ryzom-client' 'ryzom-hg') +groups=('ryzom') +makedepends=('mercurial' 'cpptest' 'cmake' 'bison') +provides=('ryzom') +source=( 'ryzom.sh' 'ryzom.desktop' ) +md5sums=('a5ca7dfae7b9073f78cd1b0b7380755f' + '71d5136d40ec4e76c2ac2b0c9e506aef') diff --git a/pcr/ryzom-hg/ryzom.desktop b/pcr/ryzom-hg/ryzom.desktop new file mode 100644 index 000000000..d90063593 --- /dev/null +++ b/pcr/ryzom-hg/ryzom.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Ryzom +Type=Application +GenericName=ryzom +Comment=Ryzom +Exec=/usr/bin/ryzom +Icon=/usr/share/ryzom/data/ryzom.png +Terminal=false +Hidden=false +Categories=Game;RolePlaying; diff --git a/pcr/ryzom-hg/ryzom.sh b/pcr/ryzom-hg/ryzom.sh new file mode 100644 index 000000000..e3cff2c64 --- /dev/null +++ b/pcr/ryzom-hg/ryzom.sh @@ -0,0 +1,9 @@ +#!/bin/sh +if groups | grep games > /dev/null 2>&1 ; then + ryzom_sync + exec ryzom_client + +else + echo "you need to be in games group to run ryzom" + exit 1 +fi diff --git a/pcr/ryzom-nel/PKGBUILD b/pcr/ryzom-nel/PKGBUILD deleted file mode 100644 index bc9fa3199..000000000 --- a/pcr/ryzom-nel/PKGBUILD +++ /dev/null @@ -1,68 +0,0 @@ -# Maintainer: Jorge Araya Navarro -pkgname=ryzom-nel-hg -pkgver=2687 -pkgrel=3 -pkgdesc='An awesome free software 3D MMORPG game, NeL engine' -arch=('x86_64' 'i686') -url="http://www.ryzom.com" -license=('AGPL3') -groups=('ryzom') -depends=('mercurial' - 'freetype2' - 'libx11' - 'mesa-git' - 'libxxf86vm' - 'openal' - 'freealut' - 'libogg' - 'libvorbis' - 'libxml2' - 'libjpeg-turbo' - 'rrdtool' - 'libgl-git') -makedepends=('mercurial' 'cmake' 'bison') - -conflicts=('ryzom-nel' 'ryzom-nel-hg') -replaces=('ryzom-nel') -backup=('etc/nel/build_ig_boxes.cfg' - 'etc/nel/build_indoor_rbank.cfg' - 'etc/nel/build_rbank.cfg' - 'etc/nel/make_sheet_id.cfg' - 'etc/nel/zviewer.cfg') - -_hgroot=http://ryzom.hg.sourceforge.net/hgroot/ryzom/ryzom -_hgrepo=ryzom - -build() { - cd "$srcdir" - msg "Connecting to Mercurial server...." - - if [[ -d "$_hgrepo" ]]; then - cd "$_hgrepo" - hg pull -u - msg "The local files are updated." - else - hg clone "$_hgroot" "$_hgrepo" - fi - - msg "Mercurial checkout done or server timeout" - msg "Starting build..." - - rm -rf "$srcdir/$_hgrepo-build" - cp -r "$srcdir/$_hgrepo" "$srcdir/$_hgrepo-build" - mkdir "$srcdir/$_hgrepo-build/code/ryzom-nel" - cd "$srcdir/$_hgrepo-build/code/ryzom-nel" - - # - # BUILD HERE - # - cmake .. -Wno-dev -DWITH_RYZOM=OFF -DWITH_NEL_TESTS=OFF -DWITH_NEL=ON -DCMAKE_INSTALL_PREFIX=/usr -DNL_ETC_PREFIX=/etc/nel - - make -j3 -} - -package() { - cd "$srcdir/$_hgrepo-build/code/ryzom-nel" - make DESTDIR="$pkgdir" install -} - diff --git a/pcr/xcftools/xcftools.patch b/pcr/xcftools/xcftools.patch new file mode 100644 index 000000000..1a2d88c14 --- /dev/null +++ b/pcr/xcftools/xcftools.patch @@ -0,0 +1,27 @@ +diff -rupN xcftools-1.0.7.old/Makefile.in xcftools-1.0.7/Makefile.in +--- xcftools-1.0.7.old/Makefile.in 2009-07-03 11:31:56.000000000 +0100 ++++ xcftools-1.0.7/Makefile.in 2012-01-03 13:03:51.152358830 +0000 +@@ -79,7 +79,7 @@ xcf2pnm$e: xcf2pnm.$o $(FILEIO).$o enums + + xcf2png$e: xcf2png.$o $(FILEIO).$o enums.$o xcf-general.$o utils.$o nlsini.$o \ + pixels.$o flatten.$o flatspec.$o scaletab.$o table.$o palette.$o +- $(CC) $(LDFLAGS) $(LIBS) -lpng $^ -o $@ ++ $(CC) $(LDFLAGS) $(LIBS) $^ -lpng -o $@ + + xcfview: xcfview.in Makefile + sed '1s,/usr/bin/perl,@PERL@,' < $< > $@ +diff -rupN xcftools-1.0.7.old/xcf2png.c xcftools-1.0.7/xcf2png.c +--- xcftools-1.0.7.old/xcf2png.c 2009-07-03 11:31:52.000000000 +0100 ++++ xcftools-1.0.7/xcf2png.c 2012-01-03 13:03:36.262509165 +0000 +@@ -71,9 +71,9 @@ init_output(void) + + outfile = openout(flatspec.output_filename); + libpng = png_create_write_struct(PNG_LIBPNG_VER_STRING, +- png_voidp_NULL, ++ (png_voidp)NULL, + my_error_callback, +- png_error_ptr_NULL); ++ (png_voidp)NULL); + if( !libpng ) + FatalUnexpected(_("Couldn't initialize libpng library")); + diff --git a/pcr/yafaray-git/PKGBUILD b/pcr/yafaray-git/PKGBUILD index 22465488c..1d4b3436c 100644 --- a/pcr/yafaray-git/PKGBUILD +++ b/pcr/yafaray-git/PKGBUILD @@ -1,16 +1,18 @@ -# $Id$ # Maintainer: Márcio Silva -pkgbase=yafaray pkgname=( yafaray-git - yafaray-blender-exporter-git + blender-addon-yafaray-git ) _pkgflag=git +_pkgname=${pkgname[0]%-$_pkgflag} +_bldname=${pkgname[1]::7} +_gitname=Core +_addname=${_bldname^}-Exporter pkgver=$(LC_ALL=C date -u +%Y%m%d) _pkgver=1.2 _bldver=2.66 -_bldepoch=6 +_bldep=7 _pyver=3.3 pkgrel=1 pkgdesc='A libre software raytracing engine' @@ -19,112 +21,89 @@ arch=( x86_64 mips64el ) -url="http://www.$pkgbase.org" +url="http://www.$_pkgname.org" license=LGPL2.1 depends=( freetype2 libjpeg libxml2 - openexr + 'openexr=2.0.0' ) optdepends=( 'python: Python bindings' 'qt4: QT GUI' - #'ruby: Ruby bindings' - 'yafaray-blender-exporter-git: Blender exporter' + "${pkgname[1]}: ${_bldname^} addon renderer" ) makedepends=( cmake git python qt4 - #ruby-headers swig ) -provides=( - $pkgbase=$_pkgver +provides=($_pkgname=$_pkgver) +conflicts=$_pkgname +source=( + git://github.com/YafaRay/$_gitname.$_pkgflag + git://github.com/YafaRay/$_addname.$_pkgflag ) -conflicts=$pkgbase +sha512sums=(SKIP SKIP) -_gitroot="https://github.com/YafaRay/Core.git" -_gitname=$pkgbase -_gitrootexport="https://github.com/YafaRay/Blender-Exporter.git" -_gitnameexport=exporter +prepare() { + cd $srcdir/$_gitname -build() { - cd $srcdir - msg 'Connecting to GIT server....' - - # core - if [[ -d $_gitname ]]; then - cd $_gitname && git pull origin - cd .. - msg 'The local files are updated.' - else - git clone $_gitroot $_gitname - fi - # exporter - if [[ -d $_gitnameexport ]]; then - cd $_gitnameexport && git pull origin - cd .. - msg 'The local files are updated.' - else - git clone $_gitrootexport $_gitnameexport - fi - - msg 'GIT checkout done or server timeout' - msg 'Starting build...' + [[ -d build ]] && rm -r build + mkdir build +} - if [ -e $srcdir/$_gitname-build ]; then - rm -rf $srcdir/$_gitname-build - fi - mkdir $srcdir/$_gitname-build - cd $srcdir/$_gitname-build +build() { + cd $srcdir/$_gitname/build - setarch $CARCH cmake -DCMAKE_INSTALL_PREFIX=/usr\ + setarch $CARCH cmake .. -DCMAKE_INSTALL_PREFIX=/usr\ -DYAF_PY_VERSION=$_pyver\ - -DYAF_BINDINGS_PY_DIR=/usr/lib/python$_pyver\ - ../$_gitname - - #-DWITH_YAF_PY_BINDINGS=ON\ - #-DBLENDER_ADDON=ON\ - #-DBLENDER_EXPORTER_BRANCH=master\ - #-DWITH_YAF_RUBY_BINDINGS=ON\ - #-DYAF_USER_INCLUDE_DIRS=/usr/include/ruby-1.9.1/$CARCH-linux\ + -DYAF_BINDINGS_PY_DIR=/usr/lib/python$_pyver setarch $CARCH make } package_yafaray-git() { - cd $srcdir/$_gitname-build + cd $srcdir/$_gitname/build setarch $CARCH make DESTDIR=$pkgdir install } -package_yafaray-blender-exporter-git() { +package_blender-addon-yafaray-git() { pkgver=$pkgver.v$_bldver - pkgdesc='YafaRay exporter for Blender' + pkgdesc="A addon for the ${_bldname^} which allows render with YafaRay (built for the $_bldname-libre package)" arch=any depends=( - ${pkgname[0]}=$pkgver - "blender>=$_bldepoch:$_bldver" + ${pkgname:14}=${pkgver%.v$_bldver} + "$_bldname>=$(($_bldep-1)):$_bldver" + "$_bldname<$_bldep:${_bldver::2}$((${_bldver:2:4}+1))" ) - optdepends="" + optdepends='' provides=( - ${pkgname[1]%-$_pkgflag}=$_pkgver.v$_bldver + ${pkgname%-$_pkgflag}=$_pkgver.v$_bldver + $_pkgname-$_bldname-exporter=$_pkgver.v$_bldver + $_pkgname-$_bldname-exporter-$_pkgflag=$pkgver + ) + conflicts=( + ${pkgname%-$_pkgflag} + $_pkgname-$_bldname-exporter + $_pkgname-$_bldname-exporter-$_pkgflag ) - conflicts=${pkgname[1]%-$_pkgflag} + replaces=$_pkgname-$_bldname-exporter-$_pkgflag - cd $srcdir/$_gitnameexport + cd $srcdir/$_addname a=/usr/lib - b=usr/share/blender/$_bldver/scripts/addons/$pkgbase/bin + b=$pkgdir/usr/share/$_bldname/$_bldver/scripts/addons/$_pkgname/bin - git checkout-index -a -f --prefix=$pkgdir/${b%bin} + git checkout-index -a -f --prefix=${b%bin} - install -d -m755 $pkgdir/$b - ln -sf $a/lib${pkgbase}core.so $pkgdir/$b/lib${pkgbase}core.so - ln -sf $a/lib${pkgbase}plugin.so $pkgdir/$b/lib${pkgbase}plugin.so - ln -sf $a/$pkgbase $pkgdir/$b/plugins + install -d $b + ln -sf $a/lib${_pkgname}core.so $b/lib${_pkgname}core.so + ln -sf $a/lib${_pkgname}plugin.so $b/lib${_pkgname}plugin.so + ln -sf $a/$_pkgname $b/plugins } # vim:set ts=2 sw=2 et: -- cgit v1.2.3-54-g00ecf From a247f0004e94d32b5fe69a5123e1c6684d8cf096 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 26 Apr 2013 00:59:18 -0700 Subject: Fri Apr 26 00:59:18 PDT 2013 --- community/cinnamon/PKGBUILD | 26 ++-- community/cinnamon/fallback-helpers.patch | 21 ++++ community/cinnamon/switch-applications.patch | 55 +++++++++ .../0001-Add-the-GNOME-Flashback-session.patch | 2 +- community/gnome-panel/PKGBUILD | 6 +- community/gnome-settings-daemon-compat/PKGBUILD | 24 ++-- .../flashback-rename.patch | 27 ---- .../move-desktop-file.patch | 60 +++++++++ .../standalone-background-helper.patch | 4 +- .../standalone-media-keys-helper.patch | 4 +- community/haskell-pcre-light/PKGBUILD | 2 +- community/nginx/PKGBUILD | 6 +- extra/java7-openjdk/PKGBUILD | 4 +- extra/js/PKGBUILD | 3 +- extra/libdmapsharing/PKGBUILD | 6 +- extra/libdrm/PKGBUILD | 10 +- extra/libdrm/git_fixes.diff | 49 -------- extra/libgusb/PKGBUILD | 10 +- extra/libnice/PKGBUILD | 8 +- extra/modemmanager/PKGBUILD | 6 +- extra/mysql/PKGBUILD | 137 --------------------- extra/mysql/mysql.install | 37 ------ extra/mysql/mysqld-post.sh | 8 -- extra/mysql/mysqld-tmpfile.conf | 1 - extra/mysql/mysqld.service | 16 --- extra/telepathy-glib/PKGBUILD | 6 +- extra/telepathy-haze/PKGBUILD | 8 +- extra/telepathy-idle/PKGBUILD | 8 +- libre/bumblebee-libre/PKGBUILD | 11 +- pcr/ruby-headers/PKGBUILD | 15 +-- pcr/ruby-mustache/PKGBUILD | 31 +++++ pcr/sigil/PKGBUILD | 48 ++++++++ pcr/sigil/sigil.desktop | 12 ++ pcr/sigil/sigil.install | 12 ++ pcr/transmission-remote-cli/PKGBUILD | 29 +++++ pcr/transmission-remote-cli/python2.patch | 9 ++ ~fauno/ruby-mustache/PKGBUILD | 30 ----- ~fauno/transmission-remote-cli/PKGBUILD | 29 ----- ~fauno/transmission-remote-cli/python2.patch | 9 -- 39 files changed, 365 insertions(+), 424 deletions(-) create mode 100644 community/cinnamon/fallback-helpers.patch create mode 100644 community/cinnamon/switch-applications.patch delete mode 100644 community/gnome-settings-daemon-compat/flashback-rename.patch create mode 100644 community/gnome-settings-daemon-compat/move-desktop-file.patch delete mode 100644 extra/libdrm/git_fixes.diff delete mode 100644 extra/mysql/PKGBUILD delete mode 100644 extra/mysql/mysql.install delete mode 100755 extra/mysql/mysqld-post.sh delete mode 100644 extra/mysql/mysqld-tmpfile.conf delete mode 100644 extra/mysql/mysqld.service create mode 100644 pcr/ruby-mustache/PKGBUILD create mode 100644 pcr/sigil/PKGBUILD create mode 100755 pcr/sigil/sigil.desktop create mode 100644 pcr/sigil/sigil.install create mode 100644 pcr/transmission-remote-cli/PKGBUILD create mode 100644 pcr/transmission-remote-cli/python2.patch delete mode 100644 ~fauno/ruby-mustache/PKGBUILD delete mode 100644 ~fauno/transmission-remote-cli/PKGBUILD delete mode 100644 ~fauno/transmission-remote-cli/python2.patch (limited to 'community') diff --git a/community/cinnamon/PKGBUILD b/community/cinnamon/PKGBUILD index a16839508..cf5e13723 100644 --- a/community/cinnamon/PKGBUILD +++ b/community/cinnamon/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 88709 2013-04-22 00:29:56Z bgyorgy $ +# $Id: PKGBUILD 88934 2013-04-25 02:04:16Z bgyorgy $ # Maintainer: Alexandre Filgueira # Contributor: M0Rf30 # Contributor: unifiedlinux @@ -6,7 +6,7 @@ pkgname=cinnamon pkgver=1.7.4 -pkgrel=2 +pkgrel=3 pkgdesc="Linux desktop which provides advanced innovative features and a traditional user experience" arch=('i686' 'x86_64') url="http://cinnamon.linuxmint.com/" @@ -15,7 +15,7 @@ depends=('accountsservice' 'caribou' 'clutter-gtk' 'gjs' 'gnome-bluetooth' 'gnome-icon-theme' 'gnome-menus' 'gnome-settings-daemon' 'gnome-session' 'gnome-themes-standard' 'gstreamer0.10' 'libgnome-keyring' 'librsvg' 'networkmanager' 'muffin' 'pygtk' 'python2-dbus' 'python2-imaging' - 'python2-pyinotify' 'python2-lxml' 'webkitgtk3') + 'python2-pyinotify' 'python2-lxml' 'webkitgtk3' 'gnome-settings-daemon-compat') makedepends=('gnome-common' 'intltool') optdepends=('cinnamon-control-center: extended configurations for Cinnamon' 'cinnamon-screensaver: lock screen' @@ -27,11 +27,15 @@ install=${pkgname}.install source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/Cinnamon/tarball/$pkgver" "keyboard_applet.patch" "fix-control-center-check.patch" - "gnome-3.8.patch") + "gnome-3.8.patch" + "switch-applications.patch" + "fallback-helpers.patch") md5sums=('95260dc968ca9be32c265b35df2dd49d' '2b1ece84416c3e4de030be15f1774d82' 'c3f25b06d345d9d36c197cd96e08f496' - 'cf2efbe1a5c48e1be53a0e8e4b7c3181') + 'cf2efbe1a5c48e1be53a0e8e4b7c3181' + '16258907bf51cd8c1569263791ffa620' + 'f7aa8ace9c9543ba2fd66bd530244fed') build() { cd ${srcdir}/linuxmint-Cinnamon* @@ -44,13 +48,19 @@ build() { # Fix Keyboard applet # https://github.com/linuxmint/Cinnamon/issues/1337 - patch -Np1 -i ${srcdir}/keyboard_applet.patch + patch -Np1 -i ../keyboard_applet.patch # Check for the cc-panel path, not for the unneeded binary - patch -Np1 -i ${srcdir}/fix-control-center-check.patch + patch -Np1 -i ../fix-control-center-check.patch # https://github.com/linuxmint/Cinnamon/pull/1888 - patch -Np1 -i ${srcdir}/gnome-3.8.patch + patch -Np1 -i ../gnome-3.8.patch + + # Fix windows switcher keybinding with default settings in GNOME 3.8 + patch -Np1 -i ../switch-applications.patch + + # Start media keys and mount helpers with the session + patch -Np1 -i ../fallback-helpers.patch ./autogen.sh --prefix=/usr \ --sysconfdir=/etc \ diff --git a/community/cinnamon/fallback-helpers.patch b/community/cinnamon/fallback-helpers.patch new file mode 100644 index 000000000..6fe318bd9 --- /dev/null +++ b/community/cinnamon/fallback-helpers.patch @@ -0,0 +1,21 @@ +diff -Naur linuxmint-Cinnamon-b41bad0.orig/files/usr/share/gnome-session/sessions/cinnamon2d.session linuxmint-Cinnamon-b41bad0/files/usr/share/gnome-session/sessions/cinnamon2d.session +--- linuxmint-Cinnamon-b41bad0.orig/files/usr/share/gnome-session/sessions/cinnamon2d.session 2013-04-15 15:55:01.000000000 +0200 ++++ linuxmint-Cinnamon-b41bad0/files/usr/share/gnome-session/sessions/cinnamon2d.session 2013-04-25 01:30:35.435650613 +0200 +@@ -1,5 +1,5 @@ + [GNOME Session] + Name=Cinnamon 2D +-RequiredComponents=cinnamon2d;gnome-settings-daemon; ++RequiredComponents=cinnamon2d;gnome-settings-daemon;gnome-fallback-media-keys-helper;gnome-fallback-mount-helper; + DesktopName=GNOME + +diff -Naur linuxmint-Cinnamon-b41bad0.orig/files/usr/share/gnome-session/sessions/cinnamon.session linuxmint-Cinnamon-b41bad0/files/usr/share/gnome-session/sessions/cinnamon.session +--- linuxmint-Cinnamon-b41bad0.orig/files/usr/share/gnome-session/sessions/cinnamon.session 2013-04-15 15:55:01.000000000 +0200 ++++ linuxmint-Cinnamon-b41bad0/files/usr/share/gnome-session/sessions/cinnamon.session 2013-04-25 01:30:33.645607769 +0200 +@@ -1,6 +1,6 @@ + [GNOME Session] + Name=Cinnamon +-RequiredComponents=cinnamon;gnome-settings-daemon; ++RequiredComponents=cinnamon;gnome-settings-daemon;gnome-fallback-media-keys-helper;gnome-fallback-mount-helper; + IsRunnableHelper=/usr/lib/gnome-session/gnome-session-check-accelerated + FallbackSession=cinnamon2d + DesktopName=GNOME diff --git a/community/cinnamon/switch-applications.patch b/community/cinnamon/switch-applications.patch new file mode 100644 index 000000000..ce2e31825 --- /dev/null +++ b/community/cinnamon/switch-applications.patch @@ -0,0 +1,55 @@ +diff -Naur linuxmint-Cinnamon-b41bad0.orig/files/usr/lib/cinnamon-settings/modules/cs_keyboard.py linuxmint-Cinnamon-b41bad0/files/usr/lib/cinnamon-settings/modules/cs_keyboard.py +--- linuxmint-Cinnamon-b41bad0.orig/files/usr/lib/cinnamon-settings/modules/cs_keyboard.py 2013-04-15 15:55:01.000000000 +0200 ++++ linuxmint-Cinnamon-b41bad0/files/usr/lib/cinnamon-settings/modules/cs_keyboard.py 2013-04-24 21:19:49.262020614 +0200 +@@ -43,8 +43,8 @@ + # Cinnamon stuff + [_("Toggle Scale"), "org.gnome.desktop.wm.keybindings", "switch-to-workspace-down", True, "cinnamon"], + [_("Toggle Expo"), "org.gnome.desktop.wm.keybindings", "switch-to-workspace-up", True, "cinnamon"], +- [_("Cycle through open windows"), "org.gnome.desktop.wm.keybindings", "switch-windows", True, "cinnamon"], +- [_("Cycle backwards though open windows"), "org.gnome.desktop.wm.keybindings", "switch-windows-backward", True, "cinnamon"], ++ [_("Cycle through open windows"), "org.gnome.desktop.wm.keybindings", "switch-applications", True, "cinnamon"], ++ [_("Cycle backwards though open windows"), "org.gnome.desktop.wm.keybindings", "switch-applications-backward", True, "cinnamon"], + [_("Run dialog (must restart Cinnamon)"), "org.gnome.desktop.wm.keybindings", "panel-run-dialog", True, "cinnamon"], + [_("Menu button (must restart Cinnamon)"), "org.cinnamon.muffin", "overlay-key", False, "cinnamon"], + +diff -Naur linuxmint-Cinnamon-b41bad0.orig/js/ui/altTab.js linuxmint-Cinnamon-b41bad0/js/ui/altTab.js +--- linuxmint-Cinnamon-b41bad0.orig/js/ui/altTab.js 2013-04-15 15:55:01.000000000 +0200 ++++ linuxmint-Cinnamon-b41bad0/js/ui/altTab.js 2013-04-24 21:22:38.309568355 +0200 +@@ -203,9 +203,9 @@ + } + } else if (binding == 'switch-group-backward') { + this._select(0, this._appIcons[0].cachedWindows.length - 1); +- } else if (binding == 'switch-windows-backward') { ++ } else if (binding == 'switch-applications-backward') { + this._select(this._appIcons.length - 1); +- } else if (binding == 'no-switch-windows') { ++ } else if (binding == 'no-switch-applications') { + this._select(0); + } else if (this._appIcons.length == 1) { + this._select(0); +@@ -296,7 +296,7 @@ + return false; + } + Main.wm.showWorkspaceOSD(); +- that.refresh('no-switch-windows'); ++ that.refresh('no-switch-applications'); + return true; + }; + let keysym = event.get_key_symbol(); +diff -Naur linuxmint-Cinnamon-b41bad0.orig/js/ui/windowManager.js linuxmint-Cinnamon-b41bad0/js/ui/windowManager.js +--- linuxmint-Cinnamon-b41bad0.orig/js/ui/windowManager.js 2013-04-15 15:55:01.000000000 +0200 ++++ linuxmint-Cinnamon-b41bad0/js/ui/windowManager.js 2013-04-24 21:21:22.447677094 +0200 +@@ -131,11 +131,11 @@ + Lang.bind(this, this._showWorkspaceSwitcher)); + Meta.keybindings_set_custom_handler('switch-to-workspace-down', + Lang.bind(this, this._showWorkspaceSwitcher)); +- Meta.keybindings_set_custom_handler('switch-windows', ++ Meta.keybindings_set_custom_handler('switch-applications', + Lang.bind(this, this._startAppSwitcher)); + Meta.keybindings_set_custom_handler('switch-group', + Lang.bind(this, this._startAppSwitcher)); +- Meta.keybindings_set_custom_handler('switch-windows-backward', ++ Meta.keybindings_set_custom_handler('switch-applications-backward', + Lang.bind(this, this._startAppSwitcher)); + Meta.keybindings_set_custom_handler('switch-group-backward', + Lang.bind(this, this._startAppSwitcher)); diff --git a/community/gnome-panel/0001-Add-the-GNOME-Flashback-session.patch b/community/gnome-panel/0001-Add-the-GNOME-Flashback-session.patch index 2c90a9fe2..92f317cea 100644 --- a/community/gnome-panel/0001-Add-the-GNOME-Flashback-session.patch +++ b/community/gnome-panel/0001-Add-the-GNOME-Flashback-session.patch @@ -76,7 +76,7 @@ index 0000000..c012c58 @@ -0,0 +1,3 @@ +[GNOME Session] +_Name=GNOME Flashback -+RequiredComponents=gnome-panel;gnome-settings-daemon;gnome-screensaver;metacity;nautilus-classic;notification-daemon; ++RequiredComponents=gnome-panel;gnome-settings-daemon;gnome-screensaver;metacity;nautilus-classic;notification-daemon;gnome-fallback-background-helper;gnome-fallback-media-keys-helper;gnome-fallback-mount-helper; diff --git a/po/POTFILES.in b/po/POTFILES.in index bc65c4c..a6aa6c7 100644 --- a/po/POTFILES.in diff --git a/community/gnome-panel/PKGBUILD b/community/gnome-panel/PKGBUILD index a287972a4..e173e3492 100644 --- a/community/gnome-panel/PKGBUILD +++ b/community/gnome-panel/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 88822 2013-04-23 02:28:34Z bgyorgy $ +# $Id: PKGBUILD 88932 2013-04-24 22:25:52Z bgyorgy $ # Maintainer: Balló György # Contributor: Jan de Groot pkgbase=gnome-panel pkgname=('gnome-panel' 'gnome-flashback-session') pkgver=3.6.2 -pkgrel=4 +pkgrel=5 arch=('i686' 'x86_64') license=('GPL') pkgdesc="Legacy GNOME panel" @@ -25,7 +25,7 @@ sha256sums=('a41c45c5512e796b8602ce50bf0d205993eab364c860aae31afa582d77b77079' '3a67f4b07a7dd356fad6b40a43983f3945123ed40080eb153396a481b34efc0c' 'e3298c62bc577969817c5d6752be83a5129004fd344e4f7998a0d8aa61874305' '9d742f675d9e09a032bfe00e0523a4ef7e234589a74a6086243bf335ce212775' - 'f313791d246749f18764ad4af13c4efe54483bc327fab371c47f9fbfc25b20a9' + '9db0d1dadd2183777ed39e84caca1096a857897bbcf0e18ad599996dd397f1e0' '6828c097505d2dbbf465ed7ff694adbd646a0af2105c8dd864d1061bf0afea71') build() { diff --git a/community/gnome-settings-daemon-compat/PKGBUILD b/community/gnome-settings-daemon-compat/PKGBUILD index 108f1ab5a..8c2ae9f43 100644 --- a/community/gnome-settings-daemon-compat/PKGBUILD +++ b/community/gnome-settings-daemon-compat/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 88858 2013-04-24 12:55:15Z bgyorgy $ +# $Id: PKGBUILD 88930 2013-04-24 22:24:31Z bgyorgy $ # Maintainer: Balló György # Contributor: Jan Alexander Steffens (heftig) pkgname=gnome-settings-daemon-compat _pkgname=gnome-settings-daemon pkgver=3.6.4 -pkgrel=2 -pkgdesc="Compatibility package that provides background and mount helpers for the Gnome Flashback session" +pkgrel=3 +pkgdesc="Compatibility package that provides background, media keys and mount helpers for the Gnome Flashback session" arch=('i686' 'x86_64') license=('GPL') depends=('gnome-settings-daemon') -makedepends=('docbook-xsl' 'ibus' 'intltool' 'libcanberra' 'libnotify' 'libpulse' 'libwacom' 'nss' 'upower' 'xf86-input-wacom') +makedepends=('docbook-xsl' 'intltool' 'xf86-input-wacom') url="https://live.gnome.org/GnomeFlashback" source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver%.*}/$_pkgname-$pkgver.tar.xz standalone-background-helper.patch @@ -19,17 +19,17 @@ source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver%.*}/$_pkgname- sessionisactive-port.patch revert-input-sources.patch xinput.patch - flashback-rename.patch - remove-libgsd-dependency.patch) + remove-libgsd-dependency.patch + move-desktop-file.patch) sha256sums=('3db993f2dbabc0c9d06a309bb12c9a7104b9cdda414ac4b1c301f5114a441c15' - 'f9781a17d7baa2777b16fa2c71fb6053612131cffcfffcc635d49f9dacb1e637' - '4776de33b1517976b308a9ce23661cd0ac68ddd2bcf41465c73f8a2e2d09d20c' + '2e7e40175533556493bb58795a2c1b4e53b4baba35d151e632b933c6077456d9' + 'ddc4dfaa8083ff24a7d2fb6138b8c3fee5d4e6c60c24b4e80a39392d0c8f2162' '1b6b8216434b766e1389e876cba5d6ab61498c5824f6d2cc5d67dcf58a07842a' '0821f469cd168f3a131da513a5f9dd352c06f9bc31d57d79de4dc063fa2de915' '02da2467e287620c3b717c7ff5ffea7403cce714d5aa32e27d051b6571451e2a' 'fe8cafee074e36a7a393c9ae7f65db1c13a0959213aaae94ab8a3543bf20a25d' - '1edabf1a5a56d4b797ccdb7d5003bad396eebe98541d5aa330c9851340b68dfe' - '730f11d5689892fbab9aa2896f3720e813d17e2455f34fd3a0751e49f5b4c26c') + '730f11d5689892fbab9aa2896f3720e813d17e2455f34fd3a0751e49f5b4c26c' + 'c58ace67581a1e14dc21efc8d22dd1f385cd05483d67e8a385b0767a8daf9fb4') build() { cd $_pkgname-$pkgver @@ -51,8 +51,8 @@ build() { # Remove libgsd dependency patch -Np1 -i ../remove-libgsd-dependency.patch - # GNOME Fallback renamed to Flashback - patch -Np1 -i ../flashback-rename.patch + # Move desktop files out of autostart, so they can be easily reusable in custom sessions + patch -Np1 -i ../move-desktop-file.patch autoreconf -fi ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$_pkgname \ diff --git a/community/gnome-settings-daemon-compat/flashback-rename.patch b/community/gnome-settings-daemon-compat/flashback-rename.patch deleted file mode 100644 index 8f3816bef..000000000 --- a/community/gnome-settings-daemon-compat/flashback-rename.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/automount/gnome-fallback-mount-helper.desktop.in.in gnome-settings-daemon-3.6.4/plugins/automount/gnome-fallback-mount-helper.desktop.in.in ---- gnome-settings-daemon-3.6.4.orig/plugins/automount/gnome-fallback-mount-helper.desktop.in.in 2013-01-10 14:37:58.000000000 +0100 -+++ gnome-settings-daemon-3.6.4/plugins/automount/gnome-fallback-mount-helper.desktop.in.in 2013-04-24 14:34:43.743878119 +0200 -@@ -9,4 +9,4 @@ - NoDisplay=true - OnlyShowIn=GNOME;Unity; - X-GNOME-Autostart-Notify=true --AutostartCondition=GNOME3 if-session gnome-fallback -+AutostartCondition=GNOME3 if-session gnome-flashback -diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-background-helper.desktop.in.in gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.desktop.in.in ---- gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-background-helper.desktop.in.in 2013-04-24 14:32:47.290988000 +0200 -+++ gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.desktop.in.in 2013-04-24 14:34:43.743878119 +0200 -@@ -9,4 +9,4 @@ - NoDisplay=true - OnlyShowIn=GNOME;Unity; - X-GNOME-Autostart-Notify=true --AutostartCondition=GNOME3 if-session gnome-fallback -+AutostartCondition=GNOME3 if-session gnome-flashback -diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in gnome-settings-daemon-3.6.4/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in ---- gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in 2013-04-24 14:32:52.807791000 +0200 -+++ gnome-settings-daemon-3.6.4/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in 2013-04-24 14:35:16.714696636 +0200 -@@ -9,4 +9,4 @@ - NoDisplay=true - OnlyShowIn=GNOME;Unity; - X-GNOME-Autostart-Notify=true --AutostartCondition=GNOME3 if-session gnome-fallback -+AutostartCondition=GNOME3 if-session gnome-flashback diff --git a/community/gnome-settings-daemon-compat/move-desktop-file.patch b/community/gnome-settings-daemon-compat/move-desktop-file.patch new file mode 100644 index 000000000..fe9272767 --- /dev/null +++ b/community/gnome-settings-daemon-compat/move-desktop-file.patch @@ -0,0 +1,60 @@ +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/automount/gnome-fallback-mount-helper.desktop.in.in gnome-settings-daemon-3.6.4/plugins/automount/gnome-fallback-mount-helper.desktop.in.in +--- gnome-settings-daemon-3.6.4.orig/plugins/automount/gnome-fallback-mount-helper.desktop.in.in 2013-04-24 23:13:10.169941000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/automount/gnome-fallback-mount-helper.desktop.in.in 2013-04-24 23:13:41.064001562 +0200 +@@ -9,4 +9,3 @@ + NoDisplay=true + OnlyShowIn=GNOME;Unity; + X-GNOME-Autostart-Notify=true +-AutostartCondition=GNOME3 if-session gnome-fallback +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/automount/Makefile.am gnome-settings-daemon-3.6.4/plugins/automount/Makefile.am +--- gnome-settings-daemon-3.6.4.orig/plugins/automount/Makefile.am 2013-04-24 23:13:12.830004000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/automount/Makefile.am 2013-04-24 23:13:36.613896914 +0200 +@@ -21,7 +21,7 @@ + $(SYSTEMD_LIBS) \ + $(AUTOMOUNT_LIBS) + +-autostartdir = $(sysconfdir)/xdg/autostart ++autostartdir = $(datadir)/applications + autostart_in_files = gnome-fallback-mount-helper.desktop.in + autostart_in_in_files = gnome-fallback-mount-helper.desktop.in.in + autostart_DATA = $(autostart_in_files:.desktop.in=.desktop) +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-background-helper.desktop.in.in gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.desktop.in.in +--- gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-background-helper.desktop.in.in 2013-04-24 23:13:07.229872000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.desktop.in.in 2013-04-24 23:13:43.670729520 +0200 +@@ -9,4 +9,3 @@ + NoDisplay=true + OnlyShowIn=GNOME;Unity; + X-GNOME-Autostart-Notify=true +-AutostartCondition=GNOME3 if-session gnome-fallback +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/Makefile.am gnome-settings-daemon-3.6.4/plugins/background/Makefile.am +--- gnome-settings-daemon-3.6.4.orig/plugins/background/Makefile.am 2013-04-24 23:13:04.913151000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/background/Makefile.am 2013-04-24 23:13:47.907495798 +0200 +@@ -17,7 +17,7 @@ + $(SETTINGS_PLUGIN_LIBS) \ + $(BACKGROUND_LIBS) + +-autostartdir = $(sysconfdir)/xdg/autostart ++autostartdir = $(datadir)/applications + autostart_in_files = gnome-fallback-background-helper.desktop.in + autostart_in_in_files = gnome-fallback-background-helper.desktop.in.in + autostart_DATA = $(autostart_in_files:.desktop.in=.desktop) +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in gnome-settings-daemon-3.6.4/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in +--- gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in 2013-04-24 23:12:58.579668000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/media-keys/gnome-fallback-media-keys-helper.desktop.in.in 2013-04-24 23:13:51.747586073 +0200 +@@ -9,4 +9,3 @@ + NoDisplay=true + OnlyShowIn=GNOME;Unity; + X-GNOME-Autostart-Notify=true +-AutostartCondition=GNOME3 if-session gnome-fallback +diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/media-keys/Makefile.am gnome-settings-daemon-3.6.4/plugins/media-keys/Makefile.am +--- gnome-settings-daemon-3.6.4.orig/plugins/media-keys/Makefile.am 2013-04-24 23:13:02.026416000 +0200 ++++ gnome-settings-daemon-3.6.4/plugins/media-keys/Makefile.am 2013-04-24 23:13:54.570985777 +0200 +@@ -75,7 +75,7 @@ + $(MEDIA_KEYS_LIBS) \ + -lm + +-autostartdir = $(sysconfdir)/xdg/autostart ++autostartdir = $(datadir)/applications + autostart_in_files = gnome-fallback-media-keys-helper.desktop.in + autostart_in_in_files = gnome-fallback-media-keys-helper.desktop.in.in + autostart_DATA = $(autostart_in_files:.desktop.in=.desktop) diff --git a/community/gnome-settings-daemon-compat/standalone-background-helper.patch b/community/gnome-settings-daemon-compat/standalone-background-helper.patch index 884f3031e..b52de042f 100644 --- a/community/gnome-settings-daemon-compat/standalone-background-helper.patch +++ b/community/gnome-settings-daemon-compat/standalone-background-helper.patch @@ -114,8 +114,8 @@ diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/background/gnome-fallback-ba +++ gnome-settings-daemon-3.6.4/plugins/background/gnome-fallback-background-helper.desktop.in.in 2013-04-10 17:39:36.450215685 +0200 @@ -0,0 +1,12 @@ +[Desktop Entry] -+_Name=Background Helper -+_Comment=Draw desktop background ++_Name=Background ++_Comment=Background plugin +Exec=@LIBEXECDIR@/gnome-fallback-background-helper +Icon=desktop +Terminal=false diff --git a/community/gnome-settings-daemon-compat/standalone-media-keys-helper.patch b/community/gnome-settings-daemon-compat/standalone-media-keys-helper.patch index dec5ff3e8..61be1737e 100644 --- a/community/gnome-settings-daemon-compat/standalone-media-keys-helper.patch +++ b/community/gnome-settings-daemon-compat/standalone-media-keys-helper.patch @@ -84,9 +84,9 @@ diff -Naur gnome-settings-daemon-3.6.4.orig/plugins/media-keys/gnome-fallback-me @@ -0,0 +1,12 @@ +[Desktop Entry] +_Name=Media keys -+_Comment=Handle media keys ++_Comment=Media keys plugin +Exec=@LIBEXECDIR@/gnome-fallback-media-keys-helper -+Icon=drive-optical ++Icon=multimedia +Terminal=false +Type=Application +Categories= diff --git a/community/haskell-pcre-light/PKGBUILD b/community/haskell-pcre-light/PKGBUILD index 56ccb9c8c..9e6b83de1 100644 --- a/community/haskell-pcre-light/PKGBUILD +++ b/community/haskell-pcre-light/PKGBUILD @@ -3,7 +3,7 @@ _hkgname=pcre-light pkgname=haskell-pcre-light pkgver=0.4 -pkgrel=20 +pkgrel=21 pkgdesc="A small, efficient and portable regex library for Perl 5 compatible regular expressions" url="http://code.haskell.org/~dons/code/pcre-light" license=(custom:BSD3) diff --git a/community/nginx/PKGBUILD b/community/nginx/PKGBUILD index fca931cac..ec7ab49e5 100644 --- a/community/nginx/PKGBUILD +++ b/community/nginx/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 88886 2013-04-24 15:32:13Z bpiotrowski $ +# $Id: PKGBUILD 88940 2013-04-25 04:37:43Z bpiotrowski $ # Maintainer: Sergej Pupykin # Maintainer: Bartłomiej Piotrowski # Contributor: Miroslaw Szot @@ -8,7 +8,7 @@ _tmpdir=/var/lib/nginx pkgname=nginx pkgver=1.4.0 -pkgrel=1 +pkgrel=2 pkgdesc='Lightweight HTTP server and IMAP/POP3 proxy server' arch=('i686' 'x86_64') depends=('pcre' 'zlib' 'openssl' 'geoip') @@ -55,8 +55,10 @@ build() { --with-file-aio \ --with-http_dav_module \ --with-http_geoip_module \ + --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_realip_module \ + --with-http_spdy_module \ --with-http_ssl_module \ --with-http_stub_status_module \ --add-module=/usr/lib/passenger/ext/nginx \ diff --git a/extra/java7-openjdk/PKGBUILD b/extra/java7-openjdk/PKGBUILD index 661a3099e..b73b5eedc 100644 --- a/extra/java7-openjdk/PKGBUILD +++ b/extra/java7-openjdk/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 183538 2013-04-22 17:24:27Z andyrtr $ +# $Id: PKGBUILD 183615 2013-04-25 15:56:01Z andyrtr $ # Maintainer: Andreas Radke # Maintainer: Guillaume ALAUX # Contributor: Jan de Groot @@ -7,7 +7,7 @@ pkgname=('jre7-openjdk-headless' 'jre7-openjdk' 'jdk7-openjdk' 'openjdk7-src' 'openjdk7-doc') pkgbase=java7-openjdk _java_ver=7 -_updatever=u17 +_updatever=u21 _icedtea_ver=2.3.9 # check "${srcdir}/icedtea7"/Makefile.am diff --git a/extra/js/PKGBUILD b/extra/js/PKGBUILD index 7671edddf..98c2e71ed 100644 --- a/extra/js/PKGBUILD +++ b/extra/js/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 183424 2013-04-21 22:11:07Z heftig $ +# $Id: PKGBUILD 183636 2013-04-25 18:14:18Z ioni $ # Maintainer: Ionut Biru pkgname=js @@ -15,6 +15,7 @@ source=(http://ftp.mozilla.org/pub/mozilla.org/js/mozjs$pkgver.tar.gz) md5sums=('20b6f8f1140ef6e47daa3b16965c9202') build() { + unset CPPFLAGS cd mozjs$pkgver/js/src ./configure --prefix=/usr --with-system-nspr --with-system-ffi \ --enable-readline --enable-threadsafe diff --git a/extra/libdmapsharing/PKGBUILD b/extra/libdmapsharing/PKGBUILD index b3a23ab6c..3e5f2ecf8 100644 --- a/extra/libdmapsharing/PKGBUILD +++ b/extra/libdmapsharing/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 175982 2013-01-25 15:12:09Z ioni $ +# $Id: PKGBUILD 183628 2013-04-25 17:51:21Z ioni $ #Maintainer: Ionut Biru pkgname=libdmapsharing -pkgver=2.9.16 +pkgver=2.9.17 pkgrel=1 pkgdesc="A library that implements the DMAP family of protocols" arch=('i686' 'x86_64') @@ -11,7 +11,7 @@ license=('LGPL2.1') depends=('libsoup' 'avahi' 'gst-plugins-base-libs' 'gdk-pixbuf2') options=('!libtool') source=(http://www.flyn.org/projects/libdmapsharing/$pkgname-$pkgver.tar.gz) -md5sums=('5b2fbf46efc95a503ed95094c72b34d2') +md5sums=('089e70ed4fb3b92dcd956b80dbf3ffc9') build() { cd $pkgname-$pkgver diff --git a/extra/libdrm/PKGBUILD b/extra/libdrm/PKGBUILD index 60579b81f..f44b8e380 100644 --- a/extra/libdrm/PKGBUILD +++ b/extra/libdrm/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 183277 2013-04-20 14:43:33Z andyrtr $ +# $Id: PKGBUILD 183612 2013-04-25 11:57:24Z jgc $ # Maintainer: Jan de Groot pkgname=libdrm pkgver=2.4.44 -pkgrel=1 +pkgrel=2 pkgdesc="Userspace interface to kernel DRM services" arch=(i686 x86_64) license=('custom') @@ -25,11 +25,7 @@ build() { #libtoolize --force autoreconf --force --install - ./configure --prefix=/usr \ - --enable-udev \ - --enable-omap-experimental-api \ - --enable-exynos-experimental-api \ - --enable-freedreno-experimental-api + ./configure --prefix=/usr --enable-udev make } diff --git a/extra/libdrm/git_fixes.diff b/extra/libdrm/git_fixes.diff deleted file mode 100644 index fe0bb5649..000000000 --- a/extra/libdrm/git_fixes.diff +++ /dev/null @@ -1,49 +0,0 @@ -From 99105e765c31b598746b849e66e7a9106dcefa24 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Wed, 27 Mar 2013 13:06:43 +0000 -Subject: makefiles: Add missing headers. - -I even compile time tested this on a panda with make dist! - -Signed-off-by: Maarten Lankhorst ---- -diff --git a/exynos/Makefile.am b/exynos/Makefile.am -index 539aea0..0a2663a 100644 ---- a/exynos/Makefile.am -+++ b/exynos/Makefile.am -@@ -10,7 +10,11 @@ libdrm_exynos_ladir = $(libdir) - libdrm_exynos_la_LDFLAGS = -version-number 1:0:0 -no-undefined - libdrm_exynos_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ - --libdrm_exynos_la_SOURCES = exynos_drm.c exynos_fimg2d.c -+libdrm_exynos_la_SOURCES = \ -+ exynos_drm.c \ -+ exynos_fimg2d.c \ -+ fimg2d.h \ -+ fimg2d_reg.h - - libdrm_exynoscommonincludedir = ${includedir}/exynos - libdrm_exynoscommoninclude_HEADERS = exynos_drm.h -diff --git a/freedreno/Makefile.am b/freedreno/Makefile.am -index f46a780..ba9bd68 100644 ---- a/freedreno/Makefile.am -+++ b/freedreno/Makefile.am -@@ -10,7 +10,15 @@ libdrm_freedreno_ladir = $(libdir) - libdrm_freedreno_la_LDFLAGS = -version-number 1:0:0 -no-undefined - libdrm_freedreno_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ - --libdrm_freedreno_la_SOURCES = freedreno_device.c freedreno_pipe.c freedreno_ringbuffer.c freedreno_bo.c -+libdrm_freedreno_la_SOURCES = \ -+ freedreno_device.c \ -+ freedreno_pipe.c \ -+ freedreno_priv.h \ -+ freedreno_ringbuffer.c \ -+ freedreno_bo.c \ -+ kgsl_drm.h \ -+ list.h \ -+ msm_kgsl.h - - libdrm_freedrenocommonincludedir = ${includedir}/freedreno - libdrm_freedrenocommoninclude_HEADERS = freedreno_drmif.h freedreno_ringbuffer.h --- -cgit v0.9.0.2-2-gbebe diff --git a/extra/libgusb/PKGBUILD b/extra/libgusb/PKGBUILD index 0cf8084de..e7441b516 100644 --- a/extra/libgusb/PKGBUILD +++ b/extra/libgusb/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 170681 2012-11-09 12:30:03Z jgc $ +# $Id: PKGBUILD 183627 2013-04-25 17:50:55Z ioni $ # Maintainer: Ionut Biru pkgname=libgusb -pkgver=0.1.4 +pkgver=0.1.6 pkgrel=1 pkgdesc="GLib wrapper around libusb1" arch=('i686' 'x86_64') @@ -12,16 +12,16 @@ depends=('udev' 'libusbx') makedepends=('gobject-introspection') source=(http://people.freedesktop.org/~hughsient/releases/$pkgname-$pkgver.tar.xz) options=('!libtool') -sha256sums=('64294a649e54df2009545f47577f41438ec50c2fc571dd7b08cf32cb14de37b9') +sha256sums=('900103ff24a851ef8395b992236ced0aedb4c265ef2264f6ad8349300095198b') build() { - cd "$srcdir/$pkgname-$pkgver" + cd $pkgname-$pkgver ./configure --prefix=/usr --disable-static make } package() { - cd "$srcdir/$pkgname-$pkgver" + cd $pkgname-$pkgver make DESTDIR="$pkgdir" install } diff --git a/extra/libnice/PKGBUILD b/extra/libnice/PKGBUILD index 05890543b..ba09e3f27 100644 --- a/extra/libnice/PKGBUILD +++ b/extra/libnice/PKGBUILD @@ -3,7 +3,7 @@ # Contributor: William Díaz pkgname=libnice -pkgver=0.1.3 +pkgver=0.1.4 pkgrel=1 pkgdesc="An implementation of the IETF's draft ICE (for p2p UDP data streams)" arch=('i686' 'x86_64') @@ -14,15 +14,15 @@ makedepends=('gstreamer' 'gstreamer0.10') optdepends=('gstreamer' 'gstreamer0.10') options=('!libtool') source=(http://nice.freedesktop.org/releases/$pkgname-$pkgver.tar.gz) +md5sums=('315c457b092980a4a9a0bea9f0723cce') build() { - cd "$pkgname-$pkgver" + cd $pkgname-$pkgver ./configure --prefix=/usr --disable-static make } package() { - cd "$pkgname-$pkgver" + cd $pkgname-$pkgver make DESTDIR="$pkgdir" install } -md5sums=('1a0907605f852dcda32a3b3daf38d36c') diff --git a/extra/modemmanager/PKGBUILD b/extra/modemmanager/PKGBUILD index d47b9bff3..95c48d2c7 100644 --- a/extra/modemmanager/PKGBUILD +++ b/extra/modemmanager/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 183443 2013-04-21 22:11:41Z heftig $ +# $Id: PKGBUILD 183639 2013-04-25 18:36:08Z heftig $ # Maintainer: Ionut Biru # Contributor: Jan Alexander Steffens (heftig) pkgname=modemmanager _realname=ModemManager pkgver=0.7.990 -pkgrel=3 +pkgrel=4 pkgdesc="Mobile broadband modem management service" arch=(i686 x86_64) url="http://cgit.freedesktop.org/ModemManager/ModemManager/" @@ -16,7 +16,7 @@ optdepends=('usb_modeswitch: install if your modem shows up as a storage drive') options=('!libtool') install=modemmanager.install #source=(http://download.gnome.org/sources/$_realname/${pkgver::3}/$_realname-$pkgver.tar.xz) -source=("git://anongit.freedesktop.org/$_realname/$_realname#commit=95274bf") +source=("git://anongit.freedesktop.org/$_realname/$_realname#commit=135bec6") sha256sums=('SKIP') build() { diff --git a/extra/mysql/PKGBUILD b/extra/mysql/PKGBUILD deleted file mode 100644 index 9ea78cd32..000000000 --- a/extra/mysql/PKGBUILD +++ /dev/null @@ -1,137 +0,0 @@ -# $Id: PKGBUILD 180684 2013-03-25 19:15:35Z bpiotrowski $ -# Maintainer: Andrea Scarpino -# Contributor: Douglas Soares de Andrade - -pkgbase=mysql -pkgname=('libmysqlclient' 'mysql-clients' 'mysql') -pkgver=5.5.30 -pkgrel=7 -arch=('i686' 'x86_64') -license=('GPL') -url="https://www.mysql.com/products/community/" -makedepends=('cmake' 'openssl' 'zlib') -options=('!libtool') -source=(http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.5/${pkgbase}-${pkgver}.tar.gz{,.asc} - mysqld-post.sh - mysqld-tmpfile.conf - mysqld.service) -sha256sums=('909fe596e0044082a02d2757b742a33b8a3ff399b589603940494d3d3d975053' - '27d3bba7b7f54f9f77cddba81a3fe124aeef918cc09eb28860338e9a4359e6f7' - '368f9fd2454d80eb32abb8f29f703d1cf9553353fb9e1ae4529c4b851cb8c5dd' - '2af318c52ae0fe5428e8a9245d1b0fc3bc5ce153842d1563329ceb1edfa83ddd' - '50212165bdb09855b97b15a917464ba34f82edf30a0c43f9a0c93a27071df556') - -build() { - mkdir build - cd build - - cmake ../${pkgbase}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DSYSCONFDIR=/etc/mysql \ - -DMYSQL_DATADIR=/var/lib/mysql \ - -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \ - -DDEFAULT_CHARSET=utf8 \ - -DDEFAULT_COLLATION=utf8_general_ci \ - -DENABLED_LOCAL_INFILE=ON \ - -DINSTALL_INFODIR=share/mysql/docs \ - -DINSTALL_MANDIR=share/man \ - -DINSTALL_PLUGINDIR=lib/mysql/plugin \ - -DINSTALL_SCRIPTDIR=bin \ - -DINSTALL_INCLUDEDIR=include/mysql \ - -DINSTALL_DOCREADMEDIR=share/mysql \ - -DINSTALL_SUPPORTFILESDIR=share/mysql \ - -DINSTALL_MYSQLSHAREDIR=share/mysql \ - -DINSTALL_DOCDIR=share/mysql/docs \ - -DINSTALL_SHAREDIR=share/mysql \ - -DWITH_READLINE=ON \ - -DWITH_ZLIB=system \ - -DWITH_SSL=system \ - -DWITH_LIBWRAP=OFF \ - -DWITH_MYSQLD_LDFLAGS="${LDFLAGS}" \ - -DWITH_EXTRA_CHARSETS=complex \ - -DWITH_EMBEDDED_SERVER=ON \ - -DWITH_INNOBASE_STORAGE_ENGINE=1 \ - -DWITH_PARTITION_STORAGE_ENGINE=1 \ - -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ - -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ - -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ - -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \ - -DCMAKE_C_FLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \ - -DCMAKE_CXX_FLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti" - - make -} - -package_libmysqlclient(){ - pkgdesc="MySQL client libraries" - depends=('openssl') - conflicts=('libmariadbclient') - provides=("libmariadbclient=$pkgver") - - cd build - for dir in include libmysql libmysqld libservices; do - make -C ${dir} DESTDIR="${pkgdir}" install - done - - install -d "${pkgdir}"/usr/bin - install -m755 scripts/mysql_config "${pkgdir}"/usr/bin/ - install -d "${pkgdir}"/usr/share/man/man1 - for man in mysql_config mysql_client_test_embedded mysqltest_embedded; do - install -m644 "${srcdir}"/${pkgbase}-${pkgver}/man/$man.1 "${pkgdir}"/usr/share/man/man1/$man.1 - done -} - -package_mysql-clients(){ - pkgdesc="MySQL client tools" - depends=('libmysqlclient') - conflicts=('mariadb-clients') - provides=("mariadb-clients=$pkgver") - - cd build - make -C client DESTDIR="${pkgdir}" install - - # install man pages - install -d "${pkgdir}"/usr/share/man/man1 - for man in mysql mysqladmin mysqlcheck mysqldump mysqlimport mysqlshow mysqlslap; do - install -m644 "${srcdir}"/${pkgbase}-${pkgver}/man/$man.1 "${pkgdir}"/usr/share/man/man1/$man.1 - done - - # provided by mysql - rm "${pkgdir}"/usr/bin/{mysql_{plugin,upgrade},mysqlbinlog,mysqltest} -} - -package_mysql(){ - pkgdesc="A fast SQL database server" - backup=('etc/mysql/my.cnf') - install=mysql.install - depends=('mysql-clients' 'systemd-tools') - conflicts=('mariadb') - provides=("mariadb=$pkgver") - options=('emptydirs') - - cd build - make DESTDIR="${pkgdir}" install - - install -Dm644 "${pkgdir}"/usr/share/mysql/my-medium.cnf "${pkgdir}"/etc/mysql/my.cnf - install -Dm755 "${srcdir}"/mysqld-post.sh "${pkgdir}"/usr/bin/mysqld-post - install -Dm644 "${srcdir}"/mysqld-tmpfile.conf "${pkgdir}"/usr/lib/tmpfiles.d/mysqld.conf - install -d "${pkgdir}"/usr/lib/systemd/system - install -Dm644 "${srcdir}"/mysqld.service "${pkgdir}"/usr/lib/systemd/system/ - - # provided by libmysqlclient - rm "${pkgdir}"/usr/bin/{mysql_config,mysql_client_test_embedded,mysqltest_embedded} - rm "${pkgdir}"/usr/lib/libmysql* - rm -r "${pkgdir}"/usr/include/ - rm "${pkgdir}"/usr/share/man/man1/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}.1 - - # provided by mysql-clients - rm "${pkgdir}"/usr/bin/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap} - rm "${pkgdir}"/usr/share/man/man1/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}.1 - - # not needed - rm -r "${pkgdir}"/usr/{data,mysql-test,sql-bench} - rm "${pkgdir}"/usr/share/man/man1/mysql-test-run.pl.1 - - #install -dm700 "${pkgdir}"/var/lib/mysql -} diff --git a/extra/mysql/mysql.install b/extra/mysql/mysql.install deleted file mode 100644 index 907e98656..000000000 --- a/extra/mysql/mysql.install +++ /dev/null @@ -1,37 +0,0 @@ -if [[ $(command -v my_print_defaults >/dev/null 2>&1) ]]; then - datadir=$(my_print_defaults mysqld | sed -n "s/^--datadir=//p") -fi -[[ -z $datadir ]] && datadir=/var/lib/mysql - -post_install(){ - groupadd -g 89 mysql &>/dev/null - useradd -u 89 -g mysql -d $datadir -s /bin/false mysql &>/dev/null - - if [[ ! -e $datadir ]]; then - install -dm700 $datadir - usr/bin/mysql_install_db --user=mysql --basedir=/usr --datadir=$datadir - chown -R mysql:mysql var/lib/mysql &>/dev/null - fi - - usr/bin/systemd-tmpfiles --create mysqld.conf -} - -post_upgrade(){ - getent group mysql >/dev/null 2>&1 || groupadd -g 89 mysql &>/dev/null - getent passwd mysql >/dev/null 2>&1 || useradd -u 89 -g mysql -d $datadir -s /bin/false mysql &>/dev/null - - if [ "$(vercmp $2 5.5)" -lt 0 ]; then - echo " >> " - echo " >> Major version update. Consider restart the service, and then running mysql_upgrade after it." - echo " >> " - fi -} - -post_remove(){ - if getent passwd mysql >/dev/null 2>&1; then - userdel mysql - fi - if getent group mysql >/dev/null 2>&1; then - groupdel mysql - fi -} diff --git a/extra/mysql/mysqld-post.sh b/extra/mysql/mysqld-post.sh deleted file mode 100755 index c4ac18171..000000000 --- a/extra/mysql/mysqld-post.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -while true; do - response=$(/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1) && break - echo "$response" | grep -q "mysqld is alive" && break - echo "$response" | grep -q "Access denied for user" && break - sleep 1 -done diff --git a/extra/mysql/mysqld-tmpfile.conf b/extra/mysql/mysqld-tmpfile.conf deleted file mode 100644 index 6883dc798..000000000 --- a/extra/mysql/mysqld-tmpfile.conf +++ /dev/null @@ -1 +0,0 @@ -d /run/mysqld 0755 mysql mysql - diff --git a/extra/mysql/mysqld.service b/extra/mysql/mysqld.service deleted file mode 100644 index a6fc8cf88..000000000 --- a/extra/mysql/mysqld.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=MySQL database server -After=syslog.target - -[Service] -User=mysql -Group=mysql - -ExecStart=/usr/bin/mysqld --pid-file=/run/mysqld/mysqld.pid -ExecStartPost=/usr/bin/mysqld-post - -Restart=always -PrivateTmp=true - -[Install] -WantedBy=multi-user.target diff --git a/extra/telepathy-glib/PKGBUILD b/extra/telepathy-glib/PKGBUILD index 49b381193..51121e855 100644 --- a/extra/telepathy-glib/PKGBUILD +++ b/extra/telepathy-glib/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 170731 2012-11-10 15:25:09Z ibiru $ +# $Id: PKGBUILD 183617 2013-04-25 16:40:37Z ioni $ # Maintainer: Ionut Biru # Contributor: Kessia 'even' Pinheiro pkgname=telepathy-glib -pkgver=0.20.1 +pkgver=0.20.2 pkgrel=1 pkgdesc="GLib bindings for the Telepathy D-Bus protocol" arch=('i686' 'x86_64') @@ -14,7 +14,7 @@ options=('!libtool' '!emptydirs') depends=('dbus-glib') makedepends=('libxslt' 'vala' 'gobject-introspection') source=(http://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.gz) -md5sums=('780034ff7433f33e6577b02fd7a2cb0a') +md5sums=('bfc8a1b94c7a268f15d4d92b83460987') build() { cd $pkgname-$pkgver diff --git a/extra/telepathy-haze/PKGBUILD b/extra/telepathy-haze/PKGBUILD index beffbe5da..c7d5b09b9 100644 --- a/extra/telepathy-haze/PKGBUILD +++ b/extra/telepathy-haze/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 157068 2012-04-23 12:17:39Z ibiru $ +# $Id: PKGBUILD 183633 2013-04-25 18:08:02Z ioni $ # Maintainer: Ionut Biru # Contributor: Timm Preetz pkgname=telepathy-haze -pkgver=0.6.0 -pkgrel=2 +pkgver=0.7.0 +pkgrel=1 pkgdesc="A telepathy-backend to use libpurple (Pidgin) protocols." arch=('i686' 'x86_64') url="http://telepathy.freedesktop.org" @@ -14,7 +14,7 @@ replaces=('telepathy-butterfly') install=telepathy-haze.install groups=('telepathy') source=(http://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.gz) -md5sums=('622e0b2f7ff4050a29f907f2ef0f039c') +md5sums=('85ae58b06a3a94ccfab7080a834bc684') build() { cd "$pkgname-$pkgver" diff --git a/extra/telepathy-idle/PKGBUILD b/extra/telepathy-idle/PKGBUILD index 5df4e5930..a2b625131 100644 --- a/extra/telepathy-idle/PKGBUILD +++ b/extra/telepathy-idle/PKGBUILD @@ -1,21 +1,21 @@ -# $Id: PKGBUILD 171097 2012-11-16 17:07:10Z ibiru $ +# $Id: PKGBUILD 183634 2013-04-25 18:08:44Z ioni $ # Maintainer: Ionut Biru # Contributor: Bjorn Lindeijer # Contributor: Samuel Mendes pkgname=telepathy-idle -pkgver=0.1.14 +pkgver=0.1.15 pkgrel=1 pkgdesc="An IRC connection manager for Telepathy" arch=('i686' 'x86_64') url="http://telepathy.freedesktop.org" groups=('telepathy') license=('LGPL') -depends=('telepathy-glib' 'openssl') +depends=('telepathy-glib') makedepends=('libxslt' 'python2') install=telepathy-idle.install source=(http://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.gz) -md5sums=('c292c54aa08f61544ab53fda880d861c') +md5sums=('56f960ed1d9ed0c01e0b9f7eb68dbebe') build() { cd $pkgname-$pkgver diff --git a/libre/bumblebee-libre/PKGBUILD b/libre/bumblebee-libre/PKGBUILD index 8805ff9d1..d07cb1c64 100644 --- a/libre/bumblebee-libre/PKGBUILD +++ b/libre/bumblebee-libre/PKGBUILD @@ -3,8 +3,8 @@ _pkgname=bumblebee pkgname=bumblebee-libre -pkgver=3.1 -pkgrel=6.2 +pkgver=3.2 +pkgrel=1 pkgdesc="NVIDIA Optimus support for GNU/Linux through VirtualGL, without nonfree nvidia driver support" arch=('i686' 'x86_64') depends=('virtualgl' 'glib2' 'mesa-libgl') @@ -27,10 +27,10 @@ backup=('etc/bumblebee/bumblebee.conf' 'etc/bumblebee/xorg.conf.nouveau') source=("http://www.bumblebee-project.org/${_pkgname}-${pkgver}.tar.gz" 'libre.patch') -md5sums=('de515ef51b1e0714c2f1b2a95f83e77e' +md5sums=('690d0b3aea4ae1fc2a72fe2719ecfd74' 'f8b6044310039911236f53a625c611a6') -build() { +prepare() { cd "${srcdir}/${_pkgname}-${pkgver}" # Remove nonfree references to nonfree nvidia driver and unnecessaries files @@ -40,6 +40,9 @@ build() { rm -rv "scripts/bumblebee-bugreport.in" patch -Np1 -i "${srcdir}/libre.patch" +build() { + cd "${srcdir}/${_pkgname}-${pkgver}" + ./configure \ CONF_DRIVER=nouveau \ --prefix=/usr \ diff --git a/pcr/ruby-headers/PKGBUILD b/pcr/ruby-headers/PKGBUILD index 855c7ff38..074205e79 100644 --- a/pcr/ruby-headers/PKGBUILD +++ b/pcr/ruby-headers/PKGBUILD @@ -3,29 +3,24 @@ pkgname=ruby-headers _pkgname=ruby -pkgver=1.9.3_p385 -_pkgver=1.9.3-p385 +pkgver=2.0.0_p0 +_pkgver=2.0.0-p0 pkgrel=1 pkgdesc="A package of all Ruby headers needed by some gems like ruby-debug." arch=('any') url="http://www.ruby-lang.org/en/" license=('GPL2' 'custom:Ruby') depends=("ruby=$pkgver") -source=("http://ftp.ruby-lang.org/pub/ruby/1.9/$_pkgname-$_pkgver.tar.bz2") - -build() { - /bin/true -} +source=("http://ftp.ruby-lang.org/pub/ruby/2.0/$_pkgname-$_pkgver.tar.bz2") package() { cd "$srcdir/$_pkgname-$_pkgver" - # Just to make sure, since currently we have /usr/include/ruby-1.9.1 for ruby 1.9.2 - _hdrdir=`ruby -e "require 'rbconfig'; puts Config::CONFIG['rubyhdrdir']"` + _hdrdir=`ruby -e "require 'rbconfig'; puts RbConfig::CONFIG['rubyhdrdir']"` install -d "$pkgdir$_hdrdir/$_pkgname-$_pkgver" install -m644 *.{h,inc} "$pkgdir$_hdrdir/$_pkgname-$_pkgver" install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING" } -md5sums=('5ec9aff670f4912b0f6f0e11e855ef6c') +md5sums=('895c1c581f8d28e8b3bb02472b2ccf6a') diff --git a/pcr/ruby-mustache/PKGBUILD b/pcr/ruby-mustache/PKGBUILD new file mode 100644 index 000000000..ddb5215d3 --- /dev/null +++ b/pcr/ruby-mustache/PKGBUILD @@ -0,0 +1,31 @@ +# Maintainer: David Campbell +pkgname=ruby-mustache +pkgver=0.99.4 +pkgrel=3 +pkgdesc="A framework-agnostic way to render logic-free views." +arch=('any') +url="http://github.com/defunkt/mustache" +license=(MIT) +depends=('ruby>=2') +makedepends=('rubygems') +source=("http://gems.rubyforge.org/gems/mustache-${pkgver}.gem" + "https://raw.github.com/defunkt/mustache/master/LICENSE") +md5sums=('650194ec2c166feb087377647414b9dc' + 'fbbd010314b3f1554733123ecde55a52') +noextract=("mustache-${pkgver}.gem") + +build() { + cd $srcdir + local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')" + gem install \ + --no-user-install \ + --ignore-dependencies \ + -i "$pkgdir$_gemdir" mustache-$pkgver.gem \ + -n "$pkgdir/usr/bin" + + install -Dm644 $srcdir/LICENSE \ + $pkgdir/usr/share/licenses/$pkgname/LICENSE + +} + +# vim:set ts=2 sw=2 et: diff --git a/pcr/sigil/PKGBUILD b/pcr/sigil/PKGBUILD new file mode 100644 index 000000000..0d5802ac1 --- /dev/null +++ b/pcr/sigil/PKGBUILD @@ -0,0 +1,48 @@ +# $Id: PKGBUILD 59836 2011-11-30 22:56:23Z giovanni $ +# Maintainer: Giovanni Scafora +# Contributor: Larry Hajali +# Contributor: Jorge Araya Navarro + +pkgname=sigil +pkgver=0.7.2 +pkgrel=1 +pkgdesc="A WYSIWYG ebook editor" +arch=('i686' 'x86_64') +url="http://code.google.com/p/sigil/" +license=('GPL3') +depends=('qt5-base' 'qt5-svg' 'qt5-webkit' 'qt5-xmlpatterns' 'qt5-tools') +makedepends=('cmake') +provides=('sigil') +conflicts=('sigil') +install=sigil.install +source=("http://sigil.googlecode.com/files/Sigil-0.7.2-Code.zip" + "sigil.desktop") + +build() { + cd ${srcdir} + mkdir build + cd build + cmake -G "Unix Makefiles" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_C_FLAGS:STRING="${CFLAGS}" \ + -DCMAKE_CXX_FLAGS:STRING="${CXXFLAGS}" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SKIP_RPATH=ON .. + + make +} + +package() { + cd "${srcdir}"/build + make install DESTDIR="${pkgdir}" + + install -d -m 0755 "${pkgdir}"/usr/share/applications + install -m 0644 "${srcdir}"/sigil.desktop "${pkgdir}"/usr/share/applications + + for _pic in 16 32 48 128 256; do + install -D -m 0644 ../src/Sigil/Resource_Files/icon/app_icon_${_pic}.png \ + "${pkgdir}"/usr/share/icons/hicolor/${_pic}x${_pic}/apps/sigil.png + done +} +sha256sums=('8a6f5fd7c59fd8524ce0f48e7d13d13bad137053c9071fe2e1653ea55d5ed940' + '92a1014794dbf81fa997449338ded9a0e84593e3552020eb9269039b916bea36') diff --git a/pcr/sigil/sigil.desktop b/pcr/sigil/sigil.desktop new file mode 100755 index 000000000..cdb4ce1b2 --- /dev/null +++ b/pcr/sigil/sigil.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Application +Name=Sigil +Comment=WYSIWYG ebook editor +TryExec=sigil +Exec=sigil %F +Icon=sigil +Terminal=false +StartupNotify=false +Categories=Application;Office; +MimeType=application/epub+zip; diff --git a/pcr/sigil/sigil.install b/pcr/sigil/sigil.install new file mode 100644 index 000000000..ec506fa93 --- /dev/null +++ b/pcr/sigil/sigil.install @@ -0,0 +1,12 @@ +post_install() { + update-desktop-database -q + xdg-icon-resource forceupdate --theme hicolor &> /dev/null +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/pcr/transmission-remote-cli/PKGBUILD b/pcr/transmission-remote-cli/PKGBUILD new file mode 100644 index 000000000..5e3699bce --- /dev/null +++ b/pcr/transmission-remote-cli/PKGBUILD @@ -0,0 +1,29 @@ +# Maintainer: fauno +pkgname=transmission-remote-cli +pkgver=0.10.4 +pkgrel=1 +pkgdesc="Curses interface for the daemon of the BitTorrent client Transmission" +arch=('any') +url="https://github.com/fagga/transmission-remote-cli" +license=('GPL3') +depends=('python2') +optdepends=('transmission-daemon>=2.40: for local transmission management' + 'adns-python: Resolve IPs to host names' + 'python-geoip: Guess which country peers come from') +conflicts=('transmission-remote-cli-git' "transmission-remote-cli<=20111013") +replaces=('transmission-remote-cli-git') +source=(http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-${pkgrel}-any.src.tar.xz + python2.patch) + +build() { + cd "${srcdir}/${pkgname}" + msg "Starting make..." + + patch -Np1 -i ${srcdir}/python2.patch + + install -d ${pkgdir}/usr/bin/ + install -Dm755 transmission-remote-cli.py ${pkgdir}/usr/bin/transmission-remote-cli + +} +md5sums=('b85382bc2e24c5733f9c3833098da668' + '6273609fb3a7294328aeaa526b76411c') diff --git a/pcr/transmission-remote-cli/python2.patch b/pcr/transmission-remote-cli/python2.patch new file mode 100644 index 000000000..256b676f0 --- /dev/null +++ b/pcr/transmission-remote-cli/python2.patch @@ -0,0 +1,9 @@ +diff -Nur transmission-remote-cli/transmission-remote-cli.py transmission-remote-cli-python2//transmission-remote-cli.py +--- transmission-remote-cli/transmission-remote-cli.py 2010-10-19 10:33:49.544594708 -0300 ++++ transmission-remote-cli-python2//transmission-remote-cli.py 2010-10-19 10:42:51.278983745 -0300 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python2 + ######################################################################## + # This is transmission-remote-cli, whereas 'cli' stands for 'Curses # + # Luminous Interface', a client for the daemon of the BitTorrent # diff --git a/~fauno/ruby-mustache/PKGBUILD b/~fauno/ruby-mustache/PKGBUILD deleted file mode 100644 index 8c8d924c1..000000000 --- a/~fauno/ruby-mustache/PKGBUILD +++ /dev/null @@ -1,30 +0,0 @@ -# Maintainer: David Campbell -pkgname=ruby-mustache -pkgver=0.99.4 -pkgrel=2 -pkgdesc="A framework-agnostic way to render logic-free views." -arch=('any') -url="http://github.com/defunkt/mustache" -license=(MIT) -depends=('ruby') -makedepends=('rubygems') -source=("http://gems.rubyforge.org/gems/mustache-${pkgver}.gem" - "https://raw.github.com/defunkt/mustache/master/LICENSE") -md5sums=('650194ec2c166feb087377647414b9dc' - 'fbbd010314b3f1554733123ecde55a52') -noextract=("mustache-${pkgver}.gem") - -build() { - cd $srcdir - local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')" - gem install \ - --ignore-dependencies \ - -i "$pkgdir$_gemdir" mustache-$pkgver.gem \ - -n "$pkgdir/usr/bin" - - install -Dm644 $srcdir/LICENSE \ - $pkgdir/usr/share/licenses/$pkgname/LICENSE - -} - -# vim:set ts=2 sw=2 et: diff --git a/~fauno/transmission-remote-cli/PKGBUILD b/~fauno/transmission-remote-cli/PKGBUILD deleted file mode 100644 index 5e3699bce..000000000 --- a/~fauno/transmission-remote-cli/PKGBUILD +++ /dev/null @@ -1,29 +0,0 @@ -# Maintainer: fauno -pkgname=transmission-remote-cli -pkgver=0.10.4 -pkgrel=1 -pkgdesc="Curses interface for the daemon of the BitTorrent client Transmission" -arch=('any') -url="https://github.com/fagga/transmission-remote-cli" -license=('GPL3') -depends=('python2') -optdepends=('transmission-daemon>=2.40: for local transmission management' - 'adns-python: Resolve IPs to host names' - 'python-geoip: Guess which country peers come from') -conflicts=('transmission-remote-cli-git' "transmission-remote-cli<=20111013") -replaces=('transmission-remote-cli-git') -source=(http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-${pkgrel}-any.src.tar.xz - python2.patch) - -build() { - cd "${srcdir}/${pkgname}" - msg "Starting make..." - - patch -Np1 -i ${srcdir}/python2.patch - - install -d ${pkgdir}/usr/bin/ - install -Dm755 transmission-remote-cli.py ${pkgdir}/usr/bin/transmission-remote-cli - -} -md5sums=('b85382bc2e24c5733f9c3833098da668' - '6273609fb3a7294328aeaa526b76411c') diff --git a/~fauno/transmission-remote-cli/python2.patch b/~fauno/transmission-remote-cli/python2.patch deleted file mode 100644 index 256b676f0..000000000 --- a/~fauno/transmission-remote-cli/python2.patch +++ /dev/null @@ -1,9 +0,0 @@ -diff -Nur transmission-remote-cli/transmission-remote-cli.py transmission-remote-cli-python2//transmission-remote-cli.py ---- transmission-remote-cli/transmission-remote-cli.py 2010-10-19 10:33:49.544594708 -0300 -+++ transmission-remote-cli-python2//transmission-remote-cli.py 2010-10-19 10:42:51.278983745 -0300 -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python2 - ######################################################################## - # This is transmission-remote-cli, whereas 'cli' stands for 'Curses # - # Luminous Interface', a client for the daemon of the BitTorrent # -- cgit v1.2.3-54-g00ecf