summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
Diffstat (limited to 'extra')
-rw-r--r--extra/clutter-gtk/fix-gir.patch93
-rw-r--r--extra/ekiga/ekiga-3.2.7-libnotify-0.7.patch62
-rw-r--r--extra/empathy/empathy-2.32.2-libnotify-0.7.patch54
-rw-r--r--extra/epiphany/add-dbus-glib.patch20
-rw-r--r--extra/epiphany/epiphany-2.30.6-libnotify-0.7.patch38
-rw-r--r--extra/epiphany/fix-introspection.patch21
-rw-r--r--extra/evince/security_issues_in_dvi-backend.patch97
-rw-r--r--extra/evince/update_to_poppler_api.patch58
-rw-r--r--extra/evolution/evolution-2.32.1-libnotify-0.7.patch81
-rw-r--r--extra/gdm/0001-port-to-libpanel-applet-3.0.patch506
-rw-r--r--extra/gdm/04_fix_external_program_directories.patch48
-rw-r--r--extra/gdm/correctly-give-focus-to-user-chooser.patch46
-rw-r--r--extra/gnome-applets/add-dbus-glib.patch28
-rw-r--r--extra/gnome-applets/gnome-applets-2.32.1.1-libnotify-0.7.patch53
-rw-r--r--extra/gnome-bluetooth/gnome-bluetooth-2.32.0-libnotify-0.7.patch27
-rw-r--r--extra/gnome-games/03_missing_icons.patch38
-rw-r--r--extra/gnome-games/scores.pngbin462 -> 0 bytes
-rw-r--r--extra/gnome-panel/evolution-appointments.patch13
-rw-r--r--extra/gnome-panel/gnome-panel-bonobo.install11
-rw-r--r--extra/gnome-power-manager/gnome-power-manager-2.32.0-libnotify-0.7.patch30
-rw-r--r--extra/gnome-screensaver/gnome-screensaver-2.30.2-libnotify-0.7.patch26
-rw-r--r--extra/gnome-settings-daemon/add_notify_init.patch14
-rw-r--r--extra/gnome-settings-daemon/gnome-settings-daemon-2.32.1-libnotify-0.7.patch76
-rw-r--r--extra/gnome-settings-daemon/gstreamer-volume-2.29.91.patch809
-rw-r--r--extra/gnome-settings-daemon/gstreamer-volume-2.30.patch861
-rw-r--r--extra/gnome-settings-daemon/gstreamer-volume.patch808
-rw-r--r--extra/gnome-user-share/gnome-user-share-2.30.1-libnotify-0.7.patch31
-rw-r--r--extra/gnome-vfs/hal-show-volume-names.patch46
-rw-r--r--extra/gtk2/old-icon-symlinks.patch269
-rw-r--r--extra/libnotify/libnotify-0.7.1-gtk3-tests.patch110
-rw-r--r--extra/libwebkit/introspection.patch22
-rw-r--r--extra/liferea/ChangeLog143
-rw-r--r--extra/mail-notification/evolution-gtkhtml.patch11
-rw-r--r--extra/mail-notification/evolution.patch102
-rw-r--r--extra/metacity/metacity-restartstyle.patch139
-rw-r--r--extra/nautilus/nautilus-condrestart.patch16
-rw-r--r--extra/network-manager-applet/nm-applet-0.8.2-libnotify-0.7.patch36
-rw-r--r--extra/notification-daemon/notification-daemon-0.4.0-libnotify-0.7.patch29
-rw-r--r--extra/ntfs-3g/25-ntfs-config-write-policy.fdi42
-rw-r--r--extra/ntfs-3g/PKGBUILD32
-rw-r--r--extra/ntfsprogs/PKGBUILD24
-rw-r--r--extra/octave/octave-3.2.0_as_needed.patch11
-rw-r--r--extra/octave/octave-3.2.0_parallel_make.patch12
-rw-r--r--extra/rhino/PKGBUILD18
-rw-r--r--extra/seahorse/seahorse-2.32.0-libnotify-0.7.patch26
-rwxr-xr-xextra/slim/slim36
-rw-r--r--extra/slim/slim.install7
-rw-r--r--extra/slim/slim.logrotate9
-rw-r--r--extra/slim/slim.pam10
-rw-r--r--extra/xarchiver/ChangeLog9
-rw-r--r--extra/zenity/zenity-2.32.1-libnotify-0.7.patch27
-rw-r--r--extra/zip/ChangeLog13
52 files changed, 0 insertions, 5148 deletions
diff --git a/extra/clutter-gtk/fix-gir.patch b/extra/clutter-gtk/fix-gir.patch
deleted file mode 100644
index 54935aea2..000000000
--- a/extra/clutter-gtk/fix-gir.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 4de105a2bbd201c8e60f3e8777794a4cd532afdc Mon Sep 17 00:00:00 2001
-From: Emmanuele Bassi <ebassi@linux.intel.com>
-Date: Tue, 28 Sep 2010 13:52:25 +0000
-Subject: build: Add common CFLAGS to the introspection scanner
-
----
-diff --git a/clutter-gtk/Makefile.am b/clutter-gtk/Makefile.am
-index 6e267b4..cec5cce 100644
---- a/clutter-gtk/Makefile.am
-+++ b/clutter-gtk/Makefile.am
-@@ -15,6 +15,8 @@ AM_CPPFLAGS = \
- -DCLUTTER_DISABLE_DEPRECATED \
- $(CLUTTER_GTK_DEBUG_CFLAGS)
-
-+common_cflags = $(CLUTTER_CFLAGS) $(GTK_CFLAGS)
-+
- # please, keep these lists sorted alphabetically
- sources_c = \
- $(srcdir)/gtk-clutter-embed.c \
-@@ -36,7 +38,7 @@ lib_LTLIBRARIES = libclutter-gtk-@CLUTTER_GTK_API_VERSION@.la
- libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_SOURCES = $(sources_c)
- libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_LIBADD = $(CLUTTER_LIBS) $(GTK_LIBS)
- libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_LDFLAGS = $(CLUTTER_LT_LDFLAGS)
--libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_CFLAGS = $(MAINTAINER_CFLAGS) $(GTK_CFLAGS) $(CLUTTER_CFLAGS)
-+libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_CFLAGS = $(common_cflags) $(MAINTAINER_CFLAGS)
-
- cluttergtkheadersdir = $(includedir)/clutter-1.0/clutter-gtk
- cluttergtkheaders_HEADERS = $(sources_h) $(srcdir)/clutter-gtk.h
-@@ -48,7 +50,7 @@ GtkClutter-@CLUTTER_GTK_API_VERSION@.gir: $(INTROSPECTION_SCANNER) Makefile libc
- $(AM_V_GEN)$(INTROSPECTION_SCANNER) -v \
- --namespace GtkClutter --nsversion=@CLUTTER_GTK_API_VERSION@ \
- --strip-prefix=GtkClutter \
-- $(INCLUDES) $(AM_CPPFLAGS) \
-+ $(INCLUDES) $(AM_CPPFLAGS) $(common_cflags) \
- --add-include-path=$(srcdir) --add-include=path=. \
- --include=Clutter-1.0 \
- --include=GdkPixbuf-2.0 \
---
-cgit v0.8.3.1-30-gff3a
-From 0d77c7c965dcebcec0dae6b6244c3a057b398b59 Mon Sep 17 00:00:00 2001
-From: Emmanuele Bassi <ebassi@linux.intel.com>
-Date: Tue, 28 Sep 2010 13:58:17 +0000
-Subject: Add introspection annotations for gtk_clutter_init*
-
----
-diff --git a/clutter-gtk/gtk-clutter-util.c b/clutter-gtk/gtk-clutter-util.c
-index 8cf4116..50bca6b 100644
---- a/clutter-gtk/gtk-clutter-util.c
-+++ b/clutter-gtk/gtk-clutter-util.c
-@@ -603,8 +603,9 @@ gtk_clutter_texture_set_from_icon_name (ClutterTexture *texture,
-
- /**
- * gtk_clutter_init:
-- * @argc: pointer to the arguments count, or %NULL
-- * @argv: pointer to the arguments vector, or %NULL
-+ * @argc: (inout): pointer to the arguments count, or %NULL
-+ * @argv: (array length=argc) (inout) (allow-none): pointer to the
-+ * arguments vector, or %NULL
- *
- * This function should be called instead of clutter_init() and
- * gtk_init().
-@@ -633,17 +634,18 @@ gtk_clutter_init (int *argc,
-
- /**
- * gtk_clutter_init_with_args:
-- * @argc: a pointer to the number of command line arguments.
-- * @argv: a pointer to the array of command line arguments.
-- * @parameter_string: a string which is displayed in
-- * the first line of <option>--help</option> output, after
-- * <literal><replaceable>programname</replaceable> [OPTION...]</literal>
-- * @entries: a %NULL-terminated array of #GOptionEntry<!-- -->s
-- * describing the options of your program
-- * @translation_domain: a translation domain to use for translating
-- * the <option>--help</option> output for the options in @entries
-- * with gettext(), or %NULL
-- * @error: a return location for errors
-+ * @argc: (inout): a pointer to the number of command line arguments.
-+ * @argv: (array length=argc) (inout) (allow-none): a pointer to the array
-+ * of command line arguments.
-+ * @parameter_string: (allow-none): a string which is displayed in
-+ * the first line of <option>--help</option> output, after
-+ * <literal><replaceable>programname</replaceable> [OPTION...]</literal>
-+ * @entries: (allow-none): a %NULL-terminated array of #GOptionEntry<!-- -->s
-+ * describing the options of your program, or %NULL
-+ * @translation_domain: (allow-none): a translation domain to use for
-+ * translating the <option>--help</option> output for the options
-+ * in @entries with gettext(), or %NULL
-+ * @error: (allow-none): a return location for errors, or %NULL
- *
- * This function should be called instead of clutter_init() and
- * gtk_init_with_args().
---
-cgit v0.8.3.1-30-gff3a
diff --git a/extra/ekiga/ekiga-3.2.7-libnotify-0.7.patch b/extra/ekiga/ekiga-3.2.7-libnotify-0.7.patch
deleted file mode 100644
index c09fbb0f9..000000000
--- a/extra/ekiga/ekiga-3.2.7-libnotify-0.7.patch
+++ /dev/null
@@ -1,62 +0,0 @@
---- lib/engine/components/libnotify/libnotify-main.cpp
-+++ lib/engine/components/libnotify/libnotify-main.cpp
-@@ -40,6 +40,10 @@
-
- #include <libnotify/notify.h>
-
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
-+
- #include "services.h"
- #include "notification-core.h"
-
-@@ -158,7 +162,12 @@
-
- notif = notify_notification_new (notification->get_title ().c_str (),
- notification->get_body ().c_str (),
-- urgency, NULL);
-+ urgency
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , NULL);
-+#endif
-
- g_signal_connect (notif, "closed",
- G_CALLBACK (on_notif_closed), notification.get ());
---- src/gui/main.cpp
-+++ src/gui/main.cpp
-@@ -84,6 +84,9 @@
-
- #ifdef HAVE_NOTIFY
- #include <libnotify/notify.h>
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
- #endif
-
- #if defined(P_FREEBSD) || defined (P_MACOSX)
-@@ -2820,12 +2823,21 @@
-
- body = g_strdup_printf ("%s\n%s\n%s", uri, app, account);
-
-- notify = notify_notification_new (title, body, GM_ICON_LOGO, NULL);
-+ notify = notify_notification_new (title, body, GM_ICON_LOGO
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , NULL);
-+#endif
- notify_notification_add_action (notify, "accept", _("Accept"), notify_action_cb, mw, NULL);
- notify_notification_add_action (notify, "reject", _("Reject"), notify_action_cb, mw, NULL);
- notify_notification_set_timeout (notify, NOTIFY_EXPIRES_NEVER);
- notify_notification_set_urgency (notify, NOTIFY_URGENCY_CRITICAL);
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ // notify_notification_attach_to_status_icon was removed
-+#else
- notify_notification_attach_to_status_icon (notify, statusicon);
-+#endif
- if (!notify_notification_show (notify, NULL)) {
- ekiga_main_window_incoming_call_dialog_show (mw, call);
- }
diff --git a/extra/empathy/empathy-2.32.2-libnotify-0.7.patch b/extra/empathy/empathy-2.32.2-libnotify-0.7.patch
deleted file mode 100644
index b430ff269..000000000
--- a/extra/empathy/empathy-2.32.2-libnotify-0.7.patch
+++ /dev/null
@@ -1,54 +0,0 @@
---- src/empathy-chat-window.c
-+++ src/empathy-chat-window.c
-@@ -35,6 +35,11 @@
- #include <gdk/gdkx.h>
- #include <glib/gi18n.h>
- #include <libnotify/notification.h>
-+#include <libnotify/notify.h>
-+
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
-
- #include <telepathy-glib/telepathy-glib.h>
-
-@@ -1300,7 +1305,12 @@
- to an existing notification with the same title.
- In this way the previous message will not be lost: the new
- message will appear below it, in the same notification */
-- notification = notify_notification_new (header, escaped, NULL, NULL);
-+ notification = notify_notification_new (header, escaped, NULL
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , NULL);
-+#endif
-
- if (priv->notification == NULL) {
- priv->notification = notification;
---- src/empathy-status-icon.c
-+++ src/empathy-status-icon.c
-@@ -32,6 +32,10 @@
- #include <libnotify/notification.h>
- #include <libnotify/notify.h>
-
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
-+
- #include <telepathy-glib/account-manager.h>
- #include <telepathy-glib/util.h>
-
-@@ -206,8 +210,12 @@
- to an existing notification with the same title.
- In this way the previous message will not be lost: the new
- message will appear below it, in the same notification */
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ /* notify_notification_new_with_status_icon was removed */
-+#else
- notification = notify_notification_new_with_status_icon
- (priv->event->header, message_esc, NULL, priv->icon);
-+#endif
-
- if (priv->notification == NULL) {
- priv->notification = notification;
diff --git a/extra/epiphany/add-dbus-glib.patch b/extra/epiphany/add-dbus-glib.patch
deleted file mode 100644
index c50be67a2..000000000
--- a/extra/epiphany/add-dbus-glib.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-From 174a51819570a975cc61e642f7f26cb4bc2f9c57 Mon Sep 17 00:00:00 2001
-From: Diego Escalante Urrelo <descalante@igalia.com>
-Date: Mon, 01 Nov 2010 05:56:51 +0000
-Subject: tests: DBUS_LIBS is needed for libephymain.la
-
----
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index bd2c378..b973214 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -23,6 +23,7 @@ LDADD = \
- $(top_builddir)/lib/widgets/libephywidgets.la \
- $(top_builddir)/lib/libephymisc.la \
- $(top_builddir)/lib/egg/libegg.la \
-+ $(DBUS_LIBS) \
- $(DEPENDENCIES_LIBS)
-
- if ENABLE_NSS
---
-cgit v0.8.3.4
diff --git a/extra/epiphany/epiphany-2.30.6-libnotify-0.7.patch b/extra/epiphany/epiphany-2.30.6-libnotify-0.7.patch
deleted file mode 100644
index a0c5f8ee1..000000000
--- a/extra/epiphany/epiphany-2.30.6-libnotify-0.7.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- embed/downloader-view.c
-+++ embed/downloader-view.c
-@@ -36,6 +36,9 @@
-
- #ifdef HAVE_LIBNOTIFY
- #include <libnotify/notify.h>
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
- #endif
-
- enum
-@@ -337,7 +340,12 @@
- g_object_ref (dv);
-
- notification = notify_notification_new (title, msg,
-- GTK_STOCK_INFO, NULL);
-+ GTK_STOCK_INFO
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , NULL);
-+#endif
-
- g_signal_connect_after (notification, "closed",
- G_CALLBACK (notification_closed_cb), dv);
-@@ -346,7 +354,11 @@
- notify_notification_set_timeout (notification, NOTIFY_EXPIRES_DEFAULT);
- notify_notification_set_urgency (notification, NOTIFY_URGENCY_LOW);
-
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ /* notify_notification_attach_to_status_icon was removed */
-+#else
- notify_notification_attach_to_status_icon (notification, status_icon);
-+#endif
-
- /* There are some visual glitches when the notification is shown and
- * the GtkStatusIcon is still not visible. To avoid that, we delay the
diff --git a/extra/epiphany/fix-introspection.patch b/extra/epiphany/fix-introspection.patch
deleted file mode 100644
index 4d8dca923..000000000
--- a/extra/epiphany/fix-introspection.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 78b9eac0fca36e27c83c7678b18962ba286f041b Mon Sep 17 00:00:00 2001
-From: Vincent Untz <vuntz@gnome.org>
-Date: Fri, 01 Oct 2010 16:36:23 +0000
-Subject: introspection: Fix build by telling g-ir-scanner what the prefix is
-
-https://bugzilla.gnome.org/show_bug.cgi?id=631119
----
-diff --git a/src/Makefile.am b/src/Makefile.am
-index e9d3715..acbf8ff 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -350,6 +350,7 @@ Epiphany-$(EPIPHANY_API_VERSION).gir: $(INTROSPECTION_SCANNER) $(EPHY_GIR_H_FILE
- --include=WebKit-1.0 \
- --program=./epiphany \
- --output $@ \
-+ --strip-prefix=Ephy \
- --pkg epiphany-$(EPIPHANY_API_VERSION) \
- -DEPIPHANY_COMPILATION \
- -I$(top_srcdir)/embed \
---
-cgit v0.8.3.1
diff --git a/extra/evince/security_issues_in_dvi-backend.patch b/extra/evince/security_issues_in_dvi-backend.patch
deleted file mode 100644
index 691ee4190..000000000
--- a/extra/evince/security_issues_in_dvi-backend.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 8e473c9796b9a61b811213e7892fd36fd570303a Mon Sep 17 00:00:00 2001
-From: José Aliste <jaliste@src.gnome.org>
-Date: Tue, 07 Dec 2010 18:56:47 +0000
-Subject: backends: Fix several security issues in the dvi-backend.
-
-See CVE-2010-2640, CVE-2010-2641, CVE-2010-2642 and CVE-2010-2643.
----
-diff --git a/backend/dvi/mdvi-lib/afmparse.c b/backend/dvi/mdvi-lib/afmparse.c
-index 164366b..361e23d 100644
---- a/backend/dvi/mdvi-lib/afmparse.c
-+++ b/backend/dvi/mdvi-lib/afmparse.c
-@@ -160,7 +160,7 @@ static char *token(FILE *stream)
-
- idx = 0;
- while (ch != EOF && ch != ' ' && ch != lineterm
-- && ch != '\t' && ch != ':' && ch != ';')
-+ && ch != '\t' && ch != ':' && ch != ';' && idx < MAX_NAME)
- {
- ident[idx++] = ch;
- ch = fgetc(stream);
-diff --git a/backend/dvi/mdvi-lib/dviread.c b/backend/dvi/mdvi-lib/dviread.c
-index 97b7b84..ac98068 100644
---- a/backend/dvi/mdvi-lib/dviread.c
-+++ b/backend/dvi/mdvi-lib/dviread.c
-@@ -1537,6 +1537,10 @@ int special(DviContext *dvi, int opcode)
- Int32 arg;
-
- arg = dugetn(dvi, opcode - DVI_XXX1 + 1);
-+ if (arg <= 0) {
-+ dvierr(dvi, _("malformed special length\n"));
-+ return -1;
-+ }
- s = mdvi_malloc(arg + 1);
- dread(dvi, s, arg);
- s[arg] = 0;
-diff --git a/backend/dvi/mdvi-lib/pk.c b/backend/dvi/mdvi-lib/pk.c
-index a579186..08377e6 100644
---- a/backend/dvi/mdvi-lib/pk.c
-+++ b/backend/dvi/mdvi-lib/pk.c
-@@ -469,6 +469,15 @@ static int pk_load_font(DviParams *unused, DviFont *font)
- }
- if(feof(p))
- break;
-+
-+ /* Although the PK format support bigger char codes,
-+ * XeTeX and other extended TeX engines support charcodes up to
-+ * 65536, while normal TeX engine supports only charcode up to 255.*/
-+ if (cc < 0 || cc > 65536) {
-+ mdvi_error (_("%s: unexpected charcode (%d)\n"),
-+ font->fontname,cc);
-+ goto error;
-+ }
- if(cc < loc)
- loc = cc;
- if(cc > hic)
-@@ -512,7 +521,7 @@ static int pk_load_font(DviParams *unused, DviFont *font)
- }
-
- /* resize font char data */
-- if(loc > 0 || hic < maxch-1) {
-+ if(loc > 0 && hic < maxch-1) {
- memmove(font->chars, font->chars + loc,
- (hic - loc + 1) * sizeof(DviFontChar));
- font->chars = xresize(font->chars,
-diff --git a/backend/dvi/mdvi-lib/tfmfile.c b/backend/dvi/mdvi-lib/tfmfile.c
-index 73ebf26..8c2a30b 100644
---- a/backend/dvi/mdvi-lib/tfmfile.c
-+++ b/backend/dvi/mdvi-lib/tfmfile.c
-@@ -172,7 +172,8 @@ int tfm_load_file(const char *filename, TFMInfo *info)
- /* We read the entire TFM file into core */
- if(fstat(fileno(in), &st) < 0)
- return -1;
-- if(st.st_size == 0)
-+ /* according to the spec, TFM files are smaller than 16K */
-+ if(st.st_size == 0 || st.st_size >= 16384)
- goto bad_tfm;
-
- /* allocate a word-aligned buffer to hold the file */
-diff --git a/backend/dvi/mdvi-lib/vf.c b/backend/dvi/mdvi-lib/vf.c
-index fb49847..a5ae3bb 100644
---- a/backend/dvi/mdvi-lib/vf.c
-+++ b/backend/dvi/mdvi-lib/vf.c
-@@ -165,6 +165,12 @@ static int vf_load_font(DviParams *params, DviFont *font)
- cc = fuget1(p);
- tfm = fuget3(p);
- }
-+ if (cc < 0 || cc > 65536) {
-+ /* TeX engines do not support char codes bigger than 65535 */
-+ mdvi_error(_("(vf) %s: unexpected character %d\n"),
-+ font->fontname, cc);
-+ goto error;
-+ }
- if(loc < 0 || cc < loc)
- loc = cc;
- if(hic < 0 || cc > hic)
---
-cgit v0.8.3.1
diff --git a/extra/evince/update_to_poppler_api.patch b/extra/evince/update_to_poppler_api.patch
deleted file mode 100644
index 29bcad6b9..000000000
--- a/extra/evince/update_to_poppler_api.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From f77e6cf4fd7fef49ac91d8c62b6a9a993529adb8 Mon Sep 17 00:00:00 2001
-From: Carlos Garcia Campos <carlosgc@gnome.org>
-Date: Fri, 17 Sep 2010 11:21:16 +0000
-Subject: [pdf] Update to poppler api changes
-
-Linearized PopplerDocument property is now boolean rather than string.
----
-diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc
-index aa080e6..ced3ef7 100644
---- a/backend/pdf/ev-poppler.cc
-+++ b/backend/pdf/ev-poppler.cc
-@@ -722,6 +722,9 @@ pdf_document_get_info (EvDocument *document)
- PopplerPermissions permissions;
- EvPage *page;
- char *metadata;
-+#ifdef HAVE_POPPLER_DOCUMENT_IS_LINEARIZED
-+ gboolean linearized;
-+#endif
-
- info = g_new0 (EvDocumentInfo, 1);
-
-@@ -758,7 +761,11 @@ pdf_document_get_info (EvDocument *document)
- "producer", &(info->producer),
- "creation-date", &(info->creation_date),
- "mod-date", &(info->modified_date),
-+#ifdef HAVE_POPPLER_DOCUMENT_IS_LINEARIZED
-+ "linearized", &linearized,
-+#else
- "linearized", &(info->linearized),
-+#endif
- "metadata", &metadata,
- NULL);
-
-@@ -864,6 +871,10 @@ pdf_document_get_info (EvDocument *document)
- info->security = g_strdup (_("No"));
- }
-
-+#ifdef HAVE_POPPLER_DOCUMENT_IS_LINEARIZED
-+ info->linearized = linearized ? g_strdup (_("Yes")) : g_strdup (_("No"));
-+#endif
-+
- return info;
- }
-
-diff --git a/configure.ac b/configure.ac
-index 0faa16e..9619349 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -512,6 +512,7 @@ if test "x$enable_pdf" = "xyes"; then
- AC_CHECK_FUNCS(poppler_page_get_text_layout)
- AC_CHECK_FUNCS(poppler_page_get_selected_text)
- AC_CHECK_FUNCS(poppler_page_add_annot)
-+ AC_CHECK_FUNCS(poppler_document_is_linearized)
- LIBS=$evince_save_LIBS
- PKG_CHECK_MODULES(CAIRO_PDF, cairo-pdf, enable_cairo_pdf=yes, enable_cairo_pdf=no)
- if test x$enable_cairo_pdf = xyes; then
---
-cgit v0.8.3.1
diff --git a/extra/evolution/evolution-2.32.1-libnotify-0.7.patch b/extra/evolution/evolution-2.32.1-libnotify-0.7.patch
deleted file mode 100644
index 7e2474b47..000000000
--- a/extra/evolution/evolution-2.32.1-libnotify-0.7.patch
+++ /dev/null
@@ -1,81 +0,0 @@
---- calendar/gui/alarm-notify/alarm-queue.c
-+++ calendar/gui/alarm-notify/alarm-queue.c
-@@ -40,6 +40,9 @@
-
- #ifdef HAVE_LIBNOTIFY
- #include <libnotify/notify.h>
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
- #endif
-
- #include "alarm.h"
-@@ -1606,7 +1609,12 @@
- body = g_strdup_printf ("%s %s", start_str, time_str);
- }
-
-- n = notify_notification_new (summary, body, "stock_appointment-reminder", NULL);
-+ n = notify_notification_new (summary, body, "stock_appointment-reminder"
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , NULL);
-+#endif
- if (!notify_notification_show(n, NULL))
- g_warning ("Could not send notification to daemon\n");
-
---- plugins/mail-notification/mail-notification.c
-+++ plugins/mail-notification/mail-notification.c
-@@ -47,6 +47,9 @@
-
- #ifdef HAVE_LIBNOTIFY
- #include <libnotify/notify.h>
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
- #endif
-
- #define GCONF_KEY_ROOT "/apps/evolution/eplugin/mail-notification/"
-@@ -564,9 +567,14 @@
-
- notify = notify_notification_new (
- _("New email"), safetext,
-- "mail-unread", NULL);
-+ "mail-unread"
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , NULL);
- notify_notification_attach_to_status_icon (
- notify, status_icon);
-+#endif
-
- /* Check if actions are supported */
- if (can_support_actions ()) {
---- plugins/publish-calendar/publish-calendar.c
-+++ plugins/publish-calendar/publish-calendar.c
-@@ -46,6 +46,9 @@
-
- #ifdef HAVE_LIBNOTIFY
- #include <libnotify/notify.h>
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
- #endif
-
- static GtkListStore *store = NULL;
-@@ -150,8 +153,13 @@
- return;
- }
-
-- notify = notify_notification_new (_("Calendar Publishing"), actual_msg->str, stock_name, NULL);
-+ notify = notify_notification_new (_("Calendar Publishing"), actual_msg->str, stock_name
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , NULL);
- notify_notification_attach_to_status_icon (notify, status_icon);
-+#endif
- notify_notification_set_urgency (notify, NOTIFY_URGENCY_NORMAL);
- notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT);
- g_timeout_add (500, show_notify_cb, NULL);
diff --git a/extra/gdm/0001-port-to-libpanel-applet-3.0.patch b/extra/gdm/0001-port-to-libpanel-applet-3.0.patch
deleted file mode 100644
index 91ada7835..000000000
--- a/extra/gdm/0001-port-to-libpanel-applet-3.0.patch
+++ /dev/null
@@ -1,506 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index ed07dce..bf98669 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -45,7 +45,7 @@ GTK_REQUIRED_VERSION=2.20.0
- PANGO_REQUIRED_VERSION=1.3.0
- SCROLLKEEPER_REQUIRED_VERSION=0.1.4
- GCONF_REQUIRED_VERSION=2.31.3
--GNOME_PANEL_REQUIRED_VERSION=2.0.0
-+GNOME_PANEL_REQUIRED_VERSION=2.31.90
- LIBXKLAVIER_REQUIRED_VERSION=4.0
- LIBCANBERRA_GTK_REQUIRED_VERSION=0.4
- #FONTCONFIG_REQUIRED_VERSION=2.6.0
-@@ -152,7 +152,7 @@ AC_SUBST(SIMPLE_CHOOSER_LIBS)
- PKG_CHECK_MODULES(APPLET,
- dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
- gtk+-2.0 >= $GTK_REQUIRED_VERSION
-- libpanelapplet-2.0 >= $GNOME_PANEL_REQUIRED_VERSION)
-+ libpanelapplet-3.0 >= $GNOME_PANEL_REQUIRED_VERSION)
- AC_SUBST(APPLET_CFLAGS)
- AC_SUBST(APPLET_LIBS)
-
-diff --git a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in b/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in
-deleted file mode 100644
-index a9b775f..0000000
---- a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in
-+++ /dev/null
-@@ -1,38 +0,0 @@
--<oaf_info>
-- <oaf_server iid="OAFIID:GNOME_FastUserSwitchApplet_Factory" type="exe"
-- location="@LIBEXECDIR@/gdm-user-switch-applet">
--
-- <oaf_attribute name="repo_ids" type="stringv">
-- <item value="IDL:Bonobo/GenericFactory:1.0"/>
-- <item value="IDL:Bonobo/Unknown:1.0"/>
-- </oaf_attribute>
-- <oaf_attribute name="name" type="string" _value="User Switcher Applet Factory"/>
-- <oaf_attribute name="description" type="string" _value="User Switcher Applet Factory"/>
-- <oaf_attribute name="bonobo:environment" type="stringv">
-- <item value="DBUS_SESSION_BUS_ADDRESS"/>
-- <oaf_attribute name="bugzilla:bugzilla" type="string" value="GNOME"/>
-- <oaf_attribute name="bugzilla:product" type="string" value="gdm"/>
-- <oaf_attribute name="bugzilla:component" type="string" value="general"/>
-- <oaf_attribute name="bugzilla:version" type="string" value="@VERSION@"/>
-- <oaf_attribute name="bugzilla:other_binaries" type="string" value="gdm-user-switch-applet"/>
-- </oaf_attribute>
-- </oaf_server>
--
-- <oaf_server iid="OAFIID:GNOME_FastUserSwitchApplet" type="factory"
-- location="OAFIID:GNOME_FastUserSwitchApplet_Factory">
--
-- <oaf_attribute name="repo_ids" type="stringv">
-- <item value="IDL:GNOME/Vertigo/PanelAppletShell:1.0"/>
-- <item value="IDL:Bonobo/Control:1.0"/>
-- <item value="IDL:Bonobo/Unknown:1.0"/>
-- </oaf_attribute>
-- <oaf_attribute name="name" type="string" _value="User Switcher"/>
-- <oaf_attribute name="description" type="string" _value="A menu to quickly switch between users"/>
-- <oaf_attribute name="panel:icon" type="string" value="stock_people"/>
-- <oaf_attribute name="bugzilla:bugzilla" type="string" value="GNOME"/>
-- <oaf_attribute name="bugzilla:product" type="string" value="gdm"/>
-- <oaf_attribute name="bugzilla:component" type="string" value="general"/>
-- <oaf_attribute name="bugzilla:version" type="string" value="@VERSION@"/>
-- <oaf_attribute name="bugzilla:other_binaries" type="string" value="gdm-user-switch-applet"/>
-- </oaf_server>
--</oaf_info>
-diff --git a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml b/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml
-deleted file mode 100644
-index e1845c8..0000000
---- a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml
-+++ /dev/null
-@@ -1,20 +0,0 @@
--<Root>
-- <popups>
-- <popup name="button3">
-- <menuitem
-- name="About Me Item"
-- verb="GdmAboutMe"
-- _label="Edit Personal _Information"/>
-- <menuitem
-- name="Users and Groups Admin Item"
-- verb="GdmUsersGroupsAdmin"
-- _label="_Edit Users and Groups"/>
-- <menuitem
-- name="About Item"
-- verb="GdmAbout"
-- _label="_About"
-- pixtype="stock"
-- pixname="gtk-about"/>
-- </popup>
-- </popups>
--</Root>
-diff --git a/gui/user-switch-applet/Makefile.am b/gui/user-switch-applet/Makefile.am
-index 2d2cdc0..cebe890 100644
---- a/gui/user-switch-applet/Makefile.am
-+++ b/gui/user-switch-applet/Makefile.am
-@@ -13,6 +13,7 @@ AM_CPPFLAGS = \
- -DLIBEXECDIR=\""$(libexecdir)"\" \
- -DSBINDIR=\""$(sbindir)"\" \
- -DGDMCONFDIR=\"$(gdmconfdir)\" \
-+ -DGDM_USER_SWITCH_MENU_UI_DIR="\"$(uidir)\"" \
- $(GTK_CFLAGS) \
- $(APPLET_CFLAGS) \
- $(NULL)
-@@ -34,34 +35,31 @@ gdm_user_switch_applet_LDADD = \
- $(APPLET_LIBS) \
- $(NULL)
-
--# Bonobo UI
--uidir = $(datadir)/gnome-2.0/ui
--ui_DATA = \
-- GNOME_FastUserSwitchApplet.xml \
-- $(NULL)
-+uidir = $(datadir)/gnome-2.0/ui
-+ui_DATA = gdm-user-switch-applet-menu.xml
-
--# Bonobo .server
--serverdir = $(libdir)/bonobo/servers
--server_in_files = \
-- GNOME_FastUserSwitchApplet.server.in \
-- $(NULL)
--server_DATA = $(server_in_files:.server.in=.server)
-+appletdir = $(datadir)/gnome-panel/applets
-+applet_in_files = org.gnome.gdm.UserSwitch.panel-applet.in
-+applet_DATA = $(applet_in_files:.panel-applet.in=.panel-applet)
-
--$(server_in_files): $(server_in_files:.server.in=.server.in.in)
-- sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" -e "s|\@VERSION\@|$(VERSION)|" $< > $@
-+$(applet_in_files): $(applet_in_files).in Makefile
-+ $(AM_V_GEN)$(SED) -e "s|\@LIBEXECDIR\@|$(libexecdir)|" -e "s|\@VERSION\@|$(VERSION)|" $< > $@
-
--@INTLTOOL_SERVER_RULE@
-+%.panel-applet: %.panel-applet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
-
--EXTRA_DIST = \
-- $(ui_DATA) \
-- GNOME_FastUserSwitchApplet.server.in.in \
-- $(NULL)
-+servicedir = $(datadir)/dbus-1/services
-+service_in_files = org.gnome.panel.applet.GdmUserSwitchAppletFactory.service.in
-+service_DATA = $(service_in_files:.service.in=.service)
-+
-+org.gnome.panel.applet.GdmUserSwitchAppletFactory.service: $(service_in_files)
-+ $(AM_V_GEN)$(SED) -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@
-+
-+EXTRA_DIST = org.gnome.gdm.UserSwitch.panel-applet.in.in \
-+ $(service_in_files) \
-+ $(ui_DATA) \
-+ $(NULL)
-+
-+CLEANFILES = $(applet_DATA) $(applet_DATA).in $(service_DATA)
-
--DISTCLEANFILES = \
-- $(server_in_files) \
-- $(server_DATA) \
-- $(NULL)
-+MAINTAINERCLEANFILES = *~ Makefile.in
-
--MAINTAINERCLEANFILES = \
-- *~ \
-- Makefile.in
-diff --git a/gui/user-switch-applet/applet.c b/gui/user-switch-applet/applet.c
-index b4f944c..74f7882 100644
---- a/gui/user-switch-applet/applet.c
-+++ b/gui/user-switch-applet/applet.c
-@@ -34,9 +34,6 @@
-
- #include <dbus/dbus-glib.h>
-
--#include <bonobo/bonobo-main.h>
--#include <bonobo/bonobo-ui-util.h>
--
- #include <panel-applet.h>
- #include <panel-applet-gconf.h>
-
-@@ -102,16 +99,15 @@ static gboolean applet_factory (PanelApplet *applet,
- const char *iid,
- gpointer data);
-
--PANEL_APPLET_BONOBO_FACTORY ("OAFIID:GNOME_FastUserSwitchApplet_Factory",
-- PANEL_TYPE_APPLET,
-- "gdm-user-switch-applet", "0",
-- (PanelAppletFactoryCallback)applet_factory,
-- NULL)
-+PANEL_APPLET_OUT_PROCESS_FACTORY ("GdmUserSwitchAppletFactory",
-+ PANEL_TYPE_APPLET,
-+ "gdm-user-switch-applet",
-+ applet_factory,
-+ NULL)
-
- static void
--about_me_cb (BonoboUIComponent *ui_container,
-- gpointer data,
-- const char *cname)
-+about_me_cb (GtkAction *action,
-+ gpointer data)
- {
- GError *err;
-
-@@ -120,10 +116,7 @@ about_me_cb (BonoboUIComponent *ui_container,
- g_critical ("Could not run `gnome-about-me': %s",
- err->message);
- g_error_free (err);
-- bonobo_ui_component_set_prop (ui_container,
-- "/commands/GdmAboutMe",
-- "hidden", "1",
-- NULL);
-+ gtk_action_set_visible (action, FALSE);
- }
- }
-
-@@ -149,9 +142,8 @@ menubar_button_press_event_cb (GtkWidget *menubar,
- }
-
- static void
--about_cb (BonoboUIComponent *ui_container,
-- gpointer data,
-- const char *cname)
-+about_cb (GtkAction *action,
-+ gpointer data)
- {
- static const char *authors[] = {
- "James M. Cape <jcape@ignore-your.tv>",
-@@ -195,9 +187,8 @@ about_cb (BonoboUIComponent *ui_container,
-
-
- static void
--admin_cb (BonoboUIComponent *ui_container,
-- gpointer data,
-- const char *cname)
-+admin_cb (GtkAction *action,
-+ gpointer data)
- {
- #ifdef USERS_ADMIN
- char **args;
-@@ -231,82 +222,6 @@ admin_cb (BonoboUIComponent *ui_container,
- }
-
- static void
--set_menuitem_icon (BonoboUIComponent *component,
-- const char *item_path,
-- GtkIconTheme *theme,
-- const char *icon_name,
-- gint icon_size)
--{
-- GdkPixbuf *pixbuf;
-- int width;
-- int height;
--
-- pixbuf = gtk_icon_theme_load_icon (theme, icon_name, icon_size, 0, NULL);
-- if (pixbuf == NULL) {
-- return;
-- }
--
-- width = gdk_pixbuf_get_width (pixbuf);
-- height = gdk_pixbuf_get_height (pixbuf);
-- if (width > icon_size + 4 || height > icon_size + 4) {
-- GdkPixbuf *tmp;
-- if (height > width) {
-- width *= (gdouble) icon_size / (gdouble) height;
-- height = icon_size;
-- } else {
-- height *= (gdouble) icon_size / (gdouble) width;
-- width = icon_size;
-- }
-- tmp = gdk_pixbuf_scale_simple (pixbuf, width, height, GDK_INTERP_BILINEAR);
-- g_object_unref (pixbuf);
-- pixbuf = tmp;
-- }
--
-- bonobo_ui_util_set_pixbuf (component, item_path, pixbuf, NULL);
-- g_object_unref (pixbuf);
--}
--
--static void
--applet_style_set_cb (GtkWidget *widget,
-- GtkStyle *old_style,
-- gpointer data)
--{
-- BonoboUIComponent *component;
-- GdkScreen *screen;
-- GtkIconTheme *theme;
-- int width;
-- int height;
-- int icon_size;
--
-- if (gtk_widget_has_screen (widget)) {
-- screen = gtk_widget_get_screen (widget);
-- } else {
-- screen = gdk_screen_get_default ();
-- }
--
-- if (gtk_icon_size_lookup_for_settings (gtk_settings_get_for_screen (screen),
-- GTK_ICON_SIZE_MENU, &width, &height)) {
-- icon_size = MAX (width, height);
-- } else {
-- icon_size = 16;
-- }
--
-- theme = gtk_icon_theme_get_for_screen (screen);
-- component = panel_applet_get_popup_component (PANEL_APPLET (widget));
--
-- set_menuitem_icon (component,
-- "/commands/GdmAboutMe",
-- theme,
-- "user-info",
-- icon_size);
-- set_menuitem_icon (component,
-- "/commands/GdmUsersGroupsAdmin",
-- theme,
-- "stock_people",
-- icon_size);
--}
--
--static void
- applet_change_background_cb (PanelApplet *applet,
- PanelAppletBackgroundType type,
- GdkColor *color,
-@@ -1389,18 +1304,23 @@ on_presence_status_text_changed (DBusGProxy *presence_proxy,
- static gboolean
- fill_applet (PanelApplet *applet)
- {
-- static const BonoboUIVerb menu_verbs[] = {
-- BONOBO_UI_VERB ("GdmAboutMe", about_me_cb),
-- BONOBO_UI_VERB ("GdmUsersGroupsAdmin", admin_cb),
-- BONOBO_UI_VERB ("GdmAbout", about_cb),
-- BONOBO_UI_VERB_END
-+ static const GtkActionEntry gdm_user_switch_applet_actions[] = {
-+ { "GdmAboutMe", "user-info", N_("Edit Personal _Information"),
-+ NULL, NULL,
-+ G_CALLBACK (about_me_cb) },
-+ { "GdmUsersGroupsAdmin", "stock-people", N_("_Edit Users and Groups"),
-+ NULL, NULL,
-+ G_CALLBACK (admin_cb) },
-+ { "GdmAbout", GTK_STOCK_ABOUT, N_("_About"),
-+ NULL, NULL,
-+ G_CALLBACK (about_cb) },
- };
- static gboolean first_time = FALSE;
- char *tmp;
-- BonoboUIComponent *popup_component;
- GdmAppletData *adata;
- GError *error;
- DBusGConnection *bus;
-+ GtkActionGroup *action_group;
-
- if (!first_time) {
- first_time = TRUE;
-@@ -1438,52 +1358,51 @@ fill_applet (PanelApplet *applet)
- gtk_container_set_border_width (GTK_CONTAINER (applet), 0);
- gtk_widget_set_name (GTK_WIDGET (applet), "gdm-user-switch-applet");
- panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR);
-- panel_applet_setup_menu_from_file (applet, NULL,
-- DATADIR "/gnome-2.0/ui/GNOME_FastUserSwitchApplet.xml",
-- NULL, menu_verbs, adata);
-
-- popup_component = panel_applet_get_popup_component (applet);
-+ action_group = gtk_action_group_new ("GDM User Switch Applet Actions");
-+ gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
-+ gtk_action_group_add_actions (action_group,
-+ gdm_user_switch_applet_actions,
-+ G_N_ELEMENTS (gdm_user_switch_applet_actions),
-+ adata);
-+
-+ panel_applet_setup_menu_from_file (applet,
-+ GDM_USER_SWITCH_MENU_UI_DIR G_DIR_SEPARATOR_S "gdm-user-switch-applet-menu.xml",
-+ action_group);
-
- /* Hide the admin context menu items if locked down or no cmd-line */
- if (gconf_client_get_bool (adata->client,
- LOCKDOWN_COMMAND_LINE_KEY,
- NULL) ||
- panel_applet_get_locked_down (applet)) {
-- bonobo_ui_component_set_prop (popup_component,
-- "/popups/button3/GdmSeparator",
-- "hidden", "1", NULL);
-- bonobo_ui_component_set_prop (popup_component,
-- "/commands/GdmUsersGroupsAdmin",
-- "hidden", "1", NULL);
-+ GtkAction *action;
-+
-+ action = gtk_action_group_get_action (action_group, "GdmUsersGroupsAdmin");
-+ gtk_action_set_visible (action, FALSE);
- } else {
-+ GtkAction *action;
-+
- #ifndef USERS_ADMIN
- # ifdef GDM_SETUP
-- bonobo_ui_component_set_prop (popup_component,
-- "/popups/button3/GdmSeparator",
-- "hidden", "1",
-- NULL);
- # endif /* !GDM_SETUP */
-- bonobo_ui_component_set_prop (popup_component,
-- "/commands/GdmUsersGroupsAdmin",
-- "hidden", "1",
-- NULL);
-+ action = gtk_action_group_get_action (action_group, "GdmUsersGroupsAdmin");
-+ gtk_action_set_visible (action, FALSE);
- #endif /* !USERS_ADMIN */
- }
-
- /* Hide the gdmphotosetup item if it can't be found in the path. */
- tmp = g_find_program_in_path ("gnome-about-me");
- if (!tmp) {
-- bonobo_ui_component_set_prop (popup_component,
-- "/commands/GdmAboutMe",
-- "hidden", "1",
-- NULL);
-+ GtkAction *action;
-+
-+ action = gtk_action_group_get_action (action_group, "GdmAboutMe");
-+ gtk_action_set_visible (action, FALSE);
- } else {
- g_free (tmp);
- }
-
-- g_signal_connect (adata->applet,
-- "style-set",
-- G_CALLBACK (applet_style_set_cb), adata);
-+ g_object_unref (action_group);
-+
- g_signal_connect (applet,
- "change-background",
- G_CALLBACK (applet_change_background_cb), adata);
-@@ -1655,7 +1574,7 @@ applet_factory (PanelApplet *applet,
- {
- gboolean ret;
- ret = FALSE;
-- if (strcmp (iid, "OAFIID:GNOME_FastUserSwitchApplet") == 0) {
-+ if (strcmp (iid, "GdmUserSwitchApplet") == 0) {
- ret = fill_applet (applet);
- }
- return ret;
-diff --git a/gui/user-switch-applet/gdm-user-switch-applet-menu.xml b/gui/user-switch-applet/gdm-user-switch-applet-menu.xml
-new file mode 100644
-index 0000000..78301b3
---- /dev/null
-+++ b/gui/user-switch-applet/gdm-user-switch-applet-menu.xml
-@@ -0,0 +1,4 @@
-+<menuitem name="About Me Item" action="GdmAboutMe"/>
-+<menuitem name="Users and Groups Admin Item" action="GdmUsersGroupsAdmin"/>
-+<menuitem name="About Item" action="GdmAbout"/>
-+
-diff --git a/gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in.in b/gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in.in
-new file mode 100644
-index 0000000..3c77dfb
---- /dev/null
-+++ b/gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in.in
-@@ -0,0 +1,16 @@
-+[Applet Factory]
-+Id=GdmUserSwitchAppletFactory
-+Location=@LIBEXECDIR@/gdm-user-switch-applet
-+_Name=User Switcher Applet Factory
-+_Description=User Switcher Applet Factory
-+
-+[GdmUserSwitchApplet]
-+_Name=User Switcher
-+_Description=A menu to quickly switch between users
-+BonoboId=OAFIID:GNOME_FastUserSwitchApplet
-+X-GNOME-Bugzilla-Bugzilla=GNOME
-+X-GNOME-Bugzilla-Product=gdm
-+X-GNOME-Bugzilla-Component=general
-+X-GNOME-Bugzilla-Version=@VERSION@
-+X-GNOME-Bugzilla-OtherBinaries=gdm-user-switch-applet
-+
-diff --git a/gui/user-switch-applet/org.gnome.panel.applet.GdmUserSwitchAppletFactory.service.in b/gui/user-switch-applet/org.gnome.panel.applet.GdmUserSwitchAppletFactory.service.in
-new file mode 100644
-index 0000000..7bf900f
---- /dev/null
-+++ b/gui/user-switch-applet/org.gnome.panel.applet.GdmUserSwitchAppletFactory.service.in
-@@ -0,0 +1,4 @@
-+[D-BUS Service]
-+Name=org.gnome.panel.applet.GdmUserSwitchAppletFactory
-+Exec=@LIBEXECDIR@/gdm-user-switch-applet
-+
-diff --git a/po/POTFILES.in b/po/POTFILES.in
-index 1fccb90..5340391 100644
---- a/po/POTFILES.in
-+++ b/po/POTFILES.in
-@@ -86,8 +86,7 @@ gui/simple-greeter/gdm-user-chooser-widget.c
- gui/simple-greeter/greeter-main.c
- gui/user-switch-applet/applet.c
- gui/user-switch-applet/gdm-entry-menu-item.c
--gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in
--gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml
-+gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in.in
- utils/gdmflexiserver.c
- utils/gdm-screenshot.c
-
-diff --git a/po/POTFILES.skip b/po/POTFILES.skip
-index 0269a0f..9032c03 100644
---- a/po/POTFILES.skip
-+++ b/po/POTFILES.skip
-@@ -7,7 +7,7 @@
- # remove these unless you fix "make distcheck" a different way.
- #
- data/gdm.schemas.in
--gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in
-+gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in
- data/greeter-autostart/at-spi-registryd-wrapper.desktop.in
- data/greeter-autostart/gdm-simple-greeter.desktop.in
- data/greeter-autostart/gnome-power-manager.desktop.in
---
-1.7.2.3
-
diff --git a/extra/gdm/04_fix_external_program_directories.patch b/extra/gdm/04_fix_external_program_directories.patch
deleted file mode 100644
index 7ccc28644..000000000
--- a/extra/gdm/04_fix_external_program_directories.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -Nur gdm-2.30.2.orig/daemon/gdm-server.c gdm-2.30.2/daemon/gdm-server.c
---- gdm-2.30.2.orig/daemon/gdm-server.c 2010-04-26 20:08:42.000000000 +0300
-+++ gdm-2.30.2/daemon/gdm-server.c 2010-04-29 22:55:49.631648355 +0300
-@@ -127,7 +127,7 @@
- g_return_val_if_fail (GDM_IS_SERVER (server), NULL);
-
- error = NULL;
-- command = g_strdup_printf (LIBEXECDIR "/ck-get-x11-display-device --display %s",
-+ command = g_strdup_printf ("/usr/lib/ConsoleKit/ck-get-x11-display-device --display %s",
- server->priv->display_name);
-
- g_debug ("GdmServer: Running helper %s", command);
-diff -Nur gdm-2.30.2.orig/data/greeter-autostart/gnome-settings-daemon.desktop.in.in gdm-2.30.2/data/greeter-autostart/gnome-settings-daemon.desktop.in.in
---- gdm-2.30.2.orig/data/greeter-autostart/gnome-settings-daemon.desktop.in.in 2010-03-17 23:27:16.000000000 +0200
-+++ gdm-2.30.2/data/greeter-autostart/gnome-settings-daemon.desktop.in.in 2010-04-29 22:53:54.984878068 +0300
-@@ -1,8 +1,8 @@
- [Desktop Entry]
- Type=Application
- _Name=GNOME Settings Daemon
--TryExec=@LIBEXECDIR@/gnome-settings-daemon
--Exec=@LIBEXECDIR@/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-greeter/settings-manager-plugins
-+TryExec=/usr/bin/gnome-settings-daemon
-+Exec=/usr/bin/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-greeter/settings-manager-plugins
- OnlyShowIn=GNOME;
- X-GNOME-Autostart-Phase=Initialization
- X-GNOME-Autostart-Notify=true
-diff -Nur gdm-2.30.2.orig/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in gdm-2.30.2/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in
---- gdm-2.30.2.orig/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in 2010-03-26 15:28:03.000000000 +0200
-+++ gdm-2.30.2/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in 2010-04-29 22:54:24.638396328 +0300
-@@ -1,5 +1,5 @@
- [Desktop Entry]
- Type=Application
- _Name=PolicyKit Authentication Agent
--Exec=@LIBEXECDIR@/polkit-gnome-authentication-agent-1
-+Exec=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
- OnlyShowIn=GNOME;
-diff -Nur gdm-2.30.2.orig/gui/simple-chooser/gdm-chooser-session.c gdm-2.30.2/gui/simple-chooser/gdm-chooser-session.c
---- gdm-2.30.2.orig/gui/simple-chooser/gdm-chooser-session.c 2010-03-17 23:27:16.000000000 +0200
-+++ gdm-2.30.2/gui/simple-chooser/gdm-chooser-session.c 2010-04-29 22:57:08.691626507 +0300
-@@ -131,7 +131,7 @@
- ret = FALSE;
-
- error = NULL;
-- g_spawn_command_line_async (LIBEXECDIR "/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-chooser/settings-manager-plugins", &error);
-+ g_spawn_command_line_async ("/usr/bin/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-chooser/settings-manager-plugins", &error);
- if (error != NULL) {
- g_warning ("Error starting settings daemon: %s", error->message);
- g_error_free (error);
diff --git a/extra/gdm/correctly-give-focus-to-user-chooser.patch b/extra/gdm/correctly-give-focus-to-user-chooser.patch
deleted file mode 100644
index e08675a36..000000000
--- a/extra/gdm/correctly-give-focus-to-user-chooser.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From b971eb1038cb92ed8211b68a7d2a99a98d86ed7f Mon Sep 17 00:00:00 2001
-From: Vincent Untz <vuntz@gnome.org>
-Date: Wed, 12 Jan 2011 18:38:46 +0100
-Subject: [PATCH] Correctly give focus to the user chooser on startup
-
-We manually handle how focus works in the GdmChooserWidget container,
-and we try to automatically move the focus to the treeview inside the
-chooser. However, it fails the first time because the treeview is not
-realized yet and the logic in the code assumes that if focus moved to
-the chooser, it moved to the treeview, so later attempt to get the focus
-grabbed by the treeview are just ignored.
-
-It works fine when using gtk_widget_child_focus() to give the focus to
-the treeview. And this makes more sense since the chooser is a container
-anyway.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=629310
----
- gui/simple-greeter/gdm-chooser-widget.c | 6 +-----
- 1 files changed, 1 insertions(+), 5 deletions(-)
-
-diff --git a/gui/simple-greeter/gdm-chooser-widget.c b/gui/simple-greeter/gdm-chooser-widget.c
-index db2d9b2..ebbfdb9 100644
---- a/gui/simple-greeter/gdm-chooser-widget.c
-+++ b/gui/simple-greeter/gdm-chooser-widget.c
-@@ -910,17 +910,13 @@ _grab_focus (GtkWidget *widget)
-
- foc_widget = GDM_CHOOSER_WIDGET (widget)->priv->items_view;
- g_debug ("GdmChooserWidget: grabbing focus");
-- if (! gtk_widget_get_realized (foc_widget)) {
-- g_debug ("GdmChooserWidget: not grabbing focus - not realized");
-- return;
-- }
-
- if (gtk_widget_has_focus (foc_widget)) {
- g_debug ("GdmChooserWidget: not grabbing focus - already has it");
- return;
- }
-
-- gtk_widget_grab_focus (foc_widget);
-+ gtk_widget_child_focus (foc_widget, GTK_DIR_TAB_FORWARD);
- }
-
- static void
---
-1.7.3.4
diff --git a/extra/gnome-applets/add-dbus-glib.patch b/extra/gnome-applets/add-dbus-glib.patch
deleted file mode 100644
index 16c2999a8..000000000
--- a/extra/gnome-applets/add-dbus-glib.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From fe72f63c91a1458d97d455ab0078d042464366e7 Mon Sep 17 00:00:00 2001
-From: Enrico Minack <enrico-minack@gmx.de>
-Date: Mon, 03 Jan 2011 19:58:13 +0000
-Subject: gweather: fixes NetworkManager support to compile, see bug 636217
-
----
-diff --git a/gweather/Makefile.am b/gweather/Makefile.am
-index ea6ac96..165efda 100644
---- a/gweather/Makefile.am
-+++ b/gweather/Makefile.am
-@@ -6,6 +6,7 @@ INCLUDES = \
- -I$(srcdir) \
- -I$(top_srcdir) \
- -DGWEATHER_MENU_UI_DIR=\""$(uidir)"\" \
-+ $(DBUS_CFLAGS) \
- $(GNOME_APPLETS3_CFLAGS) \
- $(LIBNOTIFY_CFLAGS) \
- $(LIBGWEATHER_CFLAGS) \
-@@ -22,6 +23,7 @@ gweather_applet_2_SOURCES = \
- gweather-applet.c gweather-applet.h
-
- gweather_applet_2_LDADD = \
-+ $(DBUS_LIBS) \
- $(LIBNOTIFY_LIBS) \
- $(GNOME_APPLETS3_LIBS) \
- $(GNOME_LIBS2_LIBS) \
---
-cgit v0.8.3.4
diff --git a/extra/gnome-applets/gnome-applets-2.32.1.1-libnotify-0.7.patch b/extra/gnome-applets/gnome-applets-2.32.1.1-libnotify-0.7.patch
deleted file mode 100644
index f2b889ec0..000000000
--- a/extra/gnome-applets/gnome-applets-2.32.1.1-libnotify-0.7.patch
+++ /dev/null
@@ -1,53 +0,0 @@
---- battstat/battstat_applet.c
-+++ battstat/battstat_applet.c
-@@ -42,6 +42,9 @@
-
- #ifdef HAVE_LIBNOTIFY
- #include <libnotify/notify.h>
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
- #endif
-
- #include "battstat.h"
-@@ -435,7 +438,12 @@
- GTK_ICON_LOOKUP_USE_BUILTIN,
- NULL);
-
-- NotifyNotification *n = notify_notification_new (_("Your battery is now fully recharged"), "", /* "battery" */ NULL, applet);
-+ NotifyNotification *n = notify_notification_new (_("Your battery is now fully recharged"), "", /* "battery" */ NULL
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , applet);
-+#endif
-
- /* XXX: it would be nice to pass this as a named icon */
- notify_notification_set_icon_from_pixbuf (n, icon);
---- gweather/gweather-applet.c
-+++ gweather/gweather-applet.c
-@@ -30,6 +30,9 @@
- #ifdef HAVE_LIBNOTIFY
- #include <libnotify/notify.h>
- #include <libnotify/notification.h>
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
- #endif
-
- #define GWEATHER_I_KNOW_THIS_IS_UNSTABLE
-@@ -471,8 +474,12 @@
- if (icon == NULL)
- icon = "stock-unknown";
-
-- n = notify_notification_new (message, detail, icon,
-- gw_applet->container);
-+ n = notify_notification_new (message, detail, icon
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , gw_applet->container);
-+#endif
-
- notify_notification_show (n, &error);
- if (error)
diff --git a/extra/gnome-bluetooth/gnome-bluetooth-2.32.0-libnotify-0.7.patch b/extra/gnome-bluetooth/gnome-bluetooth-2.32.0-libnotify-0.7.patch
deleted file mode 100644
index 72a726521..000000000
--- a/extra/gnome-bluetooth/gnome-bluetooth-2.32.0-libnotify-0.7.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- applet/notify.c
-+++ applet/notify.c
-@@ -31,6 +31,10 @@
- #include <libnotify/notify.h>
- #include "notify.h"
-
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
-+
- static GtkStatusIcon *statusicon = NULL;
- static char *icon_name = NULL;
- static char *tooltip = NULL;
-@@ -71,7 +75,12 @@
- notify_notification_close(notify, NULL);
- }
-
-- notify = notify_notification_new(summary, message, icon_name, NULL);
-+ notify = notify_notification_new(summary, message, icon_name
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , NULL);
-+#endif
-
- notify_notification_set_timeout(notify, timeout);
-
diff --git a/extra/gnome-games/03_missing_icons.patch b/extra/gnome-games/03_missing_icons.patch
deleted file mode 100644
index c9bfe9be5..000000000
--- a/extra/gnome-games/03_missing_icons.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Index: gnome-games-2.30.2/libgames-support/games-stock.c
-===================================================================
---- gnome-games-2.30.2.orig/libgames-support/games-stock.c 2010-07-04 11:33:16.880062363 +0200
-+++ gnome-games-2.30.2/libgames-support/games-stock.c 2010-07-04 12:23:59.035567621 +0200
-@@ -282,15 +282,14 @@ games_stock_init (void)
- #ifdef HAVE_GTK_ICON_FACTORY_ADD_ALIAS
- { GAMES_STOCK_REDO_MOVE, GTK_STOCK_REDO },
- { GAMES_STOCK_UNDO_MOVE, GTK_STOCK_UNDO },
-+ { GAMES_STOCK_RESUME_GAME, GTK_STOCK_MEDIA_PLAY },
- #endif
- #ifndef HAVE_HILDON
- { GAMES_STOCK_NETWORK_GAME, GTK_STOCK_NETWORK },
- { GAMES_STOCK_NETWORK_LEAVE, GTK_STOCK_STOP },
- { GAMES_STOCK_PLAYER_LIST, GTK_STOCK_INFO },
-
-- { GAMES_STOCK_PAUSE_GAME, "stock_timer_stopped" },
-- { GAMES_STOCK_RESUME_GAME, "stock_timer" },
-- { GAMES_STOCK_SCORES, "stock_scores" },
-+ { GAMES_STOCK_PAUSE_GAME, GTK_STOCK_MEDIA_PAUSE },
- #endif /* !HAVE_HILDON */
- };
-
-@@ -298,6 +297,7 @@ games_stock_init (void)
- const char *stock_icon_aliases_bidi[][3] = {
- { GAMES_STOCK_REDO_MOVE, GTK_STOCK_REDO "-ltr", GTK_STOCK_REDO "-rtl" },
- { GAMES_STOCK_UNDO_MOVE, GTK_STOCK_UNDO "-ltr", GTK_STOCK_UNDO "-rtl" },
-+ { GAMES_STOCK_RESUME_GAME, GTK_STOCK_MEDIA_PLAY "-ltr", GTK_STOCK_MEDIA_PLAY "-rtl" },
- };
- #endif
-
-@@ -306,6 +306,7 @@ games_stock_init (void)
- #ifndef HAVE_HILDON
- { GAMES_STOCK_TELEPORT, "teleport" },
- { GAMES_STOCK_RTELEPORT, "teleport-random" },
-+ { GAMES_STOCK_SCORES, "scores" },
- #endif /* !HAVE_HILDON */
- { GAMES_STOCK_DEAL_CARDS, "cards-deal" }
- };
diff --git a/extra/gnome-games/scores.png b/extra/gnome-games/scores.png
deleted file mode 100644
index fb8ea036f..000000000
--- a/extra/gnome-games/scores.png
+++ /dev/null
Binary files differ
diff --git a/extra/gnome-panel/evolution-appointments.patch b/extra/gnome-panel/evolution-appointments.patch
deleted file mode 100644
index c4831adf2..000000000
--- a/extra/gnome-panel/evolution-appointments.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/applets/clock/calendar-window.c b/applets/clock/calendar-window.c
-index 932ebda..bfad14e 100644
---- a/applets/clock/calendar-window.c
-+++ b/applets/clock/calendar-window.c
-@@ -450,6 +450,8 @@ is_appointment (GtkTreeModel *model,
- gtk_tree_model_get (model, iter, APPOINTMENT_COLUMN_URI, &uri, -1);
- if (uri)
- return (g_ascii_strcasecmp (uri, "file") == 0 ||
-+ g_ascii_strcasecmp (uri, "local") == 0 ||
-+ g_ascii_strcasecmp (uri, "mapi") == 0 ||
- g_ascii_strcasecmp (uri, "webcal") == 0 ||
- g_ascii_strcasecmp (uri, "caldav") == 0 ||
- g_ascii_strcasecmp (uri, "exchange") == 0 ||
diff --git a/extra/gnome-panel/gnome-panel-bonobo.install b/extra/gnome-panel/gnome-panel-bonobo.install
deleted file mode 100644
index 0bc8c431e..000000000
--- a/extra/gnome-panel/gnome-panel-bonobo.install
+++ /dev/null
@@ -1,11 +0,0 @@
-post_install() {
- usr/bin/gio-querymodules usr/lib/gnome-panel/modules
-}
-
-post_upgrade() {
- post_install $1
-}
-
-post_remove() {
- post_install $1
-}
diff --git a/extra/gnome-power-manager/gnome-power-manager-2.32.0-libnotify-0.7.patch b/extra/gnome-power-manager/gnome-power-manager-2.32.0-libnotify-0.7.patch
deleted file mode 100644
index d021f2930..000000000
--- a/extra/gnome-power-manager/gnome-power-manager-2.32.0-libnotify-0.7.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- src/gpm-manager.c
-+++ src/gpm-manager.c
-@@ -43,6 +43,10 @@
- #include <libupower-glib/upower.h>
- #include <libnotify/notify.h>
-
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
-+
- #include "egg-debug.h"
- #include "egg-console-kit.h"
-
-@@ -480,12 +484,16 @@
- /* close any existing notification of this class */
- gpm_manager_notify_close (manager, *notification_class);
-
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ notification = notify_notification_new (title, message, icon);
-+#else
- /* if the status icon is hidden, don't point at it */
- if (manager->priv->status_icon != NULL &&
- gtk_status_icon_is_embedded (manager->priv->status_icon))
- notification = notify_notification_new_with_status_icon (title, message, icon, manager->priv->status_icon);
- else
- notification = notify_notification_new (title, message, icon, NULL);
-+#endif
- notify_notification_set_timeout (notification, timeout);
- notify_notification_set_urgency (notification, urgency);
- g_signal_connect (notification, "closed", G_CALLBACK (gpm_manager_notification_closed_cb), notification_class);
diff --git a/extra/gnome-screensaver/gnome-screensaver-2.30.2-libnotify-0.7.patch b/extra/gnome-screensaver/gnome-screensaver-2.30.2-libnotify-0.7.patch
deleted file mode 100644
index 6eeb16819..000000000
--- a/extra/gnome-screensaver/gnome-screensaver-2.30.2-libnotify-0.7.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -Nur gnome-screensaver-2.30.2.orig/src/gs-lock-plug.c gnome-screensaver-2.30.2/src/gs-lock-plug.c
---- gnome-screensaver-2.30.2.orig/src/gs-lock-plug.c 2010-09-28 13:36:51.000000000 -0700
-+++ gnome-screensaver-2.30.2/src/gs-lock-plug.c 2011-03-07 00:54:44.086669840 -0800
-@@ -47,6 +47,10 @@
- #include <libnotify/notify.h>
- #endif
-
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
-+
- #include "gs-lock-plug.h"
-
- #include "gs-debug.h"
-@@ -1090,7 +1094,11 @@
- strftime (summary, 128, "%X", tmp);
-
- notify_init ("gnome-screensaver-dialog");
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ note = notify_notification_new (summary, escaped_text, NULL);
-+#else
- note = notify_notification_new (summary, escaped_text, NULL, NULL);
-+#endif
- notify_notification_set_timeout (note, NOTIFY_EXPIRES_NEVER);
- notify_notification_show (note, NULL);
- g_object_unref (note);
diff --git a/extra/gnome-settings-daemon/add_notify_init.patch b/extra/gnome-settings-daemon/add_notify_init.patch
deleted file mode 100644
index b1e644f5d..000000000
--- a/extra/gnome-settings-daemon/add_notify_init.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -Nur gnome-settings-daemon-2.32.1.orig/plugins/xrandr/gsd-xrandr-manager.c gnome-settings-daemon-2.32.1/plugins/xrandr/gsd-xrandr-manager.c
---- gnome-settings-daemon-2.32.1.orig/plugins/xrandr/gsd-xrandr-manager.c 2010-11-15 05:11:00.000000000 -0800
-+++ gnome-settings-daemon-2.32.1/plugins/xrandr/gsd-xrandr-manager.c 2011-03-17 11:52:57.516694024 -0700
-@@ -2530,6 +2530,10 @@
-
- manager->priv->current_fn_f7_config = -1;
- manager->priv->fn_f7_configs = NULL;
-+
-+#ifdef HAVE_LIBNOTIFY
-+ notify_init ("gnome-settings-daemon");
-+#endif /* HAVE_LIBNOTIFY */
- }
-
- static void
diff --git a/extra/gnome-settings-daemon/gnome-settings-daemon-2.32.1-libnotify-0.7.patch b/extra/gnome-settings-daemon/gnome-settings-daemon-2.32.1-libnotify-0.7.patch
deleted file mode 100644
index f755f24ac..000000000
--- a/extra/gnome-settings-daemon/gnome-settings-daemon-2.32.1-libnotify-0.7.patch
+++ /dev/null
@@ -1,76 +0,0 @@
---- plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
-+++ plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
-@@ -48,6 +48,9 @@
-
- #ifdef HAVE_LIBNOTIFY
- #include <libnotify/notify.h>
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
- #endif /* HAVE_LIBNOTIFY */
-
- #include "gnome-settings-profile.h"
-@@ -608,9 +611,13 @@
- gsd_a11y_keyboard_manager_ensure_status_icon (manager);
- manager->priv->notification = notify_notification_new (title,
- message,
-- "preferences-desktop-accessibility",
-- NULL);
-+ "preferences-desktop-accessibility"
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , NULL);
- notify_notification_attach_to_status_icon (manager->priv->notification, manager->priv->status_icon);
-+#endif
- notify_notification_set_timeout (manager->priv->notification, NOTIFICATION_TIMEOUT * 1000);
-
- notify_notification_add_action (manager->priv->notification,
-@@ -747,9 +754,13 @@
- gsd_a11y_keyboard_manager_ensure_status_icon (manager);
- manager->priv->notification = notify_notification_new (title,
- message,
-- "preferences-desktop-accessibility",
-- NULL);
-+ "preferences-desktop-accessibility"
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , NULL);
- notify_notification_attach_to_status_icon (manager->priv->notification, manager->priv->status_icon);
-+#endif
- notify_notification_set_timeout (manager->priv->notification, NOTIFICATION_TIMEOUT * 1000);
-
- notify_notification_add_action (manager->priv->notification,
---- plugins/xrandr/gsd-xrandr-manager.c
-+++ plugins/xrandr/gsd-xrandr-manager.c
-@@ -48,6 +48,9 @@
-
- #ifdef HAVE_LIBNOTIFY
- #include <libnotify/notify.h>
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
- #endif
-
- #include "gnome-settings-profile.h"
-@@ -1086,6 +1089,11 @@
-
- g_assert (error_to_display == NULL || secondary_text == NULL);
-
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ notification = notify_notification_new (primary_text,
-+ error_to_display ? error_to_display->message : secondary_text,
-+ GSD_XRANDR_ICON_NAME);
-+#else
- if (priv->status_icon)
- notification = notify_notification_new_with_status_icon (primary_text,
- error_to_display ? error_to_display->message : secondary_text,
-@@ -1096,6 +1104,7 @@
- error_to_display ? error_to_display->message : secondary_text,
- GSD_XRANDR_ICON_NAME,
- NULL);
-+#endif
-
- notify_notification_show (notification, NULL); /* NULL-GError */
- #else
diff --git a/extra/gnome-settings-daemon/gstreamer-volume-2.29.91.patch b/extra/gnome-settings-daemon/gstreamer-volume-2.29.91.patch
deleted file mode 100644
index 847a57622..000000000
--- a/extra/gnome-settings-daemon/gstreamer-volume-2.29.91.patch
+++ /dev/null
@@ -1,809 +0,0 @@
-diff -Nur gnome-settings-daemon-2.29.91.1.orig/configure.ac gnome-settings-daemon-2.29.91.1/configure.ac
---- gnome-settings-daemon-2.29.91.1.orig/configure.ac 2010-02-24 16:39:10.000000000 +0200
-+++ gnome-settings-daemon-2.29.91.1/configure.ac 2010-02-25 18:18:35.000000000 +0200
-@@ -248,6 +248,48 @@
- AC_SUBST(PULSE_CFLAGS)
- AC_SUBST(PULSE_LIBS)
-
-+dnl ==============================================
-+dnl GStreamer section
-+dnl ==============================================
-+GST_MAJORMINOR=auto
-+
-+AC_ARG_ENABLE(gstreamer,
-+AC_HELP_STRING([--enable-gstreamer],[use gstreamer if available (and optionally specify a version)]),
-+[case "${enableval}" in
-+ yes) ENABLE_GSTREAMER=yes ;;
-+ 0.10) ENABLE_GSTREAMER=yes && GST_MAJORMINOR=0.10 ;;
-+ no) ENABLE_GSTREAMER=no ;;
-+ *) AC_MSG_ERROR([
-+ *** Bad value ${enableval} for --enable-gstreamer
-+ *** Please use one of the following:
-+ *** --enable-gstreamer=0.10
-+ ]) ;;
-+esac],
-+[ENABLE_GSTREAMER=yes]) dnl Default value
-+
-+have_gstreamer=no
-+if test "x$ENABLE_GSTREAMER" = "xyes"; then
-+ GST_REQS=0.10.1.2
-+ PKGS="gstreamer-0.10 >= $GST_REQS gstreamer-plugins-base-0.10 >= $GST_REQS"
-+
-+ PKG_CHECK_MODULES(GST, $PKGS, have_gstreamer=yes,
-+ AC_MSG_RESULT([no]))
-+
-+ if test "x$have_pulse" = "xtrue"; then
-+ AC_MSG_ERROR([*** GStreamer & Pulseaudio both are selected ***])
-+ fi
-+
-+ if test "x$have_gstreamer" = "xyes"; then
-+ GST_LIBS="$GST_LIBS -lgstinterfaces-0.10 -lgstaudio-0.10"
-+ AC_DEFINE(HAVE_GSTREAMER,1,[enable gstreamer])
-+ fi
-+else
-+ AC_MSG_NOTICE([*** GStreamer support disabled ***])
-+fi
-+AM_CONDITIONAL(HAVE_GSTREAMER, test "x$have_gstreamer" = "xyes")
-+AC_SUBST(GST_LIBS)
-+AC_SUBST(GST_CFLAGS)
-+
- # ---------------------------------------------------------------------------
- # Enable Profiling
- # ---------------------------------------------------------------------------
-@@ -386,6 +428,7 @@
- dbus-1 system.d dir: ${DBUS_SYS_DIR}
-
- Libnotify support: ${have_libnotify}
-+ GStreamer support: ${have_gstreamer}
- PulseAudio support: ${have_pulse}
- Profiling support: ${enable_profiling}
- "
-diff -Nur gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c gnome-settings-daemon-2.29.91.1/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c
---- gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c 1970-01-01 02:00:00.000000000 +0200
-+++ gnome-settings-daemon-2.29.91.1/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c 2010-02-25 18:18:35.000000000 +0200
-@@ -0,0 +1,402 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-+
-+/* acme-volume.c
-+
-+ Copyright (C) 2002, 2003 Bastien Nocera
-+ Copyright (C) 2004 Novell, Inc.
-+ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org>
-+
-+ 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., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA.
-+
-+ Author: Bastien Nocera <hadess@hadess.net>
-+ Jon Trowbridge <trow@ximian.com>
-+*/
-+
-+#include "config.h"
-+#include "gvc-gstreamer-acme-vol.h"
-+
-+#include <gst/gst.h>
-+#include <gst/audio/mixerutils.h>
-+#include <gst/interfaces/mixer.h>
-+#include <gst/interfaces/propertyprobe.h>
-+
-+#include <gconf/gconf-client.h>
-+
-+#include <string.h>
-+
-+#define TIMEOUT 4
-+
-+#define DEFAULT_MIXER_DEVICE_KEY "/desktop/gnome/sound/default_mixer_device"
-+#define DEFAULT_MIXER_TRACKS_KEY "/desktop/gnome/sound/default_mixer_tracks"
-+
-+#define ACME_VOLUME_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ACME_TYPE_VOLUME, AcmeVolumePrivate))
-+
-+struct AcmeVolumePrivate {
-+ GstMixer *mixer;
-+ GList *mixer_tracks;
-+ guint timer_id;
-+ gdouble volume;
-+ gboolean mute;
-+ GConfClient *gconf_client;
-+};
-+
-+G_DEFINE_TYPE (AcmeVolume, acme_volume, G_TYPE_OBJECT)
-+
-+static gboolean acme_volume_open (AcmeVolume *acme);
-+static void acme_volume_close (AcmeVolume *acme);
-+static gboolean acme_volume_close_real (AcmeVolume *self);
-+
-+static gpointer acme_volume_object = NULL;
-+
-+static void
-+acme_volume_finalize (GObject *object)
-+{
-+ AcmeVolume *self;
-+
-+ g_return_if_fail (object != NULL);
-+ g_return_if_fail (ACME_IS_VOLUME (object));
-+
-+ self = ACME_VOLUME (object);
-+
-+ if (self->_priv->timer_id != 0)
-+ g_source_remove (self->_priv->timer_id);
-+ acme_volume_close_real (self);
-+
-+ if (self->_priv->gconf_client != NULL) {
-+ g_object_unref (self->_priv->gconf_client);
-+ self->_priv->gconf_client = NULL;
-+ }
-+
-+ G_OBJECT_CLASS (acme_volume_parent_class)->finalize (object);
-+}
-+
-+void
-+acme_volume_set_mute (AcmeVolume *self, gboolean val)
-+{
-+ GList *t;
-+
-+ g_return_if_fail(ACME_IS_VOLUME(self));
-+ g_return_if_fail(acme_volume_open(self));
-+
-+ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
-+ gst_mixer_set_mute (self->_priv->mixer, track, val);
-+ }
-+ self->_priv->mute = val;
-+ acme_volume_close (self);
-+}
-+
-+static void
-+update_state (AcmeVolume * self)
-+{
-+ gint *volumes, n;
-+ gdouble vol = 0;
-+ GstMixerTrack *track = GST_MIXER_TRACK (self->_priv->mixer_tracks->data);
-+
-+ /* update mixer by getting volume */
-+ volumes = g_new0 (gint, track->num_channels);
-+ gst_mixer_get_volume (self->_priv->mixer, track, volumes);
-+ for (n = 0; n < track->num_channels; n++)
-+ vol += volumes[n];
-+ g_free (volumes);
-+ vol /= track->num_channels;
-+ vol = 100 * vol / (track->max_volume - track->min_volume);
-+
-+ /* update mute flag, and volume if not muted */
-+ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE))
-+ self->_priv->mute = TRUE;
-+ self->_priv->volume = vol;
-+}
-+
-+gboolean
-+acme_volume_get_mute (AcmeVolume *self)
-+{
-+ g_return_val_if_fail(acme_volume_open(self), FALSE);
-+
-+ update_state (self);
-+ acme_volume_close (self);
-+
-+ return self->_priv->mute;
-+}
-+
-+gint
-+acme_volume_get_volume (AcmeVolume *self)
-+{
-+
-+ g_return_val_if_fail(acme_volume_open(self), 0);
-+
-+ update_state (self);
-+
-+ acme_volume_close (self);
-+
-+ return (gint) (self->_priv->volume + 0.5);
-+}
-+
-+void
-+acme_volume_set_volume (AcmeVolume *self, gint val)
-+{
-+ GList *t;
-+
-+ g_return_if_fail(acme_volume_open(self));
-+
-+ val = CLAMP (val, 0, 100);
-+
-+ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
-+ gint *volumes, n;
-+ gdouble scale = (track->max_volume - track->min_volume) / 100.0;
-+ gint vol = (gint) (val * scale + track->min_volume + 0.5);
-+
-+ volumes = g_new (gint, track->num_channels);
-+ for (n = 0; n < track->num_channels; n++)
-+ volumes[n] = vol;
-+ gst_mixer_set_volume (self->_priv->mixer, track, volumes);
-+ g_free (volumes);
-+ }
-+
-+ /* update state */
-+ self->_priv->volume = val;
-+
-+ acme_volume_close (self);
-+}
-+
-+void
-+acme_volume_mute_toggle (AcmeVolume *self)
-+{
-+ gboolean muted;
-+
-+ g_return_if_fail (self != NULL);
-+ g_return_if_fail (ACME_IS_VOLUME(self));
-+
-+ muted = acme_volume_get_mute(self);
-+ acme_volume_set_mute(self, !muted);
-+}
-+
-+gint
-+acme_volume_get_threshold (AcmeVolume *self)
-+{
-+ GList *t;
-+ gint steps = 101;
-+
-+ g_return_val_if_fail(acme_volume_open(self), 1);
-+
-+ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
-+ gint track_steps = track->max_volume - track->min_volume;
-+ if (track_steps > 0 && track_steps < steps)
-+ steps = track_steps;
-+ }
-+
-+ acme_volume_close (self);
-+
-+ return 100 / steps + 1;
-+}
-+
-+static gboolean
-+acme_volume_close_real (AcmeVolume *self)
-+{
-+ if (self->_priv->mixer != NULL)
-+ {
-+ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL);
-+ gst_object_unref (GST_OBJECT (self->_priv->mixer));
-+ g_list_foreach (self->_priv->mixer_tracks, (GFunc) g_object_unref, NULL);
-+ g_list_free (self->_priv->mixer_tracks);
-+ self->_priv->mixer = NULL;
-+ self->_priv->mixer_tracks = NULL;
-+ }
-+
-+ self->_priv->timer_id = 0;
-+ return FALSE;
-+}
-+
-+/*
-+ * _acme_set_mixer
-+ * @mixer A pointer to mixer element
-+ * @data A pointer to user data (AcmeVolume instance to be modified)
-+ * @return A gboolean indicating success if Master track was found, failed otherwises.
-+ */
-+static gboolean
-+_acme_set_mixer(GstMixer *mixer, gpointer user_data)
-+{
-+ const GList *tracks;
-+
-+ for (tracks = gst_mixer_list_tracks (mixer); tracks != NULL; tracks = tracks->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (tracks->data);
-+
-+ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
-+ AcmeVolume *self;
-+
-+ self = ACME_VOLUME (user_data);
-+
-+ self->_priv->mixer = mixer;
-+ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
-+ return TRUE;
-+ }
-+
-+ continue;
-+ }
-+
-+ return FALSE;
-+}
-+
-+/* This is a modified version of code from gnome-media's gst-mixer */
-+static gboolean
-+acme_volume_open (AcmeVolume *self)
-+{
-+ gchar *mixer_device, **factory_and_device = NULL;
-+ GList *mixer_list;
-+
-+ if (self->_priv->timer_id != 0) {
-+ g_source_remove (self->_priv->timer_id);
-+ self->_priv->timer_id = 0;
-+ return TRUE;
-+ }
-+
-+ mixer_device = gconf_client_get_string (self->_priv->gconf_client, DEFAULT_MIXER_DEVICE_KEY, NULL);
-+ if (mixer_device != NULL)
-+ factory_and_device = g_strsplit (mixer_device, ":", 2);
-+
-+ if (factory_and_device != NULL && factory_and_device[0] != NULL) {
-+ GstElement *element;
-+
-+ element = gst_element_factory_make (factory_and_device[0], NULL);
-+
-+ if (element != NULL) {
-+ if (factory_and_device[1] != NULL &&
-+ g_object_class_find_property (G_OBJECT_GET_CLASS (element), "device"))
-+ g_object_set (G_OBJECT (element), "device", factory_and_device[1], NULL);
-+ gst_element_set_state (element, GST_STATE_READY);
-+
-+ if (GST_IS_MIXER (element))
-+ self->_priv->mixer = GST_MIXER (element);
-+ else {
-+ gst_element_set_state (element, GST_STATE_NULL);
-+ gst_object_unref (element);
-+ }
-+ }
-+ }
-+
-+ g_free (mixer_device);
-+ g_strfreev (factory_and_device);
-+
-+ if (self->_priv->mixer != NULL) {
-+ const GList *m;
-+ GSList *tracks, *t;
-+ GError *error = NULL;
-+
-+ /* Try to use tracks saved in GConf
-+ Note: errors need to be treated , for example if the user set a non type list for this key
-+ or if the elements type_list are not "matched" */
-+ tracks = gconf_client_get_list (self->_priv->gconf_client, DEFAULT_MIXER_TRACKS_KEY,
-+ GCONF_VALUE_STRING, &error);
-+
-+ if (error) {
-+ g_warning("ERROR: %s\n", error->message);
-+ g_error_free(error);
-+ }
-+
-+ /* We use these tracks ONLY if they are supported on the system with the following mixer */
-+ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (m->data);
-+
-+ for (t = tracks; t != NULL; t = t->next)
-+ if (!strcmp (t->data, track->label))
-+ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
-+
-+ }
-+
-+ g_slist_foreach (tracks, (GFunc)g_free, NULL);
-+ g_slist_free (tracks);
-+
-+ /* If no track stored in GConf is avaiable try to use Master track */
-+ if (self->_priv->mixer_tracks == NULL) {
-+ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (m->data);
-+
-+ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
-+ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
-+ break;
-+ }
-+ }
-+ }
-+
-+ if (self->_priv->mixer_tracks != NULL)
-+ return TRUE;
-+ else {
-+ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL);
-+ gst_object_unref (self->_priv->mixer);
-+ }
-+ }
-+
-+ /* Go through all elements of a certain class and check whether
-+ * they implement a mixer. If so, walk through the tracks and look
-+ * for first one named "volume".
-+ *
-+ * We should probably do something intelligent if we don't find an
-+ * appropriate mixer/track. But now we do something stupid...
-+ * everything just becomes a no-op.
-+ */
-+ mixer_list = gst_audio_default_registry_mixer_filter (_acme_set_mixer,
-+ TRUE,
-+ self);
-+
-+ if (mixer_list == NULL)
-+ return FALSE;
-+
-+ /* do not unref the mixer as we keep the ref for self->priv->mixer */
-+ g_list_free (mixer_list);
-+
-+ return TRUE;
-+}
-+
-+static void
-+acme_volume_close (AcmeVolume *self)
-+{
-+ self->_priv->timer_id = g_timeout_add_seconds (TIMEOUT,
-+ (GSourceFunc) acme_volume_close_real, self);
-+}
-+
-+static void
-+acme_volume_init (AcmeVolume *self)
-+{
-+ self->_priv = ACME_VOLUME_GET_PRIVATE (self);
-+ self->_priv->gconf_client = gconf_client_get_default ();
-+}
-+
-+static void
-+acme_volume_class_init (AcmeVolumeClass *klass)
-+{
-+ G_OBJECT_CLASS (klass)->finalize = acme_volume_finalize;
-+
-+ gst_init (NULL, NULL);
-+
-+ g_type_class_add_private (klass, sizeof (AcmeVolumePrivate));
-+}
-+
-+/* acme_volume_new
-+ * @return A singleton instance of type AcmeVolume
-+ */
-+AcmeVolume *
-+acme_volume_new (void)
-+{
-+ if (acme_volume_object == NULL) {
-+ acme_volume_object = g_object_new (ACME_TYPE_VOLUME, NULL);
-+ return ACME_VOLUME(acme_volume_object);
-+ }
-+ g_object_ref(acme_volume_object);
-+ return ACME_VOLUME(acme_volume_object);
-+}
-+
-diff -Nur gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h gnome-settings-daemon-2.29.91.1/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h
---- gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h 1970-01-01 02:00:00.000000000 +0200
-+++ gnome-settings-daemon-2.29.91.1/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h 2010-02-25 18:18:35.000000000 +0200
-@@ -0,0 +1,56 @@
-+/* acme-volume.h
-+
-+ Copyright (C) 2002, 2003 Bastien Nocera
-+ Copyright (C) 2004 Novell, Inc.
-+ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org>
-+
-+ 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., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA.
-+
-+ Author: Bastien Nocera <hadess@hadess.net>
-+ Jon Trowbridge <trow@ximian.com>
-+ */
-+
-+#include <glib-object.h>
-+
-+#define ACME_TYPE_VOLUME (acme_volume_get_type ())
-+#define ACME_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACME_TYPE_VOLUME, AcmeVolume))
-+#define ACME_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACME_TYPE_VOLUME, AcmeVolumeClass))
-+#define ACME_IS_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACME_TYPE_VOLUME))
-+#define ACME_VOLUME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACME_TYPE_VOLUME, AcmeVolumeClass))
-+
-+typedef struct AcmeVolume AcmeVolume;
-+typedef struct AcmeVolumeClass AcmeVolumeClass;
-+typedef struct AcmeVolumePrivate AcmeVolumePrivate;
-+
-+struct AcmeVolume {
-+ GObject parent;
-+ AcmeVolumePrivate *_priv;
-+};
-+
-+struct AcmeVolumeClass {
-+ GObjectClass parent;
-+};
-+
-+GType acme_volume_get_type (void);
-+AcmeVolume *acme_volume_new (void);
-+void acme_volume_set_mute (AcmeVolume *self, gboolean val);
-+void acme_volume_mute_toggle (AcmeVolume *self);
-+gboolean acme_volume_get_mute (AcmeVolume *self);
-+void acme_volume_set_volume (AcmeVolume *self, gint val);
-+gint acme_volume_get_volume (AcmeVolume *self);
-+gint acme_volume_get_threshold (AcmeVolume *self);
-+
-+
-diff -Nur gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/cut-n-paste/Makefile.am gnome-settings-daemon-2.29.91.1/plugins/media-keys/cut-n-paste/Makefile.am
---- gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/cut-n-paste/Makefile.am 2009-08-19 19:16:15.000000000 +0300
-+++ gnome-settings-daemon-2.29.91.1/plugins/media-keys/cut-n-paste/Makefile.am 2010-02-25 18:18:35.000000000 +0200
-@@ -4,16 +4,24 @@
-
- INCLUDES = \
- $(WARN_CFLAGS) \
-- $(VOLUME_CONTROL_CFLAGS) \
-- $(PULSE_CFLAGS) \
- $(NULL)
-
- libgvc_la_LIBADD = \
-- $(VOLUME_CONTROL_LIBS) \
-- $(PULSE_LIBS) \
- $(NULL)
-
- libgvc_la_SOURCES = \
-+ $(NULL)
-+
-+if HAVE_PULSE
-+INCLUDES += \
-+ $(VOLUME_CONTROL_CFLAGS) \
-+ $(PULSE_CFLAGS)
-+
-+libgvc_la_LIBADD += \
-+ $(VOLUME_CONTROL_LIBS) \
-+ $(PULSE_LIBS)
-+
-+libgvc_la_SOURCES += \
- gvc-mixer-stream.h \
- gvc-mixer-stream.c \
- gvc-channel-map.h \
-@@ -31,8 +39,22 @@
- gvc-mixer-event-role.h \
- gvc-mixer-event-role.c \
- gvc-mixer-control.h \
-- gvc-mixer-control.c \
-- $(NULL)
-+ gvc-mixer-control.c
-+endif
-+
-+if HAVE_GSTREAMER
-+INCLUDES += \
-+ $(SETTINGS_PLUGIN_CFLAGS) \
-+ $(AM_CFLAGS) \
-+ $(GST_CFLAGS)
-+
-+libgvc_la_LIBADD += \
-+ $(GST_LIBS)
-+
-+libgvc_la_SOURCES += \
-+ gvc-gstreamer-acme-vol.c \
-+ gvc-gstreamer-acme-vol.h
-+endif
-
- MAINTAINERCLEANFILES = \
- *~ \
-diff -Nur gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/gsd-media-keys-manager.c gnome-settings-daemon-2.29.91.1/plugins/media-keys/gsd-media-keys-manager.c
---- gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/gsd-media-keys-manager.c 2010-02-17 00:40:19.000000000 +0200
-+++ gnome-settings-daemon-2.29.91.1/plugins/media-keys/gsd-media-keys-manager.c 2010-02-25 18:21:00.000000000 +0200
-@@ -53,6 +53,8 @@
- #ifdef HAVE_PULSE
- #include <canberra-gtk.h>
- #include "gvc-mixer-control.h"
-+#elif defined(HAVE_GSTREAMER)
-+#include "gvc-gstreamer-acme-vol.h"
- #endif /* HAVE_PULSE */
-
- #define GSD_DBUS_PATH "/org/gnome/SettingsDaemon"
-@@ -84,6 +86,8 @@
- /* Volume bits */
- GvcMixerControl *volume;
- GvcMixerStream *stream;
-+#elif defined(HAVE_GSTREAMER)
-+ AcmeVolume *volume;
- #endif /* HAVE_PULSE */
- GtkWidget *dialog;
- GConfClient *conf_client;
-@@ -647,7 +651,9 @@
- CA_PROP_APPLICATION_ID, "org.gnome.VolumeControl",
- NULL);
- }
-+#endif /* HAVE_PULSE */
-
-+#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER)
- static void
- do_sound_action (GsdMediaKeysManager *manager,
- int type)
-@@ -656,7 +662,11 @@
- guint vol, norm_vol_step;
- int vol_step;
-
-+#ifdef HAVE_PULSE
- if (manager->priv->stream == NULL)
-+#else
-+ if (manager->priv->volume == NULL)
-+#endif
- return;
-
- vol_step = gconf_client_get_int (manager->priv->conf_client,
-@@ -666,18 +676,34 @@
- if (vol_step <= 0 || vol_step > 100)
- vol_step = VOLUME_STEP;
-
-+#ifdef HAVE_PULSE
- norm_vol_step = PA_VOLUME_NORM * vol_step / 100;
-
- /* FIXME: this is racy */
- vol = gvc_mixer_stream_get_volume (manager->priv->stream);
- muted = gvc_mixer_stream_get_is_muted (manager->priv->stream);
-
-+#else
-+ if (vol_step > 0) {
-+ gint threshold = acme_volume_get_threshold (manager->priv->volume);
-+ if (vol_step < threshold)
-+ vol_step = threshold;
-+ g_debug ("Using volume step of %d", vol_step);
-+ }
-+ vol = acme_volume_get_volume (manager->priv->volume);
-+ muted = acme_volume_get_mute (manager->priv->volume);
-+#endif
- switch (type) {
- case MUTE_KEY:
-+#ifdef HAVE_PULSE
- muted = !muted;
- gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
-+#else
-+ acme_volume_mute_toggle (manager->priv->volume);
-+#endif
- break;
- case VOLUME_DOWN_KEY:
-+#ifdef HAVE_PULSE
- if (!muted && (vol <= norm_vol_step)) {
- muted = !muted;
- vol = 0;
-@@ -689,11 +715,17 @@
- if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE)
- gvc_mixer_stream_push_volume (manager->priv->stream);
- }
-+#else
-+ if (!muted && (vol <= vol_step))
-+ acme_volume_mute_toggle (manager->priv->volume);
-+ acme_volume_set_volume (manager->priv->volume, vol - vol_step);
-+#endif
- break;
- case VOLUME_UP_KEY:
- if (muted) {
- muted = !muted;
- if (vol == 0) {
-+#ifdef HAVE_PULSE
- vol = vol + norm_vol_step;
- gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
- if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE)
-@@ -701,7 +733,15 @@
- } else {
- gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
- }
-+#else
-+ /* We need to unmute otherwise vol is blocked (and muted) */
-+ acme_volume_set_mute (manager->priv->volume, FALSE);
-+ }
-+ acme_volume_set_volume (manager->priv->volume, vol + vol_step);
-+
-+#endif
- } else {
-+#ifdef HAVE_PULSE
- if (vol < MAX_VOLUME) {
- if (vol + norm_vol_step >= MAX_VOLUME) {
- vol = MAX_VOLUME;
-@@ -711,13 +751,35 @@
- if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE)
- gvc_mixer_stream_push_volume (manager->priv->stream);
- }
-+#else
-+ acme_volume_set_volume (manager->priv->volume, vol + vol_step);
-+#endif
- }
- break;
- }
-
-+#ifdef HAVE_PULSE
- update_dialog (manager, vol, muted);
-+#else
-+ muted = acme_volume_get_mute (manager->priv->volume);
-+ vol = acme_volume_get_volume (manager->priv->volume);
-+
-+ /* FIXME: AcmeVolume should probably emit signals
-+ instead of doing it like this */
-+ dialog_init (manager);
-+ gsd_media_keys_window_set_volume_muted (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
-+ muted);
-+ gsd_media_keys_window_set_volume_level (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
-+ vol);
-+ gsd_media_keys_window_set_action (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
-+ GSD_MEDIA_KEYS_WINDOW_ACTION_VOLUME);
-+ dialog_show (manager);
-+#endif /* HAVE_PULSE */
- }
-
-+#endif /* defined(HAVE_PULSE) || defined(HAVE_GSTREAMER) */
-+
-+#ifdef HAVE_PULSE
- static void
- update_default_sink (GsdMediaKeysManager *manager)
- {
-@@ -879,9 +941,9 @@
- case MUTE_KEY:
- case VOLUME_DOWN_KEY:
- case VOLUME_UP_KEY:
--#ifdef HAVE_PULSE
-+#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER)
- do_sound_action (manager, type);
--#endif /* HAVE_PULSE */
-+#endif /* HAVE_PULSE || HAVE_GSTREAMER */
- break;
- case POWER_KEY:
- do_exit_action (manager);
-@@ -1081,6 +1143,10 @@
- gvc_mixer_control_open (manager->priv->volume);
-
- gnome_settings_profile_end ("gvc_mixer_control_new");
-+#elif defined(HAVE_GSTREAMER)
-+ gnome_settings_profile_start ("acme_volume_new");
-+ manager->priv->volume = acme_volume_new ();
-+ gnome_settings_profile_end ("acme_volume_new");
- #endif /* HAVE_PULSE */
- g_idle_add ((GSourceFunc) start_media_keys_idle_cb, manager);
-
-@@ -1153,6 +1219,7 @@
- g_object_unref (priv->stream);
- priv->stream = NULL;
- }
-+#elif defined(HAVE_GSTREAMER)
-
- if (priv->volume) {
- g_object_unref (priv->volume);
-diff -Nur gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/Makefile.am gnome-settings-daemon-2.29.91.1/plugins/media-keys/Makefile.am
---- gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/Makefile.am 2010-02-17 00:40:19.000000000 +0200
-+++ gnome-settings-daemon-2.29.91.1/plugins/media-keys/Makefile.am 2010-02-25 18:18:35.000000000 +0200
-@@ -3,13 +3,8 @@
-
- NULL =
-
--SUBDIRS =
--plugin_LTLIBRARIES =
--
--if HAVE_PULSE
--SUBDIRS += cut-n-paste
--plugin_LTLIBRARIES += libmedia-keys.la
--endif
-+SUBDIRS = cut-n-paste
-+plugin_LTLIBRARIES = libmedia-keys.la
-
- BUILT_SOURCES = \
- gsd-media-keys-manager-glue.h \
-@@ -100,16 +95,14 @@
-
- libmedia_keys_la_LIBADD = \
- $(top_builddir)/plugins/common/libcommon.la \
-- $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \
-+ $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \
- $(SETTINGS_PLUGIN_LIBS) \
- $(XF86MISC_LIBS)
-
- plugin_in_files = \
- media-keys.gnome-settings-plugin.in
-
--if HAVE_PULSE
- plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin)
--endif
-
- noinst_PROGRAMS = \
- test-media-keys \
-@@ -173,9 +166,7 @@
- $(XF86MISC_LIBS) \
- $(GST_LIBS)
-
--if HAVE_PULSE
- test_media_keys_LDADD += $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la
--endif
-
- gtkbuilderdir = $(pkgdatadir)
- gtkbuilder_DATA = \
diff --git a/extra/gnome-settings-daemon/gstreamer-volume-2.30.patch b/extra/gnome-settings-daemon/gstreamer-volume-2.30.patch
deleted file mode 100644
index 1169df1ed..000000000
--- a/extra/gnome-settings-daemon/gstreamer-volume-2.30.patch
+++ /dev/null
@@ -1,861 +0,0 @@
-diff -Nur gnome-settings-daemon-2.30.0.orig/configure.ac gnome-settings-daemon-2.30.0/configure.ac
---- gnome-settings-daemon-2.30.0.orig/configure.ac 2010-03-29 17:03:47.000000000 +0300
-+++ gnome-settings-daemon-2.30.0/configure.ac 2010-03-29 21:35:17.974333715 +0300
-@@ -251,6 +251,48 @@
- AC_SUBST(PULSE_CFLAGS)
- AC_SUBST(PULSE_LIBS)
-
-+dnl ==============================================
-+dnl GStreamer section
-+dnl ==============================================
-+GST_MAJORMINOR=auto
-+
-+AC_ARG_ENABLE(gstreamer,
-+AC_HELP_STRING([--enable-gstreamer],[use gstreamer if available (and optionally specify a version)]),
-+[case "${enableval}" in
-+ yes) ENABLE_GSTREAMER=yes ;;
-+ 0.10) ENABLE_GSTREAMER=yes && GST_MAJORMINOR=0.10 ;;
-+ no) ENABLE_GSTREAMER=no ;;
-+ *) AC_MSG_ERROR([
-+ *** Bad value ${enableval} for --enable-gstreamer
-+ *** Please use one of the following:
-+ *** --enable-gstreamer=0.10
-+ ]) ;;
-+esac],
-+[ENABLE_GSTREAMER=yes]) dnl Default value
-+
-+have_gstreamer=no
-+if test "x$ENABLE_GSTREAMER" = "xyes"; then
-+ GST_REQS=0.10.1.2
-+ PKGS="gstreamer-0.10 >= $GST_REQS gstreamer-plugins-base-0.10 >= $GST_REQS"
-+
-+ PKG_CHECK_MODULES(GST, $PKGS, have_gstreamer=yes,
-+ AC_MSG_RESULT([no]))
-+
-+ if test "x$have_pulse" = "xtrue"; then
-+ AC_MSG_ERROR([*** GStreamer & Pulseaudio both are selected ***])
-+ fi
-+
-+ if test "x$have_gstreamer" = "xyes"; then
-+ GST_LIBS="$GST_LIBS -lgstinterfaces-0.10 -lgstaudio-0.10"
-+ AC_DEFINE(HAVE_GSTREAMER,1,[enable gstreamer])
-+ fi
-+else
-+ AC_MSG_NOTICE([*** GStreamer support disabled ***])
-+fi
-+AM_CONDITIONAL(HAVE_GSTREAMER, test "x$have_gstreamer" = "xyes")
-+AC_SUBST(GST_LIBS)
-+AC_SUBST(GST_CFLAGS)
-+
- # ---------------------------------------------------------------------------
- # Enable Profiling
- # ---------------------------------------------------------------------------
-@@ -389,6 +431,7 @@
- dbus-1 system.d dir: ${DBUS_SYS_DIR}
-
- Libnotify support: ${have_libnotify}
-+ GStreamer support: ${have_gstreamer}
- PulseAudio support: ${have_pulse}
- Profiling support: ${enable_profiling}
- "
-diff -Nur gnome-settings-daemon-2.30.0.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c gnome-settings-daemon-2.30.0/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c
---- gnome-settings-daemon-2.30.0.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c 1970-01-01 02:00:00.000000000 +0200
-+++ gnome-settings-daemon-2.30.0/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c 2010-03-29 21:35:17.977471980 +0300
-@@ -0,0 +1,402 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-+
-+/* acme-volume.c
-+
-+ Copyright (C) 2002, 2003 Bastien Nocera
-+ Copyright (C) 2004 Novell, Inc.
-+ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org>
-+
-+ 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., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA.
-+
-+ Author: Bastien Nocera <hadess@hadess.net>
-+ Jon Trowbridge <trow@ximian.com>
-+*/
-+
-+#include "config.h"
-+#include "gvc-gstreamer-acme-vol.h"
-+
-+#include <gst/gst.h>
-+#include <gst/audio/mixerutils.h>
-+#include <gst/interfaces/mixer.h>
-+#include <gst/interfaces/propertyprobe.h>
-+
-+#include <gconf/gconf-client.h>
-+
-+#include <string.h>
-+
-+#define TIMEOUT 4
-+
-+#define DEFAULT_MIXER_DEVICE_KEY "/desktop/gnome/sound/default_mixer_device"
-+#define DEFAULT_MIXER_TRACKS_KEY "/desktop/gnome/sound/default_mixer_tracks"
-+
-+#define ACME_VOLUME_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ACME_TYPE_VOLUME, AcmeVolumePrivate))
-+
-+struct AcmeVolumePrivate {
-+ GstMixer *mixer;
-+ GList *mixer_tracks;
-+ guint timer_id;
-+ gdouble volume;
-+ gboolean mute;
-+ GConfClient *gconf_client;
-+};
-+
-+G_DEFINE_TYPE (AcmeVolume, acme_volume, G_TYPE_OBJECT)
-+
-+static gboolean acme_volume_open (AcmeVolume *acme);
-+static void acme_volume_close (AcmeVolume *acme);
-+static gboolean acme_volume_close_real (AcmeVolume *self);
-+
-+static gpointer acme_volume_object = NULL;
-+
-+static void
-+acme_volume_finalize (GObject *object)
-+{
-+ AcmeVolume *self;
-+
-+ g_return_if_fail (object != NULL);
-+ g_return_if_fail (ACME_IS_VOLUME (object));
-+
-+ self = ACME_VOLUME (object);
-+
-+ if (self->_priv->timer_id != 0)
-+ g_source_remove (self->_priv->timer_id);
-+ acme_volume_close_real (self);
-+
-+ if (self->_priv->gconf_client != NULL) {
-+ g_object_unref (self->_priv->gconf_client);
-+ self->_priv->gconf_client = NULL;
-+ }
-+
-+ G_OBJECT_CLASS (acme_volume_parent_class)->finalize (object);
-+}
-+
-+void
-+acme_volume_set_mute (AcmeVolume *self, gboolean val)
-+{
-+ GList *t;
-+
-+ g_return_if_fail(ACME_IS_VOLUME(self));
-+ g_return_if_fail(acme_volume_open(self));
-+
-+ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
-+ gst_mixer_set_mute (self->_priv->mixer, track, val);
-+ }
-+ self->_priv->mute = val;
-+ acme_volume_close (self);
-+}
-+
-+static void
-+update_state (AcmeVolume * self)
-+{
-+ gint *volumes, n;
-+ gdouble vol = 0;
-+ GstMixerTrack *track = GST_MIXER_TRACK (self->_priv->mixer_tracks->data);
-+
-+ /* update mixer by getting volume */
-+ volumes = g_new0 (gint, track->num_channels);
-+ gst_mixer_get_volume (self->_priv->mixer, track, volumes);
-+ for (n = 0; n < track->num_channels; n++)
-+ vol += volumes[n];
-+ g_free (volumes);
-+ vol /= track->num_channels;
-+ vol = 100 * vol / (track->max_volume - track->min_volume);
-+
-+ /* update mute flag, and volume if not muted */
-+ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE))
-+ self->_priv->mute = TRUE;
-+ self->_priv->volume = vol;
-+}
-+
-+gboolean
-+acme_volume_get_mute (AcmeVolume *self)
-+{
-+ g_return_val_if_fail(acme_volume_open(self), FALSE);
-+
-+ update_state (self);
-+ acme_volume_close (self);
-+
-+ return self->_priv->mute;
-+}
-+
-+gint
-+acme_volume_get_volume (AcmeVolume *self)
-+{
-+
-+ g_return_val_if_fail(acme_volume_open(self), 0);
-+
-+ update_state (self);
-+
-+ acme_volume_close (self);
-+
-+ return (gint) (self->_priv->volume + 0.5);
-+}
-+
-+void
-+acme_volume_set_volume (AcmeVolume *self, gint val)
-+{
-+ GList *t;
-+
-+ g_return_if_fail(acme_volume_open(self));
-+
-+ val = CLAMP (val, 0, 100);
-+
-+ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
-+ gint *volumes, n;
-+ gdouble scale = (track->max_volume - track->min_volume) / 100.0;
-+ gint vol = (gint) (val * scale + track->min_volume + 0.5);
-+
-+ volumes = g_new (gint, track->num_channels);
-+ for (n = 0; n < track->num_channels; n++)
-+ volumes[n] = vol;
-+ gst_mixer_set_volume (self->_priv->mixer, track, volumes);
-+ g_free (volumes);
-+ }
-+
-+ /* update state */
-+ self->_priv->volume = val;
-+
-+ acme_volume_close (self);
-+}
-+
-+void
-+acme_volume_mute_toggle (AcmeVolume *self)
-+{
-+ gboolean muted;
-+
-+ g_return_if_fail (self != NULL);
-+ g_return_if_fail (ACME_IS_VOLUME(self));
-+
-+ muted = acme_volume_get_mute(self);
-+ acme_volume_set_mute(self, !muted);
-+}
-+
-+gint
-+acme_volume_get_threshold (AcmeVolume *self)
-+{
-+ GList *t;
-+ gint steps = 101;
-+
-+ g_return_val_if_fail(acme_volume_open(self), 1);
-+
-+ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
-+ gint track_steps = track->max_volume - track->min_volume;
-+ if (track_steps > 0 && track_steps < steps)
-+ steps = track_steps;
-+ }
-+
-+ acme_volume_close (self);
-+
-+ return 100 / steps + 1;
-+}
-+
-+static gboolean
-+acme_volume_close_real (AcmeVolume *self)
-+{
-+ if (self->_priv->mixer != NULL)
-+ {
-+ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL);
-+ gst_object_unref (GST_OBJECT (self->_priv->mixer));
-+ g_list_foreach (self->_priv->mixer_tracks, (GFunc) g_object_unref, NULL);
-+ g_list_free (self->_priv->mixer_tracks);
-+ self->_priv->mixer = NULL;
-+ self->_priv->mixer_tracks = NULL;
-+ }
-+
-+ self->_priv->timer_id = 0;
-+ return FALSE;
-+}
-+
-+/*
-+ * _acme_set_mixer
-+ * @mixer A pointer to mixer element
-+ * @data A pointer to user data (AcmeVolume instance to be modified)
-+ * @return A gboolean indicating success if Master track was found, failed otherwises.
-+ */
-+static gboolean
-+_acme_set_mixer(GstMixer *mixer, gpointer user_data)
-+{
-+ const GList *tracks;
-+
-+ for (tracks = gst_mixer_list_tracks (mixer); tracks != NULL; tracks = tracks->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (tracks->data);
-+
-+ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
-+ AcmeVolume *self;
-+
-+ self = ACME_VOLUME (user_data);
-+
-+ self->_priv->mixer = mixer;
-+ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
-+ return TRUE;
-+ }
-+
-+ continue;
-+ }
-+
-+ return FALSE;
-+}
-+
-+/* This is a modified version of code from gnome-media's gst-mixer */
-+static gboolean
-+acme_volume_open (AcmeVolume *self)
-+{
-+ gchar *mixer_device, **factory_and_device = NULL;
-+ GList *mixer_list;
-+
-+ if (self->_priv->timer_id != 0) {
-+ g_source_remove (self->_priv->timer_id);
-+ self->_priv->timer_id = 0;
-+ return TRUE;
-+ }
-+
-+ mixer_device = gconf_client_get_string (self->_priv->gconf_client, DEFAULT_MIXER_DEVICE_KEY, NULL);
-+ if (mixer_device != NULL)
-+ factory_and_device = g_strsplit (mixer_device, ":", 2);
-+
-+ if (factory_and_device != NULL && factory_and_device[0] != NULL) {
-+ GstElement *element;
-+
-+ element = gst_element_factory_make (factory_and_device[0], NULL);
-+
-+ if (element != NULL) {
-+ if (factory_and_device[1] != NULL &&
-+ g_object_class_find_property (G_OBJECT_GET_CLASS (element), "device"))
-+ g_object_set (G_OBJECT (element), "device", factory_and_device[1], NULL);
-+ gst_element_set_state (element, GST_STATE_READY);
-+
-+ if (GST_IS_MIXER (element))
-+ self->_priv->mixer = GST_MIXER (element);
-+ else {
-+ gst_element_set_state (element, GST_STATE_NULL);
-+ gst_object_unref (element);
-+ }
-+ }
-+ }
-+
-+ g_free (mixer_device);
-+ g_strfreev (factory_and_device);
-+
-+ if (self->_priv->mixer != NULL) {
-+ const GList *m;
-+ GSList *tracks, *t;
-+ GError *error = NULL;
-+
-+ /* Try to use tracks saved in GConf
-+ Note: errors need to be treated , for example if the user set a non type list for this key
-+ or if the elements type_list are not "matched" */
-+ tracks = gconf_client_get_list (self->_priv->gconf_client, DEFAULT_MIXER_TRACKS_KEY,
-+ GCONF_VALUE_STRING, &error);
-+
-+ if (error) {
-+ g_warning("ERROR: %s\n", error->message);
-+ g_error_free(error);
-+ }
-+
-+ /* We use these tracks ONLY if they are supported on the system with the following mixer */
-+ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (m->data);
-+
-+ for (t = tracks; t != NULL; t = t->next)
-+ if (!strcmp (t->data, track->label))
-+ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
-+
-+ }
-+
-+ g_slist_foreach (tracks, (GFunc)g_free, NULL);
-+ g_slist_free (tracks);
-+
-+ /* If no track stored in GConf is avaiable try to use Master track */
-+ if (self->_priv->mixer_tracks == NULL) {
-+ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (m->data);
-+
-+ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
-+ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
-+ break;
-+ }
-+ }
-+ }
-+
-+ if (self->_priv->mixer_tracks != NULL)
-+ return TRUE;
-+ else {
-+ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL);
-+ gst_object_unref (self->_priv->mixer);
-+ }
-+ }
-+
-+ /* Go through all elements of a certain class and check whether
-+ * they implement a mixer. If so, walk through the tracks and look
-+ * for first one named "volume".
-+ *
-+ * We should probably do something intelligent if we don't find an
-+ * appropriate mixer/track. But now we do something stupid...
-+ * everything just becomes a no-op.
-+ */
-+ mixer_list = gst_audio_default_registry_mixer_filter (_acme_set_mixer,
-+ TRUE,
-+ self);
-+
-+ if (mixer_list == NULL)
-+ return FALSE;
-+
-+ /* do not unref the mixer as we keep the ref for self->priv->mixer */
-+ g_list_free (mixer_list);
-+
-+ return TRUE;
-+}
-+
-+static void
-+acme_volume_close (AcmeVolume *self)
-+{
-+ self->_priv->timer_id = g_timeout_add_seconds (TIMEOUT,
-+ (GSourceFunc) acme_volume_close_real, self);
-+}
-+
-+static void
-+acme_volume_init (AcmeVolume *self)
-+{
-+ self->_priv = ACME_VOLUME_GET_PRIVATE (self);
-+ self->_priv->gconf_client = gconf_client_get_default ();
-+}
-+
-+static void
-+acme_volume_class_init (AcmeVolumeClass *klass)
-+{
-+ G_OBJECT_CLASS (klass)->finalize = acme_volume_finalize;
-+
-+ gst_init (NULL, NULL);
-+
-+ g_type_class_add_private (klass, sizeof (AcmeVolumePrivate));
-+}
-+
-+/* acme_volume_new
-+ * @return A singleton instance of type AcmeVolume
-+ */
-+AcmeVolume *
-+acme_volume_new (void)
-+{
-+ if (acme_volume_object == NULL) {
-+ acme_volume_object = g_object_new (ACME_TYPE_VOLUME, NULL);
-+ return ACME_VOLUME(acme_volume_object);
-+ }
-+ g_object_ref(acme_volume_object);
-+ return ACME_VOLUME(acme_volume_object);
-+}
-+
-diff -Nur gnome-settings-daemon-2.30.0.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h gnome-settings-daemon-2.30.0/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h
---- gnome-settings-daemon-2.30.0.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h 1970-01-01 02:00:00.000000000 +0200
-+++ gnome-settings-daemon-2.30.0/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h 2010-03-29 21:35:17.977471980 +0300
-@@ -0,0 +1,56 @@
-+/* acme-volume.h
-+
-+ Copyright (C) 2002, 2003 Bastien Nocera
-+ Copyright (C) 2004 Novell, Inc.
-+ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org>
-+
-+ 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., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA.
-+
-+ Author: Bastien Nocera <hadess@hadess.net>
-+ Jon Trowbridge <trow@ximian.com>
-+ */
-+
-+#include <glib-object.h>
-+
-+#define ACME_TYPE_VOLUME (acme_volume_get_type ())
-+#define ACME_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACME_TYPE_VOLUME, AcmeVolume))
-+#define ACME_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACME_TYPE_VOLUME, AcmeVolumeClass))
-+#define ACME_IS_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACME_TYPE_VOLUME))
-+#define ACME_VOLUME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACME_TYPE_VOLUME, AcmeVolumeClass))
-+
-+typedef struct AcmeVolume AcmeVolume;
-+typedef struct AcmeVolumeClass AcmeVolumeClass;
-+typedef struct AcmeVolumePrivate AcmeVolumePrivate;
-+
-+struct AcmeVolume {
-+ GObject parent;
-+ AcmeVolumePrivate *_priv;
-+};
-+
-+struct AcmeVolumeClass {
-+ GObjectClass parent;
-+};
-+
-+GType acme_volume_get_type (void);
-+AcmeVolume *acme_volume_new (void);
-+void acme_volume_set_mute (AcmeVolume *self, gboolean val);
-+void acme_volume_mute_toggle (AcmeVolume *self);
-+gboolean acme_volume_get_mute (AcmeVolume *self);
-+void acme_volume_set_volume (AcmeVolume *self, gint val);
-+gint acme_volume_get_volume (AcmeVolume *self);
-+gint acme_volume_get_threshold (AcmeVolume *self);
-+
-+
-diff -Nur gnome-settings-daemon-2.30.0.orig/plugins/media-keys/cut-n-paste/Makefile.am gnome-settings-daemon-2.30.0/plugins/media-keys/cut-n-paste/Makefile.am
---- gnome-settings-daemon-2.30.0.orig/plugins/media-keys/cut-n-paste/Makefile.am 2009-08-12 12:15:00.000000000 +0300
-+++ gnome-settings-daemon-2.30.0/plugins/media-keys/cut-n-paste/Makefile.am 2010-03-29 21:35:17.977471980 +0300
-@@ -4,16 +4,24 @@
-
- INCLUDES = \
- $(WARN_CFLAGS) \
-- $(VOLUME_CONTROL_CFLAGS) \
-- $(PULSE_CFLAGS) \
- $(NULL)
-
- libgvc_la_LIBADD = \
-- $(VOLUME_CONTROL_LIBS) \
-- $(PULSE_LIBS) \
- $(NULL)
-
- libgvc_la_SOURCES = \
-+ $(NULL)
-+
-+if HAVE_PULSE
-+INCLUDES += \
-+ $(VOLUME_CONTROL_CFLAGS) \
-+ $(PULSE_CFLAGS)
-+
-+libgvc_la_LIBADD += \
-+ $(VOLUME_CONTROL_LIBS) \
-+ $(PULSE_LIBS)
-+
-+libgvc_la_SOURCES += \
- gvc-mixer-stream.h \
- gvc-mixer-stream.c \
- gvc-channel-map.h \
-@@ -31,8 +39,22 @@
- gvc-mixer-event-role.h \
- gvc-mixer-event-role.c \
- gvc-mixer-control.h \
-- gvc-mixer-control.c \
-- $(NULL)
-+ gvc-mixer-control.c
-+endif
-+
-+if HAVE_GSTREAMER
-+INCLUDES += \
-+ $(SETTINGS_PLUGIN_CFLAGS) \
-+ $(AM_CFLAGS) \
-+ $(GST_CFLAGS)
-+
-+libgvc_la_LIBADD += \
-+ $(GST_LIBS)
-+
-+libgvc_la_SOURCES += \
-+ gvc-gstreamer-acme-vol.c \
-+ gvc-gstreamer-acme-vol.h
-+endif
-
- MAINTAINERCLEANFILES = \
- *~ \
-diff -Nur gnome-settings-daemon-2.30.0.orig/plugins/media-keys/gsd-media-keys-manager.c gnome-settings-daemon-2.30.0/plugins/media-keys/gsd-media-keys-manager.c
---- gnome-settings-daemon-2.30.0.orig/plugins/media-keys/gsd-media-keys-manager.c 2010-03-29 11:15:04.000000000 +0300
-+++ gnome-settings-daemon-2.30.0/plugins/media-keys/gsd-media-keys-manager.c 2010-03-29 21:56:13.293985485 +0300
-@@ -53,6 +53,8 @@
- #ifdef HAVE_PULSE
- #include <canberra-gtk.h>
- #include "gvc-mixer-control.h"
-+#elif defined(HAVE_GSTREAMER)
-+#include "gvc-gstreamer-acme-vol.h"
- #endif /* HAVE_PULSE */
-
- #define GSD_DBUS_PATH "/org/gnome/SettingsDaemon"
-@@ -78,11 +80,12 @@
- /* Volume bits */
- GvcMixerControl *volume;
- GvcMixerStream *stream;
-+#elif defined(HAVE_GSTREAMER)
-+ AcmeVolume *volume;
- #endif /* HAVE_PULSE */
- GtkWidget *dialog;
- GConfClient *conf_client;
-- GVolumeMonitor *volume_monitor;
--
-+ GVolumeMonitor *volume_monitor;
- /* Multihead stuff */
- GdkScreen *current_screen;
- GSList *screens;
-@@ -601,15 +604,15 @@
- if (score < SCORE_CAN_EJECT) {
- fav_drive = drive;
- score = SCORE_CAN_EJECT;
-- }
-+ }
- if (g_drive_has_media (drive) == FALSE)
- continue;
- if (score < SCORE_HAS_MEDIA) {
- fav_drive = drive;
- score = SCORE_HAS_MEDIA;
- break;
-- }
-- }
-+ }
-+ }
-
- /* Show the dialogue */
- dialog_init (manager);
-@@ -632,7 +635,7 @@
- NULL, NULL,
- (GAsyncReadyCallback) do_eject_action_cb,
- manager);
-- g_object_unref (fav_drive);
-+ g_object_unref (fav_drive);
- }
-
- static void
-@@ -675,7 +678,9 @@
- CA_PROP_APPLICATION_ID, "org.gnome.VolumeControl",
- NULL);
- }
-+#endif /* HAVE_PULSE */
-
-+#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER)
- static void
- do_sound_action (GsdMediaKeysManager *manager,
- int type)
-@@ -685,7 +690,11 @@
- int vol_step;
- gboolean sound_changed;
-
-+#ifdef HAVE_PULSE
- if (manager->priv->stream == NULL)
-+#else
-+ if (manager->priv->volume == NULL)
-+#endif
- return;
-
- vol_step = gconf_client_get_int (manager->priv->conf_client,
-@@ -695,6 +704,7 @@
- if (vol_step <= 0 || vol_step > 100)
- vol_step = VOLUME_STEP;
-
-+#ifdef HAVE_PULSE
- norm_vol_step = PA_VOLUME_NORM * vol_step / 100;
-
- /* FIXME: this is racy */
-@@ -702,13 +712,28 @@
- muted = gvc_mixer_stream_get_is_muted (manager->priv->stream);
- sound_changed = FALSE;
-
-+#else
-+ if (vol_step > 0) {
-+ gint threshold = acme_volume_get_threshold (manager->priv->volume);
-+ if (vol_step < threshold)
-+ vol_step = threshold;
-+ g_debug ("Using volume step of %d", vol_step);
-+ }
-+ vol = acme_volume_get_volume (manager->priv->volume);
-+ muted = acme_volume_get_mute (manager->priv->volume);
-+#endif
- switch (type) {
- case MUTE_KEY:
-+#ifdef HAVE_PULSE
- muted = !muted;
- gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
- sound_changed = TRUE;
-+#else
-+ acme_volume_mute_toggle (manager->priv->volume);
-+#endif
- break;
- case VOLUME_DOWN_KEY:
-+#ifdef HAVE_PULSE
- if (!muted && (vol <= norm_vol_step)) {
- muted = !muted;
- vol = 0;
-@@ -722,24 +747,37 @@
- if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE) {
- gvc_mixer_stream_push_volume (manager->priv->stream);
- sound_changed = TRUE;
-- }
- }
-+#else
-+ if (!muted && (vol <= vol_step))
-+ acme_volume_mute_toggle (manager->priv->volume);
-+ acme_volume_set_volume (manager->priv->volume, vol - vol_step);
-+#endif
- break;
- case VOLUME_UP_KEY:
- if (muted) {
- muted = !muted;
- if (vol == 0) {
-+#ifdef HAVE_PULSE
- vol = vol + norm_vol_step;
- gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
- if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE) {
- gvc_mixer_stream_push_volume (manager->priv->stream);
- sound_changed = TRUE;
-- }
-+ }
- } else {
- gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
- sound_changed = TRUE;
- }
-+#else
-+ /* We need to unmute otherwise vol is blocked (and muted) */
-+ acme_volume_set_mute (manager->priv->volume, FALSE);
-+ }
-+ acme_volume_set_volume (manager->priv->volume, vol + vol_step);
-+
-+#endif
- } else {
-+#ifdef HAVE_PULSE
- if (vol < MAX_VOLUME) {
- if (vol + norm_vol_step >= MAX_VOLUME) {
- vol = MAX_VOLUME;
-@@ -751,13 +789,35 @@
- sound_changed = TRUE;
- }
- }
-+#else
-+ acme_volume_set_volume (manager->priv->volume, vol + vol_step);
-+#endif
- }
- break;
- }
-
-+#ifdef HAVE_PULSE
- update_dialog (manager, vol, muted, sound_changed);
-+#else
-+ muted = acme_volume_get_mute (manager->priv->volume);
-+ vol = acme_volume_get_volume (manager->priv->volume);
-+
-+ /* FIXME: AcmeVolume should probably emit signals
-+ instead of doing it like this */
-+ dialog_init (manager);
-+ gsd_media_keys_window_set_volume_muted (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
-+ muted);
-+ gsd_media_keys_window_set_volume_level (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
-+ vol);
-+ gsd_media_keys_window_set_action (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
-+ GSD_MEDIA_KEYS_WINDOW_ACTION_VOLUME);
-+ dialog_show (manager);
-+#endif /* HAVE_PULSE */
- }
-
-+#endif /* defined(HAVE_PULSE) || defined(HAVE_GSTREAMER) */
-+
-+#ifdef HAVE_PULSE
- static void
- update_default_sink (GsdMediaKeysManager *manager)
- {
-@@ -919,9 +979,9 @@
- case MUTE_KEY:
- case VOLUME_DOWN_KEY:
- case VOLUME_UP_KEY:
--#ifdef HAVE_PULSE
-+#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER)
- do_sound_action (manager, type);
--#endif /* HAVE_PULSE */
-+#endif /* HAVE_PULSE || HAVE_GSTREAMER */
- break;
- case POWER_KEY:
- do_exit_action (manager);
-@@ -1064,7 +1124,7 @@
-
- g_debug ("Starting media_keys manager");
- gnome_settings_profile_start (NULL);
-- manager->priv->volume_monitor = g_volume_monitor_get ();
-+ manager->priv->volume_monitor = g_volume_monitor_get();
- manager->priv->conf_client = gconf_client_get_default ();
-
- gconf_client_add_dir (manager->priv->conf_client,
-@@ -1122,6 +1182,10 @@
- gvc_mixer_control_open (manager->priv->volume);
-
- gnome_settings_profile_end ("gvc_mixer_control_new");
-+#elif defined(HAVE_GSTREAMER)
-+ gnome_settings_profile_start ("acme_volume_new");
-+ manager->priv->volume = acme_volume_new ();
-+ gnome_settings_profile_end ("acme_volume_new");
- #endif /* HAVE_PULSE */
- g_idle_add ((GSourceFunc) start_media_keys_idle_cb, manager);
-
-@@ -1199,6 +1263,7 @@
- g_object_unref (priv->stream);
- priv->stream = NULL;
- }
-+#elif defined(HAVE_GSTREAMER)
-
- if (priv->volume) {
- g_object_unref (priv->volume);
-diff -Nur gnome-settings-daemon-2.30.0.orig/plugins/media-keys/Makefile.am gnome-settings-daemon-2.30.0/plugins/media-keys/Makefile.am
---- gnome-settings-daemon-2.30.0.orig/plugins/media-keys/Makefile.am 2010-03-10 13:59:38.000000000 +0200
-+++ gnome-settings-daemon-2.30.0/plugins/media-keys/Makefile.am 2010-03-29 22:18:20.077410522 +0300
-@@ -3,13 +3,8 @@
-
- NULL =
-
--SUBDIRS =
--plugin_LTLIBRARIES =
--
--if HAVE_PULSE
--SUBDIRS += cut-n-paste
--plugin_LTLIBRARIES += libmedia-keys.la
--endif
-+SUBDIRS = cut-n-paste
-+plugin_LTLIBRARIES = libmedia-keys.la
-
- BUILT_SOURCES = \
- gsd-media-keys-manager-glue.h \
-@@ -100,7 +95,7 @@
-
- libmedia_keys_la_LIBADD = \
- $(top_builddir)/plugins/common/libcommon.la \
-- $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \
-+ $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \
- $(SETTINGS_PLUGIN_LIBS) \
- $(XF86MISC_LIBS) \
- -lm
-@@ -108,9 +103,7 @@
- plugin_in_files = \
- media-keys.gnome-settings-plugin.in
-
--if HAVE_PULSE
- plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin)
--endif
-
- noinst_PROGRAMS = \
- test-media-keys \
-@@ -176,9 +169,7 @@
- $(GST_LIBS) \
- -lm
-
--if HAVE_PULSE
- test_media_keys_LDADD += $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la
--endif
-
- gtkbuilderdir = $(pkgdatadir)
- gtkbuilder_DATA = \
diff --git a/extra/gnome-settings-daemon/gstreamer-volume.patch b/extra/gnome-settings-daemon/gstreamer-volume.patch
deleted file mode 100644
index 0a32dcd7d..000000000
--- a/extra/gnome-settings-daemon/gstreamer-volume.patch
+++ /dev/null
@@ -1,808 +0,0 @@
-diff -ruN gnome-settings-daemon-2.27.91/configure.ac gnome-settings-daemon-2.27.91.gst/configure.ac
---- gnome-settings-daemon-2.27.91/configure.ac 2009-08-24 12:20:55.000000000 +0200
-+++ gnome-settings-daemon-2.27.91.gst/configure.ac 2009-08-24 15:25:47.000000000 +0200
-@@ -257,6 +257,48 @@
- AC_SUBST(PULSE_CFLAGS)
- AC_SUBST(PULSE_LIBS)
-
-+dnl ==============================================
-+dnl GStreamer section
-+dnl ==============================================
-+GST_MAJORMINOR=auto
-+
-+AC_ARG_ENABLE(gstreamer,
-+AC_HELP_STRING([--enable-gstreamer],[use gstreamer if available (and optionally specify a version)]),
-+[case "${enableval}" in
-+ yes) ENABLE_GSTREAMER=yes ;;
-+ 0.10) ENABLE_GSTREAMER=yes && GST_MAJORMINOR=0.10 ;;
-+ no) ENABLE_GSTREAMER=no ;;
-+ *) AC_MSG_ERROR([
-+ *** Bad value ${enableval} for --enable-gstreamer
-+ *** Please use one of the following:
-+ *** --enable-gstreamer=0.10
-+ ]) ;;
-+esac],
-+[ENABLE_GSTREAMER=yes]) dnl Default value
-+
-+have_gstreamer=no
-+if test "x$ENABLE_GSTREAMER" = "xyes"; then
-+ GST_REQS=0.10.1.2
-+ PKGS="gstreamer-0.10 >= $GST_REQS gstreamer-plugins-base-0.10 >= $GST_REQS"
-+
-+ PKG_CHECK_MODULES(GST, $PKGS, have_gstreamer=yes,
-+ AC_MSG_RESULT([no]))
-+
-+ if test "x$have_pulse" = "xtrue"; then
-+ AC_MSG_ERROR([*** GStreamer & Pulseaudio both are selected ***])
-+ fi
-+
-+ if test "x$have_gstreamer" = "xyes"; then
-+ GST_LIBS="$GST_LIBS -lgstinterfaces-0.10 -lgstaudio-0.10"
-+ AC_DEFINE(HAVE_GSTREAMER,1,[enable gstreamer])
-+ fi
-+else
-+ AC_MSG_NOTICE([*** GStreamer support disabled ***])
-+fi
-+AM_CONDITIONAL(HAVE_GSTREAMER, test "x$have_gstreamer" = "xyes")
-+AC_SUBST(GST_LIBS)
-+AC_SUBST(GST_CFLAGS)
-+
- # ---------------------------------------------------------------------------
- # Enable Profiling
- # ---------------------------------------------------------------------------
-@@ -395,6 +437,7 @@
- dbus-1 system.d dir: ${DBUS_SYS_DIR}
-
- Libnotify support: ${have_libnotify}
-+ GStreamer support: ${have_gstreamer}
- PulseAudio support: ${have_pulse}
- Profiling support: ${enable_profiling}
- "
-diff -ruN gnome-settings-daemon-2.27.91/plugins/media-keys/Makefile.am gnome-settings-daemon-2.27.91.gst/plugins/media-keys/Makefile.am
---- gnome-settings-daemon-2.27.91/plugins/media-keys/Makefile.am 2009-07-14 11:21:12.000000000 +0200
-+++ gnome-settings-daemon-2.27.91.gst/plugins/media-keys/Makefile.am 2009-08-24 15:25:47.000000000 +0200
-@@ -1,12 +1,7 @@
- NULL =
-
--SUBDIRS =
--plugin_LTLIBRARIES =
--
--if HAVE_PULSE
--SUBDIRS += cut-n-paste
--plugin_LTLIBRARIES += libmedia-keys.la
--endif
-+SUBDIRS = cut-n-paste
-+plugin_LTLIBRARIES = libmedia-keys.la
-
- BUILT_SOURCES = \
- gsd-media-keys-manager-glue.h \
-@@ -54,16 +49,14 @@
-
- libmedia_keys_la_LIBADD = \
- $(top_builddir)/plugins/common/libcommon.la \
-- $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \
-+ $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \
- $(SETTINGS_PLUGIN_LIBS) \
- $(XF86MISC_LIBS)
-
- plugin_in_files = \
- media-keys.gnome-settings-plugin.in
-
--if HAVE_PULSE
- plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin)
--endif
-
- noinst_PROGRAMS = \
- test-media-keys \
-@@ -124,9 +117,7 @@
- $(XF86MISC_LIBS) \
- $(GST_LIBS)
-
--if HAVE_PULSE
- test_media_keys_LDADD += $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la
--endif
-
- gtkbuilderdir = $(pkgdatadir)
- gtkbuilder_DATA = \
-diff -ruN gnome-settings-daemon-2.27.91/plugins/media-keys/cut-n-paste/Makefile.am gnome-settings-daemon-2.27.91.gst/plugins/media-keys/cut-n-paste/Makefile.am
---- gnome-settings-daemon-2.27.91/plugins/media-keys/cut-n-paste/Makefile.am 2009-08-12 11:15:00.000000000 +0200
-+++ gnome-settings-daemon-2.27.91.gst/plugins/media-keys/cut-n-paste/Makefile.am 2009-08-24 15:25:47.000000000 +0200
-@@ -4,16 +4,24 @@
-
- INCLUDES = \
- $(WARN_CFLAGS) \
-- $(VOLUME_CONTROL_CFLAGS) \
-- $(PULSE_CFLAGS) \
- $(NULL)
-
- libgvc_la_LIBADD = \
-- $(VOLUME_CONTROL_LIBS) \
-- $(PULSE_LIBS) \
- $(NULL)
-
- libgvc_la_SOURCES = \
-+ $(NULL)
-+
-+if HAVE_PULSE
-+INCLUDES += \
-+ $(VOLUME_CONTROL_CFLAGS) \
-+ $(PULSE_CFLAGS)
-+
-+libgvc_la_LIBADD += \
-+ $(VOLUME_CONTROL_LIBS) \
-+ $(PULSE_LIBS)
-+
-+libgvc_la_SOURCES += \
- gvc-mixer-stream.h \
- gvc-mixer-stream.c \
- gvc-channel-map.h \
-@@ -31,8 +39,22 @@
- gvc-mixer-event-role.h \
- gvc-mixer-event-role.c \
- gvc-mixer-control.h \
-- gvc-mixer-control.c \
-- $(NULL)
-+ gvc-mixer-control.c
-+endif
-+
-+if HAVE_GSTREAMER
-+INCLUDES += \
-+ $(SETTINGS_PLUGIN_CFLAGS) \
-+ $(AM_CFLAGS) \
-+ $(GST_CFLAGS)
-+
-+libgvc_la_LIBADD += \
-+ $(GST_LIBS)
-+
-+libgvc_la_SOURCES += \
-+ gvc-gstreamer-acme-vol.c \
-+ gvc-gstreamer-acme-vol.h
-+endif
-
- MAINTAINERCLEANFILES = \
- *~ \
-diff -ruN gnome-settings-daemon-2.27.91/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c gnome-settings-daemon-2.27.91.gst/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c
---- gnome-settings-daemon-2.27.91/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c 1970-01-01 01:00:00.000000000 +0100
-+++ gnome-settings-daemon-2.27.91.gst/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c 2009-08-24 15:25:47.000000000 +0200
-@@ -0,0 +1,402 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-+
-+/* acme-volume.c
-+
-+ Copyright (C) 2002, 2003 Bastien Nocera
-+ Copyright (C) 2004 Novell, Inc.
-+ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org>
-+
-+ 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., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA.
-+
-+ Author: Bastien Nocera <hadess@hadess.net>
-+ Jon Trowbridge <trow@ximian.com>
-+*/
-+
-+#include "config.h"
-+#include "gvc-gstreamer-acme-vol.h"
-+
-+#include <gst/gst.h>
-+#include <gst/audio/mixerutils.h>
-+#include <gst/interfaces/mixer.h>
-+#include <gst/interfaces/propertyprobe.h>
-+
-+#include <gconf/gconf-client.h>
-+
-+#include <string.h>
-+
-+#define TIMEOUT 4
-+
-+#define DEFAULT_MIXER_DEVICE_KEY "/desktop/gnome/sound/default_mixer_device"
-+#define DEFAULT_MIXER_TRACKS_KEY "/desktop/gnome/sound/default_mixer_tracks"
-+
-+#define ACME_VOLUME_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ACME_TYPE_VOLUME, AcmeVolumePrivate))
-+
-+struct AcmeVolumePrivate {
-+ GstMixer *mixer;
-+ GList *mixer_tracks;
-+ guint timer_id;
-+ gdouble volume;
-+ gboolean mute;
-+ GConfClient *gconf_client;
-+};
-+
-+G_DEFINE_TYPE (AcmeVolume, acme_volume, G_TYPE_OBJECT)
-+
-+static gboolean acme_volume_open (AcmeVolume *acme);
-+static void acme_volume_close (AcmeVolume *acme);
-+static gboolean acme_volume_close_real (AcmeVolume *self);
-+
-+static gpointer acme_volume_object = NULL;
-+
-+static void
-+acme_volume_finalize (GObject *object)
-+{
-+ AcmeVolume *self;
-+
-+ g_return_if_fail (object != NULL);
-+ g_return_if_fail (ACME_IS_VOLUME (object));
-+
-+ self = ACME_VOLUME (object);
-+
-+ if (self->_priv->timer_id != 0)
-+ g_source_remove (self->_priv->timer_id);
-+ acme_volume_close_real (self);
-+
-+ if (self->_priv->gconf_client != NULL) {
-+ g_object_unref (self->_priv->gconf_client);
-+ self->_priv->gconf_client = NULL;
-+ }
-+
-+ G_OBJECT_CLASS (acme_volume_parent_class)->finalize (object);
-+}
-+
-+void
-+acme_volume_set_mute (AcmeVolume *self, gboolean val)
-+{
-+ GList *t;
-+
-+ g_return_if_fail(ACME_IS_VOLUME(self));
-+ g_return_if_fail(acme_volume_open(self));
-+
-+ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
-+ gst_mixer_set_mute (self->_priv->mixer, track, val);
-+ }
-+ self->_priv->mute = val;
-+ acme_volume_close (self);
-+}
-+
-+static void
-+update_state (AcmeVolume * self)
-+{
-+ gint *volumes, n;
-+ gdouble vol = 0;
-+ GstMixerTrack *track = GST_MIXER_TRACK (self->_priv->mixer_tracks->data);
-+
-+ /* update mixer by getting volume */
-+ volumes = g_new0 (gint, track->num_channels);
-+ gst_mixer_get_volume (self->_priv->mixer, track, volumes);
-+ for (n = 0; n < track->num_channels; n++)
-+ vol += volumes[n];
-+ g_free (volumes);
-+ vol /= track->num_channels;
-+ vol = 100 * vol / (track->max_volume - track->min_volume);
-+
-+ /* update mute flag, and volume if not muted */
-+ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE))
-+ self->_priv->mute = TRUE;
-+ self->_priv->volume = vol;
-+}
-+
-+gboolean
-+acme_volume_get_mute (AcmeVolume *self)
-+{
-+ g_return_val_if_fail(acme_volume_open(self), FALSE);
-+
-+ update_state (self);
-+ acme_volume_close (self);
-+
-+ return self->_priv->mute;
-+}
-+
-+gint
-+acme_volume_get_volume (AcmeVolume *self)
-+{
-+
-+ g_return_val_if_fail(acme_volume_open(self), 0);
-+
-+ update_state (self);
-+
-+ acme_volume_close (self);
-+
-+ return (gint) (self->_priv->volume + 0.5);
-+}
-+
-+void
-+acme_volume_set_volume (AcmeVolume *self, gint val)
-+{
-+ GList *t;
-+
-+ g_return_if_fail(acme_volume_open(self));
-+
-+ val = CLAMP (val, 0, 100);
-+
-+ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
-+ gint *volumes, n;
-+ gdouble scale = (track->max_volume - track->min_volume) / 100.0;
-+ gint vol = (gint) (val * scale + track->min_volume + 0.5);
-+
-+ volumes = g_new (gint, track->num_channels);
-+ for (n = 0; n < track->num_channels; n++)
-+ volumes[n] = vol;
-+ gst_mixer_set_volume (self->_priv->mixer, track, volumes);
-+ g_free (volumes);
-+ }
-+
-+ /* update state */
-+ self->_priv->volume = val;
-+
-+ acme_volume_close (self);
-+}
-+
-+void
-+acme_volume_mute_toggle (AcmeVolume *self)
-+{
-+ gboolean muted;
-+
-+ g_return_if_fail (self != NULL);
-+ g_return_if_fail (ACME_IS_VOLUME(self));
-+
-+ muted = acme_volume_get_mute(self);
-+ acme_volume_set_mute(self, !muted);
-+}
-+
-+gint
-+acme_volume_get_threshold (AcmeVolume *self)
-+{
-+ GList *t;
-+ gint steps = 101;
-+
-+ g_return_val_if_fail(acme_volume_open(self), 1);
-+
-+ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
-+ gint track_steps = track->max_volume - track->min_volume;
-+ if (track_steps > 0 && track_steps < steps)
-+ steps = track_steps;
-+ }
-+
-+ acme_volume_close (self);
-+
-+ return 100 / steps + 1;
-+}
-+
-+static gboolean
-+acme_volume_close_real (AcmeVolume *self)
-+{
-+ if (self->_priv->mixer != NULL)
-+ {
-+ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL);
-+ gst_object_unref (GST_OBJECT (self->_priv->mixer));
-+ g_list_foreach (self->_priv->mixer_tracks, (GFunc) g_object_unref, NULL);
-+ g_list_free (self->_priv->mixer_tracks);
-+ self->_priv->mixer = NULL;
-+ self->_priv->mixer_tracks = NULL;
-+ }
-+
-+ self->_priv->timer_id = 0;
-+ return FALSE;
-+}
-+
-+/*
-+ * _acme_set_mixer
-+ * @mixer A pointer to mixer element
-+ * @data A pointer to user data (AcmeVolume instance to be modified)
-+ * @return A gboolean indicating success if Master track was found, failed otherwises.
-+ */
-+static gboolean
-+_acme_set_mixer(GstMixer *mixer, gpointer user_data)
-+{
-+ const GList *tracks;
-+
-+ for (tracks = gst_mixer_list_tracks (mixer); tracks != NULL; tracks = tracks->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (tracks->data);
-+
-+ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
-+ AcmeVolume *self;
-+
-+ self = ACME_VOLUME (user_data);
-+
-+ self->_priv->mixer = mixer;
-+ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
-+ return TRUE;
-+ }
-+
-+ continue;
-+ }
-+
-+ return FALSE;
-+}
-+
-+/* This is a modified version of code from gnome-media's gst-mixer */
-+static gboolean
-+acme_volume_open (AcmeVolume *self)
-+{
-+ gchar *mixer_device, **factory_and_device = NULL;
-+ GList *mixer_list;
-+
-+ if (self->_priv->timer_id != 0) {
-+ g_source_remove (self->_priv->timer_id);
-+ self->_priv->timer_id = 0;
-+ return TRUE;
-+ }
-+
-+ mixer_device = gconf_client_get_string (self->_priv->gconf_client, DEFAULT_MIXER_DEVICE_KEY, NULL);
-+ if (mixer_device != NULL)
-+ factory_and_device = g_strsplit (mixer_device, ":", 2);
-+
-+ if (factory_and_device != NULL && factory_and_device[0] != NULL) {
-+ GstElement *element;
-+
-+ element = gst_element_factory_make (factory_and_device[0], NULL);
-+
-+ if (element != NULL) {
-+ if (factory_and_device[1] != NULL &&
-+ g_object_class_find_property (G_OBJECT_GET_CLASS (element), "device"))
-+ g_object_set (G_OBJECT (element), "device", factory_and_device[1], NULL);
-+ gst_element_set_state (element, GST_STATE_READY);
-+
-+ if (GST_IS_MIXER (element))
-+ self->_priv->mixer = GST_MIXER (element);
-+ else {
-+ gst_element_set_state (element, GST_STATE_NULL);
-+ gst_object_unref (element);
-+ }
-+ }
-+ }
-+
-+ g_free (mixer_device);
-+ g_strfreev (factory_and_device);
-+
-+ if (self->_priv->mixer != NULL) {
-+ const GList *m;
-+ GSList *tracks, *t;
-+ GError *error = NULL;
-+
-+ /* Try to use tracks saved in GConf
-+ Note: errors need to be treated , for example if the user set a non type list for this key
-+ or if the elements type_list are not "matched" */
-+ tracks = gconf_client_get_list (self->_priv->gconf_client, DEFAULT_MIXER_TRACKS_KEY,
-+ GCONF_VALUE_STRING, &error);
-+
-+ if (error) {
-+ g_warning("ERROR: %s\n", error->message);
-+ g_error_free(error);
-+ }
-+
-+ /* We use these tracks ONLY if they are supported on the system with the following mixer */
-+ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (m->data);
-+
-+ for (t = tracks; t != NULL; t = t->next)
-+ if (!strcmp (t->data, track->label))
-+ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
-+
-+ }
-+
-+ g_slist_foreach (tracks, (GFunc)g_free, NULL);
-+ g_slist_free (tracks);
-+
-+ /* If no track stored in GConf is avaiable try to use Master track */
-+ if (self->_priv->mixer_tracks == NULL) {
-+ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) {
-+ GstMixerTrack *track = GST_MIXER_TRACK (m->data);
-+
-+ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
-+ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
-+ break;
-+ }
-+ }
-+ }
-+
-+ if (self->_priv->mixer_tracks != NULL)
-+ return TRUE;
-+ else {
-+ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL);
-+ gst_object_unref (self->_priv->mixer);
-+ }
-+ }
-+
-+ /* Go through all elements of a certain class and check whether
-+ * they implement a mixer. If so, walk through the tracks and look
-+ * for first one named "volume".
-+ *
-+ * We should probably do something intelligent if we don't find an
-+ * appropriate mixer/track. But now we do something stupid...
-+ * everything just becomes a no-op.
-+ */
-+ mixer_list = gst_audio_default_registry_mixer_filter (_acme_set_mixer,
-+ TRUE,
-+ self);
-+
-+ if (mixer_list == NULL)
-+ return FALSE;
-+
-+ /* do not unref the mixer as we keep the ref for self->priv->mixer */
-+ g_list_free (mixer_list);
-+
-+ return TRUE;
-+}
-+
-+static void
-+acme_volume_close (AcmeVolume *self)
-+{
-+ self->_priv->timer_id = g_timeout_add_seconds (TIMEOUT,
-+ (GSourceFunc) acme_volume_close_real, self);
-+}
-+
-+static void
-+acme_volume_init (AcmeVolume *self)
-+{
-+ self->_priv = ACME_VOLUME_GET_PRIVATE (self);
-+ self->_priv->gconf_client = gconf_client_get_default ();
-+}
-+
-+static void
-+acme_volume_class_init (AcmeVolumeClass *klass)
-+{
-+ G_OBJECT_CLASS (klass)->finalize = acme_volume_finalize;
-+
-+ gst_init (NULL, NULL);
-+
-+ g_type_class_add_private (klass, sizeof (AcmeVolumePrivate));
-+}
-+
-+/* acme_volume_new
-+ * @return A singleton instance of type AcmeVolume
-+ */
-+AcmeVolume *
-+acme_volume_new (void)
-+{
-+ if (acme_volume_object == NULL) {
-+ acme_volume_object = g_object_new (ACME_TYPE_VOLUME, NULL);
-+ return ACME_VOLUME(acme_volume_object);
-+ }
-+ g_object_ref(acme_volume_object);
-+ return ACME_VOLUME(acme_volume_object);
-+}
-+
-diff -ruN gnome-settings-daemon-2.27.91/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h gnome-settings-daemon-2.27.91.gst/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h
---- gnome-settings-daemon-2.27.91/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h 1970-01-01 01:00:00.000000000 +0100
-+++ gnome-settings-daemon-2.27.91.gst/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h 2009-08-24 15:25:47.000000000 +0200
-@@ -0,0 +1,56 @@
-+/* acme-volume.h
-+
-+ Copyright (C) 2002, 2003 Bastien Nocera
-+ Copyright (C) 2004 Novell, Inc.
-+ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org>
-+
-+ 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., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA.
-+
-+ Author: Bastien Nocera <hadess@hadess.net>
-+ Jon Trowbridge <trow@ximian.com>
-+ */
-+
-+#include <glib-object.h>
-+
-+#define ACME_TYPE_VOLUME (acme_volume_get_type ())
-+#define ACME_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACME_TYPE_VOLUME, AcmeVolume))
-+#define ACME_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACME_TYPE_VOLUME, AcmeVolumeClass))
-+#define ACME_IS_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACME_TYPE_VOLUME))
-+#define ACME_VOLUME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACME_TYPE_VOLUME, AcmeVolumeClass))
-+
-+typedef struct AcmeVolume AcmeVolume;
-+typedef struct AcmeVolumeClass AcmeVolumeClass;
-+typedef struct AcmeVolumePrivate AcmeVolumePrivate;
-+
-+struct AcmeVolume {
-+ GObject parent;
-+ AcmeVolumePrivate *_priv;
-+};
-+
-+struct AcmeVolumeClass {
-+ GObjectClass parent;
-+};
-+
-+GType acme_volume_get_type (void);
-+AcmeVolume *acme_volume_new (void);
-+void acme_volume_set_mute (AcmeVolume *self, gboolean val);
-+void acme_volume_mute_toggle (AcmeVolume *self);
-+gboolean acme_volume_get_mute (AcmeVolume *self);
-+void acme_volume_set_volume (AcmeVolume *self, gint val);
-+gint acme_volume_get_volume (AcmeVolume *self);
-+gint acme_volume_get_threshold (AcmeVolume *self);
-+
-+
-diff -ruN gnome-settings-daemon-2.27.91/plugins/media-keys/gsd-media-keys-manager.c gnome-settings-daemon-2.27.91.gst/plugins/media-keys/gsd-media-keys-manager.c
---- gnome-settings-daemon-2.27.91/plugins/media-keys/gsd-media-keys-manager.c 2009-08-24 12:20:18.000000000 +0200
-+++ gnome-settings-daemon-2.27.91.gst/plugins/media-keys/gsd-media-keys-manager.c 2009-08-24 16:38:50.000000000 +0200
-@@ -52,6 +52,8 @@
-
- #ifdef HAVE_PULSE
- #include "gvc-mixer-control.h"
-+#elif defined(HAVE_GSTREAMER)
-+#include "gvc-gstreamer-acme-vol.h"
- #endif /* HAVE_PULSE */
-
- #define GSD_DBUS_PATH "/org/gnome/SettingsDaemon"
-@@ -87,6 +89,8 @@
- /* Volume bits */
- GvcMixerControl *volume;
- GvcMixerStream *stream;
-+#elif defined(HAVE_GSTREAMER)
-+ AcmeVolume *volume;
- #endif /* HAVE_PULSE */
- GtkWidget *dialog;
- GConfClient *conf_client;
-@@ -626,7 +630,9 @@
- GSD_MEDIA_KEYS_WINDOW_ACTION_VOLUME);
- dialog_show (manager);
- }
-+#endif /* HAVE_PULSE */
-
-+#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER)
- static void
- do_sound_action (GsdMediaKeysManager *manager,
- int type)
-@@ -635,7 +641,11 @@
- guint vol, norm_vol_step;
- int vol_step;
-
-+#ifdef HAVE_PULSE
- if (manager->priv->stream == NULL)
-+#else
-+ if (manager->priv->volume == NULL)
-+#endif
- return;
-
- vol_step = gconf_client_get_int (manager->priv->conf_client,
-@@ -645,18 +655,34 @@
- if (vol_step <= 0 || vol_step > 100)
- vol_step = VOLUME_STEP;
-
-+#ifdef HAVE_PULSE
- norm_vol_step = PA_VOLUME_NORM * vol_step / 100;
-
- /* FIXME: this is racy */
- vol = gvc_mixer_stream_get_volume (manager->priv->stream);
- muted = gvc_mixer_stream_get_is_muted (manager->priv->stream);
-
-+#else
-+ if (vol_step > 0) {
-+ gint threshold = acme_volume_get_threshold (manager->priv->volume);
-+ if (vol_step < threshold)
-+ vol_step = threshold;
-+ g_debug ("Using volume step of %d", vol_step);
-+ }
-+ vol = acme_volume_get_volume (manager->priv->volume);
-+ muted = acme_volume_get_mute (manager->priv->volume);
-+#endif
- switch (type) {
- case MUTE_KEY:
-+#ifdef HAVE_PULSE
- muted = !muted;
- gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
-+#else
-+ acme_volume_mute_toggle (manager->priv->volume);
-+#endif
- break;
- case VOLUME_DOWN_KEY:
-+#ifdef HAVE_PULSE
- if (!muted && (vol <= norm_vol_step)) {
- muted = !muted;
- vol = 0;
-@@ -668,11 +694,17 @@
- if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE)
- gvc_mixer_stream_push_volume (manager->priv->stream);
- }
-+#else
-+ if (!muted && (vol <= vol_step))
-+ acme_volume_mute_toggle (manager->priv->volume);
-+ acme_volume_set_volume (manager->priv->volume, vol - vol_step);
-+#endif
- break;
- case VOLUME_UP_KEY:
- if (muted) {
- muted = !muted;
- if (vol == 0) {
-+#ifdef HAVE_PULSE
- vol = vol + norm_vol_step;
- gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
- if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE)
-@@ -680,7 +712,15 @@
- } else {
- gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
- }
-+#else
-+ /* We need to unmute otherwise vol is blocked (and muted) */
-+ acme_volume_set_mute (manager->priv->volume, FALSE);
-+ }
-+ acme_volume_set_volume (manager->priv->volume, vol + vol_step);
-+
-+#endif
- } else {
-+#ifdef HAVE_PULSE
- if (vol < MAX_VOLUME) {
- gboolean set;
- if (vol + norm_vol_step >= MAX_VOLUME) {
-@@ -691,13 +731,35 @@
- if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE)
- gvc_mixer_stream_push_volume (manager->priv->stream);
- }
-+#else
-+ acme_volume_set_volume (manager->priv->volume, vol + vol_step);
-+#endif
- }
- break;
- }
-
-+#ifdef HAVE_PULSE
- update_dialog (manager, vol, muted);
-+#else
-+ muted = acme_volume_get_mute (manager->priv->volume);
-+ vol = acme_volume_get_volume (manager->priv->volume);
-+
-+ /* FIXME: AcmeVolume should probably emit signals
-+ instead of doing it like this */
-+ dialog_init (manager);
-+ gsd_media_keys_window_set_volume_muted (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
-+ muted);
-+ gsd_media_keys_window_set_volume_level (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
-+ vol);
-+ gsd_media_keys_window_set_action (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
-+ GSD_MEDIA_KEYS_WINDOW_ACTION_VOLUME);
-+ dialog_show (manager);
-+#endif /* HAVE_PULSE */
- }
-
-+#endif /* defined(HAVE_PULSE) || defined(HAVE_GSTREAMER) */
-+
-+#ifdef HAVE_PULSE
- static void
- update_default_sink (GsdMediaKeysManager *manager)
- {
-@@ -856,9 +918,9 @@
- case MUTE_KEY:
- case VOLUME_DOWN_KEY:
- case VOLUME_UP_KEY:
--#ifdef HAVE_PULSE
-+#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER)
- do_sound_action (manager, type);
--#endif /* HAVE_PULSE */
-+#endif /* HAVE_PULSE || HAVE_GSTREAMER */
- break;
- case POWER_KEY:
- do_exit_action (manager);
-@@ -1061,6 +1123,10 @@
- gvc_mixer_control_open (manager->priv->volume);
-
- gnome_settings_profile_end ("gvc_mixer_control_new");
-+#elif defined(HAVE_GSTREAMER)
-+ gnome_settings_profile_start ("acme_volume_new");
-+ manager->priv->volume = acme_volume_new ();
-+ gnome_settings_profile_end ("acme_volume_new");
- #endif /* HAVE_PULSE */
- g_idle_add ((GSourceFunc) start_media_keys_idle_cb, manager);
-
-@@ -1133,6 +1199,7 @@
- g_object_unref (priv->stream);
- priv->stream = NULL;
- }
-+#elif defined(HAVE_GSTREAMER)
-
- if (priv->volume) {
- g_object_unref (priv->volume);
diff --git a/extra/gnome-user-share/gnome-user-share-2.30.1-libnotify-0.7.patch b/extra/gnome-user-share/gnome-user-share-2.30.1-libnotify-0.7.patch
deleted file mode 100644
index 73c5a9ab8..000000000
--- a/extra/gnome-user-share/gnome-user-share-2.30.1-libnotify-0.7.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-http://pkgs.fedoraproject.org/gitweb/?p=gnome-user-share.git;a=blob;f=notify.patch;hb=HEAD
-
---- src/obexpush.c
-+++ src/obexpush.c
-@@ -139,10 +139,9 @@ show_notification (const char *filename)
- /* Translators: %s is the name of the filename received */
- notification_text = g_strdup_printf(_("You received \"%s\" via Bluetooth"), display);
- g_free (display);
-- notification = notify_notification_new_with_status_icon (_("You received a file"),
-- notification_text,
-- "dialog-information",
-- GTK_STATUS_ICON (statusicon));
-+ notification = notify_notification_new (_("You received a file"),
-+ notification_text,
-+ "dialog-information");
-
- notify_notification_set_timeout (notification, NOTIFY_EXPIRES_DEFAULT);
-
-@@ -218,10 +217,10 @@ device_is_authorised (const char *bdaddr
- char *device_path;
- GHashTable *props;
-
-- g_message ("checking adapter %s", g_ptr_array_index (adapters, i));
-+ g_message ("checking adapter %s", (char *)g_ptr_array_index (adapters, i));
-
- adapter = dbus_g_proxy_new_for_name (connection, "org.bluez",
-- g_ptr_array_index (adapters, i), "org.bluez.Adapter");
-+ (char *)g_ptr_array_index (adapters, i), "org.bluez.Adapter");
-
- if (dbus_g_proxy_call (adapter, "FindDevice", NULL,
- G_TYPE_STRING, bdaddr, G_TYPE_INVALID,
diff --git a/extra/gnome-vfs/hal-show-volume-names.patch b/extra/gnome-vfs/hal-show-volume-names.patch
deleted file mode 100644
index 5b8420c2b..000000000
--- a/extra/gnome-vfs/hal-show-volume-names.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Index: gnome-vfs-hal-mounts.c
-===================================================================
-RCS file: /cvs/gnome/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c,v
-retrieving revision 1.33
-diff -u -p -r1.33 gnome-vfs-hal-mounts.c
---- gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c 7 Jul 2006 15:56:57 -0000 1.33
-+++ gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c 14 Jul 2006 18:48:51 -0000
-@@ -877,6 +877,7 @@ _hal_add_volume (GnomeVFSVolumeMonitorDa
- GnomeVFSDrive *drive;
- GnomeVFSVolumeMonitor *volume_monitor;
- char *name;
-+ char *icon;
- gboolean allowed_by_policy;
- const char *backing_udi;
-
-@@ -975,6 +976,8 @@ _hal_add_volume (GnomeVFSVolumeMonitorDa
- */
- drive = _gnome_vfs_volume_monitor_find_drive_by_hal_udi (volume_monitor, libhal_volume_get_udi (hal_volume));
- if (drive == NULL && allowed_by_policy) {
-+ name = _hal_drive_policy_get_display_name (volume_monitor_daemon, hal_drive, hal_volume);
-+ icon = _hal_drive_policy_get_icon (volume_monitor_daemon, hal_drive, hal_volume);
- drive = g_object_new (GNOME_VFS_TYPE_DRIVE, NULL);
- if (libhal_volume_disc_has_audio (hal_volume)) {
- drive->priv->activation_uri = g_strdup_printf ("cdda://%s",
-@@ -989,16 +992,16 @@ _hal_add_volume (GnomeVFSVolumeMonitorDa
- * So just set it to the empty string
- */
- drive->priv->activation_uri = g_strdup ("");
-+ g_free (name);
-+ name = _hal_volume_policy_get_display_name (volume_monitor_daemon, hal_drive, hal_volume);
-+ g_free (icon);
-+ icon = _hal_volume_policy_get_icon (volume_monitor_daemon, hal_drive, hal_volume);
- }
- drive->priv->is_connected = TRUE;
- drive->priv->device_path = g_strdup (libhal_volume_get_device_file (hal_volume));
- drive->priv->device_type = _hal_get_gnome_vfs_device_type (hal_drive);
-
-- /* TODO: could add an icon of a drive with media in it since this codepath only
-- * handles drives with media in them
-- */
-- drive->priv->icon = _hal_drive_policy_get_icon (volume_monitor_daemon, hal_drive, NULL);
-- name = _hal_drive_policy_get_display_name (volume_monitor_daemon, hal_drive, hal_volume);
-+ drive->priv->icon = icon;
- drive->priv->display_name = _gnome_vfs_volume_monitor_uniquify_drive_name (volume_monitor, name);
- g_free (name);
- name = g_utf8_casefold (drive->priv->display_name, -1);
diff --git a/extra/gtk2/old-icon-symlinks.patch b/extra/gtk2/old-icon-symlinks.patch
deleted file mode 100644
index 046dd4df4..000000000
--- a/extra/gtk2/old-icon-symlinks.patch
+++ /dev/null
@@ -1,269 +0,0 @@
-diff -aur gtk+-2.22.0.orig//gtk/Makefile.in gtk+-2.22.0/gtk/Makefile.in
---- gtk+-2.22.0.orig//gtk/Makefile.in 2010-10-15 04:57:50.810006145 +0800
-+++ gtk+-2.22.0/gtk/Makefile.in 2010-10-15 05:13:49.083339478 +0800
-@@ -1598,7 +1598,172 @@
- stock-icons/24/folder-remote.png \
- stock-icons/24/user-home.png \
- stock-icons/24/user-desktop.png \
-- stock-icons/24/text-x-generic.png
-+ stock-icons/24/text-x-generic.png \
-+ stock-icons/16/gtk-quit.png \
-+ stock-icons/16/gtk-info.png \
-+ stock-icons/16/gtk-file.png \
-+ stock-icons/16/gtk-open.png \
-+ stock-icons/16/gtk-print-preview.png \
-+ stock-icons/16/gtk-print.png \
-+ stock-icons/16/gtk-properties.png \
-+ stock-icons/16/gtk-revert-to-saved-ltr.png \
-+ stock-icons/16/gtk-revert-to-saved-rtl.png \
-+ stock-icons/16/gtk-save-as.png \
-+ stock-icons/16/gtk-new.png \
-+ stock-icons/16/gtk-harddisk.png \
-+ stock-icons/16/gtk-clear.png \
-+ stock-icons/16/gtk-copy.png \
-+ stock-icons/16/gtk-cut.png \
-+ stock-icons/16/gtk-delete.png \
-+ stock-icons/16/gtk-find-and-replace.png \
-+ stock-icons/16/gtk-find.png \
-+ stock-icons/16/gtk-paste.png \
-+ stock-icons/16/gtk-redo-ltr.png \
-+ stock-icons/16/gtk-redo-rtl.png \
-+ stock-icons/16/gtk-select-all.png \
-+ stock-icons/16/gtk-undo-ltr.png \
-+ stock-icons/16/gtk-undo-rtl.png \
-+ stock-icons/16/gtk-directory.png \
-+ stock-icons/16/gtk-unindent-ltr.png \
-+ stock-icons/16/gtk-unindent-rtl.png \
-+ stock-icons/16/gtk-indent-ltr.png \
-+ stock-icons/16/gtk-indent-rtl.png \
-+ stock-icons/16/gtk-justify-center.png \
-+ stock-icons/16/gtk-justify-fill.png \
-+ stock-icons/16/gtk-justify-left.png \
-+ stock-icons/16/gtk-justify-right.png \
-+ stock-icons/16/gtk-bold.png \
-+ stock-icons/16/gtk-italic.png \
-+ stock-icons/16/gtk-strikethrough.png \
-+ stock-icons/16/gtk-underline.png \
-+ stock-icons/16/gtk-goto-bottom.png \
-+ stock-icons/16/gtk-go-down.png \
-+ stock-icons/16/gtk-goto-first-ltr.png \
-+ stock-icons/16/gtk-home.png \
-+ stock-icons/16/gtk-jump-to-ltr.png \
-+ stock-icons/16/gtk-jump-to-rtl.png \
-+ stock-icons/16/gtk-goto-last-ltr.png \
-+ stock-icons/16/gtk-go-forward-ltr.png \
-+ stock-icons/16/gtk-go-back-ltr.png \
-+ stock-icons/16/gtk-goto-top.png \
-+ stock-icons/16/gtk-go-up.png \
-+ stock-icons/16/gtk-about.png \
-+ stock-icons/16/gtk-help.png \
-+ stock-icons/16/gtk-missing-image.png \
-+ stock-icons/16/gtk-add.png \
-+ stock-icons/16/gtk-remove.png \
-+ stock-icons/16/gtk-floppy.png \
-+ stock-icons/16/gtk-cdrom.png \
-+ stock-icons/16/gtk-media-pause.png \
-+ stock-icons/16/gtk-media-play-ltr.png \
-+ stock-icons/16/gtk-media-play-rtl.png \
-+ stock-icons/16/gtk-media-stop.png \
-+ stock-icons/16/gtk-media-record.png \
-+ stock-icons/16/gtk-media-rewind-ltr.png \
-+ stock-icons/16/gtk-media-forward-ltr.png \
-+ stock-icons/16/gtk-media-previous-ltr.png \
-+ stock-icons/16/gtk-media-next-ltr.png \
-+ stock-icons/16/gtk-network.png \
-+ stock-icons/16/gtk-print-error.png \
-+ stock-icons/16/gtk-print-report.png \
-+ stock-icons/16/gtk-print-paused.png \
-+ stock-icons/16/gtk-print-warning.png \
-+ stock-icons/16/gtk-stop.png \
-+ stock-icons/16/gtk-execute.png \
-+ stock-icons/16/gtk-spell-check.png \
-+ stock-icons/16/gtk-fullscreen.png \
-+ stock-icons/16/gtk-refresh.png \
-+ stock-icons/16/gtk-leave-fullscreen.png \
-+ stock-icons/16/gtk-sort-ascending.png \
-+ stock-icons/16/gtk-sort-descending.png \
-+ stock-icons/16/gtk-close.png \
-+ stock-icons/16/gtk-zoom-fit.png \
-+ stock-icons/16/gtk-zoom-in.png \
-+ stock-icons/16/gtk-zoom-100.png \
-+ stock-icons/16/gtk-zoom-out.png \
-+ stock-icons/24/gtk-quit.png \
-+ stock-icons/24/gtk-info.png \
-+ stock-icons/24/gtk-file.png \
-+ stock-icons/24/gtk-open.png \
-+ stock-icons/24/gtk-print-preview.png \
-+ stock-icons/24/gtk-print.png \
-+ stock-icons/24/gtk-properties.png \
-+ stock-icons/24/gtk-revert-to-saved-ltr.png \
-+ stock-icons/24/gtk-revert-to-saved-rtl.png \
-+ stock-icons/24/gtk-save-as.png \
-+ stock-icons/24/gtk-new.png \
-+ stock-icons/24/gtk-harddisk.png \
-+ stock-icons/24/gtk-clear.png \
-+ stock-icons/24/gtk-copy.png \
-+ stock-icons/24/gtk-cut.png \
-+ stock-icons/24/gtk-delete.png \
-+ stock-icons/24/gtk-find-and-replace.png \
-+ stock-icons/24/gtk-find.png \
-+ stock-icons/24/gtk-paste.png \
-+ stock-icons/24/gtk-redo-ltr.png \
-+ stock-icons/24/gtk-redo-rtl.png \
-+ stock-icons/24/gtk-select-all.png \
-+ stock-icons/24/gtk-undo-ltr.png \
-+ stock-icons/24/gtk-undo-rtl.png \
-+ stock-icons/24/gtk-directory.png \
-+ stock-icons/24/gtk-unindent-ltr.png \
-+ stock-icons/24/gtk-unindent-rtl.png \
-+ stock-icons/24/gtk-indent-ltr.png \
-+ stock-icons/24/gtk-indent-rtl.png \
-+ stock-icons/24/gtk-justify-center.png \
-+ stock-icons/24/gtk-justify-fill.png \
-+ stock-icons/24/gtk-justify-left.png \
-+ stock-icons/24/gtk-justify-right.png \
-+ stock-icons/24/gtk-bold.png \
-+ stock-icons/24/gtk-italic.png \
-+ stock-icons/24/gtk-strikethrough.png \
-+ stock-icons/24/gtk-underline.png \
-+ stock-icons/24/gtk-goto-bottom.png \
-+ stock-icons/24/gtk-go-down.png \
-+ stock-icons/24/gtk-goto-first-ltr.png \
-+ stock-icons/24/gtk-home.png \
-+ stock-icons/24/gtk-jump-to-ltr.png \
-+ stock-icons/24/gtk-jump-to-rtl.png \
-+ stock-icons/24/gtk-goto-last-ltr.png \
-+ stock-icons/24/gtk-go-forward-ltr.png \
-+ stock-icons/24/gtk-go-back-ltr.png \
-+ stock-icons/24/gtk-goto-top.png \
-+ stock-icons/24/gtk-go-up.png \
-+ stock-icons/24/gtk-about.png \
-+ stock-icons/24/gtk-help.png \
-+ stock-icons/24/gtk-missing-image.png \
-+ stock-icons/24/gtk-add.png \
-+ stock-icons/24/gtk-remove.png \
-+ stock-icons/24/gtk-floppy.png \
-+ stock-icons/24/gtk-cdrom.png \
-+ stock-icons/24/gtk-media-pause.png \
-+ stock-icons/24/gtk-media-play-ltr.png \
-+ stock-icons/24/gtk-media-play-rtl.png \
-+ stock-icons/24/gtk-media-stop.png \
-+ stock-icons/24/gtk-media-record.png \
-+ stock-icons/24/gtk-media-rewind-ltr.png \
-+ stock-icons/24/gtk-media-forward-ltr.png \
-+ stock-icons/24/gtk-media-previous-ltr.png \
-+ stock-icons/24/gtk-media-next-ltr.png \
-+ stock-icons/24/gtk-network.png \
-+ stock-icons/24/gtk-print-error.png \
-+ stock-icons/24/gtk-print-report.png \
-+ stock-icons/24/gtk-print-paused.png \
-+ stock-icons/24/gtk-print-warning.png \
-+ stock-icons/24/gtk-stop.png \
-+ stock-icons/24/gtk-execute.png \
-+ stock-icons/24/gtk-spell-check.png \
-+ stock-icons/24/gtk-fullscreen.png \
-+ stock-icons/24/gtk-refresh.png \
-+ stock-icons/24/gtk-leave-fullscreen.png \
-+ stock-icons/24/gtk-sort-ascending.png \
-+ stock-icons/24/gtk-sort-descending.png \
-+ stock-icons/24/gtk-close.png \
-+ stock-icons/24/gtk-zoom-fit.png \
-+ stock-icons/24/gtk-zoom-in.png \
-+ stock-icons/24/gtk-zoom-100.png \
-+ stock-icons/24/gtk-zoom-out.png \
-+ stock-icons/48/gtk-dialog-error.png
-
- @CROSS_COMPILING_FALSE@gtk_update_icon_cache_program = \
- @CROSS_COMPILING_FALSE@ ./gtk-update-icon-cache
-@@ -2869,7 +3034,91 @@
- && $(LN_S) folder.png user-desktop.png \
- && $(RM) text-x-generic.png \
- && $(LN_S) document-x-generic.png text-x-generic.png \
-+ && $(LN_S) application-exit.png gtk-quit.png \
-+ && $(LN_S) dialog-information.png gtk-info.png \
-+ && $(LN_S) document-new.png gtk-file.png \
-+ && $(LN_S) document-open.png gtk-open.png \
-+ && $(LN_S) document-print-preview.png gtk-print-preview.png \
-+ && $(LN_S) document-print.png gtk-print.png \
-+ && $(LN_S) document-properties.png gtk-properties.png \
-+ && $(LN_S) document-revert-ltr.png gtk-revert-to-saved-ltr.png \
-+ && $(LN_S) document-revert-rtl.png gtk-revert-to-saved-rtl.png \
-+ && $(LN_S) document-save-as.png gtk-save-as.png \
-+ && $(LN_S) document-x-generic.png gtk-new.png \
-+ && $(LN_S) drive-harddisk.png gtk-harddisk.png \
-+ && $(LN_S) edit-clear.png gtk-clear.png \
-+ && $(LN_S) edit-copy.png gtk-copy.png \
-+ && $(LN_S) edit-cut.png gtk-cut.png \
-+ && $(LN_S) edit-delete.png gtk-delete.png \
-+ && $(LN_S) edit-find-replace.png gtk-find-and-replace.png \
-+ && $(LN_S) edit-find.png gtk-find.png \
-+ && $(LN_S) edit-paste.png gtk-paste.png \
-+ && $(LN_S) edit-redo-ltr.png gtk-redo-ltr.png \
-+ && $(LN_S) edit-redo-rtl.png gtk-redo-rtl.png \
-+ && $(LN_S) edit-select-all.png gtk-select-all.png \
-+ && $(LN_S) edit-undo-ltr.png gtk-undo-ltr.png \
-+ && $(LN_S) edit-undo-rtl.png gtk-undo-rtl.png \
-+ && $(LN_S) folder.png gtk-directory.png \
-+ && $(LN_S) format-indent-less-ltr.png gtk-unindent-ltr.png \
-+ && $(LN_S) format-indent-less-rtl.png gtk-unindent-rtl.png \
-+ && $(LN_S) format-indent-more-ltr.png gtk-indent-ltr.png \
-+ && $(LN_S) format-indent-more-rtl.png gtk-indent-rtl.png \
-+ && $(LN_S) format-justify-center.png gtk-justify-center.png \
-+ && $(LN_S) format-justify-fill.png gtk-justify-fill.png \
-+ && $(LN_S) format-justify-left.png gtk-justify-left.png \
-+ && $(LN_S) format-justify-right.png gtk-justify-right.png \
-+ && $(LN_S) format-text-bold.png gtk-bold.png \
-+ && $(LN_S) format-text-italic.png gtk-italic.png \
-+ && $(LN_S) format-text-strikethrough.png gtk-strikethrough.png \
-+ && $(LN_S) format-text-underline.png gtk-underline.png \
-+ && $(LN_S) go-bottom.png gtk-goto-bottom.png \
-+ && $(LN_S) go-down.png gtk-go-down.png \
-+ && $(LN_S) go-first-ltr.png gtk-goto-first-ltr.png \
-+ && $(LN_S) go-home.png gtk-home.png \
-+ && $(LN_S) go-jump-ltr.png gtk-jump-to-ltr.png \
-+ && $(LN_S) go-jump-rtl.png gtk-jump-to-rtl.png \
-+ && $(LN_S) go-last-ltr.png gtk-goto-last-ltr.png \
-+ && $(LN_S) go-next-ltr.png gtk-go-forward-ltr.png \
-+ && $(LN_S) go-previous-ltr.png gtk-go-back-ltr.png \
-+ && $(LN_S) go-top.png gtk-goto-top.png \
-+ && $(LN_S) go-up.png gtk-go-up.png \
-+ && $(LN_S) help-about.png gtk-about.png \
-+ && $(LN_S) help-contents.png gtk-help.png \
-+ && $(LN_S) image-missing.png gtk-missing-image.png \
-+ && $(LN_S) list-add.png gtk-add.png \
-+ && $(LN_S) list-remove.png gtk-remove.png \
-+ && $(LN_S) media-floppy.png gtk-floppy.png \
-+ && $(LN_S) media-optical.png gtk-cdrom.png \
-+ && $(LN_S) media-playback-pause.png gtk-media-pause.png \
-+ && $(LN_S) media-playback-start-ltr.png gtk-media-play-ltr.png \
-+ && $(LN_S) media-playback-start-rtl.png gtk-media-play-rtl.png \
-+ && $(LN_S) media-playback-stop.png gtk-media-stop.png \
-+ && $(LN_S) media-record.png gtk-media-record.png \
-+ && $(LN_S) media-seek-backward-ltr.png gtk-media-rewind-ltr.png \
-+ && $(LN_S) media-seek-forward-ltr.png gtk-media-forward-ltr.png \
-+ && $(LN_S) media-skip-backward-ltr.png gtk-media-previous-ltr.png \
-+ && $(LN_S) media-skip-forward-ltr.png gtk-media-next-ltr.png \
-+ && $(LN_S) network-idle.png gtk-network.png \
-+ && $(LN_S) printer-error.png gtk-print-error.png \
-+ && $(LN_S) printer-info.png gtk-print-report.png \
-+ && $(LN_S) printer-paused.png gtk-print-paused.png \
-+ && $(LN_S) printer-warning.png gtk-print-warning.png \
-+ && $(LN_S) process-stop.png gtk-stop.png \
-+ && $(LN_S) system-run.png gtk-execute.png \
-+ && $(LN_S) tools-check-spelling.png gtk-spell-check.png \
-+ && $(LN_S) view-fullscreen.png gtk-fullscreen.png \
-+ && $(LN_S) view-refresh.png gtk-refresh.png \
-+ && $(LN_S) view-restore.png gtk-leave-fullscreen.png \
-+ && $(LN_S) view-sort-ascending.png gtk-sort-ascending.png \
-+ && $(LN_S) view-sort-descending.png gtk-sort-descending.png \
-+ && $(LN_S) window-close.png gtk-close.png \
-+ && $(LN_S) zoom-fit-best.png gtk-zoom-fit.png \
-+ && $(LN_S) zoom-in.png gtk-zoom-in.png \
-+ && $(LN_S) zoom-original.png gtk-zoom-100.png \
-+ && $(LN_S) zoom-out.png gtk-zoom-out.png \
- ) done \
-+ && (cd stock-icons/48 \
-+ && $(LN_S) dialog-error.png gtk-dialog-error.png) \
- && touch stamp-icons
-
- gtkbuiltincache.h: @REBUILD@ stamp-icons
diff --git a/extra/libnotify/libnotify-0.7.1-gtk3-tests.patch b/extra/libnotify/libnotify-0.7.1-gtk3-tests.patch
deleted file mode 100644
index 7d1230520..000000000
--- a/extra/libnotify/libnotify-0.7.1-gtk3-tests.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 92983cacd36fa9b050f911bc4de09b8c4fb9f3b2 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Thu, 16 Dec 2010 00:01:13 +0100
-Subject: [PATCH] gentoo: do not build gtk+:3 tests if not required
-
----
- configure.ac | 5 +++++
- tests/Makefile.am | 30 +++++++++++++++++-------------
- 2 files changed, 22 insertions(+), 13 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 71609ed..7767c5b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -97,10 +97,15 @@ AC_SUBST(PACKAGE_LIBS)
- AC_SUBST(PACKAGE_CFLAGS)
- AC_SUBST(pkg_modules)
-
-+AC_ARG_ENABLE([tests],
-+ AS_HELP_STRING([--enable-tests], [Check for extra dependencies to build all tests]))
-+AS_IF([test $enable_tests = yes], [
- tests_modules="gtk+-3.0 >= $REQ_GTK_VERSION"
- PKG_CHECK_MODULES(TESTS, [$tests_modules])
-+])
- AC_SUBST(TESTS_LIBS)
- AC_SUBST(TESTS_CFLAGS)
-+AM_CONDITIONAL([MORE_TESTS], [test $enable_tests = yes])
-
- GLIB_GENMARSHAL=`pkg-config --variable=glib_genmarshal glib-2.0`
- AC_SUBST(GLIB_GENMARSHAL)
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 7acf9a3..2856a82 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -2,18 +2,15 @@ INCLUDES = \
- -I$(top_srcdir) \
- $(TESTS_CFLAGS)
-
--noinst_PROGRAMS = \
-+check_PROGRAMS = \
- test-replace \
-- test-replace-widget \
- test-server-info \
- test-default-action \
- test-multi-actions \
- test-action-icons \
-- test-image \
- test-basic \
- test-error \
- test-markup \
-- test-persistence \
- test-resident \
- test-rtl \
- test-size-changes \
-@@ -23,6 +20,22 @@ noinst_PROGRAMS = \
- test-xy-actions \
- test-xy-stress
-
-+#if MORE_TESTS
-+check_PROGRAMS += \
-+ test-image \
-+ test-replace-widget \
-+ test-persistence
-+
-+test_replace_widget_SOURCES = test-replace-widget.c
-+test_replace_widget_LDADD = $(common_ldflags)
-+
-+test_image_SOURCES = test-image.c
-+test_image_LDADD = $(common_ldflags)
-+
-+test_persistence_SOURCES = test-persistence.c
-+test_persistence_LDADD = $(common_ldflags)
-+#endif
-+
- common_ldflags = \
- $(top_builddir)/libnotify/libnotify.la \
- $(TESTS_LIBS)
-@@ -30,9 +43,6 @@ common_ldflags = \
- test_replace_SOURCES = test-replace.c
- test_replace_LDADD = $(common_ldflags)
-
--test_replace_widget_SOURCES = test-replace-widget.c
--test_replace_widget_LDADD = $(common_ldflags)
--
- test_server_info_SOURCES = test-server-info.c
- test_server_info_LDADD = $(common_ldflags)
-
-@@ -48,9 +58,6 @@ test_multi_actions_LDADD = $(common_ldflags)
- test_action_icons_SOURCES = test-action-icons.c
- test_action_icons_LDADD = $(common_ldflags)
-
--test_image_SOURCES = test-image.c
--test_image_LDADD = $(common_ldflags)
--
- test_basic_SOURCES = test-basic.c
- test_basic_LDADD = $(common_ldflags)
-
-@@ -75,9 +82,6 @@ test_xy_stress_LDADD = $(common_ldflags)
- test_rtl_SOURCES = test-rtl.c
- test_rtl_LDADD = $(common_ldflags)
-
--test_persistence_SOURCES = test-persistence.c
--test_persistence_LDADD = $(common_ldflags)
--
- test_resident_SOURCES = test-resident.c
- test_resident_LDADD = $(common_ldflags)
-
---
-1.7.4.rc2
-
diff --git a/extra/libwebkit/introspection.patch b/extra/libwebkit/introspection.patch
deleted file mode 100644
index f12e9e629..000000000
--- a/extra/libwebkit/introspection.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- WebKit/gtk/JSCore-1.0.gir 2010-09-29 14:54:07.000000000 +0200
-+++ WebKit/gtk/JSCore-1.0.gir 2010-09-29 15:57:06.000000000 +0200
-@@ -1,12 +1,14 @@
- <?xml version="1.0"?>
--<repository version="1.0"
-+<repository version="1.2"
- xmlns="http://www.gtk.org/introspection/core/1.0"
- xmlns:c="http://www.gtk.org/introspection/c/1.0">
- <namespace name="JSCore" version="1.0" shared-library="webkit-1.0">
-- <alias name="GlobalContextRef"
-- target="none"
-- c:type="JSGlobalContextRef"/>
-- <alias name="ObjectRef" target="none" c:type="JSObjectRef"/>
-+ <alias name="GlobalContextRef" target="none">
-+ <type name="JSGlobalContextRef" c:type="JSGlobalContextRef"/>
-+ </alias>
-+ <alias name="ObjectRef" target="none">
-+ <type name="JSObjectRef" c:type="JSObjectRef"/>
-+ </alias>
- <function name="EvaluateScript" c:identifier="JSEvaluateScript">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
diff --git a/extra/liferea/ChangeLog b/extra/liferea/ChangeLog
deleted file mode 100644
index c0861a7ae..000000000
--- a/extra/liferea/ChangeLog
+++ /dev/null
@@ -1,143 +0,0 @@
-2011-03-07 Jan Steffens <jan.steffens@gmail.com>
-
- * liferea 1.6.5-2
- * Add patch for libnotify-0.7
- * Add hicolor-icon-theme dependency
-
-2010-09-29 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.6.5-1
- * Upstream update
-
-2010-06-30 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.6.4-1
- * Upstream update
- * Changed libnotify depends to optdepends
- * Tidied up package description
-
-2010-02-22 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.6.3-1
- * Upstream update
-
-2010-01-23 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.6.2-1
- * Upstream update
-
-2009-11-20 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.6.1-1
- * Upstream update
-
-2009-07-26 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.6.0-1
- * Upstream update
- * Updated depends
- * Added lua support
-
-2009-07-01 Jan de Groot <jgc@archlinux.org>
-
- * liferea 1.4.28-2
- * Rebuild for xulrunner 1.9.1
- * Remove networkmanager dependencies
-
-2009-04-13 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.28-1
- * Upstream update
-
-2009-03-15 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.27-1
- * Upstream update
-
-2009-02-21 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.25-1
- * Upstream update
-
-2009-02-01 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.24-1
- * Upstream update
-
-2008-12-29 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.23-1
- * Upstream update
-
-2008-11-14 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.22d-1
- * Upstream update
-
-2008-10-27 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.20-1
- * Forced downgrade (close FS#11899)
-
-2008-10-26 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.21b-1
- * Upstream update
-
-2008-10-01 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.20-1
- * Upstream update
-
-2008-09-06 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.19-1
- * Upstream update
-
-2008-08-03 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.18-2
- * Rebuilt against gnutls 2.4.1
-
-2008-07-28 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.18-1
- * Upstream update
- * Updated xulrunner 1.9 support patch
- * Added intltool makedepends
- * Removed force option
-
-2008-06-22 Jan de Groot <jgc@archlinux.org>
-
- * liferea 1.4.16b-2
- * Build with xulrunner 1.9
- * Add patch from gentoo to fix xulrunner 1.9 support
- * Make versioned dependencies more strict
- * Drop dependencies covered by xulrunner 1.9
-
-2008-06-17 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.16b-1
- * Upstream update
- * Added force option
-
-2008-06-13 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.16-1
- * Upstream update
-
-2008-04-17 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.15-1
- * Upstream update
-
-2008-03-12 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.14-1
- * Upstream update
-
-2008-03-06 Eric Belanger <eric@archlinux.org>
-
- * liferea 1.4.13-1
- * Upstream update
- * Cleaned install scriptlet
diff --git a/extra/mail-notification/evolution-gtkhtml.patch b/extra/mail-notification/evolution-gtkhtml.patch
deleted file mode 100644
index fe9b0ddf8..000000000
--- a/extra/mail-notification/evolution-gtkhtml.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- mail-notification-5.4/jbsrc/lib/src/extras/jb-evolution-plugin.c.orig 2009-10-12 23:15:03.000000000 +0200
-+++ mail-notification-5.4/jbsrc/lib/src/extras/jb-evolution-plugin.c 2009-10-12 23:17:26.000000000 +0200
-@@ -41,7 +41,7 @@
- if (! minversion)
- minversion = "2.12";
-
-- packages = g_strdup_printf("evolution-plugin >= %s", minversion);
-+ packages = g_strdup_printf("evolution-plugin >= %s libgtkhtml-3.14 gtkhtml-editor-3.14", minversion);
- result = jb_check_packages("Evolution", "evolution-plugin", packages);
- g_free(packages);
-
diff --git a/extra/mail-notification/evolution.patch b/extra/mail-notification/evolution.patch
deleted file mode 100644
index 073818afe..000000000
--- a/extra/mail-notification/evolution.patch
+++ /dev/null
@@ -1,102 +0,0 @@
---- build/src/mn-evolution-server.c.orig 2008-09-30 15:30:07.756216978 +0200
-+++ build/src/mn-evolution-server.c 2008-09-30 15:30:49.950220711 +0200
-@@ -27,6 +27,7 @@
- #include <stdio.h>
- #include <libintl.h>
- #include <gobject/gvaluecollector.h>
-+#include <libedataserver/eds-version.h>
- #include <camel/camel-folder.h>
- #include <mail/em-folder-view.h>
- #include <mail/em-format.h>
-@@ -595,7 +596,12 @@
-
- for (i = 0; i < summary->len; i++)
- {
-+#if EDS_CHECK_VERSION(2,23,5)
-+ char *uid = summary->pdata[i];
-+ CamelMessageInfo *info = camel_folder_get_message_info(folder, uid);
-+#else
- CamelMessageInfo *info = summary->pdata[i];
-+#endif
-
- if ((camel_message_info_flags(info) & CAMEL_MESSAGE_SEEN) == 0)
- g_ptr_array_add(*ret, self_camel_message_info_to_dbus_struct(info));
---- build/src/mn-evolution-folder-tree-server.c.evolution 2010-02-01 10:00:12.128683776 -0500
-+++ build/src/mn-evolution-folder-tree-server.c 2010-02-01 10:02:32.809697243 -0500
-@@ -26,5 +26,8 @@
- #include <dbus/dbus.h>
-+#include <libedataserver/eds-version.h>
-+#if !EDS_CHECK_VERSION(2,29,0)
- #include <mail/mail-component.h>
-+#endif
- #include <mail/em-folder-tree.h>
- #include "mn-evolution-plugin.h"
- #include "mn-evolution.h"
-@@ -396,7 +399,11 @@ mn_evolution_folder_tree_server_construc
-
-+#if EDS_CHECK_VERSION(2,29,0)
-+ selfp->tree = em_folder_tree_new();
-+#else
- EMFolderTreeModel *model;
-
- model = mail_component_peek_tree_model(mail_component_peek());
- selfp->tree = em_folder_tree_new_with_model(model);
-+#endif
-
- selfp->plug = gtk_plug_new((GdkNativeWindow) selfp->id);
---- build/src/mn-evolution-server.c.evolution 2010-02-01 10:06:36.484698060 -0500
-+++ build/src/mn-evolution-server.c 2010-02-01 10:09:01.946682081 -0500
-@@ -28,9 +28,14 @@
- #include <gobject/gvaluecollector.h>
- #include <libedataserver/eds-version.h>
- #include <camel/camel-folder.h>
-+#if EDS_CHECK_VERSION(2,29,0)
-+#include <shell/e-shell.h>
-+#include <mail/e-mail-browser.h>
-+#else
- #include <mail/em-folder-view.h>
- #include <mail/em-format.h>
- #include <mail/em-message-browser.h>
-+#endif
- #include <mail/em-utils.h>
- #include <mail/mail-session.h>
- #include <mail/mail-tools.h>
-@@ -568,6 +573,19 @@ mn_evolution_server_open_message (MNEvol
- folder = self_lookup_folder(folder_uri, err);
- if (folder)
- {
-+#if EDS_CHECK_VERSION(2,29,0)
-+ EShell *shell;
-+ EShellBackend *shell_backend;
-+ GtkWidget *browser;
-+
-+ shell = e_shell_get_default ();
-+ shell_backend = e_shell_get_backend_by_name (shell, "mail");
-+
-+ browser = e_mail_browser_new (shell_backend);
-+ e_mail_reader_set_folder (E_MAIL_READER (browser), folder, folder_uri);
-+ e_mail_reader_set_message (E_MAIL_READER (browser), message_uid);
-+ gtk_widget_show (browser);
-+#else
- GtkWidget *browser;
-
- /* modelled after Evolution's handleuri_got_folder() */
-@@ -578,6 +596,7 @@ mn_evolution_server_open_message (MNEvol
- em_folder_view_set_folder((EMFolderView *) browser, folder, folder_uri);
- em_folder_view_set_message((EMFolderView *) browser, message_uid, FALSE);
- gtk_widget_show(((EMMessageBrowser *) browser)->window);
-+#endif
-
- camel_object_unref(folder);
- }
---- src/mn-evolution-plugin.c.evolution 2008-05-22 11:45:35.000000000 -0400
-+++ src/mn-evolution-plugin.c 2010-02-01 11:52:06.141664757 -0500
-@@ -204,7 +204,7 @@ connect_to_session_bus (void)
- }
-
- int
--e_plugin_lib_enable (EPluginLib *ep, int enable)
-+e_plugin_lib_enable (EPlugin *ep, int enable)
- {
- static gboolean enabled = FALSE;
- GError *err = NULL;
diff --git a/extra/metacity/metacity-restartstyle.patch b/extra/metacity/metacity-restartstyle.patch
deleted file mode 100644
index 54dd79e02..000000000
--- a/extra/metacity/metacity-restartstyle.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-From a3de65d5d1861f755ced7cad291fbbd4f1b8ef51 Mon Sep 17 00:00:00 2001
-From: Owen W. Taylor <otaylor@fishsoup.net>
-Date: Sat, 22 Aug 2009 15:00:57 -0400
-Subject: [PATCH] Should set RestartStyleHint to RestartIfRunning when replaced
-
-This reverts most of commit abbd057eb967e6ab462ffe305f41b2b04d417b25;
-
- - It's fine to call meta_session_shutdown() after the display
- is closed, since it's talking over the ICE connection
- - We should not call warn_about_lame_clients_and_finish_interact()
- unless we are interacting with the window manager in a session
- save.
-
-However, the part of abbd057 that fixed accessing freed memory was
-fixing a real problem; this patches does the same thing in a simpler
-way by fixing an obvious type in meta_display_close() where it was
-NULL'ing out the local variable 'display' rather than the global
-variable 'the_display' and adding keeping the check in meta_finalize()
-that was added in abbd057.
-
-The order of calling meta_session_shutdown() and
-calling meta_display_close() is reverted back to the old order to
-make it clear that it's OK if the display way already closed previously.
-
-http://bugzilla.gnome.org/show_bug.cgi?id=588119
----
- src/core/display-private.h | 2 +-
- src/core/display.c | 16 ++++------------
- src/core/main.c | 5 ++---
- src/core/session.c | 8 --------
- 4 files changed, 7 insertions(+), 24 deletions(-)
-
-diff --git a/src/core/display-private.h b/src/core/display-private.h
-index 19287f3..9c8ebc6 100644
---- a/src/core/display-private.h
-+++ b/src/core/display-private.h
-@@ -329,7 +329,7 @@ MetaScreen* meta_display_screen_for_xwindow (MetaDisplay *display,
- void meta_display_grab (MetaDisplay *display);
- void meta_display_ungrab (MetaDisplay *display);
-
--void meta_display_unmanage_screen (MetaDisplay **display,
-+void meta_display_unmanage_screen (MetaDisplay *display,
- MetaScreen *screen,
- guint32 timestamp);
-
-diff --git a/src/core/display.c b/src/core/display.c
-index 55c374a..8e35a35 100644
---- a/src/core/display.c
-+++ b/src/core/display.c
-@@ -926,7 +926,7 @@ meta_display_close (MetaDisplay *display,
- meta_compositor_destroy (display->compositor);
-
- g_free (display);
-- display = NULL;
-+ the_display = NULL;
-
- meta_quit (META_EXIT_SUCCESS);
- }
-@@ -4762,13 +4762,10 @@ process_selection_clear (MetaDisplay *display,
- meta_verbose ("Got selection clear for screen %d on display %s\n",
- screen->number, display->name);
-
-- meta_display_unmanage_screen (&display,
-+ meta_display_unmanage_screen (display,
- screen,
- event->xselectionclear.time);
-
-- if (!display)
-- the_display = NULL;
--
- /* display and screen may both be invalid memory... */
-
- return;
-@@ -4790,12 +4787,10 @@ process_selection_clear (MetaDisplay *display,
- }
-
- void
--meta_display_unmanage_screen (MetaDisplay **displayp,
-+meta_display_unmanage_screen (MetaDisplay *display,
- MetaScreen *screen,
- guint32 timestamp)
- {
-- MetaDisplay *display = *displayp;
--
- meta_verbose ("Unmanaging screen %d on display %s\n",
- screen->number, display->name);
-
-@@ -4805,10 +4800,7 @@ meta_display_unmanage_screen (MetaDisplay **displayp,
- display->screens = g_slist_remove (display->screens, screen);
-
- if (display->screens == NULL)
-- {
-- meta_display_close (display, timestamp);
-- *displayp = NULL;
-- }
-+ meta_display_close (display, timestamp);
- }
-
- void
-diff --git a/src/core/main.c b/src/core/main.c
-index a36a396..44d317e 100644
---- a/src/core/main.c
-+++ b/src/core/main.c
-@@ -361,12 +361,11 @@ static void
- meta_finalize (void)
- {
- MetaDisplay *display = meta_get_display();
--
-- meta_session_shutdown ();
--
- if (display)
- meta_display_close (display,
- CurrentTime); /* I doubt correct timestamps matter here */
-+
-+ meta_session_shutdown ();
- }
-
- static void
-diff --git a/src/core/session.c b/src/core/session.c
-index 7e3b389..0d69350 100644
---- a/src/core/session.c
-+++ b/src/core/session.c
-@@ -376,14 +376,6 @@ meta_session_shutdown (void)
- SmProp *props[1];
- char hint = SmRestartIfRunning;
-
-- if (!meta_get_display ())
-- {
-- meta_verbose ("Cannot close session because there is no display");
-- return;
-- }
--
-- warn_about_lame_clients_and_finish_interact (FALSE);
--
- if (session_connection == NULL)
- return;
-
---
-1.6.4 \ No newline at end of file
diff --git a/extra/nautilus/nautilus-condrestart.patch b/extra/nautilus/nautilus-condrestart.patch
deleted file mode 100644
index 9634f35eb..000000000
--- a/extra/nautilus/nautilus-condrestart.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -up nautilus-2.25.93/data/nautilus.desktop.in.condrestart nautilus-2.25.93/nautilus.desktop.in
---- nautilus-2.25.93/data/nautilus.desktop.in.condrestart 2009-03-12 10:49:41.449753624 -0400
-+++ nautilus-2.25.93/data/nautilus.desktop.in 2009-03-12 10:49:51.814754208 -0400
-@@ -17,3 +17,4 @@ X-GNOME-Autostart-Phase=Desktop
- X-GNOME-Autostart-Notify=true
- X-GNOME-AutoRestart=true
- X-GNOME-Provides=filemanager
-+AutostartCondition=GNOME /apps/nautilus/preferences/show_desktop
-diff -up nautilus-2.25.93/data/nautilus.desktop.in.in.condrestart nautilus-2.25.93/nautilus.desktop.in.in
---- nautilus-2.25.93/data/nautilus.desktop.in.in.condrestart 2009-03-12 10:47:41.681753834 -0400
-+++ nautilus-2.25.93/data/nautilus.desktop.in.in 2009-03-12 10:49:29.663754303 -0400
-@@ -17,3 +17,4 @@ X-GNOME-Autostart-Phase=Desktop
- X-GNOME-Autostart-Notify=true
- X-GNOME-AutoRestart=true
- X-GNOME-Provides=filemanager
-+AutostartCondition=GNOME /apps/nautilus/preferences/show_desktop
diff --git a/extra/network-manager-applet/nm-applet-0.8.2-libnotify-0.7.patch b/extra/network-manager-applet/nm-applet-0.8.2-libnotify-0.7.patch
deleted file mode 100644
index 54aa473af..000000000
--- a/extra/network-manager-applet/nm-applet-0.8.2-libnotify-0.7.patch
+++ /dev/null
@@ -1,36 +0,0 @@
---- src/applet.c
-+++ src/applet.c
-@@ -58,6 +58,10 @@
- #include <gnome-keyring.h>
- #include <libnotify/notify.h>
-
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
-+
- #include "applet.h"
- #include "applet-device-wired.h"
- #include "applet-device-wifi.h"
-@@ -626,12 +630,20 @@
- escaped = utils_escape_notify_message (message);
- notify = notify_notification_new (summary,
- escaped,
-- icon ? icon : GTK_STOCK_NETWORK,
-- NULL);
-+ icon ? icon : GTK_STOCK_NETWORK
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , NULL);
-+#endif
- g_free (escaped);
- applet->notification = notify;
-
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ /* notify_notification_attach_to_status_icon was removed */
-+#else
- notify_notification_attach_to_status_icon (notify, applet->status_icon);
-+#endif
- notify_notification_set_urgency (notify, urgency);
- notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT);
-
diff --git a/extra/notification-daemon/notification-daemon-0.4.0-libnotify-0.7.patch b/extra/notification-daemon/notification-daemon-0.4.0-libnotify-0.7.patch
deleted file mode 100644
index 8f5e4c909..000000000
--- a/extra/notification-daemon/notification-daemon-0.4.0-libnotify-0.7.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -Nur notification-daemon-0.4.0.orig/src/capplet/notification-properties.c notification-daemon-0.4.0/src/capplet/notification-properties.c
---- notification-daemon-0.4.0.orig/src/capplet/notification-properties.c 2008-11-20 02:46:16.000000000 -0800
-+++ notification-daemon-0.4.0/src/capplet/notification-properties.c 2011-03-07 03:23:07.293334003 -0800
-@@ -28,6 +28,10 @@
- #include <string.h>
- #include <libnotify/notify.h>
-
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
-+
- #include "../daemon/stack.h"
-
- #define GCONF_KEY_DAEMON "/apps/notification-daemon"
-@@ -434,8 +438,12 @@
-
- dialog->preview = notify_notification_new(_("Notification Test"),
- _("Just a test"),
-- "gnome-util",
-- NULL);
-+ "gnome-util"
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , NULL);
-+#endif
-
- if (!notify_notification_show(dialog->preview, &error))
- {
diff --git a/extra/ntfs-3g/25-ntfs-config-write-policy.fdi b/extra/ntfs-3g/25-ntfs-config-write-policy.fdi
deleted file mode 100644
index 54195d8b3..000000000
--- a/extra/ntfs-3g/25-ntfs-config-write-policy.fdi
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<deviceinfo version="0.2">
- <device>
- <match key="volume.fstype" string="ntfs">
- <append key="volume.fstype.alternative" type="copy_property">volume.fstype</append>
- <merge key="volume.mount.ntfs.valid_options" type="copy_property">volume.mount.valid_options</merge>
- <merge key="volume.unmount.ntfs.valid_options" type="copy_property">volume.unmount.valid_options</merge>
- <merge key="volume.fstype" type="string">ntfs-3g</merge>
- <merge key="volume.mount.valid_options" type="strlist">ro</merge>
- <append key="volume.mount.valid_options" type="strlist">atime</append>
- <append key="volume.mount.valid_options" type="strlist">noatime</append>
- <append key="volume.mount.valid_options" type="strlist">relatime</append>
- <append key="volume.mount.valid_options" type="strlist">fake_rw</append>
- <append key="volume.mount.valid_options" type="strlist">no_def_opts</append>
- <append key="volume.mount.valid_options" type="strlist">default_permissions</append>
- <append key="volume.mount.valid_options" type="strlist">umask=</append>
- <append key="volume.mount.valid_options" type="strlist">fmask=</append>
- <append key="volume.mount.valid_options" type="strlist">dmask=</append>
- <append key="volume.mount.valid_options" type="strlist">uid=</append>
- <append key="volume.mount.valid_options" type="strlist">gid=</append>
- <append key="volume.mount.valid_options" type="strlist">show_sys_files</append>
- <append key="volume.mount.valid_options" type="strlist">silent</append>
- <append key="volume.mount.valid_options" type="strlist">force</append>
- <append key="volume.mount.valid_options" type="strlist">remove_hiberfile</append>
- <append key="volume.mount.valid_options" type="strlist">locale=</append>
- <append key="volume.mount.valid_options" type="strlist">streams_interface=</append>
- <append key="volume.mount.valid_options" type="strlist">debug</append>
- <append key="volume.mount.valid_options" type="strlist">no_detatch</append>
- <append key="volume.mount.valid_options" type="strlist">sync</append>
- <append key="volume.mount.valid_options" type="strlist">dirsync</append>
- <append key="volume.mount.valid_options" type="strlist">nodiratime</append>
- <append key="volume.mount.valid_options" type="strlist">noexec</append>
- <append key="volume.mount.valid_options" type="strlist">quiet</append>
- <append key="volume.mount.valid_options" type="strlist">remount</append>
- <append key="volume.mount.valid_options" type="strlist">exec</append>
- <append key="volume.mount.valid_options" type="strlist">recover</append>
- <append key="volume.mount.valid_options" type="strlist">norecover</append>
- <merge key="volume.unmount.valid_options" type="strlist">lazy</merge>
- <merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge>
- </match>
- </device>
-</deviceinfo>
diff --git a/extra/ntfs-3g/PKGBUILD b/extra/ntfs-3g/PKGBUILD
deleted file mode 100644
index f651864bd..000000000
--- a/extra/ntfs-3g/PKGBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# $Id: PKGBUILD 108992 2011-02-05 10:41:54Z ronald $
-# Maintainer: Ronald van Haren <ronald.archlinux.org>
-# Contributor: Thomas Bächler <thomas.archlinux.org>
-
-pkgname=ntfs-3g
-pkgver=2011.1.15
-pkgrel=1
-pkgdesc="Stable read and write NTFS driver"
-url="http://www.tuxera.com"
-arch=('i686' 'x86_64')
-license=('GPL2')
-depends=('glibc' 'fuse')
-makedepends=('pkgconfig')
-options=('!libtool')
-source=(http://www.tuxera.com/opensource/${pkgname}-${pkgver}.tgz
- 25-ntfs-config-write-policy.fdi)
-sha1sums=('d7cf0c5e8730568f5fa8802869d6fe8cdd4a0213'
- '200029f2999a2c284fd30ae25734abf6459c3501')
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ac_cv_path_LDCONFIG=/bin/true ./configure --prefix=/usr \
- --with-fuse=external --disable-static
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
- ln -s /bin/ntfs-3g "${pkgdir}/sbin/mount.ntfs"
- install -m755 -d "${pkgdir}/usr/share/hal/fdi/policy/10osvendor"
- install -m644 "${srcdir}/25-ntfs-config-write-policy.fdi" "${pkgdir}/usr/share/hal/fdi/policy/10osvendor/"
-}
diff --git a/extra/ntfsprogs/PKGBUILD b/extra/ntfsprogs/PKGBUILD
deleted file mode 100644
index 56bf76566..000000000
--- a/extra/ntfsprogs/PKGBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# $Id: PKGBUILD 48342 2009-08-01 14:46:45Z jgc $
-# Maintainer: Ronald van Haren <ronald.archlinux.org>
-
-pkgname=ntfsprogs
-pkgver=2.0.0
-pkgrel=4
-depends=('glibc' 'fuse' 'util-linux-ng>=2.16')
-makedepends=('pkgconfig')
-pkgdesc="NTFS filesystem utilities"
-arch=(i686 x86_64)
-license=('GPL')
-source=(http://downloads.sourceforge.net/sourceforge/linux-ntfs/${pkgname}-${pkgver}.tar.gz)
-url="http://www.linux-ntfs.org/"
-options=(!libtool)
-md5sums=('2c402b647bb7aeb1d3f8ce1cc354fd68')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr --disable-gnome-vfs \
- --mandir=/usr/share/man || return 1
- make || return 1
- make DESTDIR="${pkgdir}" install || return 1
-}
-
diff --git a/extra/octave/octave-3.2.0_as_needed.patch b/extra/octave/octave-3.2.0_as_needed.patch
deleted file mode 100644
index bce3e01a3..000000000
--- a/extra/octave/octave-3.2.0_as_needed.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Naur octave-3.2.0/liboctave/Makefile.in octave-3.2.0.new/liboctave/Makefile.in
---- octave-3.2.0/liboctave/Makefile.in 2009-05-25 02:04:59.000000000 -0400
-+++ octave-3.2.0.new/liboctave/Makefile.in 2009-07-10 10:32:09.000000000 -0400
-@@ -35,6 +35,7 @@
- DLL_CXXDEFS = @OCTAVE_DLL_DEFS@
-
- LINK_DEPS = \
-+ -lpthread \
- -L../libcruft -L. $(RLD_FLAG) \
- $(LIBCRUFT) $(CHOLMOD_LIBS) $(UMFPACK_LIBS) $(AMD_LIBS) \
- $(CAMD_LIBS) $(COLAMD_LIBS) $(CCOLAMD_LIBS) $(CXSPARSE_LIBS) \
diff --git a/extra/octave/octave-3.2.0_parallel_make.patch b/extra/octave/octave-3.2.0_parallel_make.patch
deleted file mode 100644
index bcc2f7d29..000000000
--- a/extra/octave/octave-3.2.0_parallel_make.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur octave-3.2.0/doc/Makefile.in octave-3.2.0.new/doc/Makefile.in
---- octave-3.2.0/doc/Makefile.in 2009-06-03 07:55:40.000000000 -0400
-+++ octave-3.2.0.new/doc/Makefile.in 2009-07-07 18:20:14.000000000 -0400
-@@ -30,6 +30,8 @@
- all: conf.texi $(SUBDIRS)
- .PHONY: all
-
-+$(SUBDIRS): conf.texi
-+
- conf.texi: conf.texi.in $(TOPDIR)/Makeconf
- @$(do-subst-texinfo-vals)
-
diff --git a/extra/rhino/PKGBUILD b/extra/rhino/PKGBUILD
deleted file mode 100644
index 27d7c46fc..000000000
--- a/extra/rhino/PKGBUILD
+++ /dev/null
@@ -1,18 +0,0 @@
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=rhino
-pkgver=1.7R1
-pkgrel=1
-pkgdesc="Open-source implementation of JavaScript written entirely in Java"
-arch=('i686' 'x86_64')
-url="http://www.mozilla.org/rhino/"
-license=('MPL' 'GPL2')
-source=(ftp://ftp.mozilla.org/pub/mozilla.org/js/rhino1_7R1.zip)
-md5sums=('613eed8201d37be201805e5048ebb0c3')
-
-build() {
- cd ${srcdir}/rhino1_7R1
- install -m755 -d ${pkgdir}/usr/share/java
- install -m644 js.jar ${pkgdir}/usr/share/java/ || return 1
-}
diff --git a/extra/seahorse/seahorse-2.32.0-libnotify-0.7.patch b/extra/seahorse/seahorse-2.32.0-libnotify-0.7.patch
deleted file mode 100644
index 1a6b478ac..000000000
--- a/extra/seahorse/seahorse-2.32.0-libnotify-0.7.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- libseahorse/seahorse-notification.c
-+++ libseahorse/seahorse-notification.c
-@@ -37,6 +37,9 @@
-
- #ifdef HAVE_LIBNOTIFY
- #include <libnotify/notify.h>
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
- #endif
-
- /* -----------------------------------------------------------------------------
-@@ -231,7 +234,12 @@
- heading = format_key_text (snotif->heading);
- message = format_key_text (snotif->message);
-
-- notif = notify_notification_new (heading, message, snotif->icon, attachto);
-+ notif = notify_notification_new (heading, message, snotif->icon
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ );
-+#else
-+ , attachto);
-+#endif
-
- g_free (heading);
- g_free (message);
diff --git a/extra/slim/slim b/extra/slim/slim
deleted file mode 100755
index b0be7ffc5..000000000
--- a/extra/slim/slim
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID=`pidof -o %PPID /usr/bin/slim`
-case "$1" in
- start)
- stat_busy "Starting Simple Login Manager"
- [ -z "$PID" ] && /usr/bin/slim -d &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- add_daemon slim
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping Simple Login Manager"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon slim
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 3
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
diff --git a/extra/slim/slim.install b/extra/slim/slim.install
deleted file mode 100644
index 65aa77d72..000000000
--- a/extra/slim/slim.install
+++ /dev/null
@@ -1,7 +0,0 @@
-post_install() {
- cat <<EOF
-
-==> Add slim to the DAEMONS array in /etc/rc.conf or update /etc/inittab.
-
-EOF
-}
diff --git a/extra/slim/slim.logrotate b/extra/slim/slim.logrotate
deleted file mode 100644
index 26ec3b0f4..000000000
--- a/extra/slim/slim.logrotate
+++ /dev/null
@@ -1,9 +0,0 @@
-/var/log/slim.log {
- compress
- rotate 1
- size 1024k
- notifempty
- missingok
- copytruncate
- noolddir
-}
diff --git a/extra/slim/slim.pam b/extra/slim/slim.pam
deleted file mode 100644
index 78a981f74..000000000
--- a/extra/slim/slim.pam
+++ /dev/null
@@ -1,10 +0,0 @@
-#%PAM-1.0
-auth requisite pam_nologin.so
-auth required pam_env.so
-auth required pam_unix.so
-account required pam_unix.so
-password required pam_unix.so
-session required pam_limits.so
-session required pam_unix.so
-session optional pam_loginuid.so
-session optional pam_ck_connector.so
diff --git a/extra/xarchiver/ChangeLog b/extra/xarchiver/ChangeLog
deleted file mode 100644
index c3abc0d0e..000000000
--- a/extra/xarchiver/ChangeLog
+++ /dev/null
@@ -1,9 +0,0 @@
-2008-11-27 Alexander Fehr <pizzapunk gmail com>
-
- * xarchiver-0.5.2-1:
- New upstream release.
- New maintainer.
- Changed license to GPL.
- Added dependencies on desktop-file-utils and hicolor-icon-theme.
- Replaced install message with optdepends.
- Added ChangeLog.
diff --git a/extra/zenity/zenity-2.32.1-libnotify-0.7.patch b/extra/zenity/zenity-2.32.1-libnotify-0.7.patch
deleted file mode 100644
index 4d5bf7447..000000000
--- a/extra/zenity/zenity-2.32.1-libnotify-0.7.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- src/notification.c
-+++ src/notification.c
-@@ -30,6 +30,9 @@
-
- #ifdef HAVE_LIBNOTIFY
- #include <libnotify/notify.h>
-+#ifndef NOTIFY_CHECK_VERSION
-+#define NOTIFY_CHECK_VERSION(x,y,z) 0
-+#endif
- #endif
-
- #include "zenity.h"
-@@ -184,10 +187,14 @@
- icon = freeme = g_filename_to_uri (icon_file, NULL, NULL);
- }
-
-+#if NOTIFY_CHECK_VERSION (0, 7, 0)
-+ /* notify_notification_new_with_status_icon was removed */
-+#else
- notif = notify_notification_new_with_status_icon (
- message[0] /* title */,
- message[1] /* summary */,
- icon, status_icon);
-+#endif
-
- g_strfreev (message);
- g_free (freeme);
diff --git a/extra/zip/ChangeLog b/extra/zip/ChangeLog
deleted file mode 100644
index bc7e1fb02..000000000
--- a/extra/zip/ChangeLog
+++ /dev/null
@@ -1,13 +0,0 @@
-2008-08-10 Eric Belanger <eric@archlinux.org>
-
- * zip 3.0-1
- * Removed zcrypt reference as it's now included in zip 3.0
- * Added bzip2 depends
- * Added license
- * FHS man pages
- * Disabled SMP build
-
-2008-07-27 Douglas Soares de Andrade <douglas@archlinux.org>
-
- * Updating for i686: 3.0
-