diff options
207 files changed, 13116 insertions, 14119 deletions
diff --git a/community/avant-window-navigator/688_687.diff b/community/avant-window-navigator/688_687.diff deleted file mode 100644 index 34c5b8fa4..000000000 --- a/community/avant-window-navigator/688_687.diff +++ /dev/null @@ -1,23 +0,0 @@ -=== modified file 'libawn/awn-applet-simple.c' ---- libawn/awn-applet-simple.c 2010-01-10 14:43:43 +0000 -+++ libawn/awn-applet-simple.c 2010-04-11 21:08:28 +0000 -@@ -393,16 +393,16 @@ - GStrv states, - GStrv icon_names) - { -- gchar *applet_name; -+ gchar *applet_name=NULL; - - g_return_if_fail (AWN_IS_APPLET_SIMPLE (applet)); -- g_return_if_fail (applet_name); - g_return_if_fail (states); - g_return_if_fail (icon_names); - - g_object_get (applet, - "canonical-name",&applet_name, - NULL); -+ g_return_if_fail (applet_name); - applet->priv->last_set_icon = ICON_THEMED_MANY; - awn_themed_icon_set_size (AWN_THEMED_ICON (applet->priv->icon), - awn_applet_get_size (AWN_APPLET (applet))); - diff --git a/community/avant-window-navigator/821_820.diff b/community/avant-window-navigator/821_820.diff deleted file mode 100644 index bd8c5b279..000000000 --- a/community/avant-window-navigator/821_820.diff +++ /dev/null @@ -1,96 +0,0 @@ -=== modified file 'awn-settings/awnClass.py' ---- awn-settings/awnClass.py 2010-08-24 00:21:51 +0000 -+++ awn-settings/awnClass.py 2011-02-13 23:43:42 +0000 -@@ -53,9 +53,13 @@ - import tempfile - import dbus - --from bzrlib import branch --from bzrlib.builtins import cmd_branch, cmd_pull --from bzrlib.plugins.launchpad.lp_directory import LaunchpadDirectory -+try: -+ from bzrlib import branch -+ from bzrlib.builtins import cmd_branch, cmd_pull -+ from bzrlib.plugins.launchpad.lp_directory import LaunchpadDirectory -+ support_bzr = True -+except: -+ support_bzr = False - - defs.i18nize(globals()) - -@@ -127,8 +131,11 @@ - path: a url from a branch - return: the http format of a lp: format, or the same url - ''' -- directory = LaunchpadDirectory() -- return directory._resolve(path).replace("bzr+ssh","http") -+ if support_bzr == True: -+ directory = LaunchpadDirectory() -+ return directory._resolve(path).replace("bzr+ssh","http") -+ else: -+ return path - - def read_list(self, file_path): - ''' Read a flat file and return the content in a list -@@ -148,34 +155,44 @@ - path: the path of the branch - bzr_dir: the location of the futur tree. - ''' -- if os.path.exists(path): -- print ("Error, the path already exist") -+ if support_bzr == False: -+ print (_("Bzr support is not enable, try to install bzr")) - else: -- try: -- bzr_branch = cmd_branch() -- status = StringIO() -- status = bzr_branch._setup_outf() -- bzr_branch.run(from_location=self.lp_path_normalize(bzr_dir), to_location=path) -- except socket.gaierror: -- print 'Socket error, could not create branch.' -+ if os.path.exists(path): -+ print (_("Error, the path already exist")) -+ else: -+ try: -+ bzr_branch = cmd_branch() -+ status = StringIO() -+ status = bzr_branch._setup_outf() -+ bzr_branch.run(from_location=self.lp_path_normalize(bzr_dir), to_location=path) -+ except socket.gaierror: -+ print (_('Socket error, could not create branch.')) - - def update_branch(self, path): - ''' Update a local branch - path: Location of the branch - Return the output of the command - ''' -- bzr_pull = cmd_pull() -- status = StringIO() -- status = bzr_pull._setup_outf() -- bzr_pull.run(directory=path) -+ if support_bzr == False: -+ print (_("Bzr support is not enable, try to install bzr")) -+ else: -+ bzr_pull = cmd_pull() -+ status = StringIO() -+ status = bzr_pull._setup_outf() -+ bzr_pull.run(directory=path) - - def get_revision_from_path(self, path): - ''' Return the last revision number of the branch - specify with path parameter - ''' -- tree = branch.Branch.open(path) -- revision_number, revision_id = tree.last_revision_info() -- return revision_number -+ if support_bzr == False: -+ print (_("Bzr support is not enable, try to install bzr")) -+ return 0 -+ else: -+ tree = branch.Branch.open(path) -+ revision_number, revision_id = tree.last_revision_info() -+ return revision_number - - #Sources.list - def dict_from_sources_list(self, config=defs.HOME_CONFIG_DIR): - diff --git a/community/avant-window-navigator/824_823.diff b/community/avant-window-navigator/824_823.diff deleted file mode 100644 index 290b4ad6d..000000000 --- a/community/avant-window-navigator/824_823.diff +++ /dev/null @@ -1,40 +0,0 @@ -=== modified file 'applets/taskmanager/task-manager.c' ---- applets/taskmanager/task-manager.c 2011-01-15 16:44:44 +0000 -+++ applets/taskmanager/task-manager.c 2011-03-12 21:42:33 +0000 -@@ -1611,11 +1611,6 @@ - g_debug ("%s: Window opened: %s",__func__,wnck_window_get_name (window)); - g_debug ("xid = %lu, pid = %d",wnck_window_get_xid (window),wnck_window_get_pid (window)); - #endif -- /* -- for some reason the skip tasklist property for the taskmanager toggles briefly -- off and on in certain circumstances. Nip this in the bud. -- TODO: Investigate wth this is happening... it bothers me. -- */ - // if ( wnck_window_get_pid (window) == getpid() || - if ( g_strcmp0 (wnck_window_get_name (window),"awn-applet")==0 ) - { -@@ -1626,11 +1621,6 @@ - */ - g_signal_connect (window, "state-changed", G_CALLBACK (on_window_state_changed), manager); - -- if (wnck_window_is_skip_tasklist (window)) -- { -- return; -- } -- - g_signal_connect (window, "state-changed", - G_CALLBACK (check_attention_requested), manager); - -@@ -1798,6 +1787,11 @@ - g_return_if_fail (TASK_IS_MANAGER (manager)); - g_return_if_fail (WNCK_IS_WINDOW (window)); - -+ if (wnck_window_is_skip_tasklist(window)) -+ { -+ return; -+ } -+ - _wnck_get_wmclass (wnck_window_get_xid (window), - &res_name, &class_name); - if (get_special_wait_from_window_data (res_name, - diff --git a/community/avant-window-navigator/PKGBUILD b/community/avant-window-navigator/PKGBUILD deleted file mode 100644 index 6d6bb256e..000000000 --- a/community/avant-window-navigator/PKGBUILD +++ /dev/null @@ -1,67 +0,0 @@ -# $Id: PKGBUILD 79700 2012-11-11 10:30:00Z bgyorgy $ -# Maintainer: Balló György <ballogyor+arch at gmail dot com> -# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> -# Contributor: Timm Preetz <timm@preetz.us> -# Contributor: Daniel J Griffiths <ghost1227@archlinux.us> - -pkgname=avant-window-navigator -pkgver=0.4.0 -pkgrel=13 -pkgdesc="Fully customisable dock-like window navigator for GNOME" -arch=('i686' 'x86_64' 'mips64el') -url="https://launchpad.net/awn" -license=('GPL') -depends=('libdesktop-agnostic' 'libwnck' 'libgtop' 'gconf' 'python2-dbus' 'pygtk' 'python2-xdg' 'hicolor-icon-theme' 'xdg-utils') -makedepends=('gtk-doc' 'vala' 'intltool') -options=('!libtool') -install=$pkgname.install -source=(http://launchpad.net/awn/0.4/$pkgver/+download/$pkgname-$pkgver.tar.gz - 688_687.diff - 821_820.diff - 824_823.diff) -md5sums=('03654b45dd95cbb83fa7e112bd00523c' - '6b05ccb539f811729820d5545eb50d6e' - '2cc0ecf9fccb6e559a98003715ebf6df' - 'd068c19503b7be1868bcce5dab003628') - -build() { - cd "$srcdir/$pkgname-$pkgver" - - # Fix uninitialised pointer - # https://bugs.launchpad.net/awn/+bug/562499 - patch -Np0 -i "$srcdir/688_687.diff" - - # Remove bzr dependency - # https://bugs.launchpad.net/awn/+bug/707863 - patch -Np0 -i "$srcdir/821_820.diff" - - # Hide windows with skip taskbar state - # https://bugs.launchpad.net/awn/+bug/707863 - patch -Np0 -i "$srcdir/824_823.diff" - - # Python2 fix - sed -i 's@^#!.*python$@#!/usr/bin/python2@' awn-settings/{awnSettings.py.in,awnSettingsHelper.py} - sed -i 's/with ("python"/with ("python2"/' applet-activation/main.c - - autoreconf -fi - ./configure --prefix=/usr --sysconfdir=/etc \ - --disable-static \ - PYTHON=/usr/bin/python2 - make -} - -check() { - cd "$srcdir/$pkgname-$pkgver" - - make check -} - -package() { - cd "$srcdir/$pkgname-$pkgver" - - make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="$pkgdir" install - - install -m755 -d "$pkgdir/usr/share/gconf/schemas" - gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/awn.schemas" "$pkgdir"/etc/gconf/schemas/*.schemas - rm -r "$pkgdir/etc" -} diff --git a/community/avant-window-navigator/avant-window-navigator.install b/community/avant-window-navigator/avant-window-navigator.install deleted file mode 100644 index f5473a092..000000000 --- a/community/avant-window-navigator/avant-window-navigator.install +++ /dev/null @@ -1,22 +0,0 @@ -pkgname=awn - -post_install() { - gconfpkg --install $pkgname - xdg-icon-resource forceupdate -} - -pre_upgrade() { - pre_remove $1 -} - -post_upgrade() { - post_install $1 -} - -pre_remove() { - gconfpkg --uninstall $pkgname -} - -post_remove() { - xdg-icon-resource forceupdate -} diff --git a/community/awn-extras-applets/PKGBUILD b/community/awn-extras-applets/PKGBUILD deleted file mode 100644 index 849ad6e03..000000000 --- a/community/awn-extras-applets/PKGBUILD +++ /dev/null @@ -1,89 +0,0 @@ -# Maintainer: György Balló <ballogy@freestart.hu> -# Contributor: Biru Ionut <ionut@archlinux.ro> -# Contributor: Jonathan Liu <net147@hotmail.com> -# Contributor: Daniel J Griffiths <ghost1227@archlinux.us> - -pkgname=awn-extras-applets -_pkgname=awn-extras -pkgver=0.4.0 -pkgrel=15 -pkgdesc="Collection of applets for avant-window-navigator" -arch=('i686' 'x86_64' 'mips64el') -url="https://launchpad.net/awn-extras" -license=('GPL') -depends=('avant-window-navigator' 'python2-notify' 'vte' 'gnome-menus' 'gnome-menus2' 'webkitgtk2') -makedepends=('intltool' 'vala') -optdepends=('python2-feedparser: comics, feeds, mail applets' - 'python2-rsvg: comics, cairo-clock, hardware-sensors applets' - 'gstreamer0.10-python: media-player, volume-control applets' - 'python2-dateutil: cairo-clock (optional), calendar applets' - 'python2-gdata: calendar applet' - 'python2-vobject: calendar applet' - 'python2-pyinotify: thinkhdaps applet (optional)' - 'python2-libgnome: stacks applet' - 'python2-gnomedesktop: stacks applet' - 'python2-wnck: slickswitcher applet' - 'fortune-mod: animal-farm applet' - 'upower: battery applet' - 'gnome-applets: cpufreq applet' - 'hddtemp: hardware-sensors applet (optional)' - 'lm_sensors: hardware-sensors applet (optional)') -options=('!libtool') -install=$pkgname.install -source=(http://launchpad.net/$_pkgname/0.4/$pkgver/+download/$_pkgname-$pkgver.tar.gz - awn-extras-libnotify0.7.patch - remove-settings-menu.patch - add-battery-upower-support.patch - fix-shinyswitcher-scrolling.patch - fix-weather-applet.patch - awn-extras-glib2.32.patch - cairo-menu-upower.patch - check-dependencies.patch) -md5sums=('b559d68cd6ad295c961c20fcc5d9f9c0' - '2df8dfd8f0f1d458c09b56983c7d049f' - '52f8ce6a4eca862b0740e29a84db8ae5' - '26b56106b63b14ba3c99f1a2e96da05d' - '755c57dfbb65a314f247277918ec95ac' - 'bc22bb3e81aca0f651ae8acee1ce2f00' - '1cfcd1e5dc92c4c7c306472d42a21c2d' - 'f9715f531947967d6549a358ea8d2979' - '8f920c7dde987d66eef7d3739df1051d') - -build() { - cd "$srcdir/$_pkgname-$pkgver" - patch -Np1 -i "$srcdir/awn-extras-libnotify0.7.patch" - patch -Np1 -i "$srcdir/remove-settings-menu.patch" - patch -Np0 -i "$srcdir/add-battery-upower-support.patch" - patch -Np0 -i "$srcdir/fix-shinyswitcher-scrolling.patch" - patch -Np1 -i "$srcdir/fix-weather-applet.patch" - patch -Np0 -i "$srcdir/awn-extras-glib2.32.patch" - patch -Np1 -i "$srcdir/cairo-menu-upower.patch" - patch -Np1 -i "$srcdir/check-dependencies.patch" - - # Python2 fix - find . -type f -name *.py | xargs sed -i 's@^#.*python$@#!/usr/bin/python2@' - sed -i 's/async(\"python \"/async(\"python2 \"/' applets/maintained/shiny-switcher/shinyswitcherapplet.c - - ./configure --prefix=/usr --sysconfdir=/etc \ - --disable-static \ - --disable-pymod-checks \ - --with-webkit \ - PYTHON=/usr/bin/python2 - make -} - -package() { - cd "$srcdir/$_pkgname-$pkgver" - - make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="$pkgdir" install - - mkdir -p "$pkgdir/usr/share/gconf/schemas" - gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/awn-extras.schemas" "$pkgdir"/etc/gconf/schemas/*.schemas - rm -r "$pkgdir"/etc - - # Remove bandwidth-monitor applet, because it's not compatible with latest netstat - rm -R "$pkgdir"/usr/share/avant-window-navigator/applets/bandwidth-monitor* - - # Remove pandora applet, because gtkmozembed is not available - rm -R "$pkgdir"/usr/share/avant-window-navigator/applets/pandora* -} diff --git a/community/awn-extras-applets/add-battery-upower-support.patch b/community/awn-extras-applets/add-battery-upower-support.patch deleted file mode 100644 index 0548df758..000000000 --- a/community/awn-extras-applets/add-battery-upower-support.patch +++ /dev/null @@ -1,200 +0,0 @@ -=== modified file 'applets/maintained/battery/battery.py' ---- applets/maintained/battery/battery.py 2010-08-12 19:00:37 +0000 -+++ applets/maintained/battery/battery.py 2010-09-12 22:24:21 +0000 -@@ -1,6 +1,6 @@ - #!/usr/bin/python - # Copyright (c) 2007 - 2008 Randal Barlow <im.tehk at gmail.com> --# 2008 - 2009 onox <denkpadje@gmail.com> -+# 2008 - 2010 onox <denkpadje@gmail.com> - # - # This library is free software; you can redistribute it and/or - # modify it under the terms of the GNU Lesser General Public -@@ -223,11 +223,11 @@ - return - - charge_percentage = self.backend.get_capacity_percentage() -- -- charge_message = "Computer running on %s power" % ("AC", "battery")[self.backend.is_discharging()] -+ power_type = "AC" if self.backend.is_on_ac_power() else "battery" -+ charge_message = "Computer running on %s power" % power_type - - if self.backend.is_charged(): -- charge_message += "\nBattery charged" -+ charge_message += "\n" + "Battery charged" - icon = os.path.join(themes_dir, self.settings["theme"], "battery-charged.svg") - else: - is_charging = self.backend.is_charging() -@@ -343,6 +343,148 @@ - return self.get_remaining_capacity() <= self.get_warning_capacity() - - -+class UPowerBackend(AbstractBackend): -+ -+ """Backend that uses UPower via DBus. -+ -+ Reference: http://upower.freedesktop.org/docs/Device.html -+ -+ """ -+ -+ device_iface_name = "org.freedesktop.UPower.Device" -+ -+ devices = None -+ -+ def __init__(self): -+ self.__system_bus = dbus.SystemBus() -+ -+ self.udi = UPowerBackend.get_batteries().keys()[0] -+ self.__set_dbus_interface(self.udi) -+ -+ @staticmethod -+ def backend_useable(): -+ return dbus is not None and len(UPowerBackend.get_batteries()) > 0 -+ -+ @staticmethod -+ def get_batteries(): -+ udi_models = {} -+ -+ try: -+ system_bus = dbus.SystemBus() -+ -+ proxy = system_bus.get_object("org.freedesktop.UPower", "/org/freedesktop/UPower") -+ interface = dbus.Interface(proxy, "org.freedesktop.UPower") -+ -+ UPowerBackend.devices = list(interface.EnumerateDevices()) -+ -+ for udi in UPowerBackend.devices: -+ device_iface = UPowerBackend.__get_dbus_interface(system_bus, udi) -+ -+ # Type 2 is battery (1 is AC, 3 is UPS) -+ device_type = int(UPowerBackend.__get_property(device_iface, "Type")) -+ is_present = bool(UPowerBackend.__get_property(device_iface, "IsPresent")) -+ -+ if device_type == 2 and is_present: -+ udi_models[str(udi)] = str(UPowerBackend.__get_property(device_iface, "Model")) -+ except dbus.DBusException, e: -+ print e.message -+ finally: -+ return udi_models -+ -+ def set_active_udi(self, udi): -+ udi_models = UPowerBackend.get_batteries() -+ -+ assert udi in udi_models -+ -+ self.udi = udi -+ self.__set_dbus_interface(udi) -+ -+ @staticmethod -+ def __get_dbus_interface(system_bus, udi): -+ proxy = system_bus.get_object("org.freedesktop.UPower", udi) -+ return dbus.Interface(proxy, "org.freedesktop.DBus.Properties") -+ -+ def __set_dbus_interface(self, udi): -+ self.__battery = UPowerBackend.__get_dbus_interface(self.__system_bus, udi) -+ -+ @staticmethod -+ def __get_property(interface, property_name): -+ return interface.Get(UPowerBackend.device_iface_name, property_name) -+ -+ def get_active_udi(self): -+ return self.udi -+ -+ def is_present(self): -+ return bool(UPowerBackend.__get_property(self.__battery, "IsPresent")) -+ -+ def is_charging(self): -+ # State 1 is charging -+ return int(UPowerBackend.__get_property(self.__battery, "State")) == 1 -+ -+ def is_discharging(self): -+ # State 2 is discharging -+ return int(UPowerBackend.__get_property(self.__battery, "State")) == 2 -+ -+ def get_last_full_capacity(self): -+ # Measured in Wh -+ return int(UPowerBackend.__get_property(self.__battery, "EnergyFull")) -+ -+ def get_remaining_capacity(self): -+ # Measured in Wh -+ return int(UPowerBackend.__get_property(self.__battery, "Energy")) -+ -+ def get_charge_rate(self): -+ # Measured in W. Original value positive if being discharged, negative if being charged -+ return abs(int(UPowerBackend.__get_property(self.__battery, "EnergyRate"))) -+ -+ def get_capacity_percentage(self): -+ # Percentage in range 0 .. 100 -+ return int(UPowerBackend.__get_property(self.__battery, "Percentage")) -+ -+ def get_warning_capacity(self): -+ # Measured in Wh -+ return int(int(UPowerBackend.__get_property(self.__battery, "EnergyFullDesign")) * (warning_percentage / 100.)) -+ -+ def get_charge_time(self): -+ assert self.is_charging() -+ -+ # Charge time in seconds -+ time = int(UPowerBackend.__get_property(self.__battery, "TimeToFull")) -+ -+ if time == 0: -+ return super(UPowerBackend, self).get_charge_time() -+ -+ hours = time / 3600 -+ seconds = time % 3600 -+ return (hours, int(round(seconds / 60.0))) -+ -+ def get_remaining_time(self): -+ assert self.is_discharging() -+ -+ # Discharge time in seconds -+ time = int(UPowerBackend.__get_property(self.__battery, "TimeToEmpty")) -+ -+ if time == 0: -+ return super(UPowerBackend, self).get_discharge_time() -+ -+ hours = time / 3600 -+ seconds = time % 3600 -+ return (hours, int(round(seconds / 60.0))) -+ -+ def is_charged(self): -+ # State 4 is fully charged -+ return int(UPowerBackend.__get_property(self.__battery, "State")) == 4 -+ -+ def is_on_ac_power(self): -+ for udi in UPowerBackend.devices: -+ device_iface = UPowerBackend.__get_dbus_interface(self.__system_bus, udi) -+ -+ # Property "Online" only has a value for AC power device -+ if bool(UPowerBackend.__get_property(device_iface, "Online")): -+ return True -+ return False -+ -+ - class HalBackend(AbstractBackend): - - """Backend that uses HAL via DBus. -@@ -372,7 +514,7 @@ - return udi_models - except dbus.DBusException, e: - print e.message -- return {} -+ return udi_models - - def set_active_udi(self, udi): - udi_models = HalBackend.get_batteries() -@@ -416,8 +558,12 @@ - except dbus.DBusException: - return int(int(self.__hal_battery.GetProperty("battery.charge_level.design")) * (warning_percentage / 100.)) - -- --backends = [HalBackend] -+ def is_on_ac_power(self): -+ # TODO Should check that _all_ batteries are not discharging -+ return not self.is_discharging() -+ -+ -+backends = [UPowerBackend, HalBackend] - - - if __name__ == "__main__": - diff --git a/community/awn-extras-applets/awn-extras-applets.install b/community/awn-extras-applets/awn-extras-applets.install deleted file mode 100644 index 9f04bf6a2..000000000 --- a/community/awn-extras-applets/awn-extras-applets.install +++ /dev/null @@ -1,23 +0,0 @@ -pkgname=awn-extras - -post_install() { - gconfpkg --install $pkgname - xdg-icon-resource forceupdate -} - -pre_upgrade() { - pre_remove $1 -} - -post_upgrade() { - post_install $1 -} - - -pre_remove() { - gconfpkg --uninstall $pkgname -} - -post_remove() { - xdg-icon-resource forceupdate -} diff --git a/community/awn-extras-applets/awn-extras-glib2.32.patch b/community/awn-extras-applets/awn-extras-glib2.32.patch deleted file mode 100644 index 563d73b56..000000000 --- a/community/awn-extras-applets/awn-extras-glib2.32.patch +++ /dev/null @@ -1,226 +0,0 @@ -=== modified file 'applets/maintained/awnterm/keybinder.h' ---- applets/maintained/awnterm/keybinder.h 2009-12-04 15:32:54 +0000 -+++ applets/maintained/awnterm/keybinder.h 2012-04-28 13:17:10 +0000 -@@ -24,7 +24,7 @@ - #ifndef __AWN_KEY_BINDER_H__ - #define __AWN_KEY_BINDER_H__ - --#include <glib/gtypes.h> -+#include <glib.h> - - G_BEGIN_DECLS - - -=== modified file 'applets/maintained/notification-daemon/daemon.h' ---- applets/maintained/notification-daemon/daemon.h 2009-11-18 20:13:53 +0000 -+++ applets/maintained/notification-daemon/daemon.h 2012-04-28 13:17:10 +0000 -@@ -31,8 +31,6 @@ - - #include <libawn/awn-applet.h> - #include <libawn/awn-applet-simple.h> --#include <glib/gmacros.h> --#include <glib/gerror.h> - - #include <libawn/awn-dialog.h> - #include <libawn/awn-cairo-utils.h> - -=== modified file 'applets/maintained/notification-daemon/engines.c' ---- applets/maintained/notification-daemon/engines.c 2010-04-10 17:06:17 +0000 -+++ applets/maintained/notification-daemon/engines.c 2012-04-28 13:17:10 +0000 -@@ -38,8 +38,7 @@ - - - #include <libawn/awn-applet.h> --#include <glib/gmacros.h> --#include <glib/gerror.h> -+#include <glib.h> - - #include <libawn/awn-dialog.h> - #include <libawn/awn-applet-simple.h> -@@ -50,7 +49,6 @@ - - #include <string.h> - #include <gtk/gtk.h> --#include <glib.h> - #ifndef HAVE_GTK_URL_LABEL - #include <libsexy/sexy-url-label.h> - #endif - -=== modified file 'applets/unmaintained/awnsystemmonitor/awnsystemmonitor.h' ---- applets/unmaintained/awnsystemmonitor/awnsystemmonitor.h 2009-04-22 03:44:36 +0000 -+++ applets/unmaintained/awnsystemmonitor/awnsystemmonitor.h 2012-04-28 13:17:10 +0000 -@@ -25,7 +25,7 @@ - //#include <libawn/awn-title.h> - #include <libawn/awn-tooltip.h> - --#include <glib/gtypes.h> -+#include <glib.h> - #include <glibtop/cpu.h> - #include <gconf/gconf-client.h> - - -=== modified file 'applets/unmaintained/awnsystemmonitor/awntop_cairo_component.c' ---- applets/unmaintained/awnsystemmonitor/awntop_cairo_component.c 2010-04-01 14:25:40 +0000 -+++ applets/unmaintained/awnsystemmonitor/awntop_cairo_component.c 2012-04-28 13:17:10 +0000 -@@ -43,13 +43,11 @@ - - - #include <libawn/awn-applet.h> --#include <glib/gmacros.h> --#include <glib/gerror.h> -+#include <glib.h> - #include <gconf/gconf-value.h> - - #include <libawn/awn-dialog.h> - #include <libawn/awn-applet-simple.h> --#include <glib.h> - #include <gtk/gtk.h> - - - -=== modified file 'applets/unmaintained/awnsystemmonitor/cpu_component.c' ---- applets/unmaintained/awnsystemmonitor/cpu_component.c 2009-08-27 20:20:33 +0000 -+++ applets/unmaintained/awnsystemmonitor/cpu_component.c 2012-04-28 13:17:10 +0000 -@@ -18,13 +18,11 @@ - */ - - #include <libawn/awn-applet.h> --#include <glib/gmacros.h> --#include <glib/gerror.h> -+#include <glib.h> - #include <gconf/gconf-value.h> - - #include <libawn/awn-dialog.h> - #include <libawn/awn-applet-simple.h> --#include <glib.h> - #include <gtk/gtk.h> - #include <gdk/gdk.h> - #include <string.h> - -=== modified file 'applets/unmaintained/awnsystemmonitor/cpumetergconf.c' ---- applets/unmaintained/awnsystemmonitor/cpumetergconf.c 2009-04-22 03:44:36 +0000 -+++ applets/unmaintained/awnsystemmonitor/cpumetergconf.c 2012-04-28 13:17:10 +0000 -@@ -20,13 +20,10 @@ - * Boston, MA 02111-1307, USA. - */ - #include <string.h> --#include <glib/gmacros.h> --#include <glib/gerror.h> -+#include <glib.h> - #include <gconf/gconf-value.h> - - #include <libawn/awn-applet.h> --#include <glib/gmacros.h> --#include <glib/gerror.h> - #include <gconf/gconf-value.h> - - #include "cairo-utils.h" - -=== modified file 'applets/unmaintained/awnsystemmonitor/dashboard.h' ---- applets/unmaintained/awnsystemmonitor/dashboard.h 2009-04-22 03:44:36 +0000 -+++ applets/unmaintained/awnsystemmonitor/dashboard.h 2012-04-28 13:17:10 +0000 -@@ -23,13 +23,11 @@ - - - #include <libawn/awn-applet.h> --#include <glib/gmacros.h> --#include <glib/gerror.h> -+#include <glib.h> - #include <gconf/gconf-value.h> - - #include <libawn/awn-dialog.h> - #include <libawn/awn-applet-simple.h> --#include <glib.h> - #include <gtk/gtk.h> - - #include <glibtop/mem.h> - -=== modified file 'applets/unmaintained/awnsystemmonitor/date_time_component.c' ---- applets/unmaintained/awnsystemmonitor/date_time_component.c 2009-07-07 20:10:17 +0000 -+++ applets/unmaintained/awnsystemmonitor/date_time_component.c 2012-04-28 13:17:10 +0000 -@@ -19,13 +19,11 @@ - - - #include <libawn/awn-applet.h> --#include <glib/gmacros.h> --#include <glib/gerror.h> -+#include <glib.h> - #include <gconf/gconf-value.h> - - #include <libawn/awn-dialog.h> - #include <libawn/awn-applet-simple.h> --#include <glib.h> - #include <gtk/gtk.h> - #include <gdk/gdk.h> - #include <string.h> - -=== modified file 'applets/unmaintained/awnsystemmonitor/loadavg_component.c' ---- applets/unmaintained/awnsystemmonitor/loadavg_component.c 2009-07-07 20:10:17 +0000 -+++ applets/unmaintained/awnsystemmonitor/loadavg_component.c 2012-04-28 13:17:10 +0000 -@@ -19,13 +19,11 @@ - - #include <glibtop/loadavg.h> - #include <libawn/awn-applet.h> --#include <glib/gmacros.h> --#include <glib/gerror.h> -+#include <glib.h> - #include <gconf/gconf-value.h> - - #include <libawn/awn-dialog.h> - #include <libawn/awn-applet-simple.h> --#include <glib.h> - #include <gtk/gtk.h> - #include <gdk/gdk.h> - #include <string.h> - -=== modified file 'applets/unmaintained/awnsystemmonitor/sysmem_component.c' ---- applets/unmaintained/awnsystemmonitor/sysmem_component.c 2009-08-27 20:20:33 +0000 -+++ applets/unmaintained/awnsystemmonitor/sysmem_component.c 2012-04-28 13:17:10 +0000 -@@ -19,13 +19,11 @@ - - #include <glibtop/mem.h> - #include <libawn/awn-applet.h> --#include <glib/gmacros.h> --#include <glib/gerror.h> -+#include <glib.h> - #include <gconf/gconf-value.h> - - #include <libawn/awn-dialog.h> - #include <libawn/awn-applet-simple.h> --#include <glib.h> - #include <gtk/gtk.h> - #include <gdk/gdk.h> - #include <string.h> - -=== modified file 'applets/unmaintained/awnsystemmonitor/uptime_component.c' ---- applets/unmaintained/awnsystemmonitor/uptime_component.c 2009-07-07 20:10:17 +0000 -+++ applets/unmaintained/awnsystemmonitor/uptime_component.c 2012-04-28 13:17:10 +0000 -@@ -1,12 +1,10 @@ - - #include <libawn/awn-applet.h> --#include <glib/gmacros.h> --#include <glib/gerror.h> -+#include <glib.h> - #include <gconf/gconf-value.h> - - #include <libawn/awn-dialog.h> - #include <libawn/awn-applet-simple.h> --#include <glib.h> - - #include <glibtop/uptime.h> - #include <glibtop/cpu.h> - -=== modified file 'applets/unmaintained/main-menu/applet.c' ---- applets/unmaintained/main-menu/applet.c 2011-12-28 11:09:45 +0000 -+++ applets/unmaintained/main-menu/applet.c 2012-04-28 13:17:10 +0000 -@@ -23,8 +23,7 @@ - - #include <string.h> - --#include <glib/gmacros.h> --#include <glib/gerror.h> -+#include <glib.h> - #include <glib/gi18n.h> - #include <gtk/gtk.h> - #include <libdesktop-agnostic/fdo.h> - diff --git a/community/awn-extras-applets/awn-extras-libnotify0.7.patch b/community/awn-extras-applets/awn-extras-libnotify0.7.patch deleted file mode 100644 index c552e26f2..000000000 --- a/community/awn-extras-applets/awn-extras-libnotify0.7.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur awn-extras-0.4.0.orig/applets/maintained/notification-daemon/daemon.c awn-extras-0.4.0/applets/maintained/notification-daemon/daemon.c ---- awn-extras-0.4.0.orig/applets/maintained/notification-daemon/daemon.c 2010-04-10 01:26:20.000000000 +0200 -+++ awn-extras-0.4.0/applets/maintained/notification-daemon/daemon.c 2011-12-16 00:23:45.488215715 +0100 -@@ -1487,7 +1487,7 @@ - if (fork() == 0) - { - notify_init("notify-send"); -- notify = notify_notification_new(summary, body, icon_str, NULL); -+ notify = notify_notification_new(summary, body, icon_str); - notify_notification_set_category(notify, type); - notify_notification_set_urgency(notify, urgency); - notify_notification_set_timeout(notify, expire_timeout); diff --git a/community/awn-extras-applets/cairo-menu-upower.patch b/community/awn-extras-applets/cairo-menu-upower.patch deleted file mode 100644 index 08e79a68d..000000000 --- a/community/awn-extras-applets/cairo-menu-upower.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff -Naur awn-extras-0.4.0.orig/applets/maintained/cairo-menu/gnome-menu-builder.c awn-extras-0.4.0/applets/maintained/cairo-menu/gnome-menu-builder.c ---- awn-extras-0.4.0.orig/applets/maintained/cairo-menu/gnome-menu-builder.c 2010-04-10 01:26:19.000000000 +0200 -+++ awn-extras-0.4.0/applets/maintained/cairo-menu/gnome-menu-builder.c 2012-12-29 05:46:45.971364855 +0100 -@@ -104,7 +104,7 @@ - - if (have_gnome_session_manager) - { -- add_special_item (menu,_("Logout"),"gnome-logout","gnome-session-save","--logout-dialog --gui"); -+ add_special_item (menu,_("Logout"),"gnome-logout","gnome-session-quit","--logout"); - } - else if (dbus_service_exists ("org.xfce.SessionManager") ) - { -@@ -121,35 +121,13 @@ - { - add_special_item (menu,_("Lock Screen"),"system-lock-screen","xscreensaver-command","-lock"); - } -- if (dbus_service_exists ("org.freedesktop.PowerManagement")) -- { -- if (!add_special_item (menu,_("Suspend"),"gnome-session-suspend","gnome-power-cmd","suspend")) -- { -- add_special_item (menu,_("Suspend"),"gnome-session-suspend","dbus-send","--session --dest=org.freedesktop.PowerManagement --type=method_call --print-reply --reply-timeout=2000 /org/freedesktop/PowerManagement org.freedesktop.PowerManagement.Suspend"); -- } -- -- if (!add_special_item (menu,_("Hibernate"),"gnome-session-hibernate","gnome-power-cmd","hibernate")) -- { -- add_special_item (menu,_("Hibernate"),"gnome-session-hibernate","dbus-send","--session --dest=org.freedesktop.PowerManagement --type=method_call --print-reply --reply-timeout=2000 /org/freedesktop/PowerManagement org.freedesktop.PowerManagement.Hibernate"); -- } - -- } -- else if (dbus_service_exists ("org.gnome.PowerManagement")) -- { -- if (!add_special_item (menu,_("Suspend"),"gnome-session-suspend","gnome-power-cmd","suspend")) -- { -- -- } -- -- if (!add_special_item (menu,_("Hibernate"),"gnome-session-hibernate","gnome-power-cmd","hibernate")) -- { -+ add_special_item (menu,_("Suspend"),"gnome-session-suspend","dbus-send","--system --dest=org.freedesktop.UPower --type=method_call --print-reply --reply-timeout=2000 /org/freedesktop/UPower org.freedesktop.UPower.Suspend"); -+ add_special_item (menu,_("Hibernate"),"gnome-session-hibernate","dbus-send","--system --dest=org.freedesktop.UPower --type=method_call --print-reply --reply-timeout=2000 /org/freedesktop/UPower org.freedesktop.UPower.Hibernate"); - -- } -- } -- - if (have_gnome_session_manager) - { -- add_special_item (menu,_("Shutdown"),"gnome-logout","gnome-session-save","--shutdown-dialog --gui"); -+ add_special_item (menu,_("Shutdown"),"gnome-shutdown","gnome-session-quit","--power-off"); - } - gtk_widget_show_all (menu); - return FALSE; diff --git a/community/awn-extras-applets/check-dependencies.patch b/community/awn-extras-applets/check-dependencies.patch deleted file mode 100644 index 959d3a113..000000000 --- a/community/awn-extras-applets/check-dependencies.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff -Naur awn-extras-0.4.0.orig/applets/maintained/comics/comics.py awn-extras-0.4.0/applets/maintained/comics/comics.py ---- awn-extras-0.4.0.orig/applets/maintained/comics/comics.py 2010-03-26 17:14:53.000000000 +0100 -+++ awn-extras-0.4.0/applets/maintained/comics/comics.py 2012-11-15 17:28:52.045595715 +0100 -@@ -30,7 +30,7 @@ - from awn.extras import _ - - # Import Comics! modules, but check dependencies first --awn.check_dependencies(globals(), 'feedparser', 'pynotify') -+awn.check_dependencies(globals(), 'feedparser', 'pynotify', 'rsvg') - from pynotify import init as notify_init, Notification - - import comics_manage -diff -Naur awn-extras-0.4.0.orig/applets/maintained/media-player/media_player.py awn-extras-0.4.0/applets/maintained/media-player/media_player.py ---- awn-extras-0.4.0.orig/applets/maintained/media-player/media_player.py 2010-01-06 00:01:33.000000000 +0100 -+++ awn-extras-0.4.0/applets/maintained/media-player/media_player.py 2012-11-15 17:28:54.925659573 +0100 -@@ -17,13 +17,15 @@ - import os - import sys - -+import awn -+awn.check_dependencies(globals(), 'pygst') -+ - import pygst - pygst.require("0.10") - import gst - import gtk - import gobject - --import awn - from desktopagnostic import config - - -diff -Naur awn-extras-0.4.0.orig/applets/maintained/slickswitcher/slickswitcher.py awn-extras-0.4.0/applets/maintained/slickswitcher/slickswitcher.py ---- awn-extras-0.4.0.orig/applets/maintained/slickswitcher/slickswitcher.py 2010-04-08 14:31:25.000000000 +0200 -+++ awn-extras-0.4.0/applets/maintained/slickswitcher/slickswitcher.py 2012-11-15 17:31:32.025809983 +0100 -@@ -25,6 +25,9 @@ - import gobject - - import cairo -+ -+awn.check_dependencies(globals(), 'wnck') -+ - import drawing, switch, settings - from os.path import exists, isdir - import os -diff -Naur awn-extras-0.4.0.orig/applets/maintained/volume-control/volume-control.py awn-extras-0.4.0/applets/maintained/volume-control/volume-control.py ---- awn-extras-0.4.0.orig/applets/maintained/volume-control/volume-control.py 2010-01-06 00:01:34.000000000 +0100 -+++ awn-extras-0.4.0/applets/maintained/volume-control/volume-control.py 2012-11-15 17:28:26.368359913 +0100 -@@ -30,6 +30,9 @@ - - from awn.extras import awnlib, __version__ - -+import awn -+awn.check_dependencies(globals(), 'pygst') -+ - import pygst - pygst.require("0.10") - import gst -diff -Naur awn-extras-0.4.0.orig/applets/unmaintained/stacks/stacks_applet.py awn-extras-0.4.0/applets/unmaintained/stacks/stacks_applet.py ---- awn-extras-0.4.0.orig/applets/unmaintained/stacks/stacks_applet.py 2009-11-16 00:31:16.000000000 +0100 -+++ awn-extras-0.4.0/applets/unmaintained/stacks/stacks_applet.py 2012-11-15 17:28:41.778701431 +0100 -@@ -25,6 +25,9 @@ - import pango - import awn - import cairo -+ -+awn.check_dependencies(globals(), 'gnome.ui', 'gnomedesktop') -+ - import gnome.ui - import gnomedesktop - import time diff --git a/community/awn-extras-applets/fix-shinyswitcher-scrolling.patch b/community/awn-extras-applets/fix-shinyswitcher-scrolling.patch deleted file mode 100644 index 69dcae9c1..000000000 --- a/community/awn-extras-applets/fix-shinyswitcher-scrolling.patch +++ /dev/null @@ -1,96 +0,0 @@ -=== modified file 'applets/maintained/shiny-switcher/shinyswitcherapplet.c' ---- applets/maintained/shiny-switcher/shinyswitcherapplet.c 2010-09-12 16:15:07 +0000 -+++ applets/maintained/shiny-switcher/shinyswitcherapplet.c 2010-11-02 13:52:43 +0000 -@@ -769,7 +769,7 @@ - - - static gboolean --_scroll_event(GtkWidget *widget, GdkEventMotion *event, AwnShinySwitcher *shinyswitcher) -+_scroll_event(GtkWidget *widget, GdkEventScroll *event, AwnShinySwitcher *shinyswitcher) - { - AwnShinySwitcherPrivate * priv = GET_PRIVATE (shinyswitcher); - WnckWorkspace *cur_space = wnck_screen_get_active_workspace(priv->wnck_screen); -@@ -779,7 +779,7 @@ - { - if (event->type == GDK_SCROLL) - { -- WnckMotionDirection direction1, direction2; -+ WnckMotionDirection left, right, up, down; - - switch (priv->mousewheel) - { -@@ -787,8 +787,10 @@ - case 1: - - case 3: -- direction1 = WNCK_MOTION_LEFT; -- direction2 = WNCK_MOTION_RIGHT; -+ left = WNCK_MOTION_LEFT; -+ right = WNCK_MOTION_RIGHT; -+ up = WNCK_MOTION_UP; -+ down = WNCK_MOTION_DOWN; - break; - - case 2: -@@ -796,22 +798,52 @@ - case 4: - - default: -- direction1 = WNCK_MOTION_RIGHT; -- direction2 = WNCK_MOTION_LEFT; -- -+ left = WNCK_MOTION_RIGHT; -+ right = WNCK_MOTION_LEFT; -+ up = WNCK_MOTION_DOWN; -+ down = WNCK_MOTION_UP; - } - -- if (event->state & GDK_SHIFT_MASK) -+ if ( (event->direction == GDK_SCROLL_UP) || -+ (event->direction == GDK_SCROLL_LEFT) ) - { -- new_space = wnck_workspace_get_neighbor(cur_space, WNCK_MOTION_RIGHT); -+ new_space = wnck_workspace_get_neighbor(cur_space, left); -+ if (new_space == NULL) -+ { -+ new_space = wnck_workspace_get_neighbor(cur_space, up); -+ if (new_space) -+ { -+ for (cur_space = new_space; cur_space; ) -+ { -+ cur_space = wnck_workspace_get_neighbor(cur_space, right); -+ if (cur_space) -+ { -+ new_space = cur_space; -+ } -+ } -+ } -+ } - } - else - { -- new_space = wnck_workspace_get_neighbor(cur_space, WNCK_MOTION_LEFT); -- -+ new_space = wnck_workspace_get_neighbor(cur_space, right); -+ if (!new_space) -+ { -+ new_space = wnck_workspace_get_neighbor(cur_space, down); -+ if (new_space) -+ { -+ for (cur_space = new_space; cur_space; ) -+ { -+ cur_space = wnck_workspace_get_neighbor(cur_space, left); -+ if (cur_space) -+ { -+ new_space = cur_space; -+ } -+ } -+ } -+ } - } - } -- - if (new_space) - { - wnck_workspace_activate(new_space, event->time); /* FIXME */ - diff --git a/community/awn-extras-applets/fix-weather-applet.patch b/community/awn-extras-applets/fix-weather-applet.patch deleted file mode 100644 index 889c0f641..000000000 --- a/community/awn-extras-applets/fix-weather-applet.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff -Naur awn-extras-0.4.0.orig/applets/maintained/weather/weather.py awn-extras-0.4.0/applets/maintained/weather/weather.py ---- awn-extras-0.4.0.orig/applets/maintained/weather/weather.py 2012-03-07 00:20:03.094411287 +0100 -+++ awn-extras-0.4.0/applets/maintained/weather/weather.py 2010-03-21 13:58:03.000000000 +0100 -@@ -570,7 +570,7 @@ - - class NetworkHandler(ThreadQueue): - -- __ws_key = "&prod=xoap&par=1048871467&key=12daac2f3a67cb39&link=xoap" -+ __ws_key = "&prod=xml&par=1287722164&key=e11ec82daa20d876" - - def dict_from_xml(self, rootNode, keys, paths): - """Given an XML node, iterate over keys and paths, grabbing the -@@ -590,7 +590,7 @@ - @async_method - @network_exception - def get_locations(self, text): -- url = "http://xoap.weather.com/search/search?where=" + urllib2.quote(text) -+ url = "http://xml.weather.com/search/search?where=" + urllib2.quote(text) - with closing(urllib2.urlopen(url)) as usock: - with unlink_xml(usock) as xmldoc: - locations_list = [] -@@ -604,7 +604,7 @@ - @with_overlays - @network_exception - def get_conditions(self, location_code): -- url = "http://xoap.weather.com/weather/local/" + location_code + "?cc=*" + self.__ws_key -+ url = "http://xml.weather.com/weather/local/" + location_code + "?cc=*" + self.__ws_key - with closing(urllib2.urlopen(url)) as usock: - with unlink_xml(usock) as xmldoc: - names = ['CITY', 'SUNRISE', 'SUNSET', 'DESCRIPTION', 'CODE', 'TEMP', 'FEELSLIKE', 'BAR', 'BARDESC', 'WINDSPEED', 'WINDGUST', 'WINDDIR', 'HUMIDITY', 'MOONPHASE'] -@@ -619,7 +619,7 @@ - def get_weather_map(self, location_code): - map_url = "http://www.weather.com/outlook/travel/businesstraveler/map/%s" % location_code - with closing(urllib2.urlopen(map_url)) as usock: -- mapExp = """<IMG NAME="mapImg" SRC="([^\"]+)" WIDTH=([0-9]+) HEIGHT=([0-9]+) BORDER""" -+ mapExp = """<img name="mapImg" src="([^\"]+)" width="([0-9]+)" height="([0-9]+)" border""" - result = re.findall(mapExp, usock.read()) - if not result or len(result) != 1: - raise NetworkException("Couldn't parse weather map") -@@ -635,7 +635,7 @@ - @with_overlays - @network_exception - def get_forecast(self, location_code): -- url = "http://xoap.weather.com/weather/local/" + location_code + "?dayf=5" + self.__ws_key -+ url = "http://xml.weather.com/weather/local/" + location_code + "?dayf=5" + self.__ws_key - with closing(urllib2.urlopen(url)) as usock: - with unlink_xml(usock) as xmldoc: - try: diff --git a/community/awn-extras-applets/remove-settings-menu.patch b/community/awn-extras-applets/remove-settings-menu.patch deleted file mode 100644 index 60eeda1d5..000000000 --- a/community/awn-extras-applets/remove-settings-menu.patch +++ /dev/null @@ -1,229 +0,0 @@ -diff -Naur awn-extras-0.4.0.orig/applets/maintained/cairo-menu/gnome-menu-builder.c awn-extras-0.4.0/applets/maintained/cairo-menu/gnome-menu-builder.c ---- awn-extras-0.4.0.orig/applets/maintained/cairo-menu/gnome-menu-builder.c 2010-04-10 01:26:19.000000000 +0200 -+++ awn-extras-0.4.0/applets/maintained/cairo-menu/gnome-menu-builder.c 2011-12-16 20:34:22.612913317 +0100 -@@ -34,7 +34,6 @@ - #include "cairo-menu-applet.h" - - GMenuTree * main_menu_tree = NULL; --GMenuTree * settings_menu_tree = NULL; - - GtkWidget * menu_build (MenuInstance * instance); - static GtkWidget * submenu_build (MenuInstance * instance); -@@ -749,19 +748,10 @@ - gmenu_tree_remove_monitor (main_menu_tree,(GMenuTreeChangedFunc)_submenu_modified_cb,instance); - } - --static void --_remove_settings_submenu_cb(MenuInstance * instance,GObject *where_the_object_was) --{ -- g_debug ("%s",__func__); -- GMenuTreeDirectory *main_root; -- gmenu_tree_remove_monitor (settings_menu_tree,(GMenuTreeChangedFunc)_submenu_modified_cb,instance); --} -- - static GtkWidget * - submenu_build (MenuInstance * instance) - { - GMenuTreeDirectory *main_root; -- GMenuTreeDirectory *settings_root; - GtkWidget * menu = NULL; - /* - if the menu is set then clear any menu items (except for places or recent) -@@ -771,10 +761,6 @@ - { - main_menu_tree = gmenu_tree_lookup("applications.menu", GMENU_TREE_FLAGS_NONE); - } -- if (!settings_menu_tree) -- { -- settings_menu_tree = gmenu_tree_lookup("settings.menu", GMENU_TREE_FLAGS_NONE); -- } - g_assert (main_menu_tree); - /* - get_places_menu() and get_recent_menu() are -@@ -808,7 +794,6 @@ - main_root = gmenu_tree_get_root_directory(main_menu_tree); - g_assert (gmenu_tree_item_get_type( (GMenuTreeItem*)main_root) == GMENU_TREE_ITEM_DIRECTORY); - g_assert (main_root); -- settings_root = gmenu_tree_get_root_directory(settings_menu_tree); - if ( menu_dir = find_menu_dir (instance,main_root) ) - { - /* if instance->menu then we're refreshing in a monitor callback*/ -@@ -817,22 +802,11 @@ - menu = fill_er_up(instance,menu_dir,instance->menu); - g_object_weak_ref (G_OBJECT(menu), (GWeakNotify)_remove_main_submenu_cb,instance); - } -- else if ( settings_root && (menu_dir = find_menu_dir (instance,settings_root)) ) -- { -- gmenu_tree_remove_monitor (main_menu_tree,(GMenuTreeChangedFunc)_submenu_modified_cb,instance); -- gmenu_tree_add_monitor (main_menu_tree,(GMenuTreeChangedFunc)_submenu_modified_cb,instance); -- menu = fill_er_up(instance,menu_dir,instance->menu); -- g_object_weak_ref (G_OBJECT(menu), (GWeakNotify)_remove_settings_submenu_cb,instance); -- } - if (menu_dir) - { - gmenu_tree_item_unref(menu_dir); - } - gmenu_tree_item_unref(main_root); -- if (settings_root) -- { -- gmenu_tree_item_unref(settings_root); -- } - } - return instance->menu = menu; - } -@@ -862,10 +836,6 @@ - { - main_menu_tree = gmenu_tree_lookup("applications.menu", GMENU_TREE_FLAGS_NONE); - } -- if (!settings_menu_tree) -- { -- settings_menu_tree = gmenu_tree_lookup("settings.menu", GMENU_TREE_FLAGS_NONE); -- } - - if (main_menu_tree) - { -@@ -884,44 +854,6 @@ - menu_item = gtk_separator_menu_item_new (); - gtk_menu_shell_append(GTK_MENU_SHELL(instance->menu),menu_item); - } -- if (settings_menu_tree) -- { -- root = gmenu_tree_get_root_directory(settings_menu_tree); -- gmenu_tree_remove_monitor (settings_menu_tree,(GMenuTreeChangedFunc)_menu_modified_cb,instance); -- gmenu_tree_add_monitor (settings_menu_tree,(GMenuTreeChangedFunc)_menu_modified_cb,instance); -- if (!instance->menu) -- { -- g_debug ("%s: No applications menu????",__func__); -- instance->menu = fill_er_up(instance,root,instance->menu); -- } -- else -- { -- sub_menu = fill_er_up (instance, root,instance->menu); --#if 0 -- sub_menu = fill_er_up(instance,root,NULL); -- c = g_malloc0 (sizeof(CallbackContainer)); -- c->icon_name = g_strdup(gmenu_tree_directory_get_icon (root)); -- image = get_gtk_image (c->icon_name); -- txt = gmenu_tree_entry_get_name((GMenuTreeEntry*)root); -- menu_item = cairo_menu_item_new_with_label (txt?txt:"unknown"); -- gtk_menu_item_set_submenu (GTK_MENU_ITEM(menu_item),sub_menu); -- if (image) -- { -- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item),image); -- } -- gtk_menu_shell_append(GTK_MENU_SHELL(instance->menu),menu_item); -- c->file_path = g_strdup(gmenu_tree_directory_get_desktop_file_path (root)); -- c->display_name = g_strdup ("Settings"); -- drop_data = g_strdup_printf("cairo_menu_item_dir:///@@@%s@@@%s@@@%s\n",c->file_path,c->display_name,c->icon_name); -- cairo_menu_item_set_source (AWN_CAIRO_MENU_ITEM(menu_item),drop_data); -- g_free (drop_data); -- c->instance = instance; -- g_signal_connect (menu_item, "button-press-event",G_CALLBACK(_button_press_dir),c); -- g_object_weak_ref (G_OBJECT(menu_item),(GWeakNotify)_free_callback_container,c); --#endif -- } -- gmenu_tree_item_unref(root); -- } - - /*TODO Check to make sure it is needed. Should not be displayed if - all flags are of the NO persuasion.*/ -diff -Naur awn-extras-0.4.0.orig/applets/maintained/yama/yama.py awn-extras-0.4.0/applets/maintained/yama/yama.py ---- awn-extras-0.4.0.orig/applets/maintained/yama/yama.py 2010-03-31 16:21:24.000000000 +0200 -+++ awn-extras-0.4.0/applets/maintained/yama/yama.py 2011-12-16 20:37:48.243326388 +0100 -@@ -113,7 +113,6 @@ - - def build_menu(self): - self.applications_items = [] -- self.settings_items = [] - self.session_items = [] - - """ Applications """ -@@ -126,11 +125,6 @@ - """ Places """ - self.create_places_submenu(self.menu) - -- """ System """ -- tree = gmenu.lookup_tree("settings.menu") -- self.append_directory(tree.root, self.menu, item_list=self.settings_items) -- tree.add_monitor(self.menu_changed_cb, self.settings_items) -- - """ Session actions """ - if dbus is not None: - self.append_session_actions(self.menu) -@@ -227,7 +221,7 @@ - for i in xrange(len(items)): - items.pop().destroy() - -- index = len(self.applications_items) + 2 if items is self.settings_items else 0 # + 2 = separator + Places -+ index = len(self.applications_items) + 0 - self.append_directory(tree.root, self.menu, index=index, item_list=items) - # Refresh menu to re-initialize the widget - self.menu.show_all() -diff -Naur awn-extras-0.4.0.orig/applets/unmaintained/main-menu/applet.c awn-extras-0.4.0/applets/unmaintained/main-menu/applet.c ---- awn-extras-0.4.0.orig/applets/unmaintained/main-menu/applet.c 2009-10-27 20:45:03.000000000 +0100 -+++ awn-extras-0.4.0/applets/unmaintained/main-menu/applet.c 2011-12-16 20:27:28.792248015 +0100 -@@ -43,7 +43,6 @@ - GMenuTree *tree; - GMenuTreeDirectory *root; - GMenuTreeDirectory *apps; -- GMenuTreeDirectory *settings; - - } Menu; - -@@ -243,8 +242,6 @@ - { - GMenuTreeDirectory *temp= menu->root; - menu->root = gmenu_tree_item_get_parent (GMENU_TREE_ITEM (temp)); -- if (menu->root == menu->settings) -- menu->root = gmenu_tree_get_root_directory (menu->tree); - populate (menu); - } - -@@ -299,8 +296,6 @@ - if (app->root == GMENU_TREE_DIRECTORY(gmenu_tree_get_root_directory ((GMenuTree*)app->apps))) - { - list = g_slist_copy (apps); -- sets = g_slist_copy (gmenu_tree_directory_get_contents (app->settings)); -- list = g_slist_concat (list, sets); - list = g_slist_sort (list, (GCompareFunc)_compare); - } - else -@@ -419,13 +414,6 @@ - g_warning ("Unable to find applications.menu"); - return FALSE; - } -- app->settings = gmenu_tree_get_root_directory ( -- gmenu_tree_lookup ("settings.menu", GMENU_TREE_FLAGS_NONE)); -- if (!app->settings) -- { -- g_warning ("Unable to find settings.menu"); -- return FALSE; -- } - app->tree = (GMenuTree*)app->apps; - - app->menu = awn_applet_create_default_menu (app->applet); -diff -Naur awn-extras-0.4.0.orig/applets/unmaintained/MiMenu/menus.py awn-extras-0.4.0/applets/unmaintained/MiMenu/menus.py ---- awn-extras-0.4.0.orig/applets/unmaintained/MiMenu/menus.py 2009-08-14 14:29:59.000000000 +0200 -+++ awn-extras-0.4.0/applets/unmaintained/MiMenu/menus.py 2011-12-16 20:30:42.060104523 +0100 -@@ -12,8 +12,6 @@ - class MenuDateStore: - MENUCORE = gmenu.lookup_tree('applications.menu') - MENUROOT = MENUCORE.get_root_directory() -- SYSTEMMENUCORE = gmenu.lookup_tree('settings.menu') -- SYSTEMMENUROOT = SYSTEMMENUCORE.get_root_directory() - PATH = [] - - -diff -Naur awn-extras-0.4.0.orig/applets/unmaintained/MiMenu/mimenu.py awn-extras-0.4.0/applets/unmaintained/MiMenu/mimenu.py ---- awn-extras-0.4.0.orig/applets/unmaintained/MiMenu/mimenu.py 2009-10-27 20:45:47.000000000 +0100 -+++ awn-extras-0.4.0/applets/unmaintained/MiMenu/mimenu.py 2011-12-16 20:30:35.897158422 +0100 -@@ -69,8 +69,7 @@ - tree1.set_headers_visible (0) - tree1.append_column(column1) - tree1.append_column(column2) -- lst1,self.objlist1 = menus.get_menus(menus.data.MENUROOT, -- root2=menus.data.SYSTEMMENUROOT) -+ lst1,self.objlist1 = menus.get_menus(menus.data.MENUROOT) - model = menus.set_model(tree1,lst1,self.theme,self.location_icon) - tree1.connect('cursor_changed', self.treeclick, - tree1,self.objlist1,False) diff --git a/community/chicken/PKGBUILD b/community/chicken/PKGBUILD index 73aa6a72d..8ace279a6 100644 --- a/community/chicken/PKGBUILD +++ b/community/chicken/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 94266 2013-07-18 13:14:30Z arodseth $ +# $Id: PKGBUILD 98342 2013-10-08 19:42:24Z arodseth $ # Maintainer: Alexander Rødseth <rodseth@gmail.com> # Contributor: Vesa Kaihlavirta <vegai@iki.fi> # Contributor: <david@pako.st> # Contributor: Alexander Rødseth <rodseth@gmail.com> pkgname=chicken -pkgver=4.8.0.4 +pkgver=4.8.0.5 pkgrel=1 pkgdesc='Compiler for R5RS scheme, featuring handy extensions' arch=('x86_64' 'i686' 'mips64el') @@ -13,17 +13,14 @@ url='http://call-cc.org/' license=('BSD') depends=('gcc') source=("http://code.call-cc.org/releases/${pkgver%.*}/$pkgname-$pkgver.tar.gz") -sha256sums=('cd6c4b05f76a6ac82ff32e8dbd53f7517a283bda32003c6b3baa0c6b24990fb2') +sha256sums=('5b9192951bc61cc19dd4963cceb93908bff46b6868d7927f19850e8973c430fb') build() { - cd "$pkgname-$pkgver" - - make -j1 PLATFORM=linux PREFIX=/usr + make -C "$pkgname-$pkgver" -j1 PLATFORM=linux PREFIX=/usr } package() { cd "$pkgname-$pkgver" - make -j1 PLATFORM=linux PREFIX=/usr DESTDIR="$pkgdir" install install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } diff --git a/community/cinnamon-control-center/PKGBUILD b/community/cinnamon-control-center/PKGBUILD index 3b59c0a72..2dfe208ab 100644 --- a/community/cinnamon-control-center/PKGBUILD +++ b/community/cinnamon-control-center/PKGBUILD @@ -1,29 +1,39 @@ -# $Id: PKGBUILD 98187 2013-10-07 12:08:21Z jgc $ +# $Id: PKGBUILD 98410 2013-10-09 16:57:37Z faidoc $ # Maintainer: Alexandre Filgueira <alexfilgueira@cinnarch.com # Based on gnome-control-center: # Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Jan de Groot <jgc@archlinux.org> pkgname=cinnamon-control-center -pkgver=2.0.1 +pkgver=2.0.2 pkgrel=1 pkgdesc="The Control Center for Cinnamon" arch=('i686' 'x86_64' 'mips64el') -depends=('cinnamon' 'cheese' 'libgnomekbd' 'network-manager-applet' 'cinnamon-settings-daemon') +depends=('cinnamon' 'network-manager-applet') optdepends=('gnome-color-manager: for color management tasks') makedepends=('intltool' 'gnome-common') url="https://github.com/linuxmint/cinnamon-control-center" install=cinnamon-control-center.install license=('GPL') options=('!libtool' '!emptydirs') -source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/cinnamon-control-center/archive/$pkgver.tar.gz") -sha256sums=('2a8ea5c17e515afd47d0f76127dbc5172281ef2b6aaf8a5c800ff7079d6d80f2') +source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/cinnamon-control-center/archive/$pkgver.tar.gz" + region.patch) +sha256sums=('28318423297dd27a51a0a84d0f4b28453aca5c16ca362f7f4b56bd8e1b67b594' + '077cb8d6814c32a4df85f71c2b8fa84da25e5260263a6e0536c6e1626051f022') + +prepare() { + cd $pkgname-$pkgver + + # Fix region panel + patch -Np1 -i ../region.patch + + chmod +x autogen.sh +} build() { cd $pkgname-$pkgver - autoreconf -fi - ./configure --prefix=/usr --sysconfdir=/etc \ + ./autogen.sh --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var --disable-static \ --enable-systemd \ --disable-update-mimedb diff --git a/community/cinnamon-control-center/region.patch b/community/cinnamon-control-center/region.patch new file mode 100644 index 000000000..85606dbad --- /dev/null +++ b/community/cinnamon-control-center/region.patch @@ -0,0 +1,5313 @@ +diff -uNrp a/configure.ac b/configure.ac +--- a/configure.ac 2013-08-25 14:40:14.000000000 +0100 ++++ b/configure.ac 2013-08-25 16:50:30.000000000 +0100 +@@ -82,6 +82,22 @@ else + SYSTEMD= + fi + ++# IBus support ++IBUS_REQUIRED_VERSION=1.4.2 ++ ++#AC_ARG_ENABLE(ibus, ++# AS_HELP_STRING([--disable-ibus], ++# [Disable IBus support]), ++# enable_ibus=$enableval, ++# enable_ibus=yes) ++enable_ibus=yes ++#if test "x$enable_ibus" = "xyes" ; then ++IBUS_MODULE="ibus-1.0 >= $IBUS_REQUIRED_VERSION" ++AC_DEFINE(HAVE_IBUS, 1, [Defined if IBus support is enabled]) ++#else ++# IBUS_MODULE= ++#fi ++ + dnl ============================================== + dnl Check that we meet the dependencies + dnl ============================================== +@@ -119,9 +135,10 @@ PKG_CHECK_MODULES(NETWORK_PANEL, $COMMON + PKG_CHECK_MODULES(POWER_PANEL, $COMMON_MODULES upower-glib >= 0.9.1 + cinnamon-settings-daemon >= $CSD_REQUIRED_VERSION) + PKG_CHECK_MODULES(COLOR_PANEL, $COMMON_MODULES colord >= 0.1.8) +-PKG_CHECK_MODULES(REGION_PANEL, $COMMON_MODULES libgnomekbd >= 2.91.91 ++PKG_CHECK_MODULES(REGION_PANEL, $COMMON_MODULES + polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION +- libxklavier >= 5.1 libgnomekbdui >= 2.91.91) ++ cinnamon-desktop >= $CINNAMON_DESKTOP_REQUIRED_VERSION ++ $IBUS_MODULE) + PKG_CHECK_MODULES(SCREEN_PANEL, $COMMON_MODULES) + PKG_CHECK_MODULES(SOUND_PANEL, $COMMON_MODULES libxml-2.0 + libcanberra-gtk3 >= $CANBERRA_REQUIRED_VERSION +diff -uNrp a/panels/region/cc-region-panel.c b/panels/region/cc-region-panel.c +--- a/panels/region/cc-region-panel.c 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cc-region-panel.c 2013-09-21 13:24:15.329949897 +0100 +@@ -18,17 +18,18 @@ + * Author: Sergey Udaltsov <svu@gnome.org> + * + */ +-#include "config.h" ++ + #include "cc-region-panel.h" ++#include <config.h> + #include <gtk/gtk.h> + #include <glib/gi18n-lib.h> + +-#include "cinnamon-region-panel-xkb.h" ++#include "cinnamon-region-panel-input.h" + #include "cinnamon-region-panel-lang.h" + #include "cinnamon-region-panel-formats.h" + #include "cinnamon-region-panel-system.h" + +-G_DEFINE_DYNAMIC_TYPE (CcRegionPanel, cc_region_panel, CC_TYPE_PANEL) ++CC_PANEL_REGISTER (CcRegionPanel, cc_region_panel) + + #define REGION_PANEL_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CC_TYPE_REGION_PANEL, CcRegionPanelPrivate)) + +@@ -48,14 +49,6 @@ enum { + SYSTEM_PAGE + }; + +- +-static gboolean +-languages_link_cb (GtkButton *button, gpointer user_data) +-{ +- g_spawn_command_line_async ("gnome-language-selector", NULL); +- return TRUE; +-} +- + static void + cc_region_panel_set_page (CcRegionPanel *panel, + const char *page) +@@ -116,13 +109,22 @@ cc_region_panel_finalize (GObject * obje + G_OBJECT_CLASS (cc_region_panel_parent_class)->finalize (object); + } + ++static const char * ++cc_region_panel_get_help_uri (CcPanel *panel) ++{ ++ return "help:gnome-help/prefs-language"; ++} ++ + static void + cc_region_panel_class_init (CcRegionPanelClass * klass) + { + GObjectClass *object_class = G_OBJECT_CLASS (klass); ++ CcPanelClass * panel_class = CC_PANEL_CLASS (klass); + + g_type_class_add_private (klass, sizeof (CcRegionPanelPrivate)); + ++ panel_class->get_help_uri = cc_region_panel_get_help_uri; ++ + object_class->set_property = cc_region_panel_set_property; + object_class->finalize = cc_region_panel_finalize; + +@@ -130,22 +132,14 @@ cc_region_panel_class_init (CcRegionPane + } + + static void +-cc_region_panel_class_finalize (CcRegionPanelClass * klass) +-{ +-} +- +-static void + cc_region_panel_init (CcRegionPanel * self) + { + CcRegionPanelPrivate *priv; + GtkWidget *prefs_widget; +- const char *desktop; + GError *error = NULL; + + priv = self->priv = REGION_PANEL_PRIVATE (self); + +- desktop = g_getenv ("XDG_CURRENT_DESKTOP"); +- + priv->builder = gtk_builder_new (); + gtk_builder_set_translation_domain (priv->builder, GETTEXT_PACKAGE); + gtk_builder_add_from_file (priv->builder, +@@ -157,29 +151,16 @@ cc_region_panel_init (CcRegionPanel * se + return; + } + +- prefs_widget = (GtkWidget *) gtk_builder_get_object (priv->builder, +- "region_notebook"); +- ++ prefs_widget = (GtkWidget *) gtk_builder_get_object (priv->builder, ++ "region_notebook"); + gtk_widget_set_size_request (GTK_WIDGET (prefs_widget), -1, 400); + + gtk_widget_reparent (prefs_widget, GTK_WIDGET (self)); + +- setup_xkb_tabs (priv->builder); +- +- setup_language (priv->builder); +- setup_formats (priv->builder); +- setup_system (priv->builder); +- +- /* set screen link */ +- +- GtkWidget *widget = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, +- "get_languages_button")); +- +- gtk_button_set_label (GTK_BUTTON (widget), _("Get more languages...")); +- +- g_signal_connect (widget, "clicked", +- G_CALLBACK (languages_link_cb), +- self); ++ setup_input_tabs (priv->builder, self); ++ setup_language (priv->builder); ++ setup_formats (priv->builder); ++ setup_system (priv->builder); + } + + void +@@ -187,6 +168,7 @@ cc_region_panel_register (GIOModule * mo + { + bindtextdomain (GETTEXT_PACKAGE, "/usr/share/cinnamon/locale"); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); ++ + cc_region_panel_register_type (G_TYPE_MODULE (module)); + g_io_extension_point_implement (CC_SHELL_PANEL_EXTENSION_POINT, + CC_TYPE_REGION_PANEL, +diff -uNrp a/panels/region/cinnamon-region-panel-formats.h b/panels/region/cinnamon-region-panel-formats.h +--- a/panels/region/cinnamon-region-panel-formats.h 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-formats.h 2013-09-21 13:24:15.332949789 +0100 +@@ -19,8 +19,8 @@ + * 02110-1335, USA. + */ + +-#ifndef __GNOME_REGION_PANEL_FORMATS_H +-#define __GNOME_REGION_PANEL_FORMATS_H ++#ifndef __CINNAMON_REGION_PANEL_FORMATS_H ++#define __CINNAMON_REGION_PANEL_FORMATS_H + + #include <gtk/gtk.h> + +diff -uNrp a/panels/region/cinnamon-region-panel-input.c b/panels/region/cinnamon-region-panel-input.c +--- a/panels/region/cinnamon-region-panel-input.c 1970-01-01 01:00:00.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-input.c 2013-09-21 13:24:15.338949572 +0100 +@@ -0,0 +1,1563 @@ ++/* ++ * Copyright (C) 2011 Red Hat, Inc. ++ * ++ * Written by: Matthias Clasen <mclasen@redhat.com> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2, or (at your option) ++ * any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA ++ * 02110-1335, USA. ++ */ ++ ++#include <config.h> ++ ++#include <string.h> ++ ++#include <glib.h> ++#include <glib/gi18n.h> ++#include <gio/gdesktopappinfo.h> ++ ++#define GNOME_DESKTOP_USE_UNSTABLE_API ++#include <libcinnamon-desktop/gnome-xkb-info.h> ++ ++#ifdef HAVE_IBUS ++#include <ibus.h> ++#endif ++ ++#include "gdm-languages.h" ++#include "cinnamon-region-panel-input.h" ++ ++#define WID(s) GTK_WIDGET(gtk_builder_get_object (builder, s)) ++ ++#define GNOME_DESKTOP_INPUT_SOURCES_DIR "org.cinnamon.desktop.input-sources" ++ ++#define KEY_CURRENT_INPUT_SOURCE "current" ++#define KEY_INPUT_SOURCES "sources" ++ ++#define INPUT_SOURCE_TYPE_XKB "xkb" ++#define INPUT_SOURCE_TYPE_IBUS "ibus" ++ ++enum { ++ NAME_COLUMN, ++ TYPE_COLUMN, ++ ID_COLUMN, ++ SETUP_COLUMN, ++ N_COLUMNS ++}; ++ ++static GSettings *input_sources_settings = NULL; ++static GnomeXkbInfo *xkb_info = NULL; ++static GtkWidget *input_chooser = NULL; /* weak pointer */ ++ ++#ifdef HAVE_IBUS ++static IBusBus *ibus = NULL; ++static GHashTable *ibus_engines = NULL; ++static GCancellable *ibus_cancellable = NULL; ++static guint shell_name_watch_id = 0; ++ ++static const gchar *supported_ibus_engines[] = { ++ /* Simplified Chinese */ ++ "pinyin", ++ "bopomofo", ++ "wubi", ++ "erbi", ++ /* Default in Fedora, where ibus-libpinyin replaces ibus-pinyin */ ++ "libpinyin", ++ "libbopomofo", ++ ++ /* Traditional Chinese */ ++ /* https://bugzilla.gnome.org/show_bug.cgi?id=680840 */ ++ "chewing", ++ "cangjie5", ++ "cangjie3", ++ "quick5", ++ "quick3", ++ "stroke5", ++ ++ /* Japanese */ ++ "anthy", ++ "mozc-jp", ++ "skk", ++ ++ /* Korean */ ++ "hangul", ++ ++ /* Thai */ ++ "m17n:th:kesmanee", ++ "m17n:th:pattachote", ++ "m17n:th:tis820", ++ ++ /* Vietnamese */ ++ "m17n:vi:tcvn", ++ "m17n:vi:telex", ++ "m17n:vi:viqr", ++ "m17n:vi:vni", ++ "Unikey", ++ ++ /* Sinhala */ ++ "m17n:si:wijesekera", ++ "m17n:si:phonetic-dynamic", ++ "m17n:si:trans", ++ "sayura", ++ ++ /* Indic */ ++ /* https://fedoraproject.org/wiki/I18N/Indic#Keyboard_Layouts */ ++ ++ /* Assamese */ ++ "m17n:as:phonetic", ++ "m17n:as:inscript", ++ "m17n:as:itrans", ++ ++ /* Bengali */ ++ "m17n:bn:inscript", ++ "m17n:bn:itrans", ++ "m17n:bn:probhat", ++ ++ /* Gujarati */ ++ "m17n:gu:inscript", ++ "m17n:gu:itrans", ++ "m17n:gu:phonetic", ++ ++ /* Hindi */ ++ "m17n:hi:inscript", ++ "m17n:hi:itrans", ++ "m17n:hi:phonetic", ++ "m17n:hi:remington", ++ "m17n:hi:typewriter", ++ "m17n:hi:vedmata", ++ ++ /* Kannada */ ++ "m17n:kn:kgp", ++ "m17n:kn:inscript", ++ "m17n:kn:itrans", ++ ++ /* Kashmiri */ ++ "m17n:ks:inscript", ++ ++ /* Maithili */ ++ "m17n:mai:inscript", ++ ++ /* Malayalam */ ++ "m17n:ml:inscript", ++ "m17n:ml:itrans", ++ "m17n:ml:mozhi", ++ "m17n:ml:swanalekha", ++ ++ /* Marathi */ ++ "m17n:mr:inscript", ++ "m17n:mr:itrans", ++ "m17n:mr:phonetic", ++ ++ /* Nepali */ ++ "m17n:ne:rom", ++ "m17n:ne:trad", ++ ++ /* Oriya */ ++ "m17n:or:inscript", ++ "m17n:or:itrans", ++ "m17n:or:phonetic", ++ ++ /* Punjabi */ ++ "m17n:pa:inscript", ++ "m17n:pa:itrans", ++ "m17n:pa:phonetic", ++ "m17n:pa:jhelum", ++ ++ /* Sanskrit */ ++ "m17n:sa:harvard-kyoto", ++ ++ /* Sindhi */ ++ "m17n:sd:inscript", ++ ++ /* Tamil */ ++ "m17n:ta:tamil99", ++ "m17n:ta:inscript", ++ "m17n:ta:itrans", ++ "m17n:ta:phonetic", ++ "m17n:ta:lk-renganathan", ++ "m17n:ta:vutam", ++ "m17n:ta:typewriter", ++ ++ /* Telugu */ ++ "m17n:te:inscript", ++ "m17n:te:apple", ++ "m17n:te:pothana", ++ "m17n:te:rts", ++ ++ /* Urdu */ ++ "m17n:ur:phonetic", ++ ++ /* Inscript2 - https://bugzilla.gnome.org/show_bug.cgi?id=684854 */ ++ "m17n:as:inscript2", ++ "m17n:bn:inscript2", ++ "m17n:brx:inscript2-deva", ++ "m17n:doi:inscript2-deva", ++ "m17n:gu:inscript2", ++ "m17n:hi:inscript2", ++ "m17n:kn:inscript2", ++ "m17n:kok:inscript2-deva", ++ "m17n:mai:inscript2", ++ "m17n:ml:inscript2", ++ "m17n:mni:inscript2-beng", ++ "m17n:mni:inscript2-mtei", ++ "m17n:mr:inscript2", ++ "m17n:ne:inscript2-deva", ++ "m17n:or:inscript2", ++ "m17n:pa:inscript2-guru", ++ "m17n:sa:inscript2", ++ "m17n:sat:inscript2-deva", ++ "m17n:sat:inscript2-olck", ++ "m17n:sd:inscript2-deva", ++ "m17n:ta:inscript2", ++ "m17n:te:inscript2", ++ ++ /* No corresponding XKB map available for the languages */ ++ ++ /* Chinese Yi */ ++ "m17n:ii:phonetic", ++ ++ /* Tai-Viet */ ++ "m17n:tai:sonla", ++ ++ /* Kazakh in Arabic script */ ++ "m17n:kk:arabic", ++ ++ /* Yiddish */ ++ "m17n:yi:yivo", ++ ++ /* Canadian Aboriginal languages */ ++ "m17n:ath:phonetic", ++ "m17n:bla:phonetic", ++ "m17n:cr:western", ++ "m17n:iu:phonetic", ++ "m17n:nsk:phonetic", ++ "m17n:oj:phonetic", ++ ++ /* Non-trivial engines, like transliteration-based instead of ++ keymap-based. Confirmation needed that the engines below are ++ actually used by local language users. */ ++ ++ /* Tibetan */ ++ "m17n:bo:ewts", ++ "m17n:bo:tcrc", ++ "m17n:bo:wylie", ++ ++ /* Esperanto */ ++ "m17n:eo:h-f", ++ "m17n:eo:h", ++ "m17n:eo:plena", ++ "m17n:eo:q", ++ "m17n:eo:vi", ++ "m17n:eo:x", ++ ++ /* Amharic */ ++ "m17n:am:sera", ++ ++ /* Russian */ ++ "m17n:ru:translit", ++ ++ /* Classical Greek */ ++ "m17n:grc:mizuochi", ++ ++ /* Lao */ ++ "m17n:lo:lrt", ++ ++ /* Postfix modifier input methods */ ++ "m17n:da:post", ++ "m17n:sv:post", ++ NULL ++}; ++#endif /* HAVE_IBUS */ ++ ++static void populate_model (GtkListStore *store, ++ GtkListStore *active_sources_store); ++static GtkWidget *input_chooser_new (GtkWindow *main_window, ++ GtkListStore *active_sources); ++static gboolean input_chooser_get_selected (GtkWidget *chooser, ++ GtkTreeModel **model, ++ GtkTreeIter *iter); ++static GtkTreeModel *tree_view_get_actual_model (GtkTreeView *tv); ++ ++static gboolean ++strv_contains (const gchar * const *strv, ++ const gchar *str) ++{ ++ const gchar * const *p = strv; ++ for (p = strv; *p; p++) ++ if (g_strcmp0 (*p, str) == 0) ++ return TRUE; ++ ++ return FALSE; ++} ++ ++#ifdef HAVE_IBUS ++static void ++clear_ibus (void) ++{ ++ if (shell_name_watch_id > 0) ++ { ++ g_bus_unwatch_name (shell_name_watch_id); ++ shell_name_watch_id = 0; ++ } ++ g_cancellable_cancel (ibus_cancellable); ++ g_clear_object (&ibus_cancellable); ++ g_clear_pointer (&ibus_engines, g_hash_table_destroy); ++ g_clear_object (&ibus); ++} ++ ++static gchar * ++engine_get_display_name (IBusEngineDesc *engine_desc) ++{ ++ const gchar *name; ++ const gchar *language_code; ++ const gchar *language; ++ gchar *display_name; ++ ++ name = ibus_engine_desc_get_longname (engine_desc); ++ language_code = ibus_engine_desc_get_language (engine_desc); ++ language = ibus_get_language_name (language_code); ++ ++ display_name = g_strdup_printf ("%s (%s)", language, name); ++ ++ return display_name; ++} ++ ++static GDesktopAppInfo * ++setup_app_info_for_id (const gchar *id) ++{ ++ GDesktopAppInfo *app_info; ++ gchar *desktop_file_name; ++ gchar **strv; ++ ++ strv = g_strsplit (id, ":", 2); ++ desktop_file_name = g_strdup_printf ("ibus-setup-%s.desktop", strv[0]); ++ g_strfreev (strv); ++ ++ app_info = g_desktop_app_info_new (desktop_file_name); ++ g_free (desktop_file_name); ++ ++ return app_info; ++} ++ ++static void ++input_chooser_repopulate (GtkListStore *active_sources_store) ++{ ++ GtkBuilder *builder; ++ GtkListStore *model; ++ ++ if (!input_chooser) ++ return; ++ ++ builder = g_object_get_data (G_OBJECT (input_chooser), "builder"); ++ model = GTK_LIST_STORE (gtk_builder_get_object (builder, "input_source_model")); ++ ++ gtk_list_store_clear (model); ++ populate_model (model, active_sources_store); ++} ++ ++static void ++update_ibus_active_sources (GtkBuilder *builder) ++{ ++ GtkTreeView *tv; ++ GtkTreeModel *model; ++ GtkTreeIter iter; ++ gchar *type, *id; ++ gboolean ret; ++ ++ tv = GTK_TREE_VIEW (WID ("active_input_sources")); ++ model = tree_view_get_actual_model (tv); ++ ++ ret = gtk_tree_model_get_iter_first (model, &iter); ++ while (ret) ++ { ++ gtk_tree_model_get (model, &iter, ++ TYPE_COLUMN, &type, ++ ID_COLUMN, &id, ++ -1); ++ ++ if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS)) ++ { ++ IBusEngineDesc *engine_desc = NULL; ++ GDesktopAppInfo *app_info = NULL; ++ gchar *display_name = NULL; ++ ++ engine_desc = g_hash_table_lookup (ibus_engines, id); ++ if (engine_desc) ++ { ++ display_name = engine_get_display_name (engine_desc); ++ app_info = setup_app_info_for_id (id); ++ ++ gtk_list_store_set (GTK_LIST_STORE (model), &iter, ++ NAME_COLUMN, display_name, ++ SETUP_COLUMN, app_info, ++ -1); ++ g_free (display_name); ++ if (app_info) ++ g_object_unref (app_info); ++ } ++ } ++ ++ g_free (type); ++ g_free (id); ++ ++ ret = gtk_tree_model_iter_next (model, &iter); ++ } ++ ++ input_chooser_repopulate (GTK_LIST_STORE (model)); ++} ++ ++static void ++fetch_ibus_engines_result (GObject *object, ++ GAsyncResult *result, ++ GtkBuilder *builder) ++{ ++ gboolean show_all_sources; ++ GList *list, *l; ++ GError *error; ++ ++ error = NULL; ++ list = ibus_bus_list_engines_async_finish (ibus, result, &error); ++ ++ g_clear_object (&ibus_cancellable); ++ ++ if (!list && error) ++ { ++ g_warning ("Couldn't finish IBus request: %s", error->message); ++ g_error_free (error); ++ return; ++ } ++ ++ show_all_sources = g_settings_get_boolean (input_sources_settings, "show-all-sources"); ++ ++ /* Maps engine ids to engine description objects */ ++ ibus_engines = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_object_unref); ++ ++ for (l = list; l; l = l->next) ++ { ++ IBusEngineDesc *engine = l->data; ++ const gchar *engine_id = ibus_engine_desc_get_name (engine); ++ ++ if (show_all_sources || strv_contains (supported_ibus_engines, engine_id)) ++ g_hash_table_replace (ibus_engines, (gpointer)engine_id, engine); ++ else ++ g_object_unref (engine); ++ } ++ g_list_free (list); ++ ++ update_ibus_active_sources (builder); ++} ++ ++static void ++fetch_ibus_engines (GtkBuilder *builder) ++{ ++ ibus_cancellable = g_cancellable_new (); ++ ++ ibus_bus_list_engines_async (ibus, ++ -1, ++ ibus_cancellable, ++ (GAsyncReadyCallback)fetch_ibus_engines_result, ++ builder); ++ ++ /* We've got everything we needed, don't want to be called again. */ ++ g_signal_handlers_disconnect_by_func (ibus, fetch_ibus_engines, builder); ++} ++ ++static void ++maybe_start_ibus (void) ++{ ++ /* IBus doesn't export API in the session bus. The only thing ++ * we have there is a well known name which we can use as a ++ * sure-fire way to activate it. */ ++ g_bus_unwatch_name (g_bus_watch_name (G_BUS_TYPE_SESSION, ++ IBUS_SERVICE_IBUS, ++ G_BUS_NAME_WATCHER_FLAGS_AUTO_START, ++ NULL, ++ NULL, ++ NULL, ++ NULL)); ++} ++ ++static void ++on_shell_appeared (GDBusConnection *connection, ++ const gchar *name, ++ const gchar *name_owner, ++ gpointer data) ++{ ++ GtkBuilder *builder = data; ++ ++ if (!ibus) ++ { ++ ibus = ibus_bus_new (); ++ if (ibus_bus_is_connected (ibus)) ++ fetch_ibus_engines (builder); ++ else ++ g_signal_connect_swapped (ibus, "connected", ++ G_CALLBACK (fetch_ibus_engines), builder); ++ } ++ maybe_start_ibus (); ++} ++#endif /* HAVE_IBUS */ ++ ++static gboolean ++add_source_to_table (GtkTreeModel *model, ++ GtkTreePath *path, ++ GtkTreeIter *iter, ++ gpointer data) ++{ ++ GHashTable *hash = data; ++ gchar *type; ++ gchar *id; ++ ++ gtk_tree_model_get (model, iter, ++ TYPE_COLUMN, &type, ++ ID_COLUMN, &id, ++ -1); ++ ++ g_hash_table_add (hash, g_strconcat (type, id, NULL)); ++ ++ g_free (type); ++ g_free (id); ++ ++ return FALSE; ++} ++ ++static void ++populate_model (GtkListStore *store, ++ GtkListStore *active_sources_store) ++{ ++ GHashTable *active_sources_table; ++ GtkTreeIter iter; ++ const gchar *name; ++ GList *sources, *tmp; ++ gchar *source_id = NULL; ++ ++ active_sources_table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); ++ ++ gtk_tree_model_foreach (GTK_TREE_MODEL (active_sources_store), ++ add_source_to_table, ++ active_sources_table); ++ ++ sources = gnome_xkb_info_get_all_layouts (xkb_info); ++ ++ for (tmp = sources; tmp; tmp = tmp->next) ++ { ++ g_free (source_id); ++ source_id = g_strconcat (INPUT_SOURCE_TYPE_XKB, tmp->data, NULL); ++ ++ if (g_hash_table_contains (active_sources_table, source_id)) ++ continue; ++ ++ gnome_xkb_info_get_layout_info (xkb_info, (const gchar *)tmp->data, ++ &name, NULL, NULL, NULL); ++ ++ gtk_list_store_append (store, &iter); ++ gtk_list_store_set (store, &iter, ++ NAME_COLUMN, name, ++ TYPE_COLUMN, INPUT_SOURCE_TYPE_XKB, ++ ID_COLUMN, tmp->data, ++ -1); ++ } ++ g_free (source_id); ++ ++ g_list_free (sources); ++ ++#ifdef HAVE_IBUS ++ if (ibus_engines) ++ { ++ gchar *display_name; ++ ++ sources = g_hash_table_get_keys (ibus_engines); ++ ++ source_id = NULL; ++ for (tmp = sources; tmp; tmp = tmp->next) ++ { ++ g_free (source_id); ++ source_id = g_strconcat (INPUT_SOURCE_TYPE_IBUS, tmp->data, NULL); ++ ++ if (g_hash_table_contains (active_sources_table, source_id)) ++ continue; ++ ++ display_name = engine_get_display_name (g_hash_table_lookup (ibus_engines, tmp->data)); ++ ++ gtk_list_store_append (store, &iter); ++ gtk_list_store_set (store, &iter, ++ NAME_COLUMN, display_name, ++ TYPE_COLUMN, INPUT_SOURCE_TYPE_IBUS, ++ ID_COLUMN, tmp->data, ++ -1); ++ g_free (display_name); ++ } ++ g_free (source_id); ++ ++ g_list_free (sources); ++ } ++#endif ++ ++ g_hash_table_destroy (active_sources_table); ++} ++ ++static void ++populate_with_active_sources (GtkListStore *store) ++{ ++ GVariant *sources; ++ GVariantIter iter; ++ const gchar *name; ++ const gchar *type; ++ const gchar *id; ++ gchar *display_name; ++ GDesktopAppInfo *app_info; ++ GtkTreeIter tree_iter; ++ ++ sources = g_settings_get_value (input_sources_settings, KEY_INPUT_SOURCES); ++ ++ g_variant_iter_init (&iter, sources); ++ while (g_variant_iter_next (&iter, "(&s&s)", &type, &id)) ++ { ++ display_name = NULL; ++ app_info = NULL; ++ ++ if (g_str_equal (type, INPUT_SOURCE_TYPE_XKB)) ++ { ++ gnome_xkb_info_get_layout_info (xkb_info, id, &name, NULL, NULL, NULL); ++ if (!name) ++ { ++ g_warning ("Couldn't find XKB input source '%s'", id); ++ continue; ++ } ++ display_name = g_strdup (name); ++ } ++ else if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS)) ++ { ++#ifdef HAVE_IBUS ++ IBusEngineDesc *engine_desc = NULL; ++ ++ if (ibus_engines) ++ engine_desc = g_hash_table_lookup (ibus_engines, id); ++ ++ if (engine_desc) ++ { ++ display_name = engine_get_display_name (engine_desc); ++ app_info = setup_app_info_for_id (id); ++ } ++#else ++ g_warning ("IBus input source type specified but IBus support was not compiled"); ++ continue; ++#endif ++ } ++ else ++ { ++ g_warning ("Unknown input source type '%s'", type); ++ continue; ++ } ++ ++ gtk_list_store_append (store, &tree_iter); ++ gtk_list_store_set (store, &tree_iter, ++ NAME_COLUMN, display_name, ++ TYPE_COLUMN, type, ++ ID_COLUMN, id, ++ SETUP_COLUMN, app_info, ++ -1); ++ g_free (display_name); ++ if (app_info) ++ g_object_unref (app_info); ++ } ++ ++ g_variant_unref (sources); ++} ++ ++static void ++update_configuration (GtkTreeModel *model) ++{ ++ GtkTreeIter iter; ++ gchar *type; ++ gchar *id; ++ GVariantBuilder builder; ++ GVariant *old_sources; ++ const gchar *old_current_type; ++ const gchar *old_current_id; ++ guint old_current_index; ++ guint old_n_sources; ++ guint index; ++ ++ old_sources = g_settings_get_value (input_sources_settings, KEY_INPUT_SOURCES); ++ old_current_index = g_settings_get_uint (input_sources_settings, KEY_CURRENT_INPUT_SOURCE); ++ old_n_sources = g_variant_n_children (old_sources); ++ ++ if (old_n_sources > 0 && old_current_index < old_n_sources) ++ { ++ g_variant_get_child (old_sources, ++ old_current_index, ++ "(&s&s)", ++ &old_current_type, ++ &old_current_id); ++ } ++ else ++ { ++ old_current_type = ""; ++ old_current_id = ""; ++ } ++ ++ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ss)")); ++ index = 0; ++ gtk_tree_model_get_iter_first (model, &iter); ++ do ++ { ++ gtk_tree_model_get (model, &iter, ++ TYPE_COLUMN, &type, ++ ID_COLUMN, &id, ++ -1); ++ if (index != old_current_index && ++ g_str_equal (type, old_current_type) && ++ g_str_equal (id, old_current_id)) ++ { ++ g_settings_set_uint (input_sources_settings, KEY_CURRENT_INPUT_SOURCE, index); ++ } ++ g_variant_builder_add (&builder, "(ss)", type, id); ++ g_free (type); ++ g_free (id); ++ index += 1; ++ } ++ while (gtk_tree_model_iter_next (model, &iter)); ++ ++ g_settings_set_value (input_sources_settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder)); ++ g_settings_apply (input_sources_settings); ++ ++ g_variant_unref (old_sources); ++} ++ ++static gboolean ++get_selected_iter (GtkBuilder *builder, ++ GtkTreeModel **model, ++ GtkTreeIter *iter) ++{ ++ GtkTreeSelection *selection; ++ ++ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (WID ("active_input_sources"))); ++ ++ return gtk_tree_selection_get_selected (selection, model, iter); ++} ++ ++static gint ++idx_from_model_iter (GtkTreeModel *model, ++ GtkTreeIter *iter) ++{ ++ GtkTreePath *path; ++ gint idx; ++ ++ path = gtk_tree_model_get_path (model, iter); ++ if (path == NULL) ++ return -1; ++ ++ idx = gtk_tree_path_get_indices (path)[0]; ++ gtk_tree_path_free (path); ++ ++ return idx; ++} ++ ++static void ++update_button_sensitivity (GtkBuilder *builder) ++{ ++ GtkWidget *remove_button; ++ GtkWidget *up_button; ++ GtkWidget *down_button; ++ GtkWidget *show_button; ++ GtkWidget *settings_button; ++ GtkTreeView *tv; ++ GtkTreeModel *model; ++ GtkTreeIter iter; ++ gint n_active; ++ gint index; ++ gboolean settings_sensitive; ++ GDesktopAppInfo *app_info; ++ ++ remove_button = WID("input_source_remove"); ++ show_button = WID("input_source_show"); ++ up_button = WID("input_source_move_up"); ++ down_button = WID("input_source_move_down"); ++ settings_button = WID("input_source_settings"); ++ ++ tv = GTK_TREE_VIEW (WID ("active_input_sources")); ++ n_active = gtk_tree_model_iter_n_children (gtk_tree_view_get_model (tv), NULL); ++ ++ if (get_selected_iter (builder, &model, &iter)) ++ { ++ index = idx_from_model_iter (model, &iter); ++ gtk_tree_model_get (model, &iter, SETUP_COLUMN, &app_info, -1); ++ } ++ else ++ { ++ index = -1; ++ app_info = NULL; ++ } ++ ++ settings_sensitive = (index >= 0 && app_info != NULL); ++ ++ if (app_info) ++ g_object_unref (app_info); ++ ++ gtk_widget_set_sensitive (remove_button, index >= 0 && n_active > 1); ++ gtk_widget_set_sensitive (show_button, index >= 0); ++ gtk_widget_set_sensitive (up_button, index > 0); ++ gtk_widget_set_sensitive (down_button, index >= 0 && index < n_active - 1); ++ gtk_widget_set_sensitive (settings_button, settings_sensitive); ++} ++ ++static void ++set_selected_path (GtkBuilder *builder, ++ GtkTreePath *path) ++{ ++ GtkTreeSelection *selection; ++ ++ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (WID ("active_input_sources"))); ++ ++ gtk_tree_selection_select_path (selection, path); ++} ++ ++static GtkTreeModel * ++tree_view_get_actual_model (GtkTreeView *tv) ++{ ++ GtkTreeModel *filtered_store; ++ ++ filtered_store = gtk_tree_view_get_model (tv); ++ ++ return gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (filtered_store)); ++} ++ ++static void ++chooser_response (GtkWidget *chooser, gint response_id, gpointer data) ++{ ++ GtkBuilder *builder = data; ++ ++ if (response_id == GTK_RESPONSE_OK) ++ { ++ GtkTreeModel *model; ++ GtkTreeIter iter; ++ ++ if (input_chooser_get_selected (chooser, &model, &iter)) ++ { ++ GtkTreeView *tv; ++ GtkListStore *child_model; ++ GtkTreeIter child_iter, filter_iter; ++ gchar *name; ++ gchar *type; ++ gchar *id; ++ GDesktopAppInfo *app_info = NULL; ++ ++ gtk_tree_model_get (model, &iter, ++ NAME_COLUMN, &name, ++ TYPE_COLUMN, &type, ++ ID_COLUMN, &id, ++ -1); ++ ++#ifdef HAVE_IBUS ++ if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS)) ++ app_info = setup_app_info_for_id (id); ++#endif ++ ++ tv = GTK_TREE_VIEW (WID ("active_input_sources")); ++ child_model = GTK_LIST_STORE (tree_view_get_actual_model (tv)); ++ ++ gtk_list_store_append (child_model, &child_iter); ++ ++ gtk_list_store_set (child_model, &child_iter, ++ NAME_COLUMN, name, ++ TYPE_COLUMN, type, ++ ID_COLUMN, id, ++ SETUP_COLUMN, app_info, ++ -1); ++ g_free (name); ++ g_free (type); ++ g_free (id); ++ if (app_info) ++ g_object_unref (app_info); ++ ++ gtk_tree_model_filter_convert_child_iter_to_iter (GTK_TREE_MODEL_FILTER (gtk_tree_view_get_model (tv)), ++ &filter_iter, ++ &child_iter); ++ gtk_tree_selection_select_iter (gtk_tree_view_get_selection (tv), &filter_iter); ++ ++ update_button_sensitivity (builder); ++ update_configuration (GTK_TREE_MODEL (child_model)); ++ } ++ else ++ { ++ g_debug ("nothing selected, nothing added"); ++ } ++ } ++ ++ gtk_widget_destroy (GTK_WIDGET (chooser)); ++} ++ ++static void ++add_input (GtkButton *button, gpointer data) ++{ ++ GtkBuilder *builder = data; ++ GtkWidget *chooser; ++ GtkWidget *toplevel; ++ GtkWidget *treeview; ++ GtkListStore *active_sources; ++ ++ g_debug ("add an input source"); ++ ++ toplevel = gtk_widget_get_toplevel (WID ("region_notebook")); ++ treeview = WID ("active_input_sources"); ++ active_sources = GTK_LIST_STORE (tree_view_get_actual_model (GTK_TREE_VIEW (treeview))); ++ ++ chooser = input_chooser_new (GTK_WINDOW (toplevel), active_sources); ++ g_signal_connect (chooser, "response", ++ G_CALLBACK (chooser_response), builder); ++} ++ ++static void ++remove_selected_input (GtkButton *button, gpointer data) ++{ ++ GtkBuilder *builder = data; ++ GtkTreeModel *model; ++ GtkTreeModel *child_model; ++ GtkTreeIter iter; ++ GtkTreeIter child_iter; ++ GtkTreePath *path; ++ ++ g_debug ("remove selected input source"); ++ ++ if (get_selected_iter (builder, &model, &iter) == FALSE) ++ return; ++ ++ path = gtk_tree_model_get_path (model, &iter); ++ ++ child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); ++ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model), ++ &child_iter, ++ &iter); ++ gtk_list_store_remove (GTK_LIST_STORE (child_model), &child_iter); ++ ++ if (!gtk_tree_model_get_iter (model, &iter, path)) ++ gtk_tree_path_prev (path); ++ ++ set_selected_path (builder, path); ++ ++ gtk_tree_path_free (path); ++ ++ update_button_sensitivity (builder); ++ update_configuration (child_model); ++} ++ ++static void ++move_selected_input_up (GtkButton *button, gpointer data) ++{ ++ GtkBuilder *builder = data; ++ GtkTreeModel *model; ++ GtkTreeModel *child_model; ++ GtkTreeIter iter, prev; ++ GtkTreeIter child_iter, child_prev; ++ GtkTreePath *path; ++ ++ g_debug ("move selected input source up"); ++ ++ if (!get_selected_iter (builder, &model, &iter)) ++ return; ++ ++ prev = iter; ++ if (!gtk_tree_model_iter_previous (model, &prev)) ++ return; ++ ++ path = gtk_tree_model_get_path (model, &prev); ++ ++ child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); ++ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model), ++ &child_iter, ++ &iter); ++ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model), ++ &child_prev, ++ &prev); ++ gtk_list_store_swap (GTK_LIST_STORE (child_model), &child_iter, &child_prev); ++ ++ set_selected_path (builder, path); ++ gtk_tree_path_free (path); ++ ++ update_button_sensitivity (builder); ++ update_configuration (child_model); ++} ++ ++static void ++move_selected_input_down (GtkButton *button, gpointer data) ++{ ++ GtkBuilder *builder = data; ++ GtkTreeModel *model; ++ GtkTreeModel *child_model; ++ GtkTreeIter iter, next; ++ GtkTreeIter child_iter, child_next; ++ GtkTreePath *path; ++ ++ g_debug ("move selected input source down"); ++ ++ if (!get_selected_iter (builder, &model, &iter)) ++ return; ++ ++ next = iter; ++ if (!gtk_tree_model_iter_next (model, &next)) ++ return; ++ ++ path = gtk_tree_model_get_path (model, &next); ++ ++ child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); ++ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model), ++ &child_iter, ++ &iter); ++ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model), ++ &child_next, ++ &next); ++ gtk_list_store_swap (GTK_LIST_STORE (child_model), &child_iter, &child_next); ++ ++ set_selected_path (builder, path); ++ gtk_tree_path_free (path); ++ ++ update_button_sensitivity (builder); ++ update_configuration (child_model); ++} ++ ++static void ++show_selected_layout (GtkButton *button, gpointer data) ++{ ++ GtkBuilder *builder = data; ++ GtkTreeModel *model; ++ GtkTreeIter iter; ++ gchar *type; ++ gchar *id; ++ gchar *kbd_viewer_args; ++ const gchar *xkb_layout; ++ const gchar *xkb_variant; ++ ++ g_debug ("show selected layout"); ++ ++ if (!get_selected_iter (builder, &model, &iter)) ++ return; ++ ++ gtk_tree_model_get (model, &iter, ++ TYPE_COLUMN, &type, ++ ID_COLUMN, &id, ++ -1); ++ ++ if (g_str_equal (type, INPUT_SOURCE_TYPE_XKB)) ++ { ++ gnome_xkb_info_get_layout_info (xkb_info, id, NULL, NULL, &xkb_layout, &xkb_variant); ++ ++ if (!xkb_layout || !xkb_layout[0]) ++ { ++ g_warning ("Couldn't find XKB input source '%s'", id); ++ goto exit; ++ } ++ } ++ else if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS)) ++ { ++#ifdef HAVE_IBUS ++ IBusEngineDesc *engine_desc = NULL; ++ ++ if (ibus_engines) ++ engine_desc = g_hash_table_lookup (ibus_engines, id); ++ ++ if (engine_desc) ++ { ++ xkb_layout = ibus_engine_desc_get_layout (engine_desc); ++ xkb_variant = ""; ++ } ++ else ++ { ++ g_warning ("Couldn't find IBus input source '%s'", id); ++ goto exit; ++ } ++#else ++ g_warning ("IBus input source type specified but IBus support was not compiled"); ++ goto exit; ++#endif ++ } ++ else ++ { ++ g_warning ("Unknown input source type '%s'", type); ++ goto exit; ++ } ++ ++ if (xkb_variant[0]) ++ kbd_viewer_args = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"", ++ xkb_layout, xkb_variant); ++ else ++ kbd_viewer_args = g_strdup_printf ("gkbd-keyboard-display -l %s", ++ xkb_layout); ++ ++ g_spawn_command_line_async (kbd_viewer_args, NULL); ++ ++ g_free (kbd_viewer_args); ++ exit: ++ g_free (type); ++ g_free (id); ++} ++ ++static void ++show_selected_settings (GtkButton *button, gpointer data) ++{ ++ GtkBuilder *builder = data; ++ GtkTreeModel *model; ++ GtkTreeIter iter; ++ GdkAppLaunchContext *ctx; ++ GDesktopAppInfo *app_info; ++ gchar *id; ++ GError *error = NULL; ++ ++ g_debug ("show selected layout"); ++ ++ if (!get_selected_iter (builder, &model, &iter)) ++ return; ++ ++ gtk_tree_model_get (model, &iter, SETUP_COLUMN, &app_info, -1); ++ ++ if (!app_info) ++ return; ++ ++ ctx = gdk_display_get_app_launch_context (gdk_display_get_default ()); ++ gdk_app_launch_context_set_timestamp (ctx, gtk_get_current_event_time ()); ++ ++ gtk_tree_model_get (model, &iter, ID_COLUMN, &id, -1); ++ g_app_launch_context_setenv (G_APP_LAUNCH_CONTEXT (ctx), ++ "IBUS_ENGINE_NAME", ++ id); ++ g_free (id); ++ ++ if (!g_app_info_launch (G_APP_INFO (app_info), NULL, G_APP_LAUNCH_CONTEXT (ctx), &error)) ++ { ++ g_warning ("Failed to launch input source setup: %s", error->message); ++ g_error_free (error); ++ } ++ ++ g_object_unref (ctx); ++ g_object_unref (app_info); ++} ++ ++static gboolean ++go_to_shortcuts (GtkLinkButton *button, ++ CcRegionPanel *panel) ++{ ++ gchar *argv[3]; ++ argv[0] = "cinnamon-settings"; ++ argv[1] = "keyboard"; ++ argv[3] = NULL; ++ g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL); ++ return TRUE; ++} ++ ++static void ++input_sources_changed (GSettings *settings, ++ gchar *key, ++ GtkBuilder *builder) ++{ ++ GtkWidget *treeview; ++ GtkTreeModel *store; ++ GtkTreePath *path; ++ GtkTreeIter iter; ++ GtkTreeModel *model; ++ ++ treeview = WID("active_input_sources"); ++ store = tree_view_get_actual_model (GTK_TREE_VIEW (treeview)); ++ ++ if (get_selected_iter (builder, &model, &iter)) ++ path = gtk_tree_model_get_path (model, &iter); ++ else ++ path = NULL; ++ ++ gtk_list_store_clear (GTK_LIST_STORE (store)); ++ populate_with_active_sources (GTK_LIST_STORE (store)); ++ ++ if (path) ++ { ++ set_selected_path (builder, path); ++ gtk_tree_path_free (path); ++ } ++} ++ ++static void ++update_shortcut_label (GtkWidget *widget, ++ const char *value) ++{ ++ char *text; ++ guint accel_key, *keycode; ++ GdkModifierType mods; ++ ++ if (value == NULL || *value == '\0') ++ { ++ gtk_label_set_text (GTK_LABEL (widget), "\342\200\224"); ++ return; ++ } ++ gtk_accelerator_parse_with_keycode (value, &accel_key, &keycode, &mods); ++ if (accel_key == 0 && keycode == NULL && mods == 0) ++ { ++ gtk_label_set_text (GTK_LABEL (widget), "\342\200\224"); ++ g_warning ("Failed to parse keyboard shortcut: '%s'", value); ++ return; ++ } ++ ++ text = gtk_accelerator_get_label_with_keycode (gtk_widget_get_display (widget), accel_key, *keycode, mods); ++ g_free (keycode); ++ gtk_label_set_text (GTK_LABEL (widget), text); ++ g_free (text); ++} ++ ++static void ++update_shortcuts (GtkBuilder *builder) ++{ ++ char *previous, *next; ++ GSettings *settings; ++ ++ settings = g_settings_new ("org.cinnamon.settings-daemon.plugins.media-keys"); ++ ++ previous = g_settings_get_string (settings, "switch-input-source-backward"); ++ next = g_settings_get_string (settings, "switch-input-source"); ++ ++ update_shortcut_label (WID ("prev-source-shortcut-label"), previous); ++ update_shortcut_label (WID ("next-source-shortcut-label"), next); ++ ++ g_free (previous); ++ g_free (next); ++} ++ ++static gboolean ++active_sources_visible_func (GtkTreeModel *model, ++ GtkTreeIter *iter, ++ gpointer data) ++{ ++ gchar *display_name; ++ ++ gtk_tree_model_get (model, iter, NAME_COLUMN, &display_name, -1); ++ ++ if (!display_name) ++ return FALSE; ++ ++ g_free (display_name); ++ ++ return TRUE; ++} ++ ++void ++setup_input_tabs (GtkBuilder *builder, ++ CcRegionPanel *panel) ++{ ++ GtkWidget *treeview; ++ GtkTreeViewColumn *column; ++ GtkCellRenderer *cell; ++ GtkListStore *store; ++ GtkTreeModel *filtered_store; ++ GtkTreeSelection *selection; ++ ++ /* set up the list of active inputs */ ++ treeview = WID("active_input_sources"); ++ column = gtk_tree_view_column_new (); ++ cell = gtk_cell_renderer_text_new (); ++ gtk_tree_view_column_pack_start (column, cell, TRUE); ++ gtk_tree_view_column_add_attribute (column, cell, "text", NAME_COLUMN); ++ gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); ++ ++ store = gtk_list_store_new (N_COLUMNS, ++ G_TYPE_STRING, ++ G_TYPE_STRING, ++ G_TYPE_STRING, ++ G_TYPE_DESKTOP_APP_INFO); ++ ++ gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), GTK_TREE_MODEL (store)); ++ ++ input_sources_settings = g_settings_new (GNOME_DESKTOP_INPUT_SOURCES_DIR); ++ g_settings_delay (input_sources_settings); ++ g_object_weak_ref (G_OBJECT (builder), (GWeakNotify) g_object_unref, input_sources_settings); ++ ++ if (!xkb_info) ++ xkb_info = gnome_xkb_info_new (); ++ ++#ifdef HAVE_IBUS ++ ibus_init (); ++ shell_name_watch_id = g_bus_watch_name (G_BUS_TYPE_SESSION, ++ "org.Cinnamon", ++ G_BUS_NAME_WATCHER_FLAGS_NONE, ++ on_shell_appeared, ++ NULL, ++ builder, ++ NULL); ++ g_object_weak_ref (G_OBJECT (builder), (GWeakNotify) clear_ibus, NULL); ++#endif ++ ++ populate_with_active_sources (store); ++ ++ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); ++ g_signal_connect_swapped (selection, "changed", ++ G_CALLBACK (update_button_sensitivity), builder); ++ ++ /* Some input source types might have their info loaded ++ * asynchronously. In that case we don't want to show them ++ * immediately so we use a filter model on top of the real model ++ * which mirrors the GSettings key. */ ++ filtered_store = gtk_tree_model_filter_new (GTK_TREE_MODEL (store), NULL); ++ gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (filtered_store), ++ active_sources_visible_func, ++ NULL, ++ NULL); ++ gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), filtered_store); ++ ++ /* set up the buttons */ ++ g_signal_connect (WID("input_source_add"), "clicked", ++ G_CALLBACK (add_input), builder); ++ g_signal_connect (WID("input_source_remove"), "clicked", ++ G_CALLBACK (remove_selected_input), builder); ++ g_signal_connect (WID("input_source_move_up"), "clicked", ++ G_CALLBACK (move_selected_input_up), builder); ++ g_signal_connect (WID("input_source_move_down"), "clicked", ++ G_CALLBACK (move_selected_input_down), builder); ++ g_signal_connect (WID("input_source_show"), "clicked", ++ G_CALLBACK (show_selected_layout), builder); ++ g_signal_connect (WID("input_source_settings"), "clicked", ++ G_CALLBACK (show_selected_settings), builder); ++ ++ /* use an em dash is no shortcut */ ++ update_shortcuts (builder); ++ ++ g_signal_connect (WID("jump-to-shortcuts"), "activate-link", ++ G_CALLBACK (go_to_shortcuts), panel); ++ ++ g_signal_connect (G_OBJECT (input_sources_settings), ++ "changed::" KEY_INPUT_SOURCES, ++ G_CALLBACK (input_sources_changed), ++ builder); ++} ++ ++static void ++filter_clear (GtkEntry *entry, ++ GtkEntryIconPosition icon_pos, ++ GdkEvent *event, ++ gpointer user_data) ++{ ++ gtk_entry_set_text (entry, ""); ++} ++ ++static gchar **search_pattern_list; ++ ++static void ++filter_changed (GtkBuilder *builder) ++{ ++ GtkTreeModelFilter *filtered_model; ++ GtkTreeView *tree_view; ++ GtkTreeSelection *selection; ++ GtkTreeIter selected_iter; ++ GtkWidget *filter_entry; ++ const gchar *pattern; ++ gchar *upattern; ++ ++ filter_entry = WID ("input_source_filter"); ++ pattern = gtk_entry_get_text (GTK_ENTRY (filter_entry)); ++ upattern = g_utf8_strup (pattern, -1); ++ if (!g_strcmp0 (pattern, "")) ++ g_object_set (G_OBJECT (filter_entry), ++ "secondary-icon-name", "edit-find-symbolic", ++ "secondary-icon-activatable", FALSE, ++ "secondary-icon-sensitive", FALSE, ++ NULL); ++ else ++ g_object_set (G_OBJECT (filter_entry), ++ "secondary-icon-name", "edit-clear-symbolic", ++ "secondary-icon-activatable", TRUE, ++ "secondary-icon-sensitive", TRUE, ++ NULL); ++ ++ if (search_pattern_list != NULL) ++ g_strfreev (search_pattern_list); ++ ++ search_pattern_list = g_strsplit (upattern, " ", -1); ++ g_free (upattern); ++ ++ filtered_model = GTK_TREE_MODEL_FILTER (gtk_builder_get_object (builder, "filtered_input_source_model")); ++ gtk_tree_model_filter_refilter (filtered_model); ++ ++ tree_view = GTK_TREE_VIEW (WID ("filtered_input_source_list")); ++ selection = gtk_tree_view_get_selection (tree_view); ++ if (gtk_tree_selection_get_selected (selection, NULL, &selected_iter)) ++ { ++ GtkTreePath *path = gtk_tree_model_get_path (GTK_TREE_MODEL (filtered_model), ++ &selected_iter); ++ gtk_tree_view_scroll_to_cell (tree_view, path, NULL, TRUE, 0.5, 0.5); ++ gtk_tree_path_free (path); ++ } ++ else ++ { ++ GtkTreeIter iter; ++ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (filtered_model), &iter)) ++ gtk_tree_selection_select_iter (selection, &iter); ++ } ++} ++ ++static void ++selection_changed (GtkTreeSelection *selection, ++ GtkBuilder *builder) ++{ ++ gtk_widget_set_sensitive (WID ("ok-button"), ++ gtk_tree_selection_get_selected (selection, NULL, NULL)); ++} ++ ++static void ++row_activated (GtkTreeView *tree_view, ++ GtkTreePath *path, ++ GtkTreeViewColumn *column, ++ GtkBuilder *builder) ++{ ++ GtkWidget *add_button; ++ GtkWidget *dialog; ++ ++ add_button = WID ("ok-button"); ++ dialog = WID ("input_source_chooser"); ++ if (gtk_widget_is_sensitive (add_button)) ++ gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); ++} ++ ++static void ++entry_activated (GtkBuilder *builder, ++ gpointer data) ++{ ++ row_activated (NULL, NULL, NULL, builder); ++} ++ ++static gboolean ++filter_func (GtkTreeModel *model, ++ GtkTreeIter *iter, ++ gpointer data) ++{ ++ gchar *name = NULL; ++ gchar **pattern; ++ gboolean rv = TRUE; ++ ++ if (search_pattern_list == NULL || search_pattern_list[0] == NULL) ++ return TRUE; ++ ++ gtk_tree_model_get (model, iter, ++ NAME_COLUMN, &name, ++ -1); ++ ++ pattern = search_pattern_list; ++ do { ++ gboolean is_pattern_found = FALSE; ++ gchar *udesc = g_utf8_strup (name, -1); ++ if (udesc != NULL && g_strstr_len (udesc, -1, *pattern)) ++ { ++ is_pattern_found = TRUE; ++ } ++ g_free (udesc); ++ ++ if (!is_pattern_found) ++ { ++ rv = FALSE; ++ break; ++ } ++ ++ } while (*++pattern != NULL); ++ ++ g_free (name); ++ ++ return rv; ++} ++ ++static GtkWidget * ++input_chooser_new (GtkWindow *main_window, ++ GtkListStore *active_sources) ++{ ++ GtkBuilder *builder; ++ GtkWidget *chooser; ++ GtkWidget *filtered_list; ++ GtkWidget *filter_entry; ++ GtkTreeViewColumn *visible_column; ++ GtkTreeSelection *selection; ++ GtkListStore *model; ++ GtkTreeModelFilter *filtered_model; ++ GtkTreeIter iter; ++ ++ builder = gtk_builder_new (); ++ gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE); ++ gtk_builder_add_from_file (builder, ++ CINNAMONCC_UI_DIR "/cinnamon-region-panel-input-chooser.ui", ++ NULL); ++ chooser = WID ("input_source_chooser"); ++ input_chooser = chooser; ++ g_object_add_weak_pointer (G_OBJECT (chooser), (gpointer *) &input_chooser); ++ g_object_set_data_full (G_OBJECT (chooser), "builder", builder, g_object_unref); ++ ++ filtered_list = WID ("filtered_input_source_list"); ++ filter_entry = WID ("input_source_filter"); ++ ++ g_object_set_data (G_OBJECT (chooser), ++ "filtered_input_source_list", filtered_list); ++ visible_column = ++ gtk_tree_view_column_new_with_attributes ("Input Sources", ++ gtk_cell_renderer_text_new (), ++ "text", NAME_COLUMN, ++ NULL); ++ ++ gtk_window_set_transient_for (GTK_WINDOW (chooser), main_window); ++ ++ gtk_tree_view_append_column (GTK_TREE_VIEW (filtered_list), ++ visible_column); ++ /* We handle searching ourselves, thank you. */ ++ gtk_tree_view_set_enable_search (GTK_TREE_VIEW (filtered_list), FALSE); ++ gtk_tree_view_set_search_column (GTK_TREE_VIEW (filtered_list), -1); ++ ++ g_signal_connect_swapped (G_OBJECT (filter_entry), "activate", ++ G_CALLBACK (entry_activated), builder); ++ g_signal_connect_swapped (G_OBJECT (filter_entry), "notify::text", ++ G_CALLBACK (filter_changed), builder); ++ ++ g_signal_connect (G_OBJECT (filter_entry), "icon-release", ++ G_CALLBACK (filter_clear), NULL); ++ ++ filtered_model = GTK_TREE_MODEL_FILTER (gtk_builder_get_object (builder, "filtered_input_source_model")); ++ model = GTK_LIST_STORE (gtk_builder_get_object (builder, "input_source_model")); ++ ++ populate_model (model, active_sources); ++ ++ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), ++ NAME_COLUMN, GTK_SORT_ASCENDING); ++ ++ gtk_tree_model_filter_set_visible_func (filtered_model, ++ filter_func, ++ NULL, NULL); ++ ++ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (filtered_list)); ++ ++ g_signal_connect (G_OBJECT (selection), "changed", ++ G_CALLBACK (selection_changed), builder); ++ ++ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (filtered_model), &iter)) ++ gtk_tree_selection_select_iter (selection, &iter); ++ ++ g_signal_connect (G_OBJECT (filtered_list), "row-activated", ++ G_CALLBACK (row_activated), builder); ++ ++ gtk_widget_grab_focus (filter_entry); ++ ++ gtk_widget_show (chooser); ++ ++ return chooser; ++} ++ ++static gboolean ++input_chooser_get_selected (GtkWidget *dialog, ++ GtkTreeModel **model, ++ GtkTreeIter *iter) ++{ ++ GtkWidget *tv; ++ GtkTreeSelection *selection; ++ ++ tv = g_object_get_data (G_OBJECT (dialog), "filtered_input_source_list"); ++ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tv)); ++ ++ return gtk_tree_selection_get_selected (selection, model, iter); ++} +diff -uNrp a/panels/region/cinnamon-region-panel-input-chooser.ui b/panels/region/cinnamon-region-panel-input-chooser.ui +--- a/panels/region/cinnamon-region-panel-input-chooser.ui 1970-01-01 01:00:00.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-input-chooser.ui 2013-09-21 13:24:15.339949536 +0100 +@@ -0,0 +1,157 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<interface> ++ <requires lib="gtk+" version="2.16"/> ++ <object class="GtkListStore" id="input_source_model"> ++ <columns> ++ <!-- display name --> ++ <column type="gchararray"/> ++ <!-- input source type --> ++ <column type="gchararray"/> ++ <!-- type specific identifier --> ++ <column type="gchararray"/> ++ </columns> ++ </object> ++ <object class="GtkTreeModelFilter" id="filtered_input_source_model"> ++ <property name="child_model">input_source_model</property> ++ </object> ++ <object class="GtkDialog" id="input_source_chooser"> ++ <property name="visible">False</property> ++ <property name="can_focus">False</property> ++ <property name="border_width">5</property> ++ <property name="title" translatable="yes">Choose an input source</property> ++ <property name="modal">True</property> ++ <property name="window_position">center-on-parent</property> ++ <property name="type_hint">dialog</property> ++ <child internal-child="vbox"> ++ <object class="GtkBox" id="dialog-vbox3"> ++ <property name="visible">True</property> ++ <property name="can_focus">False</property> ++ <property name="orientation">vertical</property> ++ <property name="spacing">2</property> ++ <child internal-child="action_area"> ++ <object class="GtkButtonBox" id="hbtnBox"> ++ <property name="visible">True</property> ++ <property name="can_focus">False</property> ++ <property name="layout_style">end</property> ++ <child> ++ <object class="GtkButton" id="cancel-button"> ++ <property name="label">gtk-cancel</property> ++ <property name="visible">True</property> ++ <property name="can_focus">True</property> ++ <property name="can_default">True</property> ++ <property name="receives_default">False</property> ++ <property name="use_action_appearance">False</property> ++ <property name="use_stock">True</property> ++ </object> ++ <packing> ++ <property name="expand">False</property> ++ <property name="fill">False</property> ++ <property name="pack_type">end</property> ++ <property name="position">1</property> ++ </packing> ++ </child> ++ <child> ++ <object class="GtkButton" id="ok-button"> ++ <property name="label">gtk-add</property> ++ <property name="visible">True</property> ++ <property name="can_focus">True</property> ++ <property name="can_default">True</property> ++ <property name="receives_default">False</property> ++ <property name="use_action_appearance">False</property> ++ <property name="use_stock">True</property> ++ </object> ++ <packing> ++ <property name="expand">False</property> ++ <property name="fill">False</property> ++ <property name="pack_type">end</property> ++ <property name="position">2</property> ++ </packing> ++ </child> ++ </object> ++ </child> ++ <child> ++ <object class="GtkVBox" id="vbox40"> ++ <property name="visible">True</property> ++ <property name="can_focus">False</property> ++ <property name="border_width">5</property> ++ <property name="spacing">6</property> ++ <child> ++ <object class="GtkVBox" id="vbox1"> ++ <property name="visible">True</property> ++ <property name="can_focus">False</property> ++ <property name="spacing">6</property> ++ <child> ++ <object class="GtkLabel" id="label1"> ++ <property name="visible">True</property> ++ <property name="can_focus">False</property> ++ <property name="xalign">0</property> ++ <property name="label" translatable="yes">Select an input source to add</property> ++ </object> ++ <packing> ++ <property name="expand">False</property> ++ <property name="fill">False</property> ++ <property name="position">0</property> ++ </packing> ++ </child> ++ <child> ++ <object class="GtkScrolledWindow" id="scrolledwindow1"> ++ <property name="visible">True</property> ++ <property name="can_focus">True</property> ++ <property name="hscrollbar_policy">never</property> ++ <property name="shadow_type">etched-in</property> ++ <property name="min_content_width">450</property> ++ <property name="min_content_height">250</property> ++ <child> ++ <object class="GtkTreeView" id="filtered_input_source_list"> ++ <property name="visible">True</property> ++ <property name="can_focus">True</property> ++ <property name="model">filtered_input_source_model</property> ++ <property name="headers_visible">False</property> ++ <property name="search_column">0</property> ++ </object> ++ </child> ++ </object> ++ <packing> ++ <property name="expand">True</property> ++ <property name="fill">True</property> ++ <property name="position">1</property> ++ </packing> ++ </child> ++ </object> ++ <packing> ++ <property name="expand">True</property> ++ <property name="fill">True</property> ++ <property name="position">0</property> ++ </packing> ++ </child> ++ <child> ++ <object class="GtkEntry" id="input_source_filter"> ++ <property name="visible">True</property> ++ <property name="can_focus">True</property> ++ <property name="invisible_char">•</property> ++ <property name="secondary-icon-name">edit-find-symbolic</property> ++ <property name="secondary-icon-activatable">False</property> ++ <property name="secondary-icon-sensitive">False</property> ++ </object> ++ <packing> ++ <property name="expand">False</property> ++ <property name="fill">False</property> ++ <property name="pack_type">end</property> ++ <property name="position">1</property> ++ </packing> ++ </child> ++ </object> ++ <packing> ++ <property name="expand">True</property> ++ <property name="fill">True</property> ++ <property name="position">1</property> ++ </packing> ++ </child> ++ </object> ++ </child> ++ <action-widgets> ++ <action-widget response="-5">ok-button</action-widget> ++ <action-widget response="-6">cancel-button</action-widget> ++ </action-widgets> ++ </object> ++</interface> +diff -uNrp a/panels/region/cinnamon-region-panel-input.h b/panels/region/cinnamon-region-panel-input.h +--- a/panels/region/cinnamon-region-panel-input.h 1970-01-01 01:00:00.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-input.h 2013-09-21 13:24:15.339949536 +0100 +@@ -0,0 +1,36 @@ ++/* cinnamon-region-panel-input.h ++ * Copyright (C) 2011 Red Hat, Inc. ++ * ++ * Written by Matthias Clasen ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2, or (at your option) ++ * any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA ++ * 02110-1335, USA. ++ */ ++ ++#ifndef __CINNAMON_KEYBOARD_PROPERTY_INPUT_H ++#define __CINNAMON_KEYBOARD_PROPERTY_INPUT_H ++ ++#include <gtk/gtk.h> ++ ++#include "cc-region-panel.h" ++ ++G_BEGIN_DECLS ++ ++void setup_input_tabs (GtkBuilder *builder, ++ CcRegionPanel *self); ++ ++G_END_DECLS ++ ++#endif /* __CINNAMON_KEYBOARD_PROPERTY_INPUT_H */ +diff -uNrp a/panels/region/cinnamon-region-panel-lang.c b/panels/region/cinnamon-region-panel-lang.c +--- a/panels/region/cinnamon-region-panel-lang.c 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-lang.c 2013-09-21 13:24:15.340949500 +0100 +@@ -24,7 +24,7 @@ + #endif + + #include <string.h> +-#include <glib/gi18n-lib.h> ++#include <glib/gi18n.h> + + #include "cinnamon-region-panel-lang.h" + #include "cinnamon-region-panel-formats.h" +diff -uNrp a/panels/region/cinnamon-region-panel-lang.h b/panels/region/cinnamon-region-panel-lang.h +--- a/panels/region/cinnamon-region-panel-lang.h 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-lang.h 2013-09-21 13:24:15.340949500 +0100 +@@ -19,8 +19,8 @@ + * 02110-1335, USA. + */ + +-#ifndef __GNOME_KEYBOARD_PROPERTY_LANG_H +-#define __GNOME_KEYBOARD_PROPERTY_LANG_H ++#ifndef __CINNAMON_KEYBOARD_PROPERTY_LANG_H ++#define __CINNAMON_KEYBOARD_PROPERTY_LANG_H + + #include <gtk/gtk.h> + +@@ -29,4 +29,4 @@ G_BEGIN_DECLS + void setup_language (GtkBuilder *builder); + + G_END_DECLS +-#endif /* __GNOME_KEYBOARD_PROPERTY_LANG_H */ ++#endif /* __CINNAMON_KEYBOARD_PROPERTY_LANG_H */ +diff -uNrp a/panels/region/cinnamon-region-panel-layout-chooser.ui b/panels/region/cinnamon-region-panel-layout-chooser.ui +--- a/panels/region/cinnamon-region-panel-layout-chooser.ui 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-layout-chooser.ui 1970-01-01 01:00:00.000000000 +0100 +@@ -1,180 +0,0 @@ +-<?xml version="1.0" encoding="UTF-8"?> +-<interface> +- <requires lib="gtk+" version="2.16"/> +- <object class="GtkListStore" id="layout_list_model"> +- <columns> +- <!-- column-name sort_order --> +- <column type="gchararray"/> +- <!-- column-name visible --> +- <column type="gchararray"/> +- <!-- column-name xkb_id --> +- <column type="gchararray"/> +- <!-- column-name country_desc --> +- <column type="gchararray"/> +- <!-- column-name language_desc --> +- <column type="gchararray"/> +- </columns> +- </object> +- <object class="GtkTreeModelFilter" id="filtered_layout_list_model"> +- <property name="child_model">layout_list_model</property> +- </object> +- <object class="GtkDialog" id="xkb_layout_chooser"> +- <property name="visible">False</property> +- <property name="can_focus">False</property> +- <property name="border_width">5</property> +- <property name="title" translatable="yes">Choose a Layout</property> +- <property name="modal">True</property> +- <property name="window_position">center-on-parent</property> +- <property name="type_hint">dialog</property> +- <child internal-child="vbox"> +- <object class="GtkBox" id="dialog-vbox3"> +- <property name="visible">True</property> +- <property name="can_focus">False</property> +- <property name="orientation">vertical</property> +- <property name="spacing">2</property> +- <child internal-child="action_area"> +- <object class="GtkButtonBox" id="hbtnBox"> +- <property name="visible">True</property> +- <property name="can_focus">False</property> +- <property name="layout_style">end</property> +- <child> +- <object class="GtkButton" id="btnPreview"> +- <property name="label" translatable="yes">Preview</property> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="receives_default">True</property> +- <property name="use_action_appearance">False</property> +- </object> +- <packing> +- <property name="expand">False</property> +- <property name="fill">False</property> +- <property name="position">0</property> +- <property name="secondary">True</property> +- </packing> +- </child> +- <child> +- <object class="GtkButton" id="btnCancel"> +- <property name="label">gtk-cancel</property> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="can_default">True</property> +- <property name="receives_default">False</property> +- <property name="use_action_appearance">False</property> +- <property name="use_stock">True</property> +- </object> +- <packing> +- <property name="expand">False</property> +- <property name="fill">False</property> +- <property name="pack_type">end</property> +- <property name="position">1</property> +- </packing> +- </child> +- <child> +- <object class="GtkButton" id="btnOk"> +- <property name="label">gtk-add</property> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="can_default">True</property> +- <property name="receives_default">False</property> +- <property name="use_action_appearance">False</property> +- <property name="use_stock">True</property> +- </object> +- <packing> +- <property name="expand">False</property> +- <property name="fill">False</property> +- <property name="pack_type">end</property> +- <property name="position">2</property> +- </packing> +- </child> +- </object> +- </child> +- <child> +- <object class="GtkVBox" id="vbox40"> +- <property name="visible">True</property> +- <property name="can_focus">False</property> +- <property name="border_width">5</property> +- <property name="spacing">6</property> +- <child> +- <object class="GtkVBox" id="vbox1"> +- <property name="visible">True</property> +- <property name="can_focus">False</property> +- <property name="spacing">6</property> +- <child> +- <object class="GtkLabel" id="label1"> +- <property name="visible">True</property> +- <property name="can_focus">False</property> +- <property name="xalign">0</property> +- <property name="label" translatable="yes">Select an input source to add</property> +- </object> +- <packing> +- <property name="expand">False</property> +- <property name="fill">False</property> +- <property name="position">0</property> +- </packing> +- </child> +- <child> +- <object class="GtkScrolledWindow" id="scrolledwindow1"> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="hscrollbar_policy">never</property> +- <property name="shadow_type">etched-in</property> +- <property name="min_content_width">450</property> +- <property name="min_content_height">250</property> +- <child> +- <object class="GtkTreeView" id="xkb_filtered_layouts_list"> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="model">filtered_layout_list_model</property> +- <property name="headers_visible">False</property> +- <property name="search_column">0</property> +- <child internal-child="selection"> +- <object class="GtkTreeSelection" id="treeview-selection1"/> +- </child> +- </object> +- </child> +- </object> +- <packing> +- <property name="expand">True</property> +- <property name="fill">True</property> +- <property name="position">1</property> +- </packing> +- </child> +- </object> +- <packing> +- <property name="expand">True</property> +- <property name="fill">True</property> +- <property name="position">0</property> +- </packing> +- </child> +- <child> +- <object class="GtkEntry" id="xkb_layout_filter"> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="invisible_char">•</property> +- <property name="secondary-icon-name">edit-find-symbolic</property> +- <property name="secondary-icon-activatable">False</property> +- <property name="secondary-icon-sensitive">False</property> +- </object> +- <packing> +- <property name="expand">False</property> +- <property name="fill">False</property> +- <property name="pack_type">end</property> +- <property name="position">1</property> +- </packing> +- </child> +- </object> +- <packing> +- <property name="expand">True</property> +- <property name="fill">True</property> +- <property name="position">1</property> +- </packing> +- </child> +- </object> +- </child> +- <action-widgets> +- <action-widget response="1">btnPreview</action-widget> +- <action-widget response="-5">btnOk</action-widget> +- <action-widget response="-6">btnCancel</action-widget> +- </action-widgets> +- </object> +-</interface> +diff -uNrp a/panels/region/cinnamon-region-panel-options-dialog.ui b/panels/region/cinnamon-region-panel-options-dialog.ui +--- a/panels/region/cinnamon-region-panel-options-dialog.ui 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-options-dialog.ui 1970-01-01 01:00:00.000000000 +0100 +@@ -1,79 +0,0 @@ +-<?xml version="1.0" encoding="UTF-8"?> +-<interface> +- <requires lib="gtk+" version="2.16"/> +- <object class="GtkDialog" id="xkb_options_dialog"> +- <property name="can_focus">False</property> +- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> +- <property name="border_width">5</property> +- <property name="title" translatable="yes">Keyboard Layout Options</property> +- <property name="window_position">center-on-parent</property> +- <property name="default_width">550</property> +- <property name="default_height">400</property> +- <property name="type_hint">dialog</property> +- <child internal-child="vbox"> +- <object class="GtkBox" id="dialog_vbox"> +- <property name="visible">True</property> +- <property name="can_focus">False</property> +- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> +- <property name="orientation">vertical</property> +- <property name="spacing">2</property> +- <child> +- <object class="GtkScrolledWindow" id="options_scroll"> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="border_width">5</property> +- <property name="shadow_type">out</property> +- <child> +- <object class="GtkViewport" id="viewport1"> +- <property name="visible">True</property> +- <property name="can_focus">False</property> +- <property name="shadow_type">none</property> +- <child> +- <object class="GtkVBox" id="options_vbox"> +- <property name="visible">True</property> +- <property name="can_focus">False</property> +- </object> +- </child> +- </object> +- </child> +- </object> +- <packing> +- <property name="expand">False</property> +- <property name="fill">True</property> +- <property name="position">1</property> +- </packing> +- </child> +- <child internal-child="action_area"> +- <object class="GtkButtonBox" id="dialog-action_area4"> +- <property name="visible">True</property> +- <property name="can_focus">False</property> +- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> +- <property name="layout_style">end</property> +- <child> +- <placeholder/> +- </child> +- <child> +- <object class="GtkButton" id="button2"> +- <property name="label">gtk-close</property> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="receives_default">True</property> +- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> +- <property name="use_action_appearance">False</property> +- <property name="use_stock">True</property> +- </object> +- <packing> +- <property name="expand">False</property> +- <property name="fill">False</property> +- <property name="position">1</property> +- </packing> +- </child> +- </object> +- </child> +- </object> +- </child> +- <action-widgets> +- <action-widget response="-7">button2</action-widget> +- </action-widgets> +- </object> +-</interface> +diff -uNrp a/panels/region/cinnamon-region-panel-system.c b/panels/region/cinnamon-region-panel-system.c +--- a/panels/region/cinnamon-region-panel-system.c 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-system.c 2013-09-21 13:24:15.342949428 +0100 +@@ -27,15 +27,18 @@ + + #include <polkit/polkit.h> + +-#include <glib/gi18n-lib.h> ++#include <glib/gi18n.h> ++ ++#define GNOME_DESKTOP_USE_UNSTABLE_API ++#include <libcinnamon-desktop/gnome-xkb-info.h> + +-#include <libgnomekbd/gkbd-keyboard-config.h> + #include "cc-common-language.h" + #include "gdm-languages.h" + #include "cinnamon-region-panel-system.h" +-#include "cinnamon-region-panel-xkb.h" + +-static GSettings *locale_settings, *xkb_settings; ++#define WID(s) GTK_WIDGET(gtk_builder_get_object (dialog, s)) ++ ++static GSettings *locale_settings, *input_sources_settings; + static GDBusProxy *localed_proxy; + static GPermission *localed_permission; + +@@ -72,13 +75,14 @@ update_copy_button (GtkBuilder *dialog) + + button = WID ("copy_settings_button"); + +- /* If the version of localed doesn't include layouts... */ +- if (system_input_source) { ++ if (user_input_source && user_input_source[0]) { + layouts_differ = (g_strcmp0 (user_input_source, system_input_source) != 0); + if (layouts_differ == FALSE) + layouts_differ = (g_strcmp0 (user_input_variants, system_input_variants) != 0); +- } else ++ } else { ++ /* Nothing to copy */ + layouts_differ = FALSE; ++ } + + if (g_strcmp0 (user_lang, system_lang) == 0 && + g_strcmp0 (user_region, system_region) == 0 && +@@ -131,61 +135,67 @@ system_update_language (GtkBuilder *dial + } + + static void +-xkb_settings_changed (GSettings *settings, +- const gchar *key, +- GtkBuilder *dialog) ++input_sources_changed (GSettings *settings, ++ const gchar *key, ++ GtkBuilder *dialog) + { +- guint i; +- GString *disp, *list, *variants; +- GtkWidget *label; +- gchar **layouts; +- +- layouts = g_settings_get_strv (settings, "layouts"); +- if (layouts == NULL) +- return; +- +- label = WID ("user_input_source"); +- disp = g_string_new (""); +- list = g_string_new (""); +- variants = g_string_new (""); +- +- for (i = 0; layouts[i]; i++) { +- gchar *utf_visible; +- char **split; +- gchar *layout, *variant; +- +- utf_visible = xkb_layout_description_utf8 (layouts[i]); +- if (disp->str[0] != '\0') +- g_string_append (disp, ", "); +- g_string_append (disp, utf_visible ? utf_visible : layouts[i]); +- g_free (utf_visible); +- +- split = g_strsplit_set (layouts[i], " \t", 2); +- +- if (split == NULL || split[0] == NULL) +- continue; +- +- layout = split[0]; +- variant = split[1]; +- +- if (list->str[0] != '\0') +- g_string_append (list, ","); +- g_string_append (list, layout); +- +- if (variants->str[0] != '\0') +- g_string_append (variants, ","); +- g_string_append (variants, variant ? variant : ""); +- +- g_strfreev (split); +- } +- g_strfreev (layouts); ++ GString *disp, *list, *variants; ++ GtkWidget *label; ++ GnomeXkbInfo *xkb_info; ++ GVariantIter iter; ++ GVariant *sources; ++ const gchar *type; ++ const gchar *id; ++ ++ sources = g_settings_get_value (input_sources_settings, "sources"); ++ xkb_info = gnome_xkb_info_new (); ++ ++ label = WID ("user_input_source"); ++ disp = g_string_new (""); ++ list = g_string_new (""); ++ variants = g_string_new (""); ++ ++ g_variant_iter_init (&iter, sources); ++ while (g_variant_iter_next (&iter, "(&s&s)", &type, &id)) { ++ /* We can't copy non-XKB layouts to the system yet */ ++ if (g_str_equal (type, "xkb")) { ++ char **split; ++ gchar *layout, *variant; ++ const char *name; ++ ++ gnome_xkb_info_get_layout_info (xkb_info, id, &name, NULL, NULL, NULL); ++ if (disp->str[0] != '\0') ++ g_string_append (disp, ", "); ++ g_string_append (disp, name); ++ ++ split = g_strsplit (id, "+", 2); ++ ++ if (split == NULL || split[0] == NULL) ++ continue; ++ ++ layout = split[0]; ++ variant = split[1]; ++ ++ if (list->str[0] != '\0') { ++ g_string_append (list, ","); ++ g_string_append (variants, ","); ++ } ++ g_string_append (list, layout); ++ g_string_append (variants, variant ? variant : ""); ++ ++ g_strfreev (split); ++ } ++ } ++ g_variant_unref (sources); ++ g_object_unref (xkb_info); + + g_object_set_data_full (G_OBJECT (label), "input_source", g_string_free (list, FALSE), g_free); + g_object_set_data_full (G_OBJECT (label), "input_variants", g_string_free (variants, FALSE), g_free); ++ + gtk_label_set_text (GTK_LABEL (label), disp->str); + g_string_free (disp, TRUE); + +- update_copy_button (dialog); ++ update_copy_button (dialog); + } + + static void +@@ -222,12 +232,13 @@ on_localed_properties_changed (GDBusProx + const gchar **invalidated_properties, + GtkBuilder *dialog) + { +- GVariant *v; ++ GVariant *v, *w; + GtkWidget *label; +- const char *layout; ++ GnomeXkbInfo *xkb_info; + char **layouts; ++ char **variants; + GString *disp; +- guint i; ++ guint i, n; + + if (invalidated_properties != NULL) { + guint i; +@@ -236,6 +247,8 @@ on_localed_properties_changed (GDBusProx + update_property (proxy, "Locale"); + else if (g_str_equal (invalidated_properties[i], "X11Layout")) + update_property (proxy, "X11Layout"); ++ else if (g_str_equal (invalidated_properties[i], "X11Variant")) ++ update_property (proxy, "X11Variant"); + } + } + +@@ -290,29 +303,56 @@ on_localed_properties_changed (GDBusProx + label = WID ("system_input_source"); + v = g_dbus_proxy_get_cached_property (proxy, "X11Layout"); + if (v) { +- layout = g_variant_get_string (v, NULL); +- g_object_set_data_full (G_OBJECT (label), "input_source", g_strdup (layout), g_free); +- } else { ++ layouts = g_strsplit (g_variant_get_string (v, NULL), ",", -1); ++ g_object_set_data_full (G_OBJECT (label), "input_source", ++ g_variant_dup_string (v, NULL), g_free); ++ g_variant_unref (v); ++ } else { + g_object_set_data_full (G_OBJECT (label), "input_source", NULL, g_free); + update_copy_button (dialog); + return; + } + +- disp = g_string_new (""); +- layouts = g_strsplit (layout, ",", -1); +- for (i = 0; layouts[i]; i++) { +- gchar *utf_visible; +- +- utf_visible = xkb_layout_description_utf8 (layouts[i]); +- if (disp->str[0] != '\0') +- disp = g_string_append (disp, ", "); +- disp = g_string_append (disp, utf_visible ? utf_visible : layouts[i]); +- g_free (utf_visible); +- } ++ w = g_dbus_proxy_get_cached_property (proxy, "X11Variant"); ++ if (w) { ++ variants = g_strsplit (g_variant_get_string (w, NULL), ",", -1); ++ g_object_set_data_full (G_OBJECT (label), "input_variants", ++ g_variant_dup_string (w, NULL), g_free); ++ g_variant_unref (w); ++ } else { ++ variants = NULL; ++ g_object_set_data_full (G_OBJECT (label), "input_variants", NULL, g_free); ++ } ++ ++ if (variants && variants[0]) ++ n = MIN (g_strv_length (layouts), g_strv_length (variants)); ++ else ++ n = g_strv_length (layouts); ++ ++ xkb_info = gnome_xkb_info_new (); ++ disp = g_string_new (""); ++ for (i = 0; i < n && layouts[i][0]; i++) { ++ const char *name; ++ char *id; ++ ++ if (variants && variants[i] && variants[i][0]) ++ id = g_strdup_printf ("%s+%s", layouts[i], variants[i]); ++ else ++ id = g_strdup (layouts[i]); ++ ++ gnome_xkb_info_get_layout_info (xkb_info, id, &name, NULL, NULL, NULL); ++ if (disp->str[0] != '\0') ++ disp = g_string_append (disp, ", "); ++ disp = g_string_append (disp, name ? name : id); ++ ++ g_free (id); ++ } + gtk_label_set_text (GTK_LABEL (label), disp->str); + g_string_free (disp, TRUE); + +- g_variant_unref (v); ++ g_strfreev (variants); ++ g_strfreev (layouts); ++ g_object_unref (xkb_info); + + update_copy_button (dialog); + } +@@ -386,6 +426,11 @@ copy_settings (GtkButton *button, GtkBui + layout = g_object_get_data (G_OBJECT (label), "input_source"); + variants = g_object_get_data (G_OBJECT (label), "input_variants"); + ++ if (layout == NULL || layout[0] == '\0') { ++ g_debug ("Not calling SetX11Keyboard, as there are no XKB input sources in the user's settings"); ++ return; ++ } ++ + g_dbus_proxy_call (localed_proxy, + "SetX11Keyboard", + g_variant_new ("(ssssbb)", layout, "", variants ? variants : "", "", TRUE, TRUE), +@@ -468,10 +513,10 @@ setup_system (GtkBuilder *dialog) + G_CALLBACK (locale_settings_changed), dialog); + g_object_weak_ref (G_OBJECT (dialog), (GWeakNotify) g_object_unref, locale_settings); + +- xkb_settings = g_settings_new (GKBD_KEYBOARD_SCHEMA); +- g_signal_connect (xkb_settings, "changed::layouts", +- G_CALLBACK (xkb_settings_changed), dialog); +- g_object_weak_ref (G_OBJECT (dialog), (GWeakNotify) g_object_unref, xkb_settings); ++ input_sources_settings = g_settings_new ("org.cinnamon.desktop.input-sources"); ++ g_signal_connect (input_sources_settings, "changed::sources", ++ G_CALLBACK (input_sources_changed), dialog); ++ g_object_weak_ref (G_OBJECT (dialog), (GWeakNotify) g_object_unref, input_sources_settings); + + /* Display user settings */ + language = cc_common_language_get_current_language (); +@@ -480,7 +525,7 @@ setup_system (GtkBuilder *dialog) + + locale_settings_changed (locale_settings, "region", dialog); + +- xkb_settings_changed (xkb_settings, "layouts", dialog); ++ input_sources_changed (input_sources_settings, "sources", dialog); + + bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL); + g_dbus_proxy_new (bus, +diff -uNrp a/panels/region/cinnamon-region-panel-system.h b/panels/region/cinnamon-region-panel-system.h +--- a/panels/region/cinnamon-region-panel-system.h 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-system.h 2013-09-21 13:24:15.342949428 +0100 +@@ -19,8 +19,8 @@ + * 02110-1335, USA. + */ + +-#ifndef __GNOME_REGION_PANEL_SYSTEM_H +-#define __GNOME_REGION_PANEL_SYSTEM_H ++#ifndef __CINNAMON_REGION_PANEL_SYSTEM_H ++#define __CINNAMON_REGION_PANEL_SYSTEM_H + + #include <gtk/gtk.h> + +diff -uNrp a/panels/region/cinnamon-region-panel.ui b/panels/region/cinnamon-region-panel.ui +--- a/panels/region/cinnamon-region-panel.ui 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel.ui 2013-09-21 13:24:15.347949247 +0100 +@@ -162,27 +162,17 @@ + <style> + <class name="inline-toolbar"/> + </style> ++ <style> ++ <class name="inline-toolbar"/> ++ </style> + <child> + <object class="GtkToolButton" id="language_add"> ++ <property name="use_action_appearance">False</property> + <property name="visible">True</property> +- <property name="can_focus">False</property> + <property name="label" translatable="yes">Add Language</property> +- <property name="use_underline">True</property> +- <property name="icon_name">list-add-symbolic</property> +- </object> +- <packing> +- <property name="expand">False</property> +- <property name="homogeneous">True</property> +- </packing> +- </child> +- <child> +- <object class="GtkToolButton" id="language_remove"> +- <property name="visible">True</property> +- <property name="sensitive">False</property> + <property name="can_focus">False</property> +- <property name="label" translatable="yes">Remove Language</property> + <property name="use_underline">True</property> +- <property name="icon_name">list-remove-symbolic</property> ++ <property name="icon_name">list-add-symbolic</property> + </object> + <packing> + <property name="expand">False</property> +@@ -198,12 +188,13 @@ + </child> + <child> + <object class="GtkVBox" id="vbox3"> +- <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkLabel" id="label23"> + <property name="visible">True</property> + <property name="can_focus">False</property> ++ <property name="use_underline">True</property> ++ <property name="label" translatable="yes">Add Language</property> + </object> + <packing> + <property name="expand">True</property> +@@ -212,23 +203,24 @@ + </packing> + </child> + <child> +- <object class="GtkButton" id="get_languages_button"> +- <property name="label" translatable="yes">button</property> ++ <object class="GtkLinkButton" id="linkbutton1"> ++ <property name="label" translatable="yes">Install languages...</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> ++ <property name="has_tooltip">True</property> + </object> + <packing> +- <property name="expand">True</property> ++ <property name="expand">False</property> + <property name="fill">True</property> +- <property name="position">13</property> ++ <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> +- <property name="position">2</property> ++ <property name="position">1</property> + </packing> + </child> + </object> +@@ -305,19 +297,19 @@ + </child> + <child> + <object class="GtkToolbar" id="region-toolbar"> +- <property name="visible">True</property> +- <property name="can_focus">False</property> + <property name="toolbar_style">icons</property> + <property name="show_arrow">False</property> + <property name="icon_size">1</property> ++ <property name="visible">True</property> + <style> + <class name="inline-toolbar"/> + </style> + <child> + <object class="GtkToolButton" id="region_add"> ++ <property name="use_action_appearance">False</property> ++ <property name="label" translatable="yes">Add Region</property> + <property name="visible">True</property> + <property name="can_focus">False</property> +- <property name="label" translatable="yes">Add Region</property> + <property name="use_underline">True</property> + <property name="icon_name">list-add-symbolic</property> + </object> +@@ -328,10 +320,11 @@ + </child> + <child> + <object class="GtkToolButton" id="region_remove"> ++ <property name="use_action_appearance">False</property> + <property name="visible">True</property> ++ <property name="label" translatable="yes">Remove Region</property> + <property name="sensitive">False</property> + <property name="can_focus">False</property> +- <property name="label" translatable="yes">Remove Region</property> + <property name="use_underline">True</property> + <property name="icon_name">list-remove-symbolic</property> + </object> +@@ -373,18 +366,6 @@ + <property name="n_rows">9</property> + <property name="n_columns">2</property> + <child> +- <placeholder/> +- </child> +- <child> +- <placeholder/> +- </child> +- <child> +- <placeholder/> +- </child> +- <child> +- <placeholder/> +- </child> +- <child> + <object class="GtkLabel" id="label7"> + <property name="visible">True</property> + <property name="can_focus">False</property> +@@ -626,6 +607,12 @@ + <property name="height">1</property> + </packing> + </child> ++ <child> ++ <placeholder/> ++ </child> ++ <child> ++ <placeholder/> ++ </child> + </object> + <packing> + <property name="position">1</property> +@@ -643,36 +630,43 @@ + </packing> + </child> + <child> +- <object class="GtkVBox" id="vbox1"> ++ <object class="GtkVBox" id="vbox5"> + <property name="visible">True</property> + <property name="can_focus">False</property> +- <property name="border_width">10</property> ++ <property name="border_width">12</property> + <property name="spacing">12</property> + <child> +- <placeholder/> ++ <object class="GtkLabel" id="label24"> ++ <property name="visible">True</property> ++ <property name="can_focus">False</property> ++ <property name="xalign">0</property> ++ <property name="label" translatable="yes">Select keyboards or other input sources</property> ++ </object> ++ <packing> ++ <property name="expand">False</property> ++ <property name="fill">False</property> ++ <property name="position">0</property> ++ </packing> + </child> + <child> +- <object class="GtkHBox" id="hbox2"> ++ <object class="GtkHBox" id="hbox3"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="spacing">12</property> + <child> +- <object class="GtkVBox" id="vbox7"> ++ <object class="GtkVBox" id="vbox6"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> +- <object class="GtkScrolledWindow" id="xkb_layouts_swindow"> ++ <object class="GtkScrolledWindow" id="input_sources_swindow"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="shadow_type">in</property> + <child> +- <object class="GtkTreeView" id="xkb_layouts_selected"> ++ <object class="GtkTreeView" id="active_input_sources"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="headers_visible">False</property> +- <child internal-child="selection"> +- <object class="GtkTreeSelection" id="treeview-selection1"/> +- </child> + </object> + </child> + </object> +@@ -683,7 +677,7 @@ + </packing> + </child> + <child> +- <object class="GtkToolbar" id="layouts-toolbar"> ++ <object class="GtkToolbar" id="input-toolbar"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="toolbar_style">icons</property> +@@ -693,70 +687,166 @@ + <class name="inline-toolbar"/> + </style> + <child> +- <object class="GtkToolButton" id="xkb_layouts_add"> ++ <object class="GtkToolItem" id="i_s_ar_item"> + <property name="visible">True</property> +- <property name="can_focus">False</property> +- <property name="label" translatable="yes">Add Layout</property> +- <property name="use_underline">True</property> +- <property name="icon_name">list-add-symbolic</property> ++ <child> ++ <object class="GtkBox" id="i_s_ar_box"> ++ <property name="visible">True</property> ++ <child> ++ <object class="GtkButton" id="input_source_add"> ++ <property name="visible">True</property> ++ <child internal-child="accessible"> ++ <object class="AtkObject" id="i_s_a_a11y"> ++ <property name="accessible-name" translatable="yes">Add Input Source</property> ++ </object> ++ </child> ++ <child> ++ <object class="GtkImage" id="i_s_a_image"> ++ ++ <property name="visible">True</property> ++ <property name="icon-name">list-add-symbolic</property> ++ <property name="icon-size">1</property> ++ </object> ++ </child> ++ </object> ++ </child> ++ <child> ++ <object class="GtkButton" id="input_source_remove"> ++ <property name="visible">True</property> ++ <child internal-child="accessible"> ++ <object class="AtkObject" id="i_s_r_a11y"> ++ <property name="accessible-name" translatable="yes">Remove Input Source</property> ++ </object> ++ </child> ++ <child> ++ <object class="GtkImage" id="i_s_r_image"> ++ <property name="visible">True</property> ++ <property name="icon-name">list-remove-symbolic</property> ++ <property name="icon-size">1</property> ++ </object> ++ </child> ++ </object> ++ </child> ++ </object> ++ </child> + </object> +- <packing> +- <property name="expand">False</property> +- <property name="homogeneous">True</property> +- </packing> + </child> ++ + <child> +- <object class="GtkToolButton" id="xkb_layouts_remove"> ++ <object class="GtkSeparatorToolItem" id="sep1"> + <property name="visible">True</property> +- <property name="can_focus">False</property> +- <property name="label" translatable="yes">Remove Layout</property> +- <property name="use_underline">True</property> +- <property name="icon_name">list-remove-symbolic</property> ++ <property name="draw">False</property> + </object> + <packing> +- <property name="expand">False</property> +- <property name="homogeneous">True</property> ++ <property name="expand">True</property> + </packing> + </child> ++ + <child> +- <object class="GtkToolButton" id="xkb_layouts_move_up"> ++ <object class="GtkToolItem" id="i_s_ud_item"> + <property name="visible">True</property> +- <property name="can_focus">False</property> +- <property name="label" translatable="yes">Move Up</property> +- <property name="use_underline">True</property> +- <property name="icon_name">go-up-symbolic</property> ++ <child> ++ <object class="GtkBox" id="i_s_ud_box"> ++ <property name="visible">True</property> ++ <child> ++ <object class="GtkButton" id="input_source_move_up"> ++ <property name="visible">True</property> ++ <child internal-child="accessible"> ++ <object class="AtkObject" id="i_s_u_a11y"> ++ <property name="accessible-name" translatable="yes">Move Input Source Up</property> ++ </object> ++ </child> ++ <child> ++ <object class="GtkImage" id="i_s_u_image"> ++ ++ <property name="visible">True</property> ++ <property name="icon-name">go-up-symbolic</property> ++ <property name="icon-size">1</property> ++ </object> ++ </child> ++ </object> ++ </child> ++ <child> ++ <object class="GtkButton" id="input_source_move_down"> ++ <property name="visible">True</property> ++ <child internal-child="accessible"> ++ <object class="AtkObject" id="i_s_d_a11y"> ++ <property name="accessible-name" translatable="yes">Move Input Source Down</property> ++ </object> ++ </child> ++ <child> ++ <object class="GtkImage" id="i_s_d_image"> ++ <property name="visible">True</property> ++ <property name="icon-name">go-down-symbolic</property> ++ <property name="icon-size">1</property> ++ </object> ++ </child> ++ </object> ++ </child> ++ </object> ++ </child> + </object> +- <packing> +- <property name="expand">False</property> +- <property name="homogeneous">True</property> +- </packing> + </child> ++ + <child> +- <object class="GtkToolButton" id="xkb_layouts_move_down"> ++ <object class="GtkSeparatorToolItem" id="sep2"> + <property name="visible">True</property> +- <property name="can_focus">False</property> +- <property name="label" translatable="yes">Move Down</property> +- <property name="use_underline">True</property> +- <property name="icon_name">go-down-symbolic</property> ++ <property name="draw">False</property> ++ <property name="hexpand">True</property> + </object> + <packing> +- <property name="expand">False</property> +- <property name="homogeneous">True</property> ++ <property name="expand">True</property> + </packing> + </child> ++ + <child> +- <object class="GtkToolButton" id="xkb_layouts_show"> ++ <object class="GtkToolItem" id="i_s_sp_item"> + <property name="visible">True</property> +- <property name="can_focus">False</property> +- <property name="label" translatable="yes">Preview Layout</property> +- <property name="use_underline">True</property> +- <property name="icon_name">input-keyboard-symbolic</property> ++ <child> ++ <object class="GtkBox" id="i_s_sp_box"> ++ <property name="visible">True</property> ++ <child> ++ <object class="GtkButton" id="input_source_settings"> ++ <property name="visible">True</property> ++ <child internal-child="accessible"> ++ <object class="AtkObject" id="i_s_s_a11y"> ++ <property name="accessible-name" translatable="yes">Input Source Settings</property> ++ </object> ++ </child> ++ <child> ++ <object class="GtkImage" id="i_s_s_image"> ++ ++ <property name="visible">True</property> ++ <property name="icon_name">preferences-system-symbolic</property> ++ <property name="icon_size">1</property> ++ <property name="pixel_size">16</property> ++ </object> ++ </child> ++ </object> ++ </child> ++ <child> ++ <object class="GtkButton" id="input_source_show"> ++ <property name="visible">True</property> ++ <child internal-child="accessible"> ++ <object class="AtkObject" id="i_s_p_a11y"> ++ <property name="accessible-name" translatable="yes">Show Keyboard Layout</property> ++ </object> ++ </child> ++ <child> ++ <object class="GtkImage" id="i_s_p_image"> ++ ++ <property name="visible">True</property> ++ <property name="icon_name">input-keyboard-symbolic</property> ++ <property name="icon-size">1</property> ++ </object> ++ </child> ++ </object> ++ </child> ++ </object> ++ </child> + </object> +- <packing> +- <property name="expand">False</property> +- <property name="homogeneous">True</property> +- </packing> + </child> ++ + </object> + <packing> + <property name="expand">False</property> +@@ -772,168 +862,111 @@ + </packing> + </child> + <child> +- <object class="GtkVBox" id="vbox33"> ++ <object class="GtkFrame" id="frame4"> + <property name="visible">True</property> + <property name="can_focus">False</property> +- <property name="spacing">12</property> ++ <property name="label_xalign">0</property> ++ <property name="shadow_type">none</property> + <child> +- <object class="GtkVBox" id="vbox34"> ++ <object class="GtkAlignment" id="alignment3"> + <property name="visible">True</property> + <property name="can_focus">False</property> +- <property name="spacing">6</property> ++ <property name="left_padding">12</property> + <child> +- <object class="GtkRadioButton" id="chk_same_group"> +- <property name="label" translatable="yes">Use the same layout for all windows</property> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="receives_default">False</property> +- <property name="xalign">0</property> +- <property name="active">True</property> +- <property name="draw_indicator">True</property> +- </object> +- <packing> +- <property name="expand">True</property> +- <property name="fill">True</property> +- <property name="position">0</property> +- </packing> +- </child> +- <child> +- <object class="GtkRadioButton" id="chk_separate_group_per_window"> +- <property name="label" translatable="yes">Allow different layouts for individual windows</property> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="receives_default">False</property> +- <property name="xalign">0</property> +- <property name="active">True</property> +- <property name="draw_indicator">True</property> +- <property name="group">chk_same_group</property> +- </object> +- <packing> +- <property name="expand">True</property> +- <property name="fill">True</property> +- <property name="position">1</property> +- </packing> +- </child> +- <child> +- <object class="GtkAlignment" id="alignment1"> ++ <object class="GtkGrid" id="shortcuts-grid"> + <property name="visible">True</property> + <property name="can_focus">False</property> +- <property name="left_padding">12</property> ++ <property name="margin_top">6</property> ++ <property name="row_spacing">6</property> ++ <property name="column_spacing">6</property> + <child> +- <object class="GtkVBox" id="vbox4"> ++ <object class="GtkLabel" id="prev-source-label"> + <property name="visible">True</property> + <property name="can_focus">False</property> +- <child> +- <object class="GtkRadioButton" id="chk_new_windows_default_layout"> +- <property name="label" translatable="yes">New windows use the default layout</property> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="receives_default">False</property> +- <property name="xalign">0</property> +- <property name="active">True</property> +- <property name="draw_indicator">True</property> +- </object> +- <packing> +- <property name="expand">True</property> +- <property name="fill">True</property> +- <property name="position">0</property> +- </packing> +- </child> +- <child> +- <object class="GtkRadioButton" id="chk_new_windows_inherit_layout"> +- <property name="label" translatable="yes">New windows use the previous window's layout</property> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="receives_default">False</property> +- <property name="xalign">0</property> +- <property name="active">True</property> +- <property name="draw_indicator">True</property> +- <property name="group">chk_new_windows_default_layout</property> +- </object> +- <packing> +- <property name="expand">True</property> +- <property name="fill">True</property> +- <property name="position">1</property> +- </packing> +- </child> ++ <property name="xalign">0</property> ++ <property name="label" translatable="yes">Switch to previous source</property> + </object> ++ <packing> ++ <property name="left_attach">0</property> ++ <property name="top_attach">0</property> ++ <property name="width">1</property> ++ <property name="height">1</property> ++ </packing> ++ </child> ++ <child> ++ <object class="GtkLabel" id="prev-source-shortcut-label"> ++ <property name="visible">True</property> ++ <property name="can_focus">False</property> ++ <property name="halign">end</property> ++ <property name="hexpand">True</property> ++ <property name="label" translatable="yes">Ctrl+Alt+Space</property> ++ <style><class name="dim-label"/></style> ++ </object> ++ <packing> ++ <property name="left_attach">1</property> ++ <property name="top_attach">0</property> ++ <property name="width">1</property> ++ <property name="height">1</property> ++ </packing> ++ </child> ++ <child> ++ <object class="GtkLabel" id="next-source-label"> ++ <property name="visible">True</property> ++ <property name="can_focus">False</property> ++ <property name="xalign">0</property> ++ <property name="label" translatable="yes">Switch to next source</property> ++ </object> ++ <packing> ++ <property name="left_attach">0</property> ++ <property name="top_attach">1</property> ++ <property name="width">1</property> ++ <property name="height">1</property> ++ </packing> ++ </child> ++ <child> ++ <object class="GtkLabel" id="next-source-shortcut-label"> ++ <property name="visible">True</property> ++ <property name="can_focus">False</property> ++ <property name="halign">end</property> ++ <property name="hexpand">True</property> ++ <property name="label" translatable="yes">Ctrl+Alt+Shift+Space</property> ++ <style><class name="dim-label"/></style> ++ </object> ++ <packing> ++ <property name="left_attach">1</property> ++ <property name="top_attach">1</property> ++ <property name="width">1</property> ++ <property name="height">1</property> ++ </packing> ++ </child> ++ <child> ++ <object class="GtkLinkButton" id="jump-to-shortcuts"> ++ <property name="visible">True</property> ++ <property name="can_focus">True</property> ++ <property name="label" translatable="yes">Shortcut Settings</property> ++ <property name="halign">end</property> ++ </object> ++ <packing> ++ <property name="left_attach">1</property> ++ <property name="top_attach">2</property> ++ <property name="width">1</property> ++ <property name="height">1</property> ++ </packing> + </child> + </object> +- <packing> +- <property name="expand">True</property> +- <property name="fill">True</property> +- <property name="position">2</property> +- </packing> + </child> + </object> +- <packing> +- <property name="expand">False</property> +- <property name="fill">False</property> +- <property name="position">0</property> +- </packing> +- </child> +- <child> +- <object class="GtkLabel" id="label2"> +- <property name="visible">True</property> +- <property name="can_focus">False</property> +- </object> +- <packing> +- <property name="expand">True</property> +- <property name="fill">False</property> +- <property name="position">1</property> +- </packing> + </child> +- <child> +- <object class="GtkHButtonBox" id="hbuttonbox2"> ++ <child type="label"> ++ <object class="GtkLabel" id="shortcuts-frame-label"> + <property name="visible">True</property> + <property name="can_focus">False</property> +- <property name="spacing">6</property> +- <property name="layout_style">end</property> +- <child> +- <object class="GtkButton" id="xkb_layout_options"> +- <property name="label" translatable="yes">_Options...</property> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="receives_default">True</property> +- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> +- <property name="has_tooltip">True</property> +- <property name="tooltip_markup" translatable="yes">View and edit keyboard layout options</property> +- <property name="tooltip_text" translatable="yes">View and edit keyboard layout options</property> +- <property name="use_underline">True</property> +- </object> +- <packing> +- <property name="expand">False</property> +- <property name="fill">False</property> +- <property name="position">0</property> +- </packing> +- </child> +- <child> +- <object class="GtkButton" id="xkb_reset_to_defaults"> +- <property name="label" translatable="yes">Reset to De_faults</property> +- <property name="visible">True</property> +- <property name="can_focus">True</property> +- <property name="receives_default">True</property> +- <property name="has_tooltip">True</property> +- <property name="tooltip_markup" translatable="yes">Replace the current keyboard layout settings with the +-default settings</property> +- <property name="tooltip_text" translatable="yes">Replace the current keyboard layout settings with the +-default settings</property> +- <property name="use_underline">True</property> +- </object> +- <packing> +- <property name="expand">False</property> +- <property name="fill">False</property> +- <property name="pack_type">end</property> +- <property name="position">1</property> +- <property name="secondary">True</property> +- </packing> +- </child> ++ <property name="label" translatable="yes">Shortcuts</property> ++ <property name="use_markup">True</property> ++ <attributes> ++ <attribute name="weight" value="bold"/> ++ </attributes> + </object> +- <packing> +- <property name="expand">False</property> +- <property name="fill">False</property> +- <property name="position">2</property> +- </packing> + </child> + </object> + <packing> +@@ -951,17 +984,17 @@ default settings</property> + </child> + </object> + <packing> +- <property name="position">2</property> ++ <property name="position">3</property> + </packing> + </child> + <child type="tab"> +- <object class="GtkLabel" id="label46"> ++ <object class="GtkLabel" id="label13"> + <property name="visible">True</property> + <property name="can_focus">False</property> +- <property name="label" translatable="yes">Keyboard Layouts</property> ++ <property name="label" translatable="yes">Input Sources</property> + </object> + <packing> +- <property name="position">2</property> ++ <property name="position">3</property> + <property name="tab_fill">False</property> + </packing> + </child> +@@ -974,9 +1007,6 @@ default settings</property> + <property name="column_spacing">12</property> + <property name="row_spacing">12</property> + <child> +- <placeholder/> +- </child> +- <child> + <object class="GtkLabel" id="system-title"> + <property name="visible">True</property> + <property name="can_focus">False</property> +@@ -1051,6 +1081,7 @@ default settings</property> + <property name="bottom_attach">2</property> + <property name="x_padding">3</property> + <property name="y_padding">3</property> ++ <property name="y_options">GTK_FILL</property> + </packing> + </child> + <child> +@@ -1060,6 +1091,7 @@ default settings</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="wrap">True</property> ++ <property name="width-chars">18</property> + </object> + <packing> + <property name="left_attach">1</property> +@@ -1068,6 +1100,7 @@ default settings</property> + <property name="bottom_attach">2</property> + <property name="x_padding">3</property> + <property name="y_padding">3</property> ++ <property name="y_options">GTK_FILL</property> + </packing> + </child> + <child> +@@ -1178,6 +1211,7 @@ default settings</property> + <property name="bottom_attach">2</property> + <property name="x_padding">3</property> + <property name="y_padding">3</property> ++ <property name="y_options">GTK_FILL</property> + </packing> + </child> + <child> +@@ -1187,6 +1221,7 @@ default settings</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="wrap">True</property> ++ <property name="width-chars">18</property> + </object> + <packing> + <property name="left_attach">1</property> +@@ -1195,6 +1230,7 @@ default settings</property> + <property name="bottom_attach">2</property> + <property name="x_padding">3</property> + <property name="y_padding">3</property> ++ <property name="y_options">GTK_FILL</property> + </packing> + </child> + <child> +@@ -1254,6 +1290,7 @@ default settings</property> + <child> + <object class="GtkButton" id="copy_settings_button"> + <property name="label" translatable="yes">Copy Settings...</property> ++ <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> +@@ -1269,9 +1306,12 @@ default settings</property> + <property name="y_padding">3</property> + </packing> + </child> ++ <child> ++ <placeholder/> ++ </child> + </object> + <packing> +- <property name="position">3</property> ++ <property name="position">4</property> + </packing> + </child> + <child type="tab"> +@@ -1281,7 +1321,7 @@ default settings</property> + <property name="label" translatable="yes">System</property> + </object> + <packing> +- <property name="position">3</property> ++ <property name="position">4</property> + <property name="tab_fill">False</property> + </packing> + </child> +@@ -1302,4 +1342,11 @@ default settings</property> + </object> + </child> + </object> ++ <object class="GtkSizeGroup" id="system-input-source-sizegroup"> ++ <property name="mode">vertical</property> ++ <widgets> ++ <widget name="user_input_source"/> ++ <widget name="system_input_source"/> ++ </widgets> ++ </object> + </interface> +diff -uNrp a/panels/region/cinnamon-region-panel-xkb.c b/panels/region/cinnamon-region-panel-xkb.c +--- a/panels/region/cinnamon-region-panel-xkb.c 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-xkb.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,190 +0,0 @@ +-/* cinnamon-region-panel-xkb.c +- * Copyright (C) 2003-2007 Sergey V. Udaltsov +- * +- * Written by: Sergey V. Udaltsov <svu@gnome.org> +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2, or (at your option) +- * any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA +- * 02110-1335, USA. +- */ +- +-#ifdef HAVE_CONFIG_H +-# include <config.h> +-#endif +- +-#include <string.h> +-#include <gdk/gdkx.h> +-#include <glib/gi18n-lib.h> +- +-#include "cinnamon-region-panel-xkb.h" +- +-#include <libgnomekbd/gkbd-desktop-config.h> +- +-XklEngine *engine; +-XklConfigRegistry *config_registry; +- +-GkbdKeyboardConfig initial_config; +-GkbdDesktopConfig desktop_config; +- +-GSettings *xkb_keyboard_settings; +-GSettings *xkb_desktop_settings; +- +-char * +-xci_desc_to_utf8 (const XklConfigItem * ci) +-{ +- gchar *dd = g_strdup (ci->description); +- gchar *sd = g_strstrip (dd); +- gchar *rv = g_strdup (sd[0] == 0 ? ci->name : sd); +- g_free (dd); +- return rv; +-} +- +-static void +-cleanup_xkb_tabs (GtkBuilder * dialog, +- GObject *where_the_object_wa) +-{ +- gkbd_desktop_config_term (&desktop_config); +- gkbd_keyboard_config_term (&initial_config); +- g_object_unref (G_OBJECT (config_registry)); +- config_registry = NULL; +- /* Don't unref it here, or we'll crash if open the panel again */ +- engine = NULL; +- g_object_unref (G_OBJECT (xkb_keyboard_settings)); +- g_object_unref (G_OBJECT (xkb_desktop_settings)); +- xkb_keyboard_settings = NULL; +- xkb_desktop_settings = NULL; +-} +- +-static void +-reset_to_defaults (GtkWidget * button, GtkBuilder * dialog) +-{ +- GkbdKeyboardConfig empty_kbd_config; +- +- gkbd_keyboard_config_init (&empty_kbd_config, engine); +- gkbd_keyboard_config_save (&empty_kbd_config); +- gkbd_keyboard_config_term (&empty_kbd_config); +- +- g_settings_reset (xkb_desktop_settings, +- GKBD_DESKTOP_CONFIG_KEY_DEFAULT_GROUP); +- +- /* all the rest is g-s-d's business */ +-} +- +-static void +-chk_new_windows_inherit_layout_toggled (GtkWidget * +- chk_new_windows_inherit_layout, +- GtkBuilder * dialog) +-{ +- xkb_save_default_group (gtk_toggle_button_get_active +- (GTK_TOGGLE_BUTTON +- (chk_new_windows_inherit_layout)) ? -1 : +- 0); +-} +- +-void +-setup_xkb_tabs (GtkBuilder * dialog) +-{ +- GtkWidget *widget; +- GtkStyleContext *context; +- GtkWidget *chk_new_windows_inherit_layout; +- +- chk_new_windows_inherit_layout = WID ("chk_new_windows_inherit_layout"); +- +- xkb_desktop_settings = g_settings_new (GKBD_DESKTOP_SCHEMA); +- xkb_keyboard_settings = g_settings_new (GKBD_KEYBOARD_SCHEMA); +- +- engine = +- xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY +- (gdk_display_get_default ())); +- config_registry = xkl_config_registry_get_instance (engine); +- +- gkbd_desktop_config_init (&desktop_config, engine); +- gkbd_desktop_config_load (&desktop_config); +- +- xkl_config_registry_load (config_registry, +- desktop_config.load_extra_items); +- +- gkbd_keyboard_config_init (&initial_config, engine); +- gkbd_keyboard_config_load_from_x_initial (&initial_config, NULL); +- +- /* Set initial state */ +- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("chk_separate_group_per_window")), +- g_settings_get_boolean (xkb_desktop_settings, +- GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW)); +- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (chk_new_windows_inherit_layout), +- xkb_get_default_group () < 0); +- +- g_settings_bind (xkb_desktop_settings, +- GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW, +- WID ("chk_separate_group_per_window"), "active", +- G_SETTINGS_BIND_DEFAULT); +- g_settings_bind (xkb_desktop_settings, +- GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW, +- WID ("chk_new_windows_inherit_layout"), "sensitive", +- G_SETTINGS_BIND_DEFAULT); +- g_settings_bind (xkb_desktop_settings, +- GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW, +- WID ("chk_new_windows_default_layout"), "sensitive", +- G_SETTINGS_BIND_DEFAULT); +- +- xkb_layouts_prepare_selected_tree (dialog); +- xkb_layouts_fill_selected_tree (dialog); +- +- xkb_layouts_register_buttons_handlers (dialog); +- g_signal_connect (G_OBJECT (WID ("xkb_reset_to_defaults")), +- "clicked", G_CALLBACK (reset_to_defaults), +- dialog); +- +- g_signal_connect (G_OBJECT (chk_new_windows_inherit_layout), +- "toggled", +- G_CALLBACK +- (chk_new_windows_inherit_layout_toggled), +- dialog); +- +- g_signal_connect_swapped (G_OBJECT (WID ("xkb_layout_options")), +- "clicked", +- G_CALLBACK (xkb_options_popup_dialog), +- dialog); +- +- xkb_layouts_register_conf_listener (dialog); +- xkb_options_register_conf_listener (dialog); +- +- g_object_weak_ref (G_OBJECT (WID ("region_notebook")), +- (GWeakNotify) cleanup_xkb_tabs, dialog); +- +- enable_disable_restoring (dialog); +- +- /* Setup junction between toolbar and treeview */ +- widget = WID ("xkb_layouts_swindow"); +- context = gtk_widget_get_style_context (widget); +- gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); +- widget = WID ("layouts-toolbar"); +- context = gtk_widget_get_style_context (widget); +- gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); +-} +- +-void +-enable_disable_restoring (GtkBuilder * dialog) +-{ +- GkbdKeyboardConfig gswic; +- gboolean enable; +- +- gkbd_keyboard_config_init (&gswic, engine); +- gkbd_keyboard_config_load (&gswic, NULL); +- +- enable = !gkbd_keyboard_config_equals (&gswic, &initial_config); +- +- gkbd_keyboard_config_term (&gswic); +- gtk_widget_set_sensitive (WID ("xkb_reset_to_defaults"), enable); +-} +diff -uNrp a/panels/region/cinnamon-region-panel-xkb.h b/panels/region/cinnamon-region-panel-xkb.h +--- a/panels/region/cinnamon-region-panel-xkb.h 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-xkb.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,96 +0,0 @@ +-/* cinnamon-region-panel-xkb.h +- * Copyright (C) 2003-2007 Sergey V Udaltsov +- * +- * Written by Sergey V. Udaltsov <svu@gnome.org> +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2, or (at your option) +- * any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA +- * 02110-1335, USA. +- */ +- +-#ifndef __GNOME_KEYBOARD_PROPERTY_XKB_H +-#define __GNOME_KEYBOARD_PROPERTY_XKB_H +- +-#include <gtk/gtk.h> +- +-#include "libgnomekbd/gkbd-keyboard-config.h" +-#include "libgnomekbd/gkbd-util.h" +- +-G_BEGIN_DECLS +-#define CWID(s) GTK_WIDGET (gtk_builder_get_object (chooser_dialog, s)) +-#define WID(s) GTK_WIDGET (gtk_builder_get_object (dialog, s)) +-extern XklEngine *engine; +-extern XklConfigRegistry *config_registry; +-extern GSettings *xkb_keyboard_settings; +-extern GSettings *xkb_desktop_settings; +-extern GkbdKeyboardConfig initial_config; +- +-extern void setup_xkb_tabs (GtkBuilder * dialog); +- +-extern void xkb_layouts_fill_selected_tree (GtkBuilder * dialog); +- +-extern void xkb_layouts_register_buttons_handlers (GtkBuilder * dialog); +- +-extern void xkb_layouts_register_conf_listener (GtkBuilder * dialog); +- +-extern void xkb_options_register_conf_listener (GtkBuilder * dialog); +- +-extern void xkb_layouts_prepare_selected_tree (GtkBuilder * dialog); +- +-extern void xkb_options_load_options (GtkBuilder * dialog); +- +-extern void xkb_options_popup_dialog (GtkBuilder * dialog); +- +-extern char *xci_desc_to_utf8 (const XklConfigItem * ci); +- +-extern gchar *xkb_layout_description_utf8 (const gchar * visible); +- +-extern void enable_disable_restoring (GtkBuilder * dialog); +- +-extern void preview_toggled (GtkBuilder * dialog, GtkWidget * button); +- +-extern GtkWidget *xkb_layout_choose (GtkBuilder * dialog); +- +-extern void xkb_layout_chooser_response (GtkDialog *dialog, gint response_id); +- +-extern gchar **xkb_layouts_get_selected_list (void); +- +-extern gchar **xkb_options_get_selected_list (void); +- +-#define xkb_layouts_set_selected_list(list) \ +- g_settings_set_strv (xkb_keyboard_settings, \ +- GKBD_KEYBOARD_CONFIG_KEY_LAYOUTS, \ +- (const gchar *const*)(list)) +- +-#define xkb_options_set_selected_list(list) \ +- g_settings_set_strv (xkb_keyboard_settings, \ +- GKBD_KEYBOARD_CONFIG_KEY_OPTIONS, \ +- (const gchar *const*)(list)) +- +-extern GtkWidget *xkb_layout_preview_create_widget (GtkBuilder * +- chooser_dialog); +- +-extern void xkb_layout_preview_update (GtkBuilder * chooser_dialog); +- +-extern void xkb_layout_preview_set_drawing_layout (GtkWidget * kbdraw, +- const gchar * id); +- +-extern gchar *xkb_layout_chooser_get_selected_id (GtkDialog *dialog); +- +-extern void xkb_save_default_group (gint group_no); +- +-extern gint xkb_get_default_group (void); +- +-G_END_DECLS +-#endif /* __GNOME_KEYBOARD_PROPERTY_XKB_H */ +diff -uNrp a/panels/region/cinnamon-region-panel-xkbltadd.c b/panels/region/cinnamon-region-panel-xkbltadd.c +--- a/panels/region/cinnamon-region-panel-xkbltadd.c 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-xkbltadd.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,495 +0,0 @@ +-/* cinnamon-region-panel-xkbltadd.c +- * Copyright (C) 2007 Sergey V. Udaltsov +- * +- * Written by: Sergey V. Udaltsov <svu@gnome.org> +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2, or (at your option) +- * any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA +- * 02110-1335, USA. +- */ +- +-#ifdef HAVE_CONFIG_H +-# include <config.h> +-#endif +- +-#include <string.h> +- +-#include <libgnomekbd/gkbd-keyboard-drawing.h> +-#include <libgnomekbd/gkbd-util.h> +- +-#include "cinnamon-region-panel-xkb.h" +- +-enum { +- COMBO_BOX_MODEL_COL_SORT, +- COMBO_BOX_MODEL_COL_VISIBLE, +- COMBO_BOX_MODEL_COL_XKB_ID, +- COMBO_BOX_MODEL_COL_COUNTRY_DESC, +- COMBO_BOX_MODEL_COL_LANGUAGE_DESC +-}; +- +-static gchar **search_pattern_list = NULL; +- +-static GtkWidget *preview_dialog = NULL; +- +-static GRegex *left_bracket_regex = NULL; +- +-#define RESPONSE_PREVIEW 1 +- +-static void +-xkb_preview_destroy_callback (GtkWidget * widget) +-{ +- preview_dialog = NULL; +-} +- +-static gboolean +-xkb_layout_chooser_selection_dupe (GtkDialog * dialog) +-{ +- gchar *selected_id = +- (gchar *) xkb_layout_chooser_get_selected_id (dialog); +- gchar **layouts_list, **pl; +- gboolean rv = FALSE; +- if (selected_id == NULL) +- return rv; +- layouts_list = pl = xkb_layouts_get_selected_list (); +- while (pl && *pl) { +- if (!g_ascii_strcasecmp (*pl++, selected_id)) { +- rv = TRUE; +- break; +- } +- } +- g_strfreev (layouts_list); +- return rv; +-} +- +-void +-xkb_layout_chooser_response (GtkDialog * dialog, gint response) +-{ +- switch (response) +- case GTK_RESPONSE_OK:{ +- /* Handled by the main code */ +- break; +- case RESPONSE_PREVIEW:{ +- gchar *selected_id = (gchar *) +- xkb_layout_chooser_get_selected_id +- (dialog); +- +- if (selected_id != NULL) { +- if (preview_dialog == NULL) { +- preview_dialog = +- gkbd_keyboard_drawing_dialog_new +- (); +- g_signal_connect (G_OBJECT +- (preview_dialog), +- "destroy", +- G_CALLBACK +- (xkb_preview_destroy_callback), +- NULL); +- /* Put into the separate group to avoid conflict +- with modal parent */ +- gtk_window_group_add_window +- (gtk_window_group_new +- (), +- GTK_WINDOW +- (preview_dialog)); +- }; +- gkbd_keyboard_drawing_dialog_set_layout +- (preview_dialog, +- config_registry, selected_id); +- +- gtk_widget_show_all +- (preview_dialog); +- } +- } +- +- return; +- } +- if (preview_dialog != NULL) { +- gtk_widget_destroy (preview_dialog); +- } +- if (search_pattern_list != NULL) { +- g_strfreev (search_pattern_list); +- search_pattern_list = NULL; +- } +- gtk_widget_destroy (GTK_WIDGET (dialog)); +-} +- +-static gchar * +-xkl_create_description_from_list (const XklConfigItem * item, +- const XklConfigItem * subitem, +- const gchar * prop_name, +- const gchar * +- (*desc_getter) (const gchar * code)) +-{ +- gchar *rv = NULL, *code = NULL; +- gchar **list = NULL; +- const gchar *desc; +- +- if (subitem != NULL) +- list = +- (gchar +- **) (g_object_get_data (G_OBJECT (subitem), +- prop_name)); +- if (list == NULL || *list == 0) +- list = +- (gchar +- **) (g_object_get_data (G_OBJECT (item), prop_name)); +- +- /* First try the parent id as such */ +- desc = desc_getter (item->name); +- if (desc != NULL) { +- rv = g_utf8_strup (desc, -1); +- } else { +- code = g_utf8_strup (item->name, -1); +- desc = desc_getter (code); +- if (desc != NULL) { +- rv = g_utf8_strup (desc, -1); +- } +- g_free (code); +- } +- +- if (list == NULL || *list == 0) +- return rv; +- +- while (*list != 0) { +- code = *list++; +- desc = desc_getter (code); +- if (desc != NULL) { +- gchar *udesc = g_utf8_strup (desc, -1); +- if (rv == NULL) { +- rv = udesc; +- } else { +- gchar *orv = rv; +- rv = g_strdup_printf ("%s %s", rv, udesc); +- g_free (orv); +- g_free (udesc); +- } +- } +- } +- return rv; +-} +- +-static void +-xkl_layout_add_to_list (XklConfigRegistry * config, +- const XklConfigItem * item, +- const XklConfigItem * subitem, +- GtkBuilder * chooser_dialog) +-{ +- GtkListStore *list_store = +- GTK_LIST_STORE (gtk_builder_get_object (chooser_dialog, +- "layout_list_model")); +- GtkTreeIter iter; +- +- gchar *utf_variant_name = +- subitem ? +- xkb_layout_description_utf8 (gkbd_keyboard_config_merge_items +- (item->name, +- subitem->name)) : +- xci_desc_to_utf8 (item); +- +- const gchar *xkb_id = +- subitem ? gkbd_keyboard_config_merge_items (item->name, +- subitem->name) : +- item->name; +- +- gchar *country_desc = +- xkl_create_description_from_list (item, subitem, +- XCI_PROP_COUNTRY_LIST, +- xkl_get_country_name); +- gchar *language_desc = +- xkl_create_description_from_list (item, subitem, +- XCI_PROP_LANGUAGE_LIST, +- xkl_get_language_name); +- +- gchar *tmp = utf_variant_name; +- utf_variant_name = +- g_regex_replace_literal (left_bracket_regex, tmp, -1, 0, +- "<", 0, NULL); +- g_free (tmp); +- +- if (subitem +- && g_object_get_data (G_OBJECT (subitem), +- XCI_PROP_EXTRA_ITEM)) { +- gchar *buf = +- g_strdup_printf ("<i>%s</i>", utf_variant_name); +- gtk_list_store_insert_with_values (list_store, &iter, -1, +- COMBO_BOX_MODEL_COL_SORT, +- utf_variant_name, +- COMBO_BOX_MODEL_COL_VISIBLE, +- buf, +- COMBO_BOX_MODEL_COL_XKB_ID, +- xkb_id, +- COMBO_BOX_MODEL_COL_COUNTRY_DESC, +- country_desc, +- COMBO_BOX_MODEL_COL_LANGUAGE_DESC, +- language_desc, -1); +- g_free (buf); +- } else +- gtk_list_store_insert_with_values (list_store, &iter, +- -1, +- COMBO_BOX_MODEL_COL_SORT, +- utf_variant_name, +- COMBO_BOX_MODEL_COL_VISIBLE, +- utf_variant_name, +- COMBO_BOX_MODEL_COL_XKB_ID, +- xkb_id, +- COMBO_BOX_MODEL_COL_COUNTRY_DESC, +- country_desc, +- COMBO_BOX_MODEL_COL_LANGUAGE_DESC, +- language_desc, -1); +- g_free (utf_variant_name); +- g_free (country_desc); +- g_free (language_desc); +-} +- +-static void +-xkb_layout_filter_clear (GtkEntry * entry, +- GtkEntryIconPosition icon_pos, +- GdkEvent * event, gpointer user_data) +-{ +- gtk_entry_set_text (entry, ""); +-} +- +-static void +-xkb_layout_filter_changed (GtkBuilder * chooser_dialog) +-{ +- GtkTreeModelFilter *filtered_model = +- GTK_TREE_MODEL_FILTER (gtk_builder_get_object (chooser_dialog, +- "filtered_layout_list_model")); +- GtkWidget *xkb_layout_filter = CWID ("xkb_layout_filter"); +- const gchar *pattern = +- gtk_entry_get_text (GTK_ENTRY (xkb_layout_filter)); +- gchar *upattern = g_utf8_strup (pattern, -1); +- +- if (!g_strcmp0 (pattern, "")) { +- g_object_set (G_OBJECT (xkb_layout_filter), +- "secondary-icon-name", "edit-find-symbolic", +- "secondary-icon-activatable", FALSE, +- "secondary-icon-sensitive", FALSE, NULL); +- } else { +- g_object_set (G_OBJECT (xkb_layout_filter), +- "secondary-icon-name", "edit-clear-symbolic", +- "secondary-icon-activatable", TRUE, +- "secondary-icon-sensitive", TRUE, NULL); +- } +- +- if (search_pattern_list != NULL) +- g_strfreev (search_pattern_list); +- +- search_pattern_list = g_strsplit (upattern, " ", -1); +- g_free (upattern); +- +- gtk_tree_model_filter_refilter (filtered_model); +-} +- +-static void +-xkb_layout_chooser_selection_changed (GtkTreeSelection * selection, +- GtkBuilder * chooser_dialog) +-{ +- GList *selected_layouts = +- gtk_tree_selection_get_selected_rows (selection, NULL); +- GtkWidget *add_button = CWID ("btnOk"); +- GtkWidget *preview_button = CWID ("btnPreview"); +- gboolean anything_selected = g_list_length (selected_layouts) == 1; +- gboolean dupe = +- xkb_layout_chooser_selection_dupe (GTK_DIALOG +- (CWID +- ("xkb_layout_chooser"))); +- +- gtk_widget_set_sensitive (add_button, anything_selected && !dupe); +- gtk_widget_set_sensitive (preview_button, anything_selected); +-} +- +-static void +-xkb_layout_chooser_row_activated (GtkTreeView * tree_view, +- GtkTreePath * path, +- GtkTreeViewColumn * column, +- GtkBuilder * chooser_dialog) +-{ +- GtkWidget *add_button = CWID ("btnOk"); +- GtkWidget *dialog = CWID ("xkb_layout_chooser"); +- +- if (gtk_widget_is_sensitive (add_button)) +- gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); +-} +- +-static gboolean +-xkb_filter_layouts (GtkTreeModel * model, +- GtkTreeIter * iter, gpointer data) +-{ +- gchar *desc = NULL, *country_desc = NULL, *language_desc = +- NULL, **pattern; +- gboolean rv = TRUE; +- +- if (search_pattern_list == NULL || search_pattern_list[0] == NULL) +- return TRUE; +- +- gtk_tree_model_get (model, iter, +- COMBO_BOX_MODEL_COL_SORT, &desc, +- COMBO_BOX_MODEL_COL_COUNTRY_DESC, +- &country_desc, +- COMBO_BOX_MODEL_COL_LANGUAGE_DESC, +- &language_desc, -1); +- +- pattern = search_pattern_list; +- do { +- gboolean is_pattern_found = FALSE; +- gchar *udesc = g_utf8_strup (desc, -1); +- if (udesc != NULL && g_strstr_len (udesc, -1, *pattern)) { +- is_pattern_found = TRUE; +- } else if (country_desc != NULL +- && g_strstr_len (country_desc, -1, *pattern)) { +- is_pattern_found = TRUE; +- } else if (language_desc != NULL +- && g_strstr_len (language_desc, -1, *pattern)) { +- is_pattern_found = TRUE; +- } +- g_free (udesc); +- +- if (!is_pattern_found) { +- rv = FALSE; +- break; +- } +- +- } while (*++pattern != NULL); +- +- g_free (desc); +- g_free (country_desc); +- g_free (language_desc); +- return rv; +-} +- +-GtkWidget * +-xkb_layout_choose (GtkBuilder * dialog) +-{ +- GtkBuilder *chooser_dialog = gtk_builder_new (); +- GtkWidget *chooser, *xkb_filtered_layouts_list, *xkb_layout_filter; +- GtkTreeViewColumn *visible_column; +- GtkTreeSelection *selection; +- GtkListStore *model; +- GtkTreeModelFilter *filtered_model; +- gtk_builder_set_translation_domain (chooser_dialog, GETTEXT_PACKAGE); +- gtk_builder_add_from_file (chooser_dialog, CINNAMONCC_UI_DIR +- "/cinnamon-region-panel-layout-chooser.ui", +- NULL); +- chooser = CWID ("xkb_layout_chooser"); +- xkb_filtered_layouts_list = CWID ("xkb_filtered_layouts_list"); +- xkb_layout_filter = CWID ("xkb_layout_filter"); +- +- g_object_set_data (G_OBJECT (chooser), "xkb_filtered_layouts_list", +- xkb_filtered_layouts_list); +- visible_column = +- gtk_tree_view_column_new_with_attributes ("Layout", +- gtk_cell_renderer_text_new +- (), "markup", +- COMBO_BOX_MODEL_COL_VISIBLE, +- NULL); +- +- gtk_window_set_transient_for (GTK_WINDOW (chooser), +- GTK_WINDOW +- (gtk_widget_get_toplevel +- (WID ("region_notebook")))); +- +- gtk_tree_view_append_column (GTK_TREE_VIEW +- (xkb_filtered_layouts_list), +- visible_column); +- g_signal_connect_swapped (G_OBJECT (xkb_layout_filter), +- "notify::text", +- G_CALLBACK +- (xkb_layout_filter_changed), +- chooser_dialog); +- +- g_signal_connect (G_OBJECT (xkb_layout_filter), "icon-release", +- G_CALLBACK (xkb_layout_filter_clear), NULL); +- +- selection = +- gtk_tree_view_get_selection (GTK_TREE_VIEW +- (xkb_filtered_layouts_list)); +- +- g_signal_connect (G_OBJECT (selection), +- "changed", +- G_CALLBACK +- (xkb_layout_chooser_selection_changed), +- chooser_dialog); +- +- xkb_layout_chooser_selection_changed (selection, chooser_dialog); +- +- g_signal_connect (G_OBJECT (xkb_filtered_layouts_list), +- "row-activated", +- G_CALLBACK (xkb_layout_chooser_row_activated), +- chooser_dialog); +- +- filtered_model = +- GTK_TREE_MODEL_FILTER (gtk_builder_get_object +- (chooser_dialog, +- "filtered_layout_list_model")); +- model = +- GTK_LIST_STORE (gtk_builder_get_object +- (chooser_dialog, "layout_list_model")); +- +- left_bracket_regex = g_regex_new ("<", 0, 0, NULL); +- +- xkl_config_registry_search_by_pattern (config_registry, +- NULL, +- (TwoConfigItemsProcessFunc) +- (xkl_layout_add_to_list), +- chooser_dialog); +- +- g_regex_unref (left_bracket_regex); +- +- gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), +- COMBO_BOX_MODEL_COL_SORT, +- GTK_SORT_ASCENDING); +- +- gtk_tree_model_filter_set_visible_func (filtered_model, +- xkb_filter_layouts, +- NULL, NULL); +- +- gtk_widget_grab_focus (xkb_layout_filter); +- +- gtk_widget_show (chooser); +- +- return chooser; +-} +- +-gchar * +-xkb_layout_chooser_get_selected_id (GtkDialog * dialog) +-{ +- GtkTreeModel *filtered_list_model; +- GtkWidget *xkb_filtered_layouts_list = +- g_object_get_data (G_OBJECT (dialog), +- "xkb_filtered_layouts_list"); +- GtkTreeIter viter; +- gchar *v_id; +- GtkTreeSelection *selection = +- gtk_tree_view_get_selection (GTK_TREE_VIEW +- (xkb_filtered_layouts_list)); +- GList *selected_layouts = +- gtk_tree_selection_get_selected_rows (selection, +- &filtered_list_model); +- +- if (g_list_length (selected_layouts) != 1) +- return NULL; +- +- gtk_tree_model_get_iter (filtered_list_model, +- &viter, +- (GtkTreePath *) (selected_layouts->data)); +- g_list_foreach (selected_layouts, +- (GFunc) gtk_tree_path_free, NULL); +- g_list_free (selected_layouts); +- +- gtk_tree_model_get (filtered_list_model, &viter, +- COMBO_BOX_MODEL_COL_XKB_ID, &v_id, -1); +- +- return v_id; +-} +diff -uNrp a/panels/region/cinnamon-region-panel-xkblt.c b/panels/region/cinnamon-region-panel-xkblt.c +--- a/panels/region/cinnamon-region-panel-xkblt.c 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-xkblt.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,470 +0,0 @@ +-/* cinnamon-region-panel-xkblt.c +- * Copyright (C) 2003-2007 Sergey V. Udaltsov +- * +- * Written by: Sergey V. Udaltsov <svu@gnome.org> +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2, or (at your option) +- * any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA +- * 02110-1335, USA. +- */ +- +-#ifdef HAVE_CONFIG_H +-# include <config.h> +-#endif +- +-#include <gdk/gdkx.h> +-#include <glib/gi18n-lib.h> +- +-#include <libgnomekbd/gkbd-desktop-config.h> +-#include <libgnomekbd/gkbd-keyboard-drawing.h> +- +-#include "cinnamon-region-panel-xkb.h" +- +-enum { +- SEL_LAYOUT_TREE_COL_DESCRIPTION, +- SEL_LAYOUT_TREE_COL_ID, +- SEL_LAYOUT_TREE_COL_ENABLED, +- SEL_LAYOUT_N_COLS +-}; +- +-static int idx2select = -1; +-static int max_selected_layouts = -1; +- +-static GtkCellRenderer *text_renderer; +- +-static gboolean disable_buttons_sensibility_update = FALSE; +- +-static gboolean +-get_selected_iter (GtkBuilder *dialog, +- GtkTreeModel **model, +- GtkTreeIter *iter) +-{ +- GtkTreeSelection *selection; +- +- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (WID ("xkb_layouts_selected"))); +- +- return gtk_tree_selection_get_selected (selection, model, iter); +-} +- +-static void +-set_selected_path (GtkBuilder *dialog, +- GtkTreePath *path) +-{ +- GtkTreeSelection *selection; +- +- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (WID ("xkb_layouts_selected"))); +- +- gtk_tree_selection_select_path (selection, path); +-} +- +-static gint +-find_selected_layout_idx (GtkBuilder *dialog) +-{ +- GtkTreeIter selected_iter; +- GtkTreeModel *model; +- GtkTreePath *path; +- gint *indices; +- gint rv; +- +- if (!get_selected_iter (dialog, &model, &selected_iter)) +- return -1; +- +- path = gtk_tree_model_get_path (model, &selected_iter); +- if (path == NULL) +- return -1; +- +- indices = gtk_tree_path_get_indices (path); +- rv = indices[0]; +- gtk_tree_path_free (path); +- return rv; +-} +- +-gchar ** +-xkb_layouts_get_selected_list (void) +-{ +- gchar **retval; +- +- retval = g_settings_get_strv (xkb_keyboard_settings, +- GKBD_KEYBOARD_CONFIG_KEY_LAYOUTS); +- if (retval == NULL || retval[0] == NULL) { +- g_strfreev (retval); +- retval = g_strdupv (initial_config.layouts_variants); +- } +- +- return retval; +-} +- +-gint +-xkb_get_default_group () +-{ +- return g_settings_get_int (xkb_desktop_settings, +- GKBD_DESKTOP_CONFIG_KEY_DEFAULT_GROUP); +-} +- +-void +-xkb_save_default_group (gint default_group) +-{ +- g_settings_set_int (xkb_desktop_settings, +- GKBD_DESKTOP_CONFIG_KEY_DEFAULT_GROUP, +- default_group); +-} +- +-static void +-xkb_layouts_enable_disable_buttons (GtkBuilder * dialog) +-{ +- GtkWidget *add_layout_btn = WID ("xkb_layouts_add"); +- GtkWidget *show_layout_btn = WID ("xkb_layouts_show"); +- GtkWidget *del_layout_btn = WID ("xkb_layouts_remove"); +- GtkWidget *selected_layouts_tree = WID ("xkb_layouts_selected"); +- GtkWidget *move_up_layout_btn = WID ("xkb_layouts_move_up"); +- GtkWidget *move_down_layout_btn = WID ("xkb_layouts_move_down"); +- +- GtkTreeSelection *s_selection = +- gtk_tree_view_get_selection (GTK_TREE_VIEW +- (selected_layouts_tree)); +- const int n_selected_selected_layouts = +- gtk_tree_selection_count_selected_rows (s_selection); +- GtkTreeModel *selected_layouts_model = gtk_tree_view_get_model +- (GTK_TREE_VIEW (selected_layouts_tree)); +- const int n_selected_layouts = +- gtk_tree_model_iter_n_children (selected_layouts_model, +- NULL); +- gint sidx = find_selected_layout_idx (dialog); +- +- if (disable_buttons_sensibility_update) +- return; +- +- gtk_widget_set_sensitive (add_layout_btn, +- (n_selected_layouts < +- max_selected_layouts +- || max_selected_layouts == 0)); +- gtk_widget_set_sensitive (del_layout_btn, (n_selected_layouts > 1) +- && (n_selected_selected_layouts > 0)); +- gtk_widget_set_sensitive (show_layout_btn, +- (n_selected_selected_layouts > 0)); +- gtk_widget_set_sensitive (move_up_layout_btn, sidx > 0); +- gtk_widget_set_sensitive (move_down_layout_btn, sidx >= 0 +- && sidx < (n_selected_layouts - 1)); +-} +- +-static void +-update_layouts_list (GtkTreeModel *model, +- GtkBuilder *dialog) +-{ +- gboolean cont; +- GtkTreeIter iter; +- GPtrArray *array; +- +- array = g_ptr_array_new_with_free_func ((GDestroyNotify) g_free); +- cont = gtk_tree_model_get_iter_first (model, &iter); +- while (cont) { +- char *id; +- +- gtk_tree_model_get (model, &iter, +- SEL_LAYOUT_TREE_COL_ID, &id, +- -1); +- g_ptr_array_add (array, id); +- cont = gtk_tree_model_iter_next (model, &iter); +- } +- g_ptr_array_add (array, NULL); +- xkb_layouts_set_selected_list (array->pdata); +- g_ptr_array_free (array, TRUE); +- +- xkb_layouts_enable_disable_buttons (dialog); +-} +- +-static void +-xkb_layouts_drag_end (GtkWidget *widget, +- GdkDragContext *drag_context, +- gpointer user_data) +-{ +- update_layouts_list (gtk_tree_view_get_model (GTK_TREE_VIEW (widget)), +- GTK_BUILDER (user_data)); +-} +- +-void +-xkb_layouts_prepare_selected_tree (GtkBuilder * dialog) +-{ +- GtkListStore *list_store; +- GtkWidget *tree_view = WID ("xkb_layouts_selected"); +- GtkTreeSelection *selection; +- GtkTreeViewColumn *desc_column; +- +- list_store = gtk_list_store_new (SEL_LAYOUT_N_COLS, +- G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN); +- +- text_renderer = GTK_CELL_RENDERER (gtk_cell_renderer_text_new ()); +- +- desc_column = +- gtk_tree_view_column_new_with_attributes (_("Layout"), +- text_renderer, +- "text", +- SEL_LAYOUT_TREE_COL_DESCRIPTION, +- "sensitive", +- SEL_LAYOUT_TREE_COL_ENABLED, +- NULL); +- selection = +- gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)); +- +- gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), +- GTK_TREE_MODEL (list_store)); +- +- gtk_tree_view_column_set_sizing (desc_column, +- GTK_TREE_VIEW_COLUMN_AUTOSIZE); +- gtk_tree_view_column_set_resizable (desc_column, TRUE); +- gtk_tree_view_column_set_expand (desc_column, TRUE); +- +- gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), +- desc_column); +- +- g_signal_connect_swapped (G_OBJECT (selection), "changed", +- G_CALLBACK +- (xkb_layouts_enable_disable_buttons), +- dialog); +- max_selected_layouts = xkl_engine_get_max_num_groups (engine); +- +- /* Setting up DnD */ +- gtk_tree_view_set_reorderable (GTK_TREE_VIEW (tree_view), TRUE); +- g_signal_connect (G_OBJECT (tree_view), "drag-end", +- G_CALLBACK (xkb_layouts_drag_end), dialog); +-} +- +-gchar * +-xkb_layout_description_utf8 (const gchar * visible) +-{ +- char *l, *sl, *v, *sv; +- if (gkbd_keyboard_config_get_descriptions +- (config_registry, visible, &sl, &l, &sv, &v)) +- visible = +- gkbd_keyboard_config_format_full_description (l, v); +- return g_strstrip (g_strdup (visible)); +-} +- +-void +-xkb_layouts_fill_selected_tree (GtkBuilder * dialog) +-{ +- gchar **layouts = xkb_layouts_get_selected_list (); +- guint i; +- GtkListStore *list_store = +- GTK_LIST_STORE (gtk_tree_view_get_model +- (GTK_TREE_VIEW +- (WID ("xkb_layouts_selected")))); +- +- /* temporarily disable the buttons' status update */ +- disable_buttons_sensibility_update = TRUE; +- +- gtk_list_store_clear (list_store); +- +- for (i = 0; layouts != NULL && layouts[i] != NULL; i++) { +- char *cur_layout = layouts[i]; +- gchar *utf_visible = +- xkb_layout_description_utf8 (cur_layout); +- +- gtk_list_store_insert_with_values (list_store, NULL, G_MAXINT, +- SEL_LAYOUT_TREE_COL_DESCRIPTION, +- utf_visible, +- SEL_LAYOUT_TREE_COL_ID, +- cur_layout, +- SEL_LAYOUT_TREE_COL_ENABLED, +- i < max_selected_layouts, -1); +- g_free (utf_visible); +- } +- +- g_strfreev (layouts); +- +- /* enable the buttons' status update */ +- disable_buttons_sensibility_update = FALSE; +- +- if (idx2select != -1) { +- GtkTreeSelection *selection = +- gtk_tree_view_get_selection ((GTK_TREE_VIEW +- (WID +- ("xkb_layouts_selected")))); +- GtkTreePath *path = +- gtk_tree_path_new_from_indices (idx2select, -1); +- gtk_tree_selection_select_path (selection, path); +- gtk_tree_path_free (path); +- idx2select = -1; +- } else { +- /* if there is nothing to select - just enable/disable the buttons, +- otherwise it would be done by the selection change */ +- xkb_layouts_enable_disable_buttons (dialog); +- } +-} +- +-static void +-add_default_switcher_if_necessary () +-{ +- gchar **layouts_list = xkb_layouts_get_selected_list(); +- gchar **options_list = xkb_options_get_selected_list (); +- gboolean was_appended; +- +- options_list = +- gkbd_keyboard_config_add_default_switch_option_if_necessary +- (layouts_list, options_list, &was_appended); +- if (was_appended) +- xkb_options_set_selected_list (options_list); +- g_strfreev (options_list); +-} +- +-static void +-chooser_response (GtkDialog *chooser, +- int response_id, +- GtkBuilder *dialog) +-{ +- if (response_id == GTK_RESPONSE_OK) { +- char *id, *name; +- GtkListStore *list_store; +- +- list_store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (WID ("xkb_layouts_selected")))); +- id = xkb_layout_chooser_get_selected_id (chooser); +- name = xkb_layout_description_utf8 (id); +- gtk_list_store_insert_with_values (list_store, NULL, G_MAXINT, +- SEL_LAYOUT_TREE_COL_DESCRIPTION, name, +- SEL_LAYOUT_TREE_COL_ID, id, +- SEL_LAYOUT_TREE_COL_ENABLED, TRUE, +- -1); +- g_free (name); +- add_default_switcher_if_necessary (); +- update_layouts_list (GTK_TREE_MODEL (list_store), dialog); +- } +- +- xkb_layout_chooser_response (chooser, response_id); +-} +- +-static void +-add_selected_layout (GtkWidget * button, GtkBuilder * dialog) +-{ +- GtkWidget *chooser; +- +- chooser = xkb_layout_choose (dialog); +- g_signal_connect (G_OBJECT (chooser), "response", +- G_CALLBACK (chooser_response), dialog); +-} +- +-static void +-show_selected_layout (GtkWidget * button, GtkBuilder * dialog) +-{ +- gint idx = find_selected_layout_idx (dialog); +- +- if (idx != -1) { +- GtkWidget *parent = WID ("region_notebook"); +- GtkWidget *popup = gkbd_keyboard_drawing_dialog_new (); +- gkbd_keyboard_drawing_dialog_set_group (popup, +- config_registry, +- idx); +- gtk_window_set_transient_for (GTK_WINDOW (popup), +- GTK_WINDOW +- (gtk_widget_get_toplevel +- (parent))); +- gtk_widget_show_all (popup); +- } +-} +- +-static void +-remove_selected_layout (GtkWidget * button, GtkBuilder * dialog) +-{ +- GtkTreeModel *model; +- GtkTreeIter iter; +- +- if (get_selected_iter (dialog, &model, &iter) == FALSE) +- return; +- +- gtk_list_store_remove (GTK_LIST_STORE (model), &iter); +- update_layouts_list (model, dialog); +-} +- +-static void +-move_up_selected_layout (GtkWidget * button, GtkBuilder * dialog) +-{ +- GtkTreeModel *model; +- GtkTreeIter iter, prev; +- GtkTreePath *path; +- +- if (get_selected_iter (dialog, &model, &iter) == FALSE) +- return; +- +- prev = iter; +- if (!gtk_tree_model_iter_previous (model, &prev)) +- return; +- +- path = gtk_tree_model_get_path (model, &prev); +- +- gtk_list_store_swap (GTK_LIST_STORE (model), &iter, &prev); +- +- update_layouts_list (model, dialog); +- +- set_selected_path (dialog, path); +- +- gtk_tree_path_free (path); +-} +- +-static void +-move_down_selected_layout (GtkWidget * button, GtkBuilder * dialog) +-{ +- GtkTreeModel *model; +- GtkTreeIter iter, next; +- GtkTreePath *path; +- +- if (get_selected_iter (dialog, &model, &iter) == FALSE) +- return; +- +- next = iter; +- if (!gtk_tree_model_iter_next (model, &next)) +- return; +- +- path = gtk_tree_model_get_path (model, &next); +- +- gtk_list_store_swap (GTK_LIST_STORE (model), &iter, &next); +- +- update_layouts_list (model, dialog); +- +- set_selected_path (dialog, path); +- +- gtk_tree_path_free (path); +-} +- +-void +-xkb_layouts_register_buttons_handlers (GtkBuilder * dialog) +-{ +- g_signal_connect (G_OBJECT (WID ("xkb_layouts_add")), "clicked", +- G_CALLBACK (add_selected_layout), dialog); +- g_signal_connect (G_OBJECT (WID ("xkb_layouts_show")), "clicked", +- G_CALLBACK (show_selected_layout), dialog); +- g_signal_connect (G_OBJECT (WID ("xkb_layouts_remove")), "clicked", +- G_CALLBACK (remove_selected_layout), dialog); +- g_signal_connect (G_OBJECT (WID ("xkb_layouts_move_up")), +- "clicked", G_CALLBACK (move_up_selected_layout), +- dialog); +- g_signal_connect (G_OBJECT (WID ("xkb_layouts_move_down")), +- "clicked", +- G_CALLBACK (move_down_selected_layout), dialog); +-} +- +-static void +-xkb_layouts_update_list (GSettings * settings, +- gchar * key, GtkBuilder * dialog) +-{ +- if (strcmp (key, GKBD_KEYBOARD_CONFIG_KEY_LAYOUTS) == 0) { +- xkb_layouts_fill_selected_tree (dialog); +- enable_disable_restoring (dialog); +- } +-} +- +-void +-xkb_layouts_register_conf_listener (GtkBuilder * dialog) +-{ +- g_signal_connect (xkb_keyboard_settings, "changed", +- G_CALLBACK (xkb_layouts_update_list), dialog); +-} +diff -uNrp a/panels/region/cinnamon-region-panel-xkbot.c b/panels/region/cinnamon-region-panel-xkbot.c +--- a/panels/region/cinnamon-region-panel-xkbot.c 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-xkbot.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,516 +0,0 @@ +-/* cinnamon-region-panel-xkbot.c +- * Copyright (C) 2003-2007 Sergey V. Udaltsov +- * +- * Written by: Sergey V. Udaltsov <svu@gnome.org> +- * John Spray <spray_john@users.sourceforge.net> +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2, or (at your option) +- * any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA +- * 02110-1335, USA. +- */ +- +-#ifdef HAVE_CONFIG_H +-# include <config.h> +-#endif +- +-#include <glib/gi18n-lib.h> +-#include <string.h> +- +-#include "cinnamon-region-panel-xkb.h" +- +-static GtkBuilder *chooser_dialog = NULL; +-static const char *current1st_level_id = NULL; +-static GSList *option_checks_list = NULL; +-static GtkWidget *current_none_radio = NULL; +-static GtkWidget *current_expander = NULL; +-static gboolean current_multi_select = FALSE; +-static GSList *current_radio_group = NULL; +- +-#define OPTION_ID_PROP "optionID" +-#define SELCOUNTER_PROP "selectionCounter" +-#define GCONFSTATE_PROP "gconfState" +-#define EXPANDERS_PROP "expandersList" +- +-gchar ** +-xkb_options_get_selected_list (void) +-{ +- gchar **retval; +- +- retval = +- g_settings_get_strv (xkb_keyboard_settings, +- GKBD_KEYBOARD_CONFIG_KEY_OPTIONS); +- if (retval == NULL) { +- retval = g_strdupv (initial_config.options); +- } +- +- return retval; +-} +- +-/* Returns the selection counter of the expander (static current_expander) */ +-static int +-xkb_options_expander_selcounter_get (void) +-{ +- return +- GPOINTER_TO_INT (g_object_get_data +- (G_OBJECT (current_expander), +- SELCOUNTER_PROP)); +-} +- +-/* Increments the selection counter in the expander (static current_expander) +- using the value (can be 0)*/ +-static void +-xkb_options_expander_selcounter_add (int value) +-{ +- g_object_set_data (G_OBJECT (current_expander), SELCOUNTER_PROP, +- GINT_TO_POINTER +- (xkb_options_expander_selcounter_get () +- + value)); +-} +- +-/* Resets the seletion counter in the expander (static current_expander) */ +-static void +-xkb_options_expander_selcounter_reset (void) +-{ +- g_object_set_data (G_OBJECT (current_expander), SELCOUNTER_PROP, +- GINT_TO_POINTER (0)); +-} +- +-/* Formats the expander (static current_expander), based on the selection counter */ +-static void +-xkb_options_expander_highlight (void) +-{ +- char *utf_group_name = +- g_object_get_data (G_OBJECT (current_expander), +- "utfGroupName"); +- int counter = xkb_options_expander_selcounter_get (); +- if (utf_group_name != NULL) { +- gchar *titlemarkup = +- g_strconcat (counter > +- 0 ? "<span weight=\"bold\">" : "<span>", +- utf_group_name, "</span>", NULL); +- gtk_expander_set_label (GTK_EXPANDER (current_expander), +- titlemarkup); +- g_free (titlemarkup); +- } +-} +- +-/* Add optionname from the backend's selection list if it's not +- already in there. */ +-static void +-xkb_options_select (gchar * optionname) +-{ +- gboolean already_selected = FALSE; +- gchar **options_list; +- guint i; +- +- options_list = xkb_options_get_selected_list (); +- for (i = 0; options_list != NULL && options_list[i] != NULL; i++) { +- gchar *option = options_list[i]; +- if (!strcmp (option, optionname)) { +- already_selected = TRUE; +- break; +- } +- } +- +- if (!already_selected) { +- options_list = +- gkbd_strv_append (options_list, g_strdup (optionname)); +- xkb_options_set_selected_list (options_list); +- } +- +- g_strfreev (options_list); +-} +- +-/* Remove all occurences of optionname from the backend's selection list */ +-static void +-xkb_options_deselect (gchar * optionname) +-{ +- gchar **options_list = xkb_options_get_selected_list (); +- if (options_list != NULL) { +- gchar **option = options_list; +- while (*option != NULL) { +- gchar *id = *option; +- if (!strcmp (id, optionname)) { +- gkbd_strv_behead (option); +- } else +- option++; +- } +- xkb_options_set_selected_list (options_list); +- } +- g_strfreev (options_list); +-} +- +-/* Return true if optionname describes a string already in the backend's +- list of selected options */ +-static gboolean +-xkb_options_is_selected (gchar * optionname) +-{ +- gboolean retval = FALSE; +- gchar **options_list = xkb_options_get_selected_list (); +- if (options_list != NULL) { +- gchar **option = options_list; +- while (*option != NULL) { +- if (!strcmp (*option, optionname)) { +- retval = TRUE; +- break; +- } +- option++; +- } +- } +- g_strfreev (options_list); +- return retval; +-} +- +-/* Make sure selected options stay visible when navigating with the keyboard */ +-static gboolean +-option_focused_cb (GtkWidget * widget, GdkEventFocus * event, +- gpointer data) +-{ +- GtkScrolledWindow *win = GTK_SCROLLED_WINDOW (data); +- GtkAllocation alloc; +- GtkAdjustment *adj; +- +- gtk_widget_get_allocation (widget, &alloc); +- adj = gtk_scrolled_window_get_vadjustment (win); +- gtk_adjustment_clamp_page (adj, alloc.y, alloc.y + alloc.height); +- +- return FALSE; +-} +- +-/* Update xkb backend to reflect the new UI state */ +-static void +-option_toggled_cb (GtkWidget * checkbutton, gpointer data) +-{ +- gpointer optionID = +- g_object_get_data (G_OBJECT (checkbutton), OPTION_ID_PROP); +- if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton))) +- xkb_options_select (optionID); +- else +- xkb_options_deselect (optionID); +-} +- +-/* Add a check_button or radio_button to control a particular option +- This function makes particular use of the current... variables at +- the top of this file. */ +-static void +-xkb_options_add_option (XklConfigRegistry * config_registry, +- XklConfigItem * config_item, GtkBuilder * dialog) +-{ +- GtkWidget *option_check; +- gchar *utf_option_name = xci_desc_to_utf8 (config_item); +- /* Copy this out because we'll load it into the widget with set_data */ +- gchar *full_option_name = +- g_strdup (gkbd_keyboard_config_merge_items +- (current1st_level_id, config_item->name)); +- gboolean initial_state; +- +- if (current_multi_select) +- option_check = +- gtk_check_button_new_with_label (utf_option_name); +- else { +- if (current_radio_group == NULL) { +- /* The first radio in a group is to be "Default", meaning none of +- the below options are to be included in the selected list. +- This is a HIG-compliant alternative to allowing no +- selection in the group. */ +- option_check = +- gtk_radio_button_new_with_label +- (current_radio_group, _("Default")); +- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON +- (option_check), +- TRUE); +- /* Make option name underscore - +- to enforce its first position in the list */ +- g_object_set_data_full (G_OBJECT (option_check), +- "utfOptionName", +- g_strdup (" "), g_free); +- option_checks_list = +- g_slist_append (option_checks_list, +- option_check); +- current_radio_group = +- gtk_radio_button_get_group (GTK_RADIO_BUTTON +- (option_check)); +- current_none_radio = option_check; +- +- g_signal_connect (option_check, "focus-in-event", +- G_CALLBACK (option_focused_cb), +- WID ("options_scroll")); +- } +- option_check = +- gtk_radio_button_new_with_label (current_radio_group, +- utf_option_name); +- current_radio_group = +- gtk_radio_button_get_group (GTK_RADIO_BUTTON +- (option_check)); +- g_object_set_data (G_OBJECT (option_check), "NoneRadio", +- current_none_radio); +- } +- +- initial_state = xkb_options_is_selected (full_option_name); +- +- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (option_check), +- initial_state); +- +- g_object_set_data_full (G_OBJECT (option_check), OPTION_ID_PROP, +- full_option_name, g_free); +- g_object_set_data_full (G_OBJECT (option_check), "utfOptionName", +- utf_option_name, g_free); +- +- g_signal_connect (option_check, "toggled", +- G_CALLBACK (option_toggled_cb), NULL); +- +- option_checks_list = +- g_slist_append (option_checks_list, option_check); +- +- g_signal_connect (option_check, "focus-in-event", +- G_CALLBACK (option_focused_cb), +- WID ("options_scroll")); +- +- xkb_options_expander_selcounter_add (initial_state); +- g_object_set_data (G_OBJECT (option_check), GCONFSTATE_PROP, +- GINT_TO_POINTER (initial_state)); +-} +- +-static gint +-xkb_option_checks_compare (GtkWidget * chk1, GtkWidget * chk2) +-{ +- const gchar *t1 = +- g_object_get_data (G_OBJECT (chk1), "utfOptionName"); +- const gchar *t2 = +- g_object_get_data (G_OBJECT (chk2), "utfOptionName"); +- return g_utf8_collate (t1, t2); +-} +- +-/* Add a group of options: create title and layout widgets and then +- add widgets for all the options in the group. */ +-static void +-xkb_options_add_group (XklConfigRegistry * config_registry, +- XklConfigItem * config_item, GtkBuilder * dialog) +-{ +- GtkWidget *align, *vbox, *option_check; +- gboolean allow_multiple_selection = +- GPOINTER_TO_INT (g_object_get_data (G_OBJECT (config_item), +- XCI_PROP_ALLOW_MULTIPLE_SELECTION)); +- +- GSList *expanders_list = +- g_object_get_data (G_OBJECT (dialog), EXPANDERS_PROP); +- +- gchar *utf_group_name = xci_desc_to_utf8 (config_item); +- gchar *titlemarkup = +- g_strconcat ("<span>", utf_group_name, "</span>", NULL); +- +- current_expander = gtk_expander_new (titlemarkup); +- gtk_expander_set_use_markup (GTK_EXPANDER (current_expander), +- TRUE); +- g_object_set_data_full (G_OBJECT (current_expander), +- "utfGroupName", utf_group_name, g_free); +- g_object_set_data_full (G_OBJECT (current_expander), "groupId", +- g_strdup (config_item->name), g_free); +- +- g_free (titlemarkup); +- align = gtk_alignment_new (0, 0, 1, 1); +- gtk_alignment_set_padding (GTK_ALIGNMENT (align), 6, 12, 12, 0); +- vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); +- gtk_box_set_homogeneous (GTK_BOX (vbox), TRUE); +- gtk_container_add (GTK_CONTAINER (align), vbox); +- gtk_container_add (GTK_CONTAINER (current_expander), align); +- +- current_multi_select = (gboolean) allow_multiple_selection; +- current_radio_group = NULL; +- current1st_level_id = config_item->name; +- +- option_checks_list = NULL; +- +- xkl_config_registry_foreach_option (config_registry, +- config_item->name, +- (ConfigItemProcessFunc) +- xkb_options_add_option, +- dialog); +- /* sort it */ +- option_checks_list = +- g_slist_sort (option_checks_list, +- (GCompareFunc) xkb_option_checks_compare); +- while (option_checks_list) { +- option_check = GTK_WIDGET (option_checks_list->data); +- gtk_box_pack_start (GTK_BOX (vbox), option_check, TRUE, +- TRUE, 0); +- option_checks_list = option_checks_list->next; +- } +- /* free it */ +- g_slist_free (option_checks_list); +- option_checks_list = NULL; +- +- xkb_options_expander_highlight (); +- +- expanders_list = g_slist_append (expanders_list, current_expander); +- g_object_set_data (G_OBJECT (dialog), EXPANDERS_PROP, +- expanders_list); +- +- g_signal_connect (current_expander, "focus-in-event", +- G_CALLBACK (option_focused_cb), +- WID ("options_scroll")); +-} +- +-static gint +-xkb_options_expanders_compare (GtkWidget * expander1, +- GtkWidget * expander2) +-{ +- const gchar *t1 = +- g_object_get_data (G_OBJECT (expander1), "utfGroupName"); +- const gchar *t2 = +- g_object_get_data (G_OBJECT (expander2), "utfGroupName"); +- return g_utf8_collate (t1, t2); +-} +- +-/* Create widgets to represent the options made available by the backend */ +-void +-xkb_options_load_options (GtkBuilder * dialog) +-{ +- GtkWidget *opts_vbox = WID ("options_vbox"); +- GtkWidget *dialog_vbox = WID ("dialog_vbox"); +- GtkWidget *options_scroll = WID ("options_scroll"); +- GtkWidget *expander; +- GSList *expanders_list; +- +- current1st_level_id = NULL; +- current_none_radio = NULL; +- current_multi_select = FALSE; +- current_radio_group = NULL; +- +- /* fill the list */ +- xkl_config_registry_foreach_option_group (config_registry, +- (ConfigItemProcessFunc) +- xkb_options_add_group, +- dialog); +- /* sort it */ +- expanders_list = +- g_object_get_data (G_OBJECT (dialog), EXPANDERS_PROP); +- expanders_list = +- g_slist_sort (expanders_list, +- (GCompareFunc) xkb_options_expanders_compare); +- g_object_set_data (G_OBJECT (dialog), EXPANDERS_PROP, +- expanders_list); +- while (expanders_list) { +- expander = GTK_WIDGET (expanders_list->data); +- gtk_box_pack_start (GTK_BOX (opts_vbox), expander, FALSE, +- FALSE, 0); +- expanders_list = expanders_list->next; +- } +- +- /* Somewhere in gtk3 the top vbox in dialog is made non-expandable */ +- gtk_box_set_child_packing (GTK_BOX (dialog_vbox), options_scroll, +- TRUE, TRUE, 0, GTK_PACK_START); +- gtk_widget_show_all (dialog_vbox); +-} +- +-static void +-chooser_response_cb (GtkDialog * dialog, gint response, gpointer data) +-{ +- switch (response) { +- case GTK_RESPONSE_DELETE_EVENT: +- case GTK_RESPONSE_CLOSE: { +- /* just cleanup */ +- GSList *expanders_list = +- g_object_get_data (G_OBJECT (dialog), +- EXPANDERS_PROP); +- g_object_set_data (G_OBJECT (dialog), +- EXPANDERS_PROP, NULL); +- g_slist_free (expanders_list); +- +- gtk_widget_destroy (GTK_WIDGET (dialog)); +- chooser_dialog = NULL; +- } +- break; +- } +-} +- +-/* Create popup dialog */ +-void +-xkb_options_popup_dialog (GtkBuilder * dialog) +-{ +- GtkWidget *chooser; +- +- chooser_dialog = gtk_builder_new (); +- gtk_builder_set_translation_domain (chooser_dialog, GETTEXT_PACKAGE); +- gtk_builder_add_from_file (chooser_dialog, CINNAMONCC_UI_DIR +- "/cinnamon-region-panel-options-dialog.ui", +- NULL); +- +- chooser = CWID ("xkb_options_dialog"); +- gtk_window_set_transient_for (GTK_WINDOW (chooser), +- GTK_WINDOW (gtk_widget_get_toplevel (WID ("region_notebook")))); +- gtk_window_set_modal (GTK_WINDOW (chooser), TRUE); +- xkb_options_load_options (chooser_dialog); +- +- g_signal_connect (chooser, "response", +- G_CALLBACK (chooser_response_cb), dialog); +- gtk_widget_show (chooser); +-} +- +-/* Update selected option counters for a group-bound expander */ +-static void +-xkb_options_update_option_counters (XklConfigRegistry * config_registry, +- XklConfigItem * config_item) +-{ +- gchar *full_option_name = +- g_strdup (gkbd_keyboard_config_merge_items +- (current1st_level_id, config_item->name)); +- gboolean current_state = +- xkb_options_is_selected (full_option_name); +- g_free (full_option_name); +- +- xkb_options_expander_selcounter_add (current_state); +-} +- +-/* Respond to a change in the xkb gconf settings */ +-static void +-xkb_options_update (GSettings * settings, gchar * key, GtkBuilder * dialog) +-{ +- if (!strcmp (key, GKBD_KEYBOARD_CONFIG_KEY_OPTIONS)) { +- /* Updating options is handled by gconf notifies for each widget +- This is here to avoid calling it N_OPTIONS times for each gconf +- change. */ +- enable_disable_restoring (dialog); +- +- if (chooser_dialog != NULL) { +- GSList *expanders_list = +- g_object_get_data (G_OBJECT (chooser_dialog), +- EXPANDERS_PROP); +- while (expanders_list) { +- current_expander = +- GTK_WIDGET (expanders_list->data); +- gchar *group_id = +- g_object_get_data (G_OBJECT +- (current_expander), +- "groupId"); +- current1st_level_id = group_id; +- xkb_options_expander_selcounter_reset (); +- xkl_config_registry_foreach_option +- (config_registry, group_id, +- (ConfigItemProcessFunc) +- xkb_options_update_option_counters, +- current_expander); +- xkb_options_expander_highlight (); +- expanders_list = expanders_list->next; +- } +- } +- } +-} +- +-void +-xkb_options_register_conf_listener (GtkBuilder * dialog) +-{ +- g_signal_connect (xkb_keyboard_settings, "changed", +- G_CALLBACK (xkb_options_update), dialog); +-} +diff -uNrp a/panels/region/cinnamon-region-panel-xkbpv.c b/panels/region/cinnamon-region-panel-xkbpv.c +--- a/panels/region/cinnamon-region-panel-xkbpv.c 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/cinnamon-region-panel-xkbpv.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,120 +0,0 @@ +-/* cinnamon-region-panel-xkbpv.c +- * Copyright (C) 2003-2007 Sergey V. Udaltsov +- * +- * Written by: Sergey V. Udaltsov <svu@gnome.org> +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2, or (at your option) +- * any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA +- * 02110-1335, USA. +- */ +- +-#ifdef HAVE_CONFIG_H +-# include <config.h> +-#endif +- +-#include <libgnomekbd/gkbd-keyboard-drawing.h> +- +-#include "cinnamon-region-panel-xkb.h" +- +-#ifdef HAVE_X11_EXTENSIONS_XKB_H +-#include "X11/XKBlib.h" +-/** +- * BAD STYLE: Taken from xklavier_private_xkb.h +- * Any ideas on architectural improvements are WELCOME +- */ +-extern gboolean xkl_xkb_config_native_prepare (XklEngine * engine, +- const XklConfigRec * data, +- XkbComponentNamesPtr +- component_names); +- +-extern void xkl_xkb_config_native_cleanup (XklEngine * engine, +- XkbComponentNamesPtr +- component_names); +- +-/* */ +-#endif +- +-static GkbdKeyboardDrawingGroupLevel groupsLevels[] = +- { {0, 1}, {0, 3}, {0, 0}, {0, 2} }; +-static GkbdKeyboardDrawingGroupLevel *pGroupsLevels[] = { +- groupsLevels, groupsLevels + 1, groupsLevels + 2, groupsLevels + 3 +-}; +- +-GtkWidget * +-xkb_layout_preview_create_widget (GtkBuilder * chooserDialog) +-{ +- GtkWidget *kbdraw = gkbd_keyboard_drawing_new (); +- +- gkbd_keyboard_drawing_set_groups_levels (GKBD_KEYBOARD_DRAWING +- (kbdraw), pGroupsLevels); +- return kbdraw; +-} +- +-void +-xkb_layout_preview_set_drawing_layout (GtkWidget * kbdraw, +- const gchar * id) +-{ +-#ifdef HAVE_X11_EXTENSIONS_XKB_H +- if (kbdraw != NULL) { +- if (id != NULL) { +- XklConfigRec *data; +- char **p, *layout, *variant; +- XkbComponentNamesRec component_names; +- +- data = xkl_config_rec_new (); +- if (xkl_config_rec_get_from_server (data, engine)) { +- if ((p = data->layouts) != NULL) +- g_strfreev (data->layouts); +- +- if ((p = data->variants) != NULL) +- g_strfreev (data->variants); +- +- data->layouts = g_new0 (char *, 2); +- data->variants = g_new0 (char *, 2); +- if (gkbd_keyboard_config_split_items +- (id, &layout, &variant) +- && variant != NULL) { +- data->layouts[0] = +- (layout == +- NULL) ? NULL : +- g_strdup (layout); +- data->variants[0] = +- (variant == +- NULL) ? NULL : +- g_strdup (variant); +- } else { +- data->layouts[0] = +- (id == +- NULL) ? NULL : g_strdup (id); +- data->variants[0] = NULL; +- } +- +- if (xkl_xkb_config_native_prepare +- (engine, data, &component_names)) { +- gkbd_keyboard_drawing_set_keyboard +- (GKBD_KEYBOARD_DRAWING +- (kbdraw), &component_names); +- +- xkl_xkb_config_native_cleanup +- (engine, &component_names); +- } +- } +- g_object_unref (G_OBJECT (data)); +- } else +- gkbd_keyboard_drawing_set_keyboard +- (GKBD_KEYBOARD_DRAWING (kbdraw), NULL); +- +- } +-#endif +-} +diff -uNrp a/panels/region/.indent.pro b/panels/region/.indent.pro +--- a/panels/region/.indent.pro 1970-01-01 01:00:00.000000000 +0100 ++++ b/panels/region/.indent.pro 2013-08-25 16:50:30.000000000 +0100 +@@ -0,0 +1,2 @@ ++-kr -i8 -pcs -lps -psl ++ +diff -uNrp a/panels/region/Makefile.am b/panels/region/Makefile.am +--- a/panels/region/Makefile.am 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/Makefile.am 2013-09-21 13:24:15.347949247 +0100 +@@ -23,12 +23,9 @@ libregion_la_SOURCES = \ + cinnamon-region-panel-lang.h \ + cinnamon-region-panel-system.c \ + cinnamon-region-panel-system.h \ +- cinnamon-region-panel-xkb.c \ +- cinnamon-region-panel-xkblt.c \ +- cinnamon-region-panel-xkbltadd.c \ +- cinnamon-region-panel-xkbot.c \ +- cinnamon-region-panel-xkbpv.c \ +- cinnamon-region-panel-xkb.h ++ cinnamon-region-panel-input.c \ ++ cinnamon-region-panel-input.h \ ++ $(NULL) + + libregion_la_LIBADD = $(PANEL_LIBS) $(REGION_PANEL_LIBS) $(builddir)/../common/liblanguage.la + +@@ -39,8 +36,8 @@ libregion_la_LDFLAGS = $(PANEL_LDFLAGS) + uidir = $(pkgdatadir)/ui + ui_DATA = \ + cinnamon-region-panel.ui \ +- cinnamon-region-panel-layout-chooser.ui \ +- cinnamon-region-panel-options-dialog.ui ++ cinnamon-region-panel-input-chooser.ui \ ++ $(NULL) + + desktopdir = $(datadir)/applications + Desktop_in_files = cinnamon-region-panel.desktop.in +diff -uNrp a/panels/region/region-module.c b/panels/region/region-module.c +--- a/panels/region/region-module.c 2013-08-25 14:40:14.000000000 +0100 ++++ b/panels/region/region-module.c 2013-09-21 13:24:15.347949247 +0100 +@@ -28,6 +28,7 @@ + void + g_io_module_load (GIOModule * module) + { ++ + /* register the panel */ + cc_region_panel_register (module); + } diff --git a/community/cinnamon-desktop/PKGBUILD b/community/cinnamon-desktop/PKGBUILD index d9d585db2..b492d4376 100644 --- a/community/cinnamon-desktop/PKGBUILD +++ b/community/cinnamon-desktop/PKGBUILD @@ -3,23 +3,23 @@ # Contributor: Jan de Groot <jan@archlinux.org> pkgname=cinnamon-desktop -pkgver=2.0.0 +pkgver=2.0.1 pkgrel=1 pkgdesc="Library with common API for various Cinnamon modules" arch=(i686 x86_64) license=(GPL LGPL) -depends=(gsettings-desktop-schemas gtk3 libxkbfile xkeyboard-config iso-codes) -makedepends=(intltool gobject-introspection itstool gnome-common) +depends=(gtk3 libxkbfile) +makedepends=(intltool gobject-introspection gnome-common) url="https://github.com/linuxmint/cinnamon-desktop" options=(!libtool) +install=cinnamon-desktop.install source=("${pkgname}-${pkgver}.tar.gz::https://github.com/linuxmint/cinnamon-desktop/archive/${pkgver}.tar.gz") -sha256sums=('dd4ef4c14699a0566ae8e7e060a7db8574ef65dcdac80751de350788ea99ff3c') +sha256sums=('326bb7f02692a0baa21821ec70968be3cf70702d8330a7452aa03f9fbc851de1') build() { cd $pkgname-$pkgver ./autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ - --libexecdir=/usr/lib/$pkgname --disable-static \ - --with-gnome-distributor="Arch Linux" + --libexecdir=/usr/lib/$pkgname --disable-static make } diff --git a/community/cinnamon-desktop/cinnamon-desktop.install b/community/cinnamon-desktop/cinnamon-desktop.install new file mode 100644 index 000000000..7e721e827 --- /dev/null +++ b/community/cinnamon-desktop/cinnamon-desktop.install @@ -0,0 +1,11 @@ +post_install() { + glib-compile-schemas /usr/share/glib-2.0/schemas +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/community/cinnamon-session/PKGBUILD b/community/cinnamon-session/PKGBUILD index c73cb60eb..21b5a827d 100644 --- a/community/cinnamon-session/PKGBUILD +++ b/community/cinnamon-session/PKGBUILD @@ -3,28 +3,33 @@ # Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> pkgname=cinnamon-session -pkgver=2.0.0 +pkgver=2.0.1 pkgrel=1 pkgdesc="The Cinnamon Session Handler" arch=(i686 x86_64) license=(GPL LGPL) -depends=(systemd dconf gsettings-desktop-schemas gtk3 - hicolor-icon-theme libgl libsm libxtst upower) -makedepends=(intltool mesa json-glib gtk-doc xtrans gnome-common) +depends=(cinnamon-desktop upower) +makedepends=(intltool mesa json-glib xtrans gnome-common) options=('!emptydirs') install=cinnamon-session.install url="https://github.com/linuxmint/cinnamon-session" source=(${pkgname}-${pkgver}.tar.gz::https://github.com/linuxmint/cinnamon-session/archive/${pkgver}.tar.gz + remove_sessionmigration.patch timeout.patch) -sha256sums=('d1eba64a5484f086f257ee75799d12afd77373fbdb0ced8d3ae48eadcd02a878' +sha256sums=('e1dd1bc044be28c2849041e7f1cd23b388442c77500a59baf57d244a6d81b88b' + 'f3c0bc1a3debfaa686230f19ba371b08dd4645064d90ead0c34f465c7d416736' 'ef421a14814c7858490b3a806568ab4ec8a0dc21d390e94f801771c1261bb24a') prepare() { cd $pkgname-$pkgver + # Do not try to execute session-migration script (it's specific to Ubuntu) + patch -Np1 -i ../remove_sessionmigration.patch + # Increase timeout, for slow machines patch -Np1 -i ../timeout.patch } + build() { cd $pkgname-$pkgver ./autogen.sh --prefix=/usr --sysconfdir=/etc \ @@ -36,4 +41,8 @@ build() { package() { cd $pkgname-$pkgver make DESTDIR="$pkgdir" install + + # Prefix 'Startup Applications' with 'Cinnamon' to avoid confusion with gnome-session + sed -i 's/^Name\(.*\)=\(.*\)/Name\1=Cinnamon \2/' \ + "$pkgdir/usr/share/applications/cinnamon-session-properties.desktop" } diff --git a/community/cinnamon-session/lightdm_userswitch.patch b/community/cinnamon-session/lightdm_userswitch.patch new file mode 100644 index 000000000..2fc9fe17b --- /dev/null +++ b/community/cinnamon-session/lightdm_userswitch.patch @@ -0,0 +1,153 @@ +diff --git a/cinnamon-session/csm-manager.c b/cinnamon-session/csm-manager.c +index e3388b1..a8e63c5 100644 +--- a/cinnamon-session/csm-manager.c ++++ b/cinnamon-session/csm-manager.c +@@ -1097,44 +1097,20 @@ cancel_end_session (CsmManager *manager) + start_phase (manager); + } + +- +-static void +-manager_switch_user (GdkDisplay *display, +- CsmManager *manager) +-{ +- GError *error; +- char *command; +- GAppLaunchContext *context; +- GAppInfo *app; +- +- /* We have to do this here and in request_switch_user() because this +- * function can be called at a later time, not just directly after +- * request_switch_user(). */ +- if (_switch_user_is_locked_down (manager)) { +- g_warning ("Unable to switch user: User switching has been locked down"); +- return; +- } +- +- command = g_strdup_printf ("%s %s", +- MDM_FLEXISERVER_COMMAND, +- MDM_FLEXISERVER_ARGS); +- +- error = NULL; +- context = (GAppLaunchContext*) gdk_display_get_app_launch_context (display); +- app = g_app_info_create_from_commandline (command, MDM_FLEXISERVER_COMMAND, 0, &error); +- +- if (app) { +- g_app_info_launch (app, NULL, context, &error); +- g_object_unref (app); +- } +- +- g_free (command); +- g_object_unref (context); +- +- if (error) { +- g_debug ("CsmManager: Unable to start MDM greeter: %s", error->message); +- g_error_free (error); +- } ++static gboolean ++process_is_running (const char * name) ++{ ++ int num_processes; ++ char * command = g_strdup_printf ("pidof %s | wc -l", name); ++ FILE *fp = popen(command, "r"); ++ fscanf(fp, "%d", &num_processes); ++ pclose(fp); ++ if (num_processes > 0) { ++ return TRUE; ++ } ++ else { ++ return FALSE; ++ } + } + + static gboolean +@@ -1157,7 +1133,7 @@ manager_perhaps_lock (CsmManager *manager) + + /* do this sync to ensure it's on the screen when we start suspending */ + error = NULL; +- ret = g_spawn_command_line_sync ("gnome-screensaver-command --lock", NULL, NULL, NULL, &error); ++ ret = g_spawn_command_line_sync ("cinnamon-screensaver-command --lock", NULL, NULL, NULL, &error); + if (!ret) { + g_warning ("Couldn't lock screen: %s", error->message); + g_error_free (error); +@@ -1165,6 +1141,80 @@ manager_perhaps_lock (CsmManager *manager) + } + + static void ++manager_switch_user (GdkDisplay *display, ++ CsmManager *manager) ++{ ++ GError *error; ++ char *command; ++ GAppLaunchContext *context; ++ GAppInfo *app; ++ ++ /* We have to do this here and in request_switch_user() because this ++ * function can be called at a later time, not just directly after ++ * request_switch_user(). */ ++ if (_switch_user_is_locked_down (manager)) { ++ g_warning ("Unable to switch user: User switching has been locked down"); ++ return; ++ } ++ ++ if (process_is_running("mdm")) { ++ command = g_strdup_printf ("%s %s", ++ MDM_FLEXISERVER_COMMAND, ++ MDM_FLEXISERVER_ARGS); ++ ++ error = NULL; ++ context = (GAppLaunchContext*) gdk_display_get_app_launch_context (display); ++ app = g_app_info_create_from_commandline (command, MDM_FLEXISERVER_COMMAND, 0, &error); ++ ++ if (app) { ++ g_app_info_launch (app, NULL, context, &error); ++ g_object_unref (app); ++ } ++ ++ g_free (command); ++ g_object_unref (context); ++ ++ if (error) { ++ g_debug ("CsmManager: Unable to start MDM greeter: %s", error->message); ++ g_error_free (error); ++ } ++ } ++ else if (process_is_running("lightdm")) { ++ const gchar *xdg_seat_path = g_getenv ("XDG_SEAT_PATH"); ++ if (xdg_seat_path != NULL) { ++ GDBusProxyFlags flags = G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START; ++ GDBusProxy *proxy = NULL; ++ error = NULL; ++ ++ proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM, ++ flags, ++ NULL, ++ "org.freedesktop.DisplayManager", ++ xdg_seat_path, ++ "org.freedesktop.DisplayManager.Seat", ++ NULL, ++ &error); ++ if (proxy != NULL) { ++ manager_perhaps_lock (manager); ++ g_dbus_proxy_call (proxy, ++ "SwitchToGreeter", ++ g_variant_new ("()"), ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, ++ NULL, ++ NULL, ++ NULL); ++ g_object_unref (proxy); ++ } ++ else { ++ g_debug ("GsmManager: Unable to start LightDM greeter: %s", error->message); ++ g_error_free (error); ++ } ++ } ++ } ++} ++ ++static void + manager_attempt_hibernate (CsmManager *manager) + { + if (csm_system_can_hibernate (manager->priv->system)) { diff --git a/community/cinnamon-session/remove_sessionmigration.patch b/community/cinnamon-session/remove_sessionmigration.patch new file mode 100644 index 000000000..0016080dd --- /dev/null +++ b/community/cinnamon-session/remove_sessionmigration.patch @@ -0,0 +1,18 @@ +--- a/cinnamon-session/csm-session-fill.c ++++ b/cinnamon-session/csm-session-fill.c +@@ -228,15 +228,6 @@ + load_standard_apps (CsmManager *manager, + GKeyFile *keyfile) + { +- GError *error; +- +- g_debug ("fill: *** Executing user migration"); +- error = NULL; +- if(!g_spawn_command_line_sync ("session-migration", NULL, NULL, NULL, &error)) { +- g_warning ("Error while executing session-migration: %s", error->message); +- g_error_free (error); +- } +- + g_debug ("fill: *** Adding required components"); + handle_required_components (keyfile, !csm_manager_get_failsafe (manager), + append_required_components_helper, manager); diff --git a/community/cinnamon-settings-daemon/PKGBUILD b/community/cinnamon-settings-daemon/PKGBUILD index 127c715ba..0d3417363 100644 --- a/community/cinnamon-settings-daemon/PKGBUILD +++ b/community/cinnamon-settings-daemon/PKGBUILD @@ -4,25 +4,37 @@ pkgname=cinnamon-settings-daemon pkgver=2.0.1 -pkgrel=1 +pkgrel=2 pkgdesc="The Cinnamon Settings daemon" arch=('i686' 'x86_64') license=('GPL') -depends=('dconf' 'cinnamon-desktop' 'gsettings-desktop-schemas' 'hicolor-icon-theme' 'libcanberra-pulse' 'libnotify' - 'libsystemd' 'libwacom' 'pulseaudio' 'pulseaudio-alsa' 'upower' 'ibus' 'librsvg' 'libgweather' 'libxklavier' - 'libgnomekbd') -makedepends=('intltool' 'xf86-input-wacom' 'libxslt' 'docbook-xsl' 'gnome-common') +depends=('cinnamon-desktop' 'ibus' 'libcanberra-pulse' 'librsvg' 'nss' 'pulseaudio-alsa' 'upower') +makedepends=('intltool' 'docbook-xsl' 'gnome-common') options=('!emptydirs' '!libtool') install=cinnamon-settings-daemon.install url="https://github.com/linuxmint/cinnamon-settings-daemon" -source=("${pkgname}-${pkgver}.tar.gz::https://github.com/linuxmint/cinnamon-settings-daemon/archive/${pkgver}.tar.gz") -sha256sums=('f03f5ea46bec11a6a0ed02b232dab8cb99a84fd8a9b52a76a454a7ba74dc1168') +source=("${pkgname}-${pkgver}.tar.gz::https://github.com/linuxmint/cinnamon-settings-daemon/archive/${pkgver}.tar.gz" + keyboard.patch + automount-plugin.patch) +sha256sums=('f03f5ea46bec11a6a0ed02b232dab8cb99a84fd8a9b52a76a454a7ba74dc1168' + '3c05b978cb414c8fc1530f211bab58627a64ac9c156630c9d486f5926a85109c' + '0a6dfbea6f28e5107212a8e8091ded6a3b5b34b1710c11c2f04c4d02846f9398') + +prepare() { + cd $pkgname-$pkgver + + # Fix crasher + patch -Np1 -i ../keyboard.patch + + # Turn automount helper into a plugin + patch -Np1 -i ../automount-plugin.patch +} build() { cd $pkgname-$pkgver ./autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ - --libexecdir=/usr/lib/$pkgname --disable-static + --libexecdir=/usr/lib/$pkgname --disable-static --enable-systemd #https://bugzilla.gnome.org/show_bug.cgi?id=656231 sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool diff --git a/community/cinnamon-settings-daemon/automount-plugin.patch b/community/cinnamon-settings-daemon/automount-plugin.patch new file mode 100644 index 000000000..f6ca1181f --- /dev/null +++ b/community/cinnamon-settings-daemon/automount-plugin.patch @@ -0,0 +1,447 @@ +diff -Naur cinnamon-settings-daemon-2.0.1.orig/data/org.cinnamon.settings-daemon.plugins.gschema.xml.in.in cinnamon-settings-daemon-2.0.1/data/org.cinnamon.settings-daemon.plugins.gschema.xml.in.in +--- cinnamon-settings-daemon-2.0.1.orig/data/org.cinnamon.settings-daemon.plugins.gschema.xml.in.in 2013-10-02 16:13:56.000000000 +0200 ++++ cinnamon-settings-daemon-2.0.1/data/org.cinnamon.settings-daemon.plugins.gschema.xml.in.in 2013-10-08 22:49:15.438929150 +0200 +@@ -2,6 +2,7 @@ + <schema gettext-domain="@GETTEXT_PACKAGE@" id="org.cinnamon.settings-daemon.plugins" path="/org/cinnamon/settings-daemon/plugins/"> + <child name="a11y-keyboard" schema="org.cinnamon.settings-daemon.plugins.a11y-keyboard"/> + <child name="a11y-settings" schema="org.cinnamon.settings-daemon.plugins.a11y-settings"/> ++ <child name="automount" schema="org.cinnamon.settings-daemon.plugins.automount"/> + <child name="background" schema="org.cinnamon.settings-daemon.plugins.background"/> + <child name="clipboard" schema="org.cinnamon.settings-daemon.plugins.clipboard"/> + <child name="color" schema="org.cinnamon.settings-daemon.plugins.color"/> +@@ -43,6 +44,18 @@ + <_summary>Priority to use for this plugin</_summary> + <_description>Priority to use for this plugin in cinnamon-settings-daemon startup queue</_description> + </key> ++ </schema> ++ <schema gettext-domain="@GETTEXT_PACKAGE@" id="org.cinnamon.settings-daemon.plugins.automount" path="/org/cinnamon/settings-daemon/plugins/automount/"> ++ <key name="active" type="b"> ++ <default>true</default> ++ <_summary>Activation of this plugin</_summary> ++ <_description>Whether this plugin would be activated by cinnamon-settings-daemon or not</_description> ++ </key> ++ <key name="priority" type="i"> ++ <default>97</default> ++ <_summary>Priority to use for this plugin</_summary> ++ <_description>Priority to use for this plugin in cinnamon-settings-daemon startup queue</_description> ++ </key> + </schema> + <schema gettext-domain="@GETTEXT_PACKAGE@" id="org.cinnamon.settings-daemon.plugins.clipboard" path="/org/cinnamon/settings-daemon/plugins/clipboard/"> + <key name="active" type="b"> +diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/automount.cinnamon-settings-plugin.in cinnamon-settings-daemon-2.0.1/plugins/automount/automount.cinnamon-settings-plugin.in +--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/automount.cinnamon-settings-plugin.in 1970-01-01 01:00:00.000000000 +0100 ++++ cinnamon-settings-daemon-2.0.1/plugins/automount/automount.cinnamon-settings-plugin.in 2013-10-08 22:35:10.771472456 +0200 +@@ -0,0 +1,8 @@ ++[Cinnamon Settings Plugin] ++Module=automount ++IAge=0 ++_Name=Automount ++_Description=Automounter plugin ++Authors=Tomas Bzatek ++Copyright=Copyright © 2010 Red Hat, Inc. ++Website= +diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/cinnamon-fallback-mount-helper.c cinnamon-settings-daemon-2.0.1/plugins/automount/cinnamon-fallback-mount-helper.c +--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/cinnamon-fallback-mount-helper.c 2013-10-02 16:13:56.000000000 +0200 ++++ cinnamon-settings-daemon-2.0.1/plugins/automount/cinnamon-fallback-mount-helper.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,65 +0,0 @@ +-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +- * +- * Copyright (C) 2010 Red Hat, Inc. +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA +- * +- * Author: Tomas Bzatek <tbzatek@redhat.com> +- */ +- +-#include "config.h" +- +-#include <glib.h> +-#include <glib/gi18n.h> +-#include <unistd.h> +-#include <gtk/gtk.h> +- +-#include "csd-automount-manager.h" +- +-int +-main (int argc, +- char **argv) +-{ +- GMainLoop *loop; +- CsdAutomountManager *manager; +- GError *error = NULL; +- +- g_type_init (); +- gtk_init (&argc, &argv); +- +- bindtextdomain (GETTEXT_PACKAGE, CINNAMON_SETTINGS_LOCALEDIR); +- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); +- textdomain (GETTEXT_PACKAGE); +- +- loop = g_main_loop_new (NULL, FALSE); +- manager = csd_automount_manager_new (); +- +- csd_automount_manager_start (manager, &error); +- +- if (error != NULL) { +- g_printerr ("Unable to start the mount manager: %s", +- error->message); +- +- g_error_free (error); +- _exit (1); +- } +- +- g_main_loop_run (loop); +- +- csd_automount_manager_stop (manager); +- g_main_loop_unref (loop); +- +- return 0; +-} +diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/cinnamon-fallback-mount-helper.desktop.in.in cinnamon-settings-daemon-2.0.1/plugins/automount/cinnamon-fallback-mount-helper.desktop.in.in +--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/cinnamon-fallback-mount-helper.desktop.in.in 2013-10-02 16:13:56.000000000 +0200 ++++ cinnamon-settings-daemon-2.0.1/plugins/automount/cinnamon-fallback-mount-helper.desktop.in.in 1970-01-01 01:00:00.000000000 +0100 +@@ -1,12 +0,0 @@ +-[Desktop Entry] +-_Name=Mount Helper +-_Comment=Automount and autorun plugged devices +-Exec=@LIBEXECDIR@/cinnamon-fallback-mount-helper +-Icon=drive-optical +-Terminal=false +-Type=Application +-Categories= +-NoDisplay=true +-OnlyShowIn=GNOME; +-X-GNOME-Autostart-Notify=true +- +diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/csd-automount-plugin.c cinnamon-settings-daemon-2.0.1/plugins/automount/csd-automount-plugin.c +--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/csd-automount-plugin.c 1970-01-01 01:00:00.000000000 +0100 ++++ cinnamon-settings-daemon-2.0.1/plugins/automount/csd-automount-plugin.c 2013-10-08 22:35:10.771472456 +0200 +@@ -0,0 +1,106 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- ++ * ++ * Copyright (C) 2010 Red Hat, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ * Author: Tomas Bzatek <tbzatek@redhat.com> ++ */ ++ ++#include "config.h" ++ ++#include <glib/gi18n-lib.h> ++#include <gmodule.h> ++ ++#include "cinnamon-settings-plugin.h" ++#include "csd-automount-plugin.h" ++#include "csd-automount-manager.h" ++ ++struct CsdAutomountPluginPrivate { ++ CsdAutomountManager *manager; ++}; ++ ++#define CSD_AUTOMOUNT_PLUGIN_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), CSD_TYPE_AUTOMOUNT_PLUGIN, CsdAutomountPluginPrivate)) ++ ++CINNAMON_SETTINGS_PLUGIN_REGISTER (CsdAutomountPlugin, csd_automount_plugin) ++ ++static void ++csd_automount_plugin_init (CsdAutomountPlugin *plugin) ++{ ++ plugin->priv = CSD_AUTOMOUNT_PLUGIN_GET_PRIVATE (plugin); ++ ++ g_debug ("Automount plugin initializing"); ++ ++ plugin->priv->manager = csd_automount_manager_new (); ++} ++ ++static void ++csd_automount_plugin_finalize (GObject *object) ++{ ++ CsdAutomountPlugin *plugin; ++ ++ g_return_if_fail (object != NULL); ++ g_return_if_fail (CSD_IS_AUTOMOUNT_PLUGIN (object)); ++ ++ g_debug ("Automount plugin finalizing"); ++ ++ plugin = CSD_AUTOMOUNT_PLUGIN (object); ++ ++ g_return_if_fail (plugin->priv != NULL); ++ ++ if (plugin->priv->manager != NULL) { ++ g_object_unref (plugin->priv->manager); ++ } ++ ++ G_OBJECT_CLASS (csd_automount_plugin_parent_class)->finalize (object); ++} ++ ++static void ++impl_activate (CinnamonSettingsPlugin *plugin) ++{ ++ gboolean res; ++ GError *error; ++ ++ g_debug ("Activating automount plugin"); ++ ++ error = NULL; ++ res = csd_automount_manager_start (CSD_AUTOMOUNT_PLUGIN (plugin)->priv->manager, &error); ++ if (! res) { ++ g_warning ("Unable to start automount manager: %s", error->message); ++ g_error_free (error); ++ } ++} ++ ++static void ++impl_deactivate (CinnamonSettingsPlugin *plugin) ++{ ++ g_debug ("Deactivating automount plugin"); ++ csd_automount_manager_stop (CSD_AUTOMOUNT_PLUGIN (plugin)->priv->manager); ++} ++ ++static void ++csd_automount_plugin_class_init (CsdAutomountPluginClass *klass) ++{ ++ GObjectClass *object_class = G_OBJECT_CLASS (klass); ++ CinnamonSettingsPluginClass *plugin_class = CINNAMON_SETTINGS_PLUGIN_CLASS (klass); ++ ++ object_class->finalize = csd_automount_plugin_finalize; ++ ++ plugin_class->activate = impl_activate; ++ plugin_class->deactivate = impl_deactivate; ++ ++ g_type_class_add_private (klass, sizeof (CsdAutomountPluginPrivate)); ++} ++ +diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/csd-automount-plugin.h cinnamon-settings-daemon-2.0.1/plugins/automount/csd-automount-plugin.h +--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/csd-automount-plugin.h 1970-01-01 01:00:00.000000000 +0100 ++++ cinnamon-settings-daemon-2.0.1/plugins/automount/csd-automount-plugin.h 2013-10-08 22:35:10.771472456 +0200 +@@ -0,0 +1,60 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- ++ * ++ * Copyright (C) 2010 Red Hat, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ * Author: Tomas Bzatek <tbzatek@redhat.com> ++ */ ++ ++#ifndef __CSD_AUTOMOUNT_PLUGIN_H__ ++#define __CSD_AUTOMOUNT_PLUGIN_H__ ++ ++#include <glib.h> ++#include <glib-object.h> ++#include <gmodule.h> ++ ++#include "cinnamon-settings-plugin.h" ++ ++G_BEGIN_DECLS ++ ++#define CSD_TYPE_AUTOMOUNT_PLUGIN (csd_automount_plugin_get_type ()) ++#define CSD_AUTOMOUNT_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CSD_TYPE_AUTOMOUNT_PLUGIN, CsdAutomountPlugin)) ++#define CSD_AUTOMOUNT_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), CSD_TYPE_AUTOMOUNT_PLUGIN, CsdAutomountPluginClass)) ++#define CSD_IS_AUTOMOUNT_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CSD_TYPE_AUTOMOUNT_PLUGIN)) ++#define CSD_IS_AUTOMOUNT_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CSD_TYPE_AUTOMOUNT_PLUGIN)) ++#define CSD_AUTOMOUNT_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CSD_TYPE_AUTOMOUNT_PLUGIN, CsdAutomountPluginClass)) ++ ++typedef struct CsdAutomountPluginPrivate CsdAutomountPluginPrivate; ++ ++typedef struct ++{ ++ CinnamonSettingsPlugin parent; ++ CsdAutomountPluginPrivate *priv; ++} CsdAutomountPlugin; ++ ++typedef struct ++{ ++ CinnamonSettingsPluginClass parent_class; ++} CsdAutomountPluginClass; ++ ++GType csd_automount_plugin_get_type (void) G_GNUC_CONST; ++ ++/* All the plugins must implement this function */ ++G_MODULE_EXPORT GType register_cinnamon_settings_plugin (GTypeModule *module); ++ ++G_END_DECLS ++ ++#endif /* __CSD_AUTOMOUNT_PLUGIN_H__ */ +diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/Makefile.am cinnamon-settings-daemon-2.0.1/plugins/automount/Makefile.am +--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/Makefile.am 2013-10-02 16:13:56.000000000 +0200 ++++ cinnamon-settings-daemon-2.0.1/plugins/automount/Makefile.am 2013-10-08 22:48:19.240865461 +0200 +@@ -1,38 +1,87 @@ +-libexec_PROGRAMS = cinnamon-fallback-mount-helper ++NULL = + +-cinnamon_fallback_mount_helper_SOURCES = \ +- cinnamon-fallback-mount-helper.c \ +- csd-automount-manager.c \ +- csd-automount-manager.h \ +- csd-autorun.c \ +- csd-autorun.h ++plugin_name = automount + +-cinnamon_fallback_mount_helper_CPPFLAGS = \ ++libexec_PROGRAMS = csd-test-automount ++ ++csd_test_automount_SOURCES = \ ++ test-automount.c \ ++ csd-automount-manager.h \ ++ csd-automount-manager.c \ ++ csd-autorun.c \ ++ csd-autorun.h \ ++ $(NULL) ++ ++csd_test_automount_CPPFLAGS = \ + -I$(top_srcdir)/cinnamon-settings-daemon \ ++ -I$(top_srcdir)/plugins/common \ + -DCINNAMON_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \ + $(AM_CPPFLAGS) + +-cinnamon_fallback_mount_helper_CFLAGS = \ ++csd_test_automount_CFLAGS = \ ++ $(PLUGIN_CFLAGS) \ + $(SETTINGS_PLUGIN_CFLAGS) \ + $(SYSTEMD_CFLAGS) \ + $(AUTOMOUNT_CFLAGS) ++ $(AM_CFLAGS) ++ ++csd_test_automount_LDADD = \ ++ $(top_builddir)/cinnamon-settings-daemon/libcsd.la \ ++ $(SETTINGS_PLUGIN_LIBS) \ ++ $(SYSTEMD_LIBS) \ ++ $(AUTOMOUNT_LIBS) \ ++ $(NULL) ++ ++plugin_LTLIBRARIES = \ ++ libautomount.la \ ++ $(NULL) ++ ++libautomount_la_SOURCES = \ ++ csd-automount-plugin.h \ ++ csd-automount-plugin.c \ ++ csd-automount-manager.h \ ++ csd-automount-manager.c \ ++ csd-autorun.c \ ++ csd-autorun.h \ ++ $(NULL) ++ ++libautomount_la_CPPFLAGS = \ ++ -I$(top_srcdir)/cinnamon-settings-daemon \ ++ -DCINNAMON_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \ ++ $(AM_CPPFLAGS) ++ ++libautomount_la_CFLAGS = \ ++ $(SETTINGS_PLUGIN_CFLAGS) \ ++ $(SYSTEMD_CFLAGS) \ ++ $(AUTOMOUNT_CFLAGS) \ ++ $(AM_CFLAGS) ++ ++libautomount_la_LDFLAGS = \ ++ $(CSD_PLUGIN_LDFLAGS) \ ++ $(NULL) + +-cinnamon_fallback_mount_helper_LDADD = \ ++libautomount_la_LIBADD = \ + $(SETTINGS_PLUGIN_LIBS) \ + $(SYSTEMD_LIBS) \ + $(AUTOMOUNT_LIBS) \ +- $(top_builddir)/cinnamon-settings-daemon/libcsd.la ++ $(NULL) + +-autostartdir = $(sysconfdir)/xdg/autostart +-autostart_in_files = cinnamon-fallback-mount-helper.desktop.in +-autostart_in_in_files = cinnamon-fallback-mount-helper.desktop.in.in +-autostart_DATA = $(autostart_in_files:.desktop.in=.desktop) ++plugin_in_files = \ ++ automount.cinnamon-settings-plugin.in \ ++ $(NULL) + +-$(autostart_in_files): $(autostart_in_in_files) +- @sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@ ++plugin_DATA = $(plugin_in_files:.cinnamon-settings-plugin.in=.cinnamon-settings-plugin) + +-@INTLTOOL_DESKTOP_RULE@ ++EXTRA_DIST = \ ++ $(plugin_in_files) \ ++ $(NULL) + +-EXTRA_DIST = $(autostart_in_in_files) ++CLEANFILES = \ ++ $(plugin_DATA) \ ++ $(NULL) + +-CLEANFILES = $(autostart_DATA) $(autostart_in_files) ++DISTCLEANFILES = \ ++ $(plugin_DATA) \ ++ $(NULL) ++ ++@CSD_INTLTOOL_PLUGIN_RULE@ +diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/test-automount.c cinnamon-settings-daemon-2.0.1/plugins/automount/test-automount.c +--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/test-automount.c 1970-01-01 01:00:00.000000000 +0100 ++++ cinnamon-settings-daemon-2.0.1/plugins/automount/test-automount.c 2013-10-08 22:42:53.759486525 +0200 +@@ -0,0 +1,7 @@ ++#define NEW csd_automount_manager_new ++#define START csd_automount_manager_start ++#define STOP csd_automount_manager_stop ++#define MANAGER CsdAutomountManager ++#include "csd-automount-manager.h" ++ ++#include "test-plugin.h" +diff -Naur cinnamon-settings-daemon-2.0.1.orig/po/POTFILES.in cinnamon-settings-daemon-2.0.1/po/POTFILES.in +--- cinnamon-settings-daemon-2.0.1.orig/po/POTFILES.in 2013-10-02 16:13:56.000000000 +0200 ++++ cinnamon-settings-daemon-2.0.1/po/POTFILES.in 2013-10-08 22:35:10.771472456 +0200 +@@ -18,8 +18,9 @@ + plugins/a11y-keyboard/csd-a11y-preferences-dialog.c + [type: gettext/glade]plugins/a11y-keyboard/csd-a11y-preferences-dialog.ui + [type: gettext/ini]plugins/a11y-settings/a11y-settings.cinnamon-settings-plugin.in +-plugins/automount/cinnamon-fallback-mount-helper.desktop.in.in ++[type: gettext/ini]plugins/automount/automount.cinnamon-settings-plugin.in + plugins/automount/csd-automount-manager.c ++plugins/automount/csd-automount-plugin.c + plugins/automount/csd-autorun.c + [type: gettext/ini]plugins/background/background.cinnamon-settings-plugin.in + [type: gettext/ini]plugins/clipboard/clipboard.cinnamon-settings-plugin.in +diff -Naur cinnamon-settings-daemon-2.0.1.orig/po/POTFILES.skip cinnamon-settings-daemon-2.0.1/po/POTFILES.skip +--- cinnamon-settings-daemon-2.0.1.orig/po/POTFILES.skip 2013-10-02 16:13:56.000000000 +0200 ++++ cinnamon-settings-daemon-2.0.1/po/POTFILES.skip 2013-10-08 22:37:20.224645009 +0200 +@@ -20,6 +20,5 @@ + data/org.cinnamon.settings-daemon.plugins.updates.gschema.xml.in + data/org.cinnamon.settings-daemon.plugins.xrandr.gschema.xml.in + data/org.cinnamon.settings-daemon.plugins.xsettings.gschema.xml.in +-plugins/automount/gnome-fallback-mount-helper.desktop.in + plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in + plugins/wacom/org.cinnamon.settings-daemon.plugins.wacom.policy.in diff --git a/community/cinnamon-settings-daemon/keyboard.patch b/community/cinnamon-settings-daemon/keyboard.patch new file mode 100644 index 000000000..927910d8a --- /dev/null +++ b/community/cinnamon-settings-daemon/keyboard.patch @@ -0,0 +1,4728 @@ +diff -uNrp a/cinnamon-settings-daemon/main.c b/cinnamon-settings-daemon/main.c +--- a/cinnamon-settings-daemon/main.c 2013-08-24 18:04:31.000000000 +0100 ++++ b/cinnamon-settings-daemon/main.c 2013-08-25 16:36:02.000000000 +0100 +@@ -319,6 +319,29 @@ set_legacy_ibus_env_vars (GDBusProxy *pr + } + #endif + ++static void ++got_session_proxy (GObject *source_object, ++ GAsyncResult *res, ++ gpointer user_data) ++{ ++ GDBusProxy *proxy; ++ GError *error = NULL; ++ ++ proxy = g_dbus_proxy_new_finish (res, &error); ++ if (proxy == NULL) { ++ g_debug ("Could not connect to the Session manager: %s", error->message); ++ g_error_free (error); ++ } else { ++ set_locale (proxy); ++#ifdef HAVE_IBUS ++ /* This will register with cinnamon-session after calling Setenv. */ ++ set_legacy_ibus_env_vars (proxy); ++#else ++ register_with_gnome_session (proxy); ++#endif ++ } ++} ++ + static gboolean + on_term_signal_pipe_closed (GIOChannel *source, + GIOCondition condition, +@@ -368,6 +391,16 @@ set_session_over_handler (GDBusConnectio + { + g_assert (bus != NULL); + ++ g_dbus_proxy_new (bus, ++ G_DBUS_PROXY_FLAGS_NONE, ++ NULL, ++ GNOME_SESSION_DBUS_NAME, ++ GNOME_SESSION_DBUS_OBJECT, ++ GNOME_SESSION_DBUS_INTERFACE, ++ NULL, ++ (GAsyncReadyCallback) got_session_proxy, ++ NULL); ++ + watch_for_term_signal (manager); + } + +@@ -390,56 +423,6 @@ name_lost_handler (GDBusConnection *conn + gtk_main_quit (); + } + +-static gboolean +-do_register_client (gpointer user_data) +-{ +- GDBusProxy *proxy = (GDBusProxy *) user_data; +- g_assert (proxy != NULL); +- +- const char *startup_id = g_getenv ("DESKTOP_AUTOSTART_ID"); +- g_dbus_proxy_call (proxy, +- "RegisterClient", +- g_variant_new ("(ss)", "cinnamon-settings-daemon", startup_id ? startup_id : ""), +- G_DBUS_CALL_FLAGS_NONE, +- -1, +- NULL, +- (GAsyncReadyCallback) on_client_registered, +- manager); +- +- return FALSE; +-} +- +-static void +-queue_register_client (void) +-{ +- GDBusConnection *bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL); +- if (!bus) +- return; +- +- GError *error = NULL; +- GDBusProxy *proxy = g_dbus_proxy_new_sync (bus, +- G_DBUS_PROXY_FLAGS_NONE, +- NULL, +- GNOME_SESSION_DBUS_NAME, +- GNOME_SESSION_DBUS_OBJECT, +- GNOME_SESSION_DBUS_INTERFACE, +- NULL, +- &error); +- g_object_unref (bus); +- +- if (proxy == NULL) { +- g_debug ("Could not connect to the Session manager: %s", error->message); +- g_error_free (error); +- return; +- } +- +- /* Register the daemon with cinnamon-session */ +- g_signal_connect (G_OBJECT (proxy), "g-signal", +- G_CALLBACK (on_session_over), NULL); +- +- g_idle_add_full (G_PRIORITY_DEFAULT, do_register_client, proxy, NULL); +-} +- + static void + bus_register (void) + { +@@ -541,8 +524,6 @@ main (int argc, char *argv[]) + + notify_init ("cinnamon-settings-daemon"); + +- queue_register_client (); +- + bus_register (); + + cinnamon_settings_profile_start ("cinnamon_settings_manager_new"); +diff -uNrp a/configure.ac b/configure.ac +--- a/configure.ac 2013-08-24 18:04:31.000000000 +0100 ++++ b/configure.ac 2013-08-25 16:36:02.000000000 +0100 +@@ -53,6 +53,7 @@ UPOWER_GLIB_REQUIRED_VERSION=0.9.1 + PA_REQUIRED_VERSION=0.9.16 + UPOWER_REQUIRED_VERSION=0.9.11 + GTK_XINPUT_2_3_VERSION=3.7.8 ++IBUS_REQUIRED_VERSION=1.4.2 + + #EXTRA_COMPILE_WARNINGS(yes) + +@@ -199,8 +200,21 @@ dnl ------------------------------------ + dnl - Keyboard plugin stuff + dnl --------------------------------------------------------------------------- + +-LIBGNOMEKBD_REQUIRED=2.91.1 +-PKG_CHECK_MODULES(KEYBOARD, [libgnomekbdui >= $LIBGNOMEKBD_REQUIRED libgnomekbd >= $LIBGNOMEKBD_REQUIRED libxklavier >= 5.0 kbproto]) ++AC_ARG_ENABLE(ibus, ++ AS_HELP_STRING([--disable-ibus], ++ [Disable IBus support]), ++ enable_ibus=$enableval, ++ enable_ibus=yes) ++ ++if test "x$enable_ibus" = "xyes" ; then ++ IBUS_MODULE="ibus-1.0 >= $IBUS_REQUIRED_VERSION" ++ AC_DEFINE(HAVE_IBUS, 1, [Defined if IBus support is enabled]) ++else ++ IBUS_MODULE= ++fi ++AM_CONDITIONAL(HAVE_IBUS, test "x$enable_ibus" == "xyes") ++ ++PKG_CHECK_MODULES(KEYBOARD, xkbfile $IBUS_MODULE cinnamon-desktop >= $CINNAMON_DESKTOP_REQUIRED_VERSION) + + dnl --------------------------------------------------------------------------- + dnl - Housekeeping plugin stuff +diff -uNrp a/data/org.cinnamon.settings-daemon.plugins.media-keys.gschema.xml.in.in b/data/org.cinnamon.settings-daemon.plugins.media-keys.gschema.xml.in.in +--- a/data/org.cinnamon.settings-daemon.plugins.media-keys.gschema.xml.in.in 2013-08-24 18:04:31.000000000 +0100 ++++ b/data/org.cinnamon.settings-daemon.plugins.media-keys.gschema.xml.in.in 2013-08-25 16:36:02.000000000 +0100 +@@ -175,6 +175,15 @@ + <_summary>Magnifier zoom out</_summary> + <_description>Binding for the magnifier to zoom out</_description> + </key> ++ <key name="switch-input-source" type="s"> ++ <default>''</default> ++ <_summary>Switch input source</_summary> ++ <_description>Binding to select the next input source</_description> ++ </key> ++ <key name="switch-input-source-backward" type="s"> ++ <default>''</default> ++ <_summary>Switch input source backward</_summary> ++ <_description>Binding to select the previous input source</_description> ++ </key> + </schema> +- +-</schemalist> ++</schemalist> +\ No newline at end of file +diff -uNrp a/plugins/keyboard/csd-keyboard-manager.c b/plugins/keyboard/csd-keyboard-manager.c +--- a/plugins/keyboard/csd-keyboard-manager.c 2013-08-24 18:04:31.000000000 +0100 ++++ b/plugins/keyboard/csd-keyboard-manager.c 2013-08-25 16:36:02.000000000 +0100 +@@ -40,19 +40,22 @@ + + #include <X11/XKBlib.h> + #include <X11/keysym.h> ++#include <X11/extensions/XKBrules.h> ++ ++#define GNOME_DESKTOP_USE_UNSTABLE_API ++#include <libcinnamon-desktop/gnome-xkb-info.h> ++ ++#ifdef HAVE_IBUS ++#include <ibus.h> ++#endif + + #include "cinnamon-settings-profile.h" + #include "csd-keyboard-manager.h" ++#include "csd-input-helper.h" + #include "csd-enums.h" + +-#include "csd-keyboard-xkb.h" +- + #define CSD_KEYBOARD_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CSD_TYPE_KEYBOARD_MANAGER, CsdKeyboardManagerPrivate)) + +-#ifndef HOST_NAME_MAX +-# define HOST_NAME_MAX 255 +-#endif +- + #define CSD_KEYBOARD_DIR "org.cinnamon.settings-daemon.peripherals.keyboard" + + #define KEY_REPEAT "repeat" +@@ -60,6 +63,7 @@ + #define KEY_INTERVAL "repeat-interval" + #define KEY_DELAY "delay" + #define KEY_CLICK_VOLUME "click-volume" ++#define KEY_REMEMBER_NUMLOCK_STATE "remember-numlock-state" + #define KEY_NUMLOCK_STATE "numlock-state" + + #define KEY_BELL_VOLUME "bell-volume" +@@ -67,27 +71,560 @@ + #define KEY_BELL_DURATION "bell-duration" + #define KEY_BELL_MODE "bell-mode" + +-#define LIBGNOMEKBD_KEYBOARD_DIR "org.gnome.libgnomekbd.keyboard" +-#define LIBGNOMEKBD_KEY_LAYOUTS "layouts" ++#define KEY_SWITCHER "input-sources-switcher" ++ ++#define GNOME_DESKTOP_INTERFACE_DIR "org.cinnamon.desktop.interface" ++ ++#define KEY_GTK_IM_MODULE "gtk-im-module" ++#define GTK_IM_MODULE_SIMPLE "gtk-im-context-simple" ++#define GTK_IM_MODULE_IBUS "ibus" ++ ++#define GNOME_DESKTOP_INPUT_SOURCES_DIR "org.cinnamon.desktop.input-sources" ++ ++#define KEY_CURRENT_INPUT_SOURCE "current" ++#define KEY_INPUT_SOURCES "sources" ++#define KEY_KEYBOARD_OPTIONS "xkb-options" ++ ++#define INPUT_SOURCE_TYPE_XKB "xkb" ++#define INPUT_SOURCE_TYPE_IBUS "ibus" ++ ++#define DEFAULT_LANGUAGE "en_US" + + struct CsdKeyboardManagerPrivate + { + guint start_idle_id; + GSettings *settings; +- GSettings *libgnomekbd_settings; +- gboolean have_xkb; ++ GSettings *input_sources_settings; ++ GSettings *interface_settings; ++ GnomeXkbInfo *xkb_info; ++#ifdef HAVE_IBUS ++ IBusBus *ibus; ++ GHashTable *ibus_engines; ++ GHashTable *ibus_xkb_engines; ++ GCancellable *ibus_cancellable; ++ gboolean session_is_fallback; ++#endif + gint xkb_event_base; + CsdNumLockState old_state; ++ GdkDeviceManager *device_manager; ++ guint device_added_id; ++ guint device_removed_id; ++ ++ gboolean input_sources_switcher_spawned; ++ GPid input_sources_switcher_pid; + }; + + static void csd_keyboard_manager_class_init (CsdKeyboardManagerClass *klass); + static void csd_keyboard_manager_init (CsdKeyboardManager *keyboard_manager); + static void csd_keyboard_manager_finalize (GObject *object); ++static gboolean apply_input_sources_settings (GSettings *settings, ++ gpointer keys, ++ gint n_keys, ++ CsdKeyboardManager *manager); ++static void set_gtk_im_module (CsdKeyboardManager *manager, ++ const gchar *new_module); + + G_DEFINE_TYPE (CsdKeyboardManager, csd_keyboard_manager, G_TYPE_OBJECT) + + static gpointer manager_object = NULL; + ++static void ++init_builder_with_sources (GVariantBuilder *builder, ++ GSettings *settings) ++{ ++ const gchar *type; ++ const gchar *id; ++ GVariantIter iter; ++ GVariant *sources; ++ ++ sources = g_settings_get_value (settings, KEY_INPUT_SOURCES); ++ ++ g_variant_builder_init (builder, G_VARIANT_TYPE ("a(ss)")); ++ ++ g_variant_iter_init (&iter, sources); ++ while (g_variant_iter_next (&iter, "(&s&s)", &type, &id)) ++ g_variant_builder_add (builder, "(ss)", type, id); ++ ++ g_variant_unref (sources); ++} ++ ++static gboolean ++schema_is_installed (const gchar *name) ++{ ++ const gchar * const *schemas; ++ const gchar * const *s; ++ ++ schemas = g_settings_list_schemas (); ++ for (s = schemas; *s; ++s) ++ if (g_str_equal (*s, name)) ++ return TRUE; ++ ++ return FALSE; ++} ++ ++#ifdef HAVE_IBUS ++static void ++clear_ibus (CsdKeyboardManager *manager) ++{ ++ CsdKeyboardManagerPrivate *priv = manager->priv; ++ ++ g_cancellable_cancel (priv->ibus_cancellable); ++ g_clear_object (&priv->ibus_cancellable); ++ g_clear_pointer (&priv->ibus_engines, g_hash_table_destroy); ++ g_clear_pointer (&priv->ibus_xkb_engines, g_hash_table_destroy); ++ g_clear_object (&priv->ibus); ++} ++ ++static gchar * ++make_xkb_source_id (const gchar *engine_id) ++{ ++ gchar *id; ++ gchar *p; ++ gint n_colons = 0; ++ ++ /* engine_id is like "xkb:layout:variant:lang" where ++ * 'variant' and 'lang' might be empty */ ++ ++ engine_id += 4; ++ ++ for (p = (gchar *)engine_id; *p; ++p) ++ if (*p == ':') ++ if (++n_colons == 2) ++ break; ++ if (!*p) ++ return NULL; ++ ++ id = g_strndup (engine_id, p - engine_id + 1); ++ ++ id[p - engine_id] = '\0'; ++ ++ /* id is "layout:variant" where 'variant' might be empty */ ++ ++ for (p = id; *p; ++p) ++ if (*p == ':') { ++ if (*(p + 1) == '\0') ++ *p = '\0'; ++ else ++ *p = '+'; ++ break; ++ } ++ ++ /* id is "layout+variant" or "layout" */ ++ ++ return id; ++} ++ ++static void ++fetch_ibus_engines_result (GObject *object, ++ GAsyncResult *result, ++ CsdKeyboardManager *manager) ++{ ++ CsdKeyboardManagerPrivate *priv = manager->priv; ++ GList *list, *l; ++ GError *error = NULL; ++ ++ /* engines shouldn't be there yet */ ++ g_return_if_fail (priv->ibus_engines == NULL); ++ ++ g_clear_object (&priv->ibus_cancellable); ++ ++ list = ibus_bus_list_engines_async_finish (priv->ibus, ++ result, ++ &error); ++ if (!list && error) { ++ if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) ++ g_warning ("Couldn't finish IBus request: %s", error->message); ++ g_error_free (error); ++ ++ clear_ibus (manager); ++ return; ++ } ++ ++ /* Maps IBus engine ids to engine description objects */ ++ priv->ibus_engines = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_object_unref); ++ /* Maps XKB source id strings to engine description objects */ ++ priv->ibus_xkb_engines = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); ++ ++ for (l = list; l; l = l->next) { ++ IBusEngineDesc *engine = l->data; ++ const gchar *engine_id = ibus_engine_desc_get_name (engine); ++ ++ g_hash_table_replace (priv->ibus_engines, (gpointer)engine_id, engine); ++ ++ if (strncmp ("xkb:", engine_id, 4) == 0) { ++ gchar *xkb_source_id = make_xkb_source_id (engine_id); ++ if (xkb_source_id) ++ g_hash_table_replace (priv->ibus_xkb_engines, ++ xkb_source_id, ++ engine); ++ } ++ } ++ g_list_free (list); ++ ++ apply_input_sources_settings (priv->input_sources_settings, NULL, 0, manager); ++} ++ ++static void ++fetch_ibus_engines (CsdKeyboardManager *manager) ++{ ++ CsdKeyboardManagerPrivate *priv = manager->priv; ++ ++ /* engines shouldn't be there yet */ ++ g_return_if_fail (priv->ibus_engines == NULL); ++ g_return_if_fail (priv->ibus_cancellable == NULL); ++ ++ priv->ibus_cancellable = g_cancellable_new (); ++ ++ ibus_bus_list_engines_async (priv->ibus, ++ -1, ++ priv->ibus_cancellable, ++ (GAsyncReadyCallback)fetch_ibus_engines_result, ++ manager); ++} ++ ++static void ++maybe_start_ibus (CsdKeyboardManager *manager, ++ GVariant *sources) ++{ ++ gboolean need_ibus = FALSE; ++ GVariantIter iter; ++ const gchar *type; ++ ++ if (manager->priv->session_is_fallback) ++ return; ++ ++ g_variant_iter_init (&iter, sources); ++ while (g_variant_iter_next (&iter, "(&s&s)", &type, NULL)) ++ if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS)) { ++ need_ibus = TRUE; ++ break; ++ } ++ ++ if (!need_ibus) ++ return; ++ ++ if (!manager->priv->ibus) { ++ ibus_init (); ++ manager->priv->ibus = ibus_bus_new (); ++ g_signal_connect_swapped (manager->priv->ibus, "connected", ++ G_CALLBACK (fetch_ibus_engines), manager); ++ g_signal_connect_swapped (manager->priv->ibus, "disconnected", ++ G_CALLBACK (clear_ibus), manager); ++ } ++ /* IBus doesn't export API in the session bus. The only thing ++ * we have there is a well known name which we can use as a ++ * sure-fire way to activate it. */ ++ g_bus_unwatch_name (g_bus_watch_name (G_BUS_TYPE_SESSION, ++ IBUS_SERVICE_IBUS, ++ G_BUS_NAME_WATCHER_FLAGS_AUTO_START, ++ NULL, ++ NULL, ++ NULL, ++ NULL)); ++} ++ ++static void ++got_session_name (GObject *object, ++ GAsyncResult *res, ++ CsdKeyboardManager *manager) ++{ ++ GVariant *result, *variant; ++ GDBusConnection *connection = G_DBUS_CONNECTION (object); ++ CsdKeyboardManagerPrivate *priv = manager->priv; ++ const gchar *session_name = NULL; ++ GError *error = NULL; ++ ++ /* IBus shouldn't have been touched yet */ ++ g_return_if_fail (priv->ibus == NULL); ++ ++ g_clear_object (&priv->ibus_cancellable); ++ ++ result = g_dbus_connection_call_finish (connection, res, &error); ++ if (!result) { ++ g_warning ("Couldn't get session name: %s", error->message); ++ g_error_free (error); ++ goto out; ++ } ++ ++ g_variant_get (result, "(v)", &variant); ++ g_variant_unref (result); ++ ++ g_variant_get (variant, "&s", &session_name); ++ ++ if (g_strcmp0 (session_name, "gnome") == 0) ++ manager->priv->session_is_fallback = FALSE; ++ ++ g_variant_unref (variant); ++ out: ++ apply_input_sources_settings (manager->priv->input_sources_settings, NULL, 0, manager); ++ g_object_unref (connection); ++} ++ ++static void ++got_bus (GObject *object, ++ GAsyncResult *res, ++ CsdKeyboardManager *manager) ++{ ++ GDBusConnection *connection; ++ CsdKeyboardManagerPrivate *priv = manager->priv; ++ GError *error = NULL; ++ ++ /* IBus shouldn't have been touched yet */ ++ g_return_if_fail (priv->ibus == NULL); ++ ++ g_clear_object (&priv->ibus_cancellable); ++ ++ connection = g_bus_get_finish (res, &error); ++ if (!connection) { ++ g_warning ("Couldn't get session bus: %s", error->message); ++ g_error_free (error); ++ apply_input_sources_settings (priv->input_sources_settings, NULL, 0, manager); ++ return; ++ } ++ ++ priv->ibus_cancellable = g_cancellable_new (); ++ ++ g_dbus_connection_call (connection, ++ "org.gnome.SessionManager", ++ "/org/gnome/SessionManager", ++ "org.freedesktop.DBus.Properties", ++ "Get", ++ g_variant_new ("(ss)", ++ "org.gnome.SessionManager", ++ "SessionName"), ++ NULL, ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, ++ priv->ibus_cancellable, ++ (GAsyncReadyCallback)got_session_name, ++ manager); ++} ++ ++static void ++set_ibus_engine_finish (GObject *object, ++ GAsyncResult *res, ++ CsdKeyboardManager *manager) ++{ ++ gboolean result; ++ IBusBus *ibus = IBUS_BUS (object); ++ CsdKeyboardManagerPrivate *priv = manager->priv; ++ GError *error = NULL; ++ ++ g_clear_object (&priv->ibus_cancellable); ++ ++ result = ibus_bus_set_global_engine_async_finish (ibus, res, &error); ++ if (!result) { ++ if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) ++ g_warning ("Couldn't set IBus engine: %s", error->message); ++ g_error_free (error); ++ } ++} ++ ++static void ++set_ibus_engine (CsdKeyboardManager *manager, ++ const gchar *engine_id) ++{ ++ CsdKeyboardManagerPrivate *priv = manager->priv; ++ ++ g_return_if_fail (priv->ibus != NULL); ++ g_return_if_fail (priv->ibus_engines != NULL); ++ ++ g_cancellable_cancel (priv->ibus_cancellable); ++ g_clear_object (&priv->ibus_cancellable); ++ priv->ibus_cancellable = g_cancellable_new (); ++ ++ ibus_bus_set_global_engine_async (priv->ibus, ++ engine_id, ++ -1, ++ priv->ibus_cancellable, ++ (GAsyncReadyCallback)set_ibus_engine_finish, ++ manager); ++} ++ ++static void ++set_ibus_xkb_engine (CsdKeyboardManager *manager, ++ const gchar *xkb_id) ++{ ++ IBusEngineDesc *engine; ++ CsdKeyboardManagerPrivate *priv = manager->priv; ++ ++ if (!priv->ibus_xkb_engines) ++ return; ++ ++ engine = g_hash_table_lookup (priv->ibus_xkb_engines, xkb_id); ++ if (!engine) ++ return; ++ ++ set_ibus_engine (manager, ibus_engine_desc_get_name (engine)); ++} ++ ++/* XXX: See upstream bug: ++ * https://codereview.appspot.com/6586075/ */ ++static gchar * ++layout_from_ibus_layout (const gchar *ibus_layout) ++{ ++ const gchar *p; ++ ++ /* we get something like "layout(variant)[option1,option2]" */ ++ ++ p = ibus_layout; ++ while (*p) { ++ if (*p == '(' || *p == '[') ++ break; ++ p += 1; ++ } ++ ++ return g_strndup (ibus_layout, p - ibus_layout); ++} ++ ++static gchar * ++variant_from_ibus_layout (const gchar *ibus_layout) ++{ ++ const gchar *a, *b; ++ ++ /* we get something like "layout(variant)[option1,option2]" */ ++ ++ a = ibus_layout; ++ while (*a) { ++ if (*a == '(') ++ break; ++ a += 1; ++ } ++ if (!*a) ++ return NULL; ++ ++ a += 1; ++ b = a; ++ while (*b) { ++ if (*b == ')') ++ break; ++ b += 1; ++ } ++ if (!*b) ++ return NULL; ++ ++ return g_strndup (a, b - a); ++} ++ ++static gchar ** ++options_from_ibus_layout (const gchar *ibus_layout) ++{ ++ const gchar *a, *b; ++ GPtrArray *opt_array; ++ ++ /* we get something like "layout(variant)[option1,option2]" */ ++ ++ a = ibus_layout; ++ while (*a) { ++ if (*a == '[') ++ break; ++ a += 1; ++ } ++ if (!*a) ++ return NULL; ++ ++ opt_array = g_ptr_array_new (); ++ ++ do { ++ a += 1; ++ b = a; ++ while (*b) { ++ if (*b == ',' || *b == ']') ++ break; ++ b += 1; ++ } ++ if (!*b) ++ goto out; ++ ++ g_ptr_array_add (opt_array, g_strndup (a, b - a)); ++ ++ a = b; ++ } while (*a && *a == ','); ++ ++out: ++ g_ptr_array_add (opt_array, NULL); ++ return (gchar **) g_ptr_array_free (opt_array, FALSE); ++} ++ ++static const gchar * ++engine_from_locale (void) ++{ ++ const gchar *locale; ++ const gchar *locale_engine[][2] = { ++ { "as_IN", "m17n:as:phonetic" }, ++ { "bn_IN", "m17n:bn:inscript" }, ++ { "gu_IN", "m17n:gu:inscript" }, ++ { "hi_IN", "m17n:hi:inscript" }, ++ { "ja_JP", "anthy" }, ++ { "kn_IN", "m17n:kn:kgp" }, ++ { "ko_KR", "hangul" }, ++ { "mai_IN", "m17n:mai:inscript" }, ++ { "ml_IN", "m17n:ml:inscript" }, ++ { "mr_IN", "m17n:mr:inscript" }, ++ { "or_IN", "m17n:or:inscript" }, ++ { "pa_IN", "m17n:pa:inscript" }, ++ { "sd_IN", "m17n:sd:inscript" }, ++ { "ta_IN", "m17n:ta:tamil99" }, ++ { "te_IN", "m17n:te:inscript" }, ++ { "zh_CN", "pinyin" }, ++ { "zh_HK", "cangjie3" }, ++ { "zh_TW", "chewing" }, ++ }; ++ gint i; ++ ++ locale = setlocale (LC_CTYPE, NULL); ++ if (!locale) ++ return NULL; ++ ++ for (i = 0; i < G_N_ELEMENTS (locale_engine); ++i) ++ if (g_str_has_prefix (locale, locale_engine[i][0])) ++ return locale_engine[i][1]; ++ ++ return NULL; ++} ++ ++static void ++add_ibus_sources_from_locale (GSettings *settings) ++{ ++ const gchar *locale_engine; ++ GVariantBuilder builder; ++ ++ locale_engine = engine_from_locale (); ++ if (!locale_engine) ++ return; ++ ++ init_builder_with_sources (&builder, settings); ++ g_variant_builder_add (&builder, "(ss)", INPUT_SOURCE_TYPE_IBUS, locale_engine); ++ g_settings_set_value (settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder)); ++} ++ ++static void ++convert_ibus (GSettings *settings) ++{ ++ GVariantBuilder builder; ++ GSettings *ibus_settings; ++ gchar **engines, **e; ++ ++ if (!schema_is_installed ("org.freedesktop.ibus.general")) ++ return; ++ ++ init_builder_with_sources (&builder, settings); ++ ++ ibus_settings = g_settings_new ("org.freedesktop.ibus.general"); ++ engines = g_settings_get_strv (ibus_settings, "preload-engines"); ++ for (e = engines; *e; ++e) { ++ if (g_str_has_prefix (*e, "xkb:")) ++ continue; ++ g_variant_builder_add (&builder, "(ss)", INPUT_SOURCE_TYPE_IBUS, *e); ++ } ++ ++ g_settings_set_value (settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder)); ++ ++ g_strfreev (engines); ++ g_object_unref (ibus_settings); ++} ++#endif /* HAVE_IBUS */ ++ + static gboolean + xkb_set_keyboard_autorepeat_rate (guint delay, guint interval) + { +@@ -97,32 +634,33 @@ xkb_set_keyboard_autorepeat_rate (guint + interval); + } + +-static void +-numlock_xkb_init (CsdKeyboardManager *manager) ++static gboolean ++check_xkb_extension (CsdKeyboardManager *manager) + { + Display *dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); +- gboolean have_xkb; + int opcode, error_base, major, minor; ++ gboolean have_xkb; + + have_xkb = XkbQueryExtension (dpy, + &opcode, + &manager->priv->xkb_event_base, + &error_base, + &major, +- &minor) +- && XkbUseExtension (dpy, &major, &minor); ++ &minor); ++ return have_xkb; ++} + +- if (have_xkb) { +- XkbSelectEventDetails (dpy, +- XkbUseCoreKbd, +- XkbStateNotifyMask, +- XkbModifierLockMask, +- XkbModifierLockMask); +- } else { +- g_warning ("XKB extension not available"); +- } ++static void ++xkb_init (CsdKeyboardManager *manager) ++{ ++ Display *dpy; + +- manager->priv->have_xkb = have_xkb; ++ dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); ++ XkbSelectEventDetails (dpy, ++ XkbUseCoreKbd, ++ XkbStateNotify, ++ XkbModifierLockMask, ++ XkbModifierLockMask); + } + + static unsigned +@@ -143,19 +681,32 @@ numlock_set_xkb_state (CsdNumLockState n + XkbLockModifiers (dpy, XkbUseCoreKbd, num_mask, new_state == CSD_NUM_LOCK_STATE_ON ? num_mask : 0); + } + ++static const char * ++num_lock_state_to_string (CsdNumLockState numlock_state) ++{ ++ switch (numlock_state) { ++ case CSD_NUM_LOCK_STATE_UNKNOWN: ++ return "CSD_NUM_LOCK_STATE_UNKNOWN"; ++ case CSD_NUM_LOCK_STATE_ON: ++ return "CSD_NUM_LOCK_STATE_ON"; ++ case CSD_NUM_LOCK_STATE_OFF: ++ return "CSD_NUM_LOCK_STATE_OFF"; ++ default: ++ return "UNKNOWN"; ++ } ++} ++ + static GdkFilterReturn +-numlock_xkb_callback (GdkXEvent *xev_, +- GdkEvent *gdkev_, +- gpointer user_data) ++xkb_events_filter (GdkXEvent *xev_, ++ GdkEvent *gdkev_, ++ gpointer user_data) + { + XEvent *xev = (XEvent *) xev_; + XkbEvent *xkbev = (XkbEvent *) xev; + CsdKeyboardManager *manager = (CsdKeyboardManager *) user_data; + +- if (xev->type != manager->priv->xkb_event_base) +- return GDK_FILTER_CONTINUE; +- +- if (xkbev->any.xkb_type != XkbStateNotify) ++ if (xev->type != manager->priv->xkb_event_base || ++ xkbev->any.xkb_type != XkbStateNotify) + return GDK_FILTER_CONTINUE; + + if (xkbev->state.changed & XkbModifierLockMask) { +@@ -166,6 +717,9 @@ numlock_xkb_callback (GdkXEvent *xev_, + numlock_state = (num_mask & locked_mods) ? CSD_NUM_LOCK_STATE_ON : CSD_NUM_LOCK_STATE_OFF; + + if (numlock_state != manager->priv->old_state) { ++ g_debug ("New num-lock state '%s' != Old num-lock state '%s'", ++ num_lock_state_to_string (numlock_state), ++ num_lock_state_to_string (manager->priv->old_state)); + g_settings_set_enum (manager->priv->settings, + KEY_NUMLOCK_STATE, + numlock_state); +@@ -177,57 +731,509 @@ numlock_xkb_callback (GdkXEvent *xev_, + } + + static void +-numlock_install_xkb_callback (CsdKeyboardManager *manager) ++install_xkb_filter (CsdKeyboardManager *manager) + { +- if (!manager->priv->have_xkb) +- return; +- + gdk_window_add_filter (NULL, +- numlock_xkb_callback, ++ xkb_events_filter, + manager); + } + +-static guint +-_csd_settings_get_uint (GSettings *settings, +- const char *key) ++static void ++remove_xkb_filter (CsdKeyboardManager *manager) + { +- guint value; ++ gdk_window_remove_filter (NULL, ++ xkb_events_filter, ++ manager); ++} + +- g_settings_get (settings, key, "u", &value); +- return value; ++static void ++free_xkb_component_names (XkbComponentNamesRec *p) ++{ ++ g_return_if_fail (p != NULL); ++ ++ free (p->keymap); ++ free (p->keycodes); ++ free (p->types); ++ free (p->compat); ++ free (p->symbols); ++ free (p->geometry); ++ ++ g_free (p); ++} ++ ++static void ++upload_xkb_description (const gchar *rules_file_path, ++ XkbRF_VarDefsRec *var_defs, ++ XkbComponentNamesRec *comp_names) ++{ ++ Display *display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); ++ XkbDescRec *xkb_desc; ++ gchar *rules_file; ++ ++ /* Upload it to the X server using the same method as setxkbmap */ ++ xkb_desc = XkbGetKeyboardByName (display, ++ XkbUseCoreKbd, ++ comp_names, ++ XkbGBN_AllComponentsMask, ++ XkbGBN_AllComponentsMask & ++ (~XkbGBN_GeometryMask), True); ++ if (!xkb_desc) { ++ g_warning ("Couldn't upload new XKB keyboard description"); ++ return; ++ } ++ ++ XkbFreeKeyboard (xkb_desc, 0, True); ++ ++ rules_file = g_path_get_basename (rules_file_path); ++ ++ if (!XkbRF_SetNamesProp (display, rules_file, var_defs)) ++ g_warning ("Couldn't update the XKB root window property"); ++ ++ g_free (rules_file); ++} ++ ++static gchar * ++language_code_from_locale (const gchar *locale) ++{ ++ if (!locale || !locale[0] || !locale[1]) ++ return NULL; ++ ++ if (!locale[2] || locale[2] == '_' || locale[2] == '.') ++ return g_strndup (locale, 2); ++ ++ if (!locale[3] || locale[3] == '_' || locale[3] == '.') ++ return g_strndup (locale, 3); ++ ++ return NULL; ++} ++ ++static gchar * ++build_xkb_group_string (const gchar *user, ++ const gchar *locale, ++ const gchar *latin) ++{ ++ gchar *string; ++ gsize length = 0; ++ guint commas = 2; ++ ++ if (latin) ++ length += strlen (latin); ++ else ++ commas -= 1; ++ ++ if (locale) ++ length += strlen (locale); ++ else ++ commas -= 1; ++ ++ length += strlen (user) + commas + 1; ++ ++ string = malloc (length); ++ ++ if (locale && latin) ++ sprintf (string, "%s,%s,%s", user, locale, latin); ++ else if (locale) ++ sprintf (string, "%s,%s", user, locale); ++ else if (latin) ++ sprintf (string, "%s,%s", user, latin); ++ else ++ sprintf (string, "%s", user); ++ ++ return string; ++} ++ ++static gboolean ++layout_equal (const gchar *layout_a, ++ const gchar *variant_a, ++ const gchar *layout_b, ++ const gchar *variant_b) ++{ ++ return !g_strcmp0 (layout_a, layout_b) && !g_strcmp0 (variant_a, variant_b); + } + + static void +-apply_settings (GSettings *settings, +- const char *key, +- CsdKeyboardManager *manager) ++replace_layout_and_variant (CsdKeyboardManager *manager, ++ XkbRF_VarDefsRec *xkb_var_defs, ++ const gchar *layout, ++ const gchar *variant) + { ++ /* Toolkits need to know about both a latin layout to handle ++ * accelerators which are usually defined like Ctrl+C and a ++ * layout with the symbols for the language used in UI strings ++ * to handle mnemonics like Alt+Ф, so we try to find and add ++ * them in XKB group slots after the layout which the user ++ * actually intends to type with. */ ++ const gchar *latin_layout = "us"; ++ const gchar *latin_variant = ""; ++ const gchar *locale_layout = NULL; ++ const gchar *locale_variant = NULL; ++ const gchar *locale; ++ gchar *language; ++ ++ if (!layout) ++ return; ++ ++ if (!variant) ++ variant = ""; ++ ++ locale = setlocale (LC_MESSAGES, NULL); ++ /* If LANG is empty, default to en_US */ ++ if (!locale) ++ language = g_strdup (DEFAULT_LANGUAGE); ++ else ++ language = language_code_from_locale (locale); ++ ++ if (!language) ++ language = language_code_from_locale (DEFAULT_LANGUAGE); ++ ++ gnome_xkb_info_get_layout_info_for_language (manager->priv->xkb_info, ++ language, ++ NULL, ++ NULL, ++ NULL, ++ &locale_layout, ++ &locale_variant); ++ g_free (language); ++ ++ /* We want to minimize the number of XKB groups if we have ++ * duplicated layout+variant pairs. ++ * ++ * Also, if a layout doesn't have a variant we still have to ++ * include it in the variants string because the number of ++ * variants must agree with the number of layouts. For ++ * instance: ++ * ++ * layouts: "us,ru,us" ++ * variants: "dvorak,," ++ */ ++ if (layout_equal (latin_layout, latin_variant, locale_layout, locale_variant) || ++ layout_equal (latin_layout, latin_variant, layout, variant)) { ++ latin_layout = NULL; ++ latin_variant = NULL; ++ } ++ ++ if (layout_equal (locale_layout, locale_variant, layout, variant)) { ++ locale_layout = NULL; ++ locale_variant = NULL; ++ } ++ ++ free (xkb_var_defs->layout); ++ xkb_var_defs->layout = build_xkb_group_string (layout, locale_layout, latin_layout); ++ ++ free (xkb_var_defs->variant); ++ xkb_var_defs->variant = build_xkb_group_string (variant, locale_variant, latin_variant); ++} ++ ++static gchar * ++build_xkb_options_string (gchar **options) ++{ ++ gchar *string; ++ ++ if (*options) { ++ gint i; ++ gsize len; ++ gchar *ptr; ++ ++ /* First part, getting length */ ++ len = 1 + strlen (options[0]); ++ for (i = 1; options[i] != NULL; i++) ++ len += strlen (options[i]); ++ len += (i - 1); /* commas */ ++ ++ /* Second part, building string */ ++ string = malloc (len); ++ ptr = g_stpcpy (string, *options); ++ for (i = 1; options[i] != NULL; i++) { ++ ptr = g_stpcpy (ptr, ","); ++ ptr = g_stpcpy (ptr, options[i]); ++ } ++ } else { ++ string = malloc (1); ++ *string = '\0'; ++ } ++ ++ return string; ++} ++ ++static gchar ** ++append_options (gchar **a, ++ gchar **b) ++{ ++ gchar **c, **p; ++ ++ if (!a && !b) ++ return NULL; ++ else if (!a) ++ return g_strdupv (b); ++ else if (!b) ++ return g_strdupv (a); ++ ++ c = g_new0 (gchar *, g_strv_length (a) + g_strv_length (b) + 1); ++ p = c; ++ ++ while (*a) { ++ *p = g_strdup (*a); ++ p += 1; ++ a += 1; ++ } ++ while (*b) { ++ *p = g_strdup (*b); ++ p += 1; ++ b += 1; ++ } ++ ++ return c; ++} ++ ++static void ++add_xkb_options (CsdKeyboardManager *manager, ++ XkbRF_VarDefsRec *xkb_var_defs, ++ gchar **extra_options) ++{ ++ gchar **options; ++ gchar **settings_options; ++ ++ settings_options = g_settings_get_strv (manager->priv->input_sources_settings, ++ KEY_KEYBOARD_OPTIONS); ++ options = append_options (settings_options, extra_options); ++ g_strfreev (settings_options); ++ ++ free (xkb_var_defs->options); ++ xkb_var_defs->options = build_xkb_options_string (options); ++ ++ g_strfreev (options); ++} ++ ++static void ++apply_xkb_settings (CsdKeyboardManager *manager, ++ const gchar *layout, ++ const gchar *variant, ++ gchar **options) ++{ ++ XkbRF_RulesRec *xkb_rules; ++ XkbRF_VarDefsRec *xkb_var_defs; ++ gchar *rules_file_path; ++ ++ gnome_xkb_info_get_var_defs (&rules_file_path, &xkb_var_defs); ++ ++ add_xkb_options (manager, xkb_var_defs, options); ++ replace_layout_and_variant (manager, xkb_var_defs, layout, variant); ++ ++ gdk_error_trap_push (); ++ ++ xkb_rules = XkbRF_Load (rules_file_path, NULL, True, True); ++ if (xkb_rules) { ++ XkbComponentNamesRec *xkb_comp_names; ++ xkb_comp_names = g_new0 (XkbComponentNamesRec, 1); ++ ++ XkbRF_GetComponents (xkb_rules, xkb_var_defs, xkb_comp_names); ++ upload_xkb_description (rules_file_path, xkb_var_defs, xkb_comp_names); ++ ++ free_xkb_component_names (xkb_comp_names); ++ XkbRF_Free (xkb_rules, True); ++ } else { ++ g_warning ("Couldn't load XKB rules"); ++ } ++ ++ if (gdk_error_trap_pop ()) ++ g_warning ("Error loading XKB rules"); ++ ++ gnome_xkb_info_free_var_defs (xkb_var_defs); ++ g_free (rules_file_path); ++} ++ ++static void ++set_gtk_im_module (CsdKeyboardManager *manager, ++ const gchar *new_module) ++{ ++ CsdKeyboardManagerPrivate *priv = manager->priv; ++ gchar *current_module; ++ ++ current_module = g_settings_get_string (priv->interface_settings, ++ KEY_GTK_IM_MODULE); ++ if (!g_str_equal (current_module, new_module)) ++ g_settings_set_string (priv->interface_settings, ++ KEY_GTK_IM_MODULE, ++ new_module); ++ g_free (current_module); ++} ++ ++static gboolean ++apply_input_sources_settings (GSettings *settings, ++ gpointer keys, ++ gint n_keys, ++ CsdKeyboardManager *manager) ++{ ++ CsdKeyboardManagerPrivate *priv = manager->priv; ++ GVariant *sources; ++ guint current; ++ guint n_sources; ++ const gchar *type = NULL; ++ const gchar *id = NULL; ++ gchar *layout = NULL; ++ gchar *variant = NULL; ++ gchar **options = NULL; ++ ++ sources = g_settings_get_value (priv->input_sources_settings, KEY_INPUT_SOURCES); ++ current = g_settings_get_uint (priv->input_sources_settings, KEY_CURRENT_INPUT_SOURCE); ++ n_sources = g_variant_n_children (sources); ++ ++ if (n_sources < 1) ++ goto exit; ++ ++ if (current >= n_sources) { ++ g_settings_set_uint (priv->input_sources_settings, ++ KEY_CURRENT_INPUT_SOURCE, ++ n_sources - 1); ++ goto exit; ++ } ++ ++#ifdef HAVE_IBUS ++ maybe_start_ibus (manager, sources); ++#endif ++ ++ g_variant_get_child (sources, current, "(&s&s)", &type, &id); ++ ++ if (g_str_equal (type, INPUT_SOURCE_TYPE_XKB)) { ++ const gchar *l, *v; ++ gnome_xkb_info_get_layout_info (priv->xkb_info, id, NULL, NULL, &l, &v); ++ ++ layout = g_strdup (l); ++ variant = g_strdup (v); ++ ++ if (!layout || !layout[0]) { ++ g_warning ("Couldn't find XKB input source '%s'", id); ++ goto exit; ++ } ++ set_gtk_im_module (manager, GTK_IM_MODULE_SIMPLE); ++#ifdef HAVE_IBUS ++ set_ibus_xkb_engine (manager, id); ++#endif ++ } else if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS)) { ++#ifdef HAVE_IBUS ++ IBusEngineDesc *engine_desc = NULL; ++ ++ if (priv->session_is_fallback) ++ goto exit; ++ ++ if (priv->ibus_engines) ++ engine_desc = g_hash_table_lookup (priv->ibus_engines, id); ++ else ++ goto exit; /* we'll be called again when ibus is up and running */ ++ ++ if (engine_desc) { ++ const gchar *ibus_layout; ++ ibus_layout = ibus_engine_desc_get_layout (engine_desc); ++ ++ if (ibus_layout) { ++ layout = layout_from_ibus_layout (ibus_layout); ++ variant = variant_from_ibus_layout (ibus_layout); ++ options = options_from_ibus_layout (ibus_layout); ++ } ++ } else { ++ g_warning ("Couldn't find IBus input source '%s'", id); ++ goto exit; ++ } ++ ++ set_gtk_im_module (manager, GTK_IM_MODULE_IBUS); ++ set_ibus_engine (manager, id); ++#else ++ g_warning ("IBus input source type specified but IBus support was not compiled"); ++#endif ++ } else { ++ g_warning ("Unknown input source type '%s'", type); ++ } ++ ++ exit: ++ apply_xkb_settings (manager, layout, variant, options); ++ g_variant_unref (sources); ++ g_free (layout); ++ g_free (variant); ++ g_strfreev (options); ++ /* Prevent individual "changed" signal invocations since we ++ don't need them. */ ++ return TRUE; ++} ++ ++static void ++apply_bell (CsdKeyboardManager *manager) ++{ ++ GSettings *settings; + XKeyboardControl kbdcontrol; +- gboolean repeat; + gboolean click; +- guint interval; +- guint delay; +- int click_volume; + int bell_volume; + int bell_pitch; + int bell_duration; + CsdBellMode bell_mode; +- gboolean rnumlock; +- +- if (g_strcmp0 (key, KEY_NUMLOCK_STATE) == 0) +- return; ++ int click_volume; + +- repeat = g_settings_get_boolean (settings, KEY_REPEAT); ++ g_debug ("Applying the bell settings"); ++ settings = manager->priv->settings; + click = g_settings_get_boolean (settings, KEY_CLICK); +- interval = _csd_settings_get_uint (settings, KEY_INTERVAL); +- delay = _csd_settings_get_uint (settings, KEY_DELAY); + click_volume = g_settings_get_int (settings, KEY_CLICK_VOLUME); ++ + bell_pitch = g_settings_get_int (settings, KEY_BELL_PITCH); + bell_duration = g_settings_get_int (settings, KEY_BELL_DURATION); + + bell_mode = g_settings_get_enum (settings, KEY_BELL_MODE); + bell_volume = (bell_mode == CSD_BELL_MODE_ON) ? 50 : 0; + ++ /* as percentage from 0..100 inclusive */ ++ if (click_volume < 0) { ++ click_volume = 0; ++ } else if (click_volume > 100) { ++ click_volume = 100; ++ } ++ kbdcontrol.key_click_percent = click ? click_volume : 0; ++ kbdcontrol.bell_percent = bell_volume; ++ kbdcontrol.bell_pitch = bell_pitch; ++ kbdcontrol.bell_duration = bell_duration; ++ ++ gdk_error_trap_push (); ++ XChangeKeyboardControl (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), ++ KBKeyClickPercent | KBBellPercent | KBBellPitch | KBBellDuration, ++ &kbdcontrol); ++ ++ XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE); ++ gdk_error_trap_pop_ignored (); ++} ++ ++static void ++apply_numlock (CsdKeyboardManager *manager) ++{ ++ GSettings *settings; ++ gboolean rnumlock; ++ ++ g_debug ("Applying the num-lock settings"); ++ settings = manager->priv->settings; ++ rnumlock = g_settings_get_boolean (settings, KEY_REMEMBER_NUMLOCK_STATE); ++ manager->priv->old_state = g_settings_get_enum (manager->priv->settings, KEY_NUMLOCK_STATE); ++ ++ gdk_error_trap_push (); ++ if (rnumlock) { ++ g_debug ("Remember num-lock is set, so applying setting '%s'", ++ num_lock_state_to_string (manager->priv->old_state)); ++ numlock_set_xkb_state (manager->priv->old_state); ++ } ++ ++ XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE); ++ gdk_error_trap_pop_ignored (); ++} ++ ++static void ++apply_repeat (CsdKeyboardManager *manager) ++{ ++ GSettings *settings; ++ gboolean repeat; ++ guint interval; ++ guint delay; ++ ++ g_debug ("Applying the repeat settings"); ++ settings = manager->priv->settings; ++ repeat = g_settings_get_boolean (settings, KEY_REPEAT); ++ interval = g_settings_get_uint (settings, KEY_INTERVAL); ++ delay = g_settings_get_uint (settings, KEY_DELAY); ++ + gdk_error_trap_push (); + if (repeat) { + gboolean rate_set = FALSE; +@@ -243,124 +1249,319 @@ apply_settings (GSettings *sett + XAutoRepeatOff (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); + } + +- /* as percentage from 0..100 inclusive */ +- if (click_volume < 0) { +- click_volume = 0; +- } else if (click_volume > 100) { +- click_volume = 100; ++ XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE); ++ gdk_error_trap_pop_ignored (); ++} ++ ++static void ++apply_all_settings (CsdKeyboardManager *manager) ++{ ++ apply_repeat (manager); ++ apply_bell (manager); ++ apply_numlock (manager); ++} ++ ++static void ++set_input_sources_switcher (CsdKeyboardManager *manager, ++ gboolean state) ++{ ++ if (state) { ++ GError *error = NULL; ++ char *args[2]; ++ ++ if (manager->priv->input_sources_switcher_spawned) ++ set_input_sources_switcher (manager, FALSE); ++ ++ args[0] = LIBEXECDIR "/csd-input-sources-switcher"; ++ args[1] = NULL; ++ ++ g_spawn_async (NULL, args, NULL, ++ 0, NULL, NULL, ++ &manager->priv->input_sources_switcher_pid, &error); ++ ++ manager->priv->input_sources_switcher_spawned = (error == NULL); ++ ++ if (error) { ++ g_warning ("Couldn't spawn %s: %s", args[0], error->message); ++ g_error_free (error); ++ } ++ } else if (manager->priv->input_sources_switcher_spawned) { ++ kill (manager->priv->input_sources_switcher_pid, SIGHUP); ++ g_spawn_close_pid (manager->priv->input_sources_switcher_pid); ++ manager->priv->input_sources_switcher_spawned = FALSE; + } +- kbdcontrol.key_click_percent = click ? click_volume : 0; +- kbdcontrol.bell_percent = bell_volume; +- kbdcontrol.bell_pitch = bell_pitch; +- kbdcontrol.bell_duration = bell_duration; +- XChangeKeyboardControl (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), +- KBKeyClickPercent | KBBellPercent | KBBellPitch | KBBellDuration, +- &kbdcontrol); ++} + +- if (g_strcmp0 (key, "remember-numlock-state") == 0 || key == NULL) { +- rnumlock = g_settings_get_boolean (settings, "remember-numlock-state"); ++static gboolean ++enable_switcher (CsdKeyboardManager *manager) ++{ ++ CsdInputSourcesSwitcher switcher; + +- manager->priv->old_state = g_settings_get_enum (manager->priv->settings, KEY_NUMLOCK_STATE); ++ switcher = g_settings_get_enum (manager->priv->settings, KEY_SWITCHER); + +- if (manager->priv->have_xkb && rnumlock) +- numlock_set_xkb_state (manager->priv->old_state); ++ return switcher != CSD_INPUT_SOURCES_SWITCHER_OFF; ++} ++ ++static void ++settings_changed (GSettings *settings, ++ const char *key, ++ CsdKeyboardManager *manager) ++{ ++ if (g_strcmp0 (key, KEY_CLICK) == 0|| ++ g_strcmp0 (key, KEY_CLICK_VOLUME) == 0 || ++ g_strcmp0 (key, KEY_BELL_PITCH) == 0 || ++ g_strcmp0 (key, KEY_BELL_DURATION) == 0 || ++ g_strcmp0 (key, KEY_BELL_MODE) == 0) { ++ g_debug ("Bell setting '%s' changed, applying bell settings", key); ++ apply_bell (manager); ++ } else if (g_strcmp0 (key, KEY_REMEMBER_NUMLOCK_STATE) == 0) { ++ g_debug ("Remember Num-Lock state '%s' changed, applying num-lock settings", key); ++ apply_numlock (manager); ++ } else if (g_strcmp0 (key, KEY_NUMLOCK_STATE) == 0) { ++ g_debug ("Num-Lock state '%s' changed, will apply at next startup", key); ++ } else if (g_strcmp0 (key, KEY_REPEAT) == 0 || ++ g_strcmp0 (key, KEY_INTERVAL) == 0 || ++ g_strcmp0 (key, KEY_DELAY) == 0) { ++ g_debug ("Key repeat setting '%s' changed, applying key repeat settings", key); ++ apply_repeat (manager); ++ } else if (g_strcmp0 (key, KEY_SWITCHER) == 0) { ++ set_input_sources_switcher (manager, enable_switcher (manager)); ++ } else { ++ g_warning ("Unhandled settings change, key '%s'", key); + } + +- XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE); +- gdk_error_trap_pop_ignored (); + } + +-void +-csd_keyboard_manager_apply_settings (CsdKeyboardManager *manager) ++static void ++device_added_cb (GdkDeviceManager *device_manager, ++ GdkDevice *device, ++ CsdKeyboardManager *manager) + { +- apply_settings (manager->priv->settings, NULL, manager); ++ GdkInputSource source; ++ ++ source = gdk_device_get_source (device); ++ if (source == GDK_SOURCE_KEYBOARD) { ++ g_debug ("New keyboard plugged in, applying all settings"); ++ apply_all_settings (manager); ++ apply_input_sources_settings (manager->priv->input_sources_settings, NULL, 0, manager); ++ run_custom_command (device, COMMAND_DEVICE_ADDED); ++ } + } + + static void +-apply_libgnomekbd_settings (GSettings *settings, +- const char *key, +- CsdKeyboardManager *manager) ++device_removed_cb (GdkDeviceManager *device_manager, ++ GdkDevice *device, ++ CsdKeyboardManager *manager) + { +- gchar **layouts; ++ GdkInputSource source; + +- layouts = g_settings_get_strv (settings, LIBGNOMEKBD_KEY_LAYOUTS); ++ source = gdk_device_get_source (device); ++ if (source == GDK_SOURCE_KEYBOARD) { ++ run_custom_command (device, COMMAND_DEVICE_REMOVED); ++ } ++} + +- /* Get accounts daemon */ +- GDBusProxy *proxy = NULL; +- GDBusProxy *user = NULL; +- GVariant *variant = NULL; +- GError *error = NULL; +- gchar *object_path = NULL; ++static void ++set_devicepresence_handler (CsdKeyboardManager *manager) ++{ ++ GdkDeviceManager *device_manager; + +- proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, +- G_DBUS_PROXY_FLAGS_NONE, +- NULL, +- "org.freedesktop.Accounts", +- "/org/freedesktop/Accounts", +- "org.freedesktop.Accounts", +- NULL, +- &error); ++ device_manager = gdk_display_get_device_manager (gdk_display_get_default ()); + +- if (proxy == NULL) { +- g_warning ("Failed to contact accounts service: %s", error->message); +- g_error_free (error); +- goto bail; ++ manager->priv->device_added_id = g_signal_connect (G_OBJECT (device_manager), "device-added", ++ G_CALLBACK (device_added_cb), manager); ++ manager->priv->device_removed_id = g_signal_connect (G_OBJECT (device_manager), "device-removed", ++ G_CALLBACK (device_removed_cb), manager); ++ manager->priv->device_manager = device_manager; ++} ++ ++static void ++create_sources_from_current_xkb_config (GSettings *settings) ++{ ++ GVariantBuilder builder; ++ XkbRF_VarDefsRec *xkb_var_defs; ++ gchar *tmp; ++ gchar **layouts = NULL; ++ gchar **variants = NULL; ++ guint i, n; ++ ++ gnome_xkb_info_get_var_defs (&tmp, &xkb_var_defs); ++ g_free (tmp); ++ ++ if (xkb_var_defs->layout) ++ layouts = g_strsplit (xkb_var_defs->layout, ",", 0); ++ if (xkb_var_defs->variant) ++ variants = g_strsplit (xkb_var_defs->variant, ",", 0); ++ ++ gnome_xkb_info_free_var_defs (xkb_var_defs); ++ ++ if (!layouts) ++ goto out; ++ ++ if (variants && variants[0]) ++ n = MIN (g_strv_length (layouts), g_strv_length (variants)); ++ else ++ n = g_strv_length (layouts); ++ ++ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ss)")); ++ for (i = 0; i < n && layouts[i][0]; ++i) { ++ if (variants && variants[i] && variants[i][0]) ++ tmp = g_strdup_printf ("%s+%s", layouts[i], variants[i]); ++ else ++ tmp = g_strdup (layouts[i]); ++ ++ g_variant_builder_add (&builder, "(ss)", INPUT_SOURCE_TYPE_XKB, tmp); ++ g_free (tmp); + } ++ g_settings_set_value (settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder)); ++out: ++ g_strfreev (layouts); ++ g_strfreev (variants); ++} + +- variant = g_dbus_proxy_call_sync (proxy, +- "FindUserByName", +- g_variant_new ("(s)", g_get_user_name ()), +- G_DBUS_CALL_FLAGS_NONE, +- -1, +- NULL, +- &error); ++static void ++convert_libgnomekbd_options (GSettings *settings) ++{ ++ GPtrArray *opt_array; ++ GSettings *libgnomekbd_settings; ++ gchar **options, **o; + +- if (variant == NULL) { +- g_warning ("Could not contact accounts service to look up '%s': %s", +- g_get_user_name (), error->message); +- g_error_free (error); +- goto bail; ++ if (!schema_is_installed ("org.gnome.libgnomekbd.keyboard")) ++ return; ++ ++ opt_array = g_ptr_array_new_with_free_func (g_free); ++ ++ libgnomekbd_settings = g_settings_new ("org.gnome.libgnomekbd.keyboard"); ++ options = g_settings_get_strv (libgnomekbd_settings, "options"); ++ ++ for (o = options; *o; ++o) { ++ gchar **strv; ++ ++ strv = g_strsplit (*o, "\t", 2); ++ if (strv[0] && strv[1]) { ++ /* We don't want the group switcher because ++ * it's incompatible with the way we use XKB ++ * groups. */ ++ if (!g_str_has_prefix (strv[1], "grp:")) ++ g_ptr_array_add (opt_array, g_strdup (strv[1])); ++ } ++ g_strfreev (strv); + } ++ g_ptr_array_add (opt_array, NULL); + +- g_variant_get (variant, "(o)", &object_path); +- user = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, +- G_DBUS_PROXY_FLAGS_NONE, +- NULL, +- "org.freedesktop.Accounts", +- object_path, +- "org.freedesktop.Accounts.User", +- NULL, +- &error); +- g_free (object_path); ++ g_settings_set_strv (settings, KEY_KEYBOARD_OPTIONS, (const gchar * const*) opt_array->pdata); + +- if (user == NULL) { +- g_warning ("Could not create proxy for user '%s': %s", +- g_variant_get_string (variant, NULL), error->message); +- g_error_free (error); +- goto bail; ++ g_strfreev (options); ++ g_object_unref (libgnomekbd_settings); ++ g_ptr_array_free (opt_array, TRUE); ++} ++ ++static void ++convert_libgnomekbd_layouts (GSettings *settings) ++{ ++ GVariantBuilder builder; ++ GSettings *libgnomekbd_settings; ++ gchar **layouts, **l; ++ ++ if (!schema_is_installed ("org.gnome.libgnomekbd.keyboard")) ++ return; ++ ++ init_builder_with_sources (&builder, settings); ++ ++ libgnomekbd_settings = g_settings_new ("org.gnome.libgnomekbd.keyboard"); ++ layouts = g_settings_get_strv (libgnomekbd_settings, "layouts"); ++ ++ for (l = layouts; *l; ++l) { ++ gchar *id; ++ gchar **strv; ++ ++ strv = g_strsplit (*l, "\t", 2); ++ if (strv[0] && !strv[1]) ++ id = g_strdup (strv[0]); ++ else if (strv[0] && strv[1]) ++ id = g_strdup_printf ("%s+%s", strv[0], strv[1]); ++ else ++ id = NULL; ++ ++ if (id) ++ g_variant_builder_add (&builder, "(ss)", INPUT_SOURCE_TYPE_XKB, id); ++ ++ g_free (id); ++ g_strfreev (strv); + } +- g_variant_unref (variant); + +- variant = g_dbus_proxy_call_sync (user, +- "SetXKeyboardLayouts", +- g_variant_new ("(^as)", layouts), +- G_DBUS_CALL_FLAGS_NONE, +- -1, +- NULL, +- &error); ++ g_settings_set_value (settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder)); ++ ++ g_strfreev (layouts); ++ g_object_unref (libgnomekbd_settings); ++} + +- if (variant == NULL) { +- g_warning ("Failed to set the keyboard layouts: %s", error->message); ++static void ++maybe_convert_old_settings (GSettings *settings) ++{ ++ GVariant *sources; ++ gchar **options; ++ gchar *stamp_dir_path = NULL; ++ gchar *stamp_file_path = NULL; ++ GError *error = NULL; ++ ++ stamp_dir_path = g_build_filename (g_get_user_data_dir (), PACKAGE_NAME, NULL); ++ if (g_mkdir_with_parents (stamp_dir_path, 0755)) { ++ g_warning ("Failed to create directory %s: %s", stamp_dir_path, g_strerror (errno)); ++ goto out; ++ } ++ ++ stamp_file_path = g_build_filename (stamp_dir_path, "input-sources-converted", NULL); ++ if (g_file_test (stamp_file_path, G_FILE_TEST_EXISTS)) ++ goto out; ++ ++ sources = g_settings_get_value (settings, KEY_INPUT_SOURCES); ++ if (g_variant_n_children (sources) < 1) { ++ convert_libgnomekbd_layouts (settings); ++#ifdef HAVE_IBUS ++ convert_ibus (settings); ++#endif ++ } ++ g_variant_unref (sources); ++ ++ options = g_settings_get_strv (settings, KEY_KEYBOARD_OPTIONS); ++ if (g_strv_length (options) < 1) ++ convert_libgnomekbd_options (settings); ++ g_strfreev (options); ++ ++ if (!g_file_set_contents (stamp_file_path, "", 0, &error)) { ++ g_warning ("%s", error->message); + g_error_free (error); +- goto bail; + } ++out: ++ g_free (stamp_file_path); ++ g_free (stamp_dir_path); ++} + +-bail: +- if (proxy != NULL) +- g_object_unref (proxy); +- if (variant != NULL) +- g_variant_unref (variant); +- g_strfreev (layouts); ++static void ++maybe_create_input_sources (CsdKeyboardManager *manager) ++{ ++ GSettings *settings; ++ GVariant *sources; ++ ++ settings = manager->priv->input_sources_settings; ++ ++ if (g_getenv ("RUNNING_UNDER_GDM")) { ++ create_sources_from_current_xkb_config (settings); ++ return; ++ } ++ ++ maybe_convert_old_settings (settings); ++ ++ /* if we still don't have anything do some educated guesses */ ++ sources = g_settings_get_value (settings, KEY_INPUT_SOURCES); ++ if (g_variant_n_children (sources) < 1) { ++ create_sources_from_current_xkb_config (settings); ++#ifdef HAVE_IBUS ++ add_ibus_sources_from_locale (settings); ++#endif ++ } ++ g_variant_unref (sources); + } + + static gboolean +@@ -370,26 +1571,41 @@ start_keyboard_idle_cb (CsdKeyboardManag + + g_debug ("Starting keyboard manager"); + +- manager->priv->have_xkb = 0; + manager->priv->settings = g_settings_new (CSD_KEYBOARD_DIR); +- manager->priv->libgnomekbd_settings = g_settings_new (LIBGNOMEKBD_KEYBOARD_DIR); + +- /* Essential - xkb initialization should happen before */ +- csd_keyboard_xkb_init (manager); ++ xkb_init (manager); + +- numlock_xkb_init (manager); ++ set_devicepresence_handler (manager); + ++ manager->priv->input_sources_settings = g_settings_new (GNOME_DESKTOP_INPUT_SOURCES_DIR); ++ manager->priv->interface_settings = g_settings_new (GNOME_DESKTOP_INTERFACE_DIR); ++ manager->priv->xkb_info = gnome_xkb_info_new (); ++ ++ maybe_create_input_sources (manager); ++ ++#ifdef HAVE_IBUS ++ /* We don't want to touch IBus until we are sure this isn't a ++ fallback session. */ ++ manager->priv->session_is_fallback = TRUE; ++ manager->priv->ibus_cancellable = g_cancellable_new (); ++ g_bus_get (G_BUS_TYPE_SESSION, ++ manager->priv->ibus_cancellable, ++ (GAsyncReadyCallback)got_bus, ++ manager); ++#else ++ apply_input_sources_settings (manager->priv->input_sources_settings, NULL, 0, manager); ++#endif + /* apply current settings before we install the callback */ +- csd_keyboard_manager_apply_settings (manager); ++ g_debug ("Started the keyboard plugin, applying all settings"); ++ apply_all_settings (manager); + + g_signal_connect (G_OBJECT (manager->priv->settings), "changed", +- G_CALLBACK (apply_settings), manager); +- +- apply_libgnomekbd_settings (manager->priv->libgnomekbd_settings, NULL, manager); +- g_signal_connect (G_OBJECT (manager->priv->libgnomekbd_settings), "changed", +- G_CALLBACK (apply_libgnomekbd_settings), manager); ++ G_CALLBACK (settings_changed), manager); ++ g_signal_connect (G_OBJECT (manager->priv->input_sources_settings), "change-event", ++ G_CALLBACK (apply_input_sources_settings), manager); + +- numlock_install_xkb_callback (manager); ++ install_xkb_filter (manager); ++ set_input_sources_switcher (manager, enable_switcher (manager)); + + cinnamon_settings_profile_end (NULL); + +@@ -404,6 +1620,11 @@ csd_keyboard_manager_start (CsdKeyboardM + { + cinnamon_settings_profile_start (NULL); + ++ if (check_xkb_extension (manager) == FALSE) { ++ g_debug ("XKB is not supported, not applying any settings"); ++ return TRUE; ++ } ++ + manager->priv->start_idle_id = g_idle_add ((GSourceFunc) start_keyboard_idle_cb, manager); + + cinnamon_settings_profile_end (NULL); +@@ -418,37 +1639,24 @@ csd_keyboard_manager_stop (CsdKeyboardMa + + g_debug ("Stopping keyboard manager"); + +- if (p->settings != NULL) { +- g_object_unref (p->settings); +- p->settings = NULL; +- } ++ g_clear_object (&p->settings); ++ g_clear_object (&p->input_sources_settings); ++ g_clear_object (&p->interface_settings); ++ g_clear_object (&p->xkb_info); + +- if (p->libgnomekbd_settings != NULL) { +- g_object_unref (p->libgnomekbd_settings); +- p->libgnomekbd_settings = NULL; +- } ++#ifdef HAVE_IBUS ++ clear_ibus (manager); ++#endif + +- if (p->have_xkb) { +- gdk_window_remove_filter (NULL, +- numlock_xkb_callback, +- manager); ++ if (p->device_manager != NULL) { ++ g_signal_handler_disconnect (p->device_manager, p->device_added_id); ++ g_signal_handler_disconnect (p->device_manager, p->device_removed_id); ++ p->device_manager = NULL; + } + +- csd_keyboard_xkb_shutdown (); +-} +- +-static GObject * +-csd_keyboard_manager_constructor (GType type, +- guint n_construct_properties, +- GObjectConstructParam *construct_properties) +-{ +- CsdKeyboardManager *keyboard_manager; +- +- keyboard_manager = CSD_KEYBOARD_MANAGER (G_OBJECT_CLASS (csd_keyboard_manager_parent_class)->constructor (type, +- n_construct_properties, +- construct_properties)); ++ remove_xkb_filter (manager); + +- return G_OBJECT (keyboard_manager); ++ set_input_sources_switcher (manager, FALSE); + } + + static void +@@ -456,7 +1664,6 @@ csd_keyboard_manager_class_init (CsdKeyb + { + GObjectClass *object_class = G_OBJECT_CLASS (klass); + +- object_class->constructor = csd_keyboard_manager_constructor; + object_class->finalize = csd_keyboard_manager_finalize; + + g_type_class_add_private (klass, sizeof (CsdKeyboardManagerPrivate)); +diff -uNrp a/plugins/keyboard/csd-keyboard-manager.h b/plugins/keyboard/csd-keyboard-manager.h +--- a/plugins/keyboard/csd-keyboard-manager.h 2013-08-24 18:04:31.000000000 +0100 ++++ b/plugins/keyboard/csd-keyboard-manager.h 2013-08-25 16:36:02.000000000 +0100 +@@ -51,7 +51,6 @@ CsdKeyboardManager * csd_keyboard_ + gboolean csd_keyboard_manager_start (CsdKeyboardManager *manager, + GError **error); + void csd_keyboard_manager_stop (CsdKeyboardManager *manager); +-void csd_keyboard_manager_apply_settings (CsdKeyboardManager *manager); + + G_END_DECLS + +diff -uNrp a/plugins/keyboard/csd-keyboard-plugin.h b/plugins/keyboard/csd-keyboard-plugin.h +--- a/plugins/keyboard/csd-keyboard-plugin.h 2013-08-24 18:04:31.000000000 +0100 ++++ b/plugins/keyboard/csd-keyboard-plugin.h 2013-08-25 16:36:02.000000000 +0100 +@@ -52,7 +52,7 @@ typedef struct + GType csd_keyboard_plugin_get_type (void) G_GNUC_CONST; + + /* All the plugins must implement this function */ +-G_MODULE_EXPORT GType register_cinnamon_settings_plugin (GTypeModule *module); ++G_MODULE_EXPORT GType register_gnome_settings_plugin (GTypeModule *module); + + G_END_DECLS + +diff -uNrp a/plugins/keyboard/csd-keyboard-xkb.c b/plugins/keyboard/csd-keyboard-xkb.c +--- a/plugins/keyboard/csd-keyboard-xkb.c 2013-08-24 18:04:31.000000000 +0100 ++++ b/plugins/keyboard/csd-keyboard-xkb.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,579 +0,0 @@ +-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +- * +- * Copyright (C) 2001 Udaltsoft +- * +- * Written by Sergey V. Oudaltsov <svu@users.sourceforge.net> +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2, or (at your option) +- * any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA +- * 02110-1335, USA. +- */ +- +-#include "config.h" +- +-#include <string.h> +-#include <time.h> +- +-#include <glib/gi18n.h> +-#include <gdk/gdk.h> +-#include <gdk/gdkx.h> +-#include <gtk/gtk.h> +- +-#include <libgnomekbd/gkbd-status.h> +- +-#include <libgnomekbd/gkbd-keyboard-drawing.h> +-#include <libgnomekbd/gkbd-desktop-config.h> +-#include <libgnomekbd/gkbd-indicator-config.h> +-#include <libgnomekbd/gkbd-keyboard-config.h> +-#include <libgnomekbd/gkbd-util.h> +- +-#include "csd-keyboard-xkb.h" +-#include "delayed-dialog.h" +-#include "cinnamon-settings-profile.h" +- +-#define SETTINGS_KEYBOARD_DIR "org.cinnamon.settings-daemon.plugins.keyboard" +- +-static CsdKeyboardManager *manager = NULL; +- +-static XklEngine *xkl_engine; +-static XklConfigRegistry *xkl_registry = NULL; +- +-static GkbdDesktopConfig current_config; +-static GkbdKeyboardConfig current_kbd_config; +- +-/* never terminated */ +-static GkbdKeyboardConfig initial_sys_kbd_config; +- +-static gboolean inited_ok = FALSE; +- +-static GSettings *settings_desktop = NULL; +-static GSettings *settings_keyboard = NULL; +- +-static PostActivationCallback pa_callback = NULL; +-static void *pa_callback_user_data = NULL; +- +-static GtkStatusIcon *icon = NULL; +- +-static GHashTable *preview_dialogs = NULL; +- +-static void +-activation_error (void) +-{ +- char const *vendor; +- GtkWidget *dialog; +- +- vendor = +- ServerVendor (GDK_DISPLAY_XDISPLAY +- (gdk_display_get_default ())); +- +- /* VNC viewers will not work, do not barrage them with warnings */ +- if (NULL != vendor && NULL != strstr (vendor, "VNC")) +- return; +- +- dialog = gtk_message_dialog_new_with_markup (NULL, +- 0, +- GTK_MESSAGE_ERROR, +- GTK_BUTTONS_CLOSE, +- _ +- ("Error activating XKB configuration.\n" +- "There can be various reasons for that.\n\n" +- "If you report this situation as a bug, include the results of\n" +- " • <b>%s</b>\n" +- " • <b>%s</b>\n" +- " • <b>%s</b>\n" +- " • <b>%s</b>"), +- "xprop -root | grep XKB", +- "gsettings get org.gnome.libgnomekbd.keyboard model", +- "gsettings get org.gnome.libgnomekbd.keyboard layouts", +- "gsettings get org.gnome.libgnomekbd.keyboard options"); +- g_signal_connect (dialog, "response", +- G_CALLBACK (gtk_widget_destroy), NULL); +- csd_delayed_show_dialog (dialog); +-} +- +-static gboolean +-ensure_xkl_registry (void) +-{ +- if (!xkl_registry) { +- xkl_registry = +- xkl_config_registry_get_instance (xkl_engine); +- /* load all materials, unconditionally! */ +- if (!xkl_config_registry_load (xkl_registry, TRUE)) { +- g_object_unref (xkl_registry); +- xkl_registry = NULL; +- return FALSE; +- } +- } +- +- return TRUE; +-} +- +-static void +-apply_desktop_settings (void) +-{ +- if (!inited_ok) +- return; +- +- csd_keyboard_manager_apply_settings (manager); +- gkbd_desktop_config_load (¤t_config); +- /* again, probably it would be nice to compare things +- before activating them */ +- gkbd_desktop_config_activate (¤t_config); +-} +- +-static void +-popup_menu_launch_capplet () +-{ +- GAppInfo *info; +- GdkAppLaunchContext *ctx; +- GError *error = NULL; +- +- info = +- g_app_info_create_from_commandline +- ("cinnamon-settings region", NULL, 0, &error); +- +- if (info != NULL) { +- ctx = +- gdk_display_get_app_launch_context +- (gdk_display_get_default ()); +- +- if (g_app_info_launch (info, NULL, +- G_APP_LAUNCH_CONTEXT (ctx), &error) == FALSE) { +- g_warning +- ("Could not execute keyboard properties capplet: [%s]\n", +- error->message); +- g_error_free (error); +- } +- +- g_object_unref (info); +- g_object_unref (ctx); +- } +- +-} +- +-static void +-show_layout_destroy (GtkWidget * dialog, gint group) +-{ +- g_hash_table_remove (preview_dialogs, GINT_TO_POINTER (group)); +-} +- +-static void +-popup_menu_show_layout () +-{ +- GtkWidget *dialog; +- XklEngine *engine = +- xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY +- (gdk_display_get_default ())); +- XklState *xkl_state = xkl_engine_get_current_state (engine); +- +- gchar **group_names = gkbd_status_get_group_names (); +- +- gpointer p = g_hash_table_lookup (preview_dialogs, +- GINT_TO_POINTER +- (xkl_state->group)); +- +- if (xkl_state->group < 0 +- || xkl_state->group >= g_strv_length (group_names)) { +- return; +- } +- +- if (p != NULL) { +- /* existing window */ +- gtk_window_present (GTK_WINDOW (p)); +- return; +- } +- +- if (!ensure_xkl_registry ()) +- return; +- +- dialog = gkbd_keyboard_drawing_dialog_new (); +- gkbd_keyboard_drawing_dialog_set_group (dialog, xkl_registry, xkl_state->group); +- +- g_signal_connect (dialog, "destroy", +- G_CALLBACK (show_layout_destroy), +- GINT_TO_POINTER (xkl_state->group)); +- g_hash_table_insert (preview_dialogs, +- GINT_TO_POINTER (xkl_state->group), dialog); +- gtk_widget_show_all (dialog); +-} +- +-static void +-popup_menu_set_group (gint group_number, gboolean only_menu) +-{ +- +- XklEngine *engine = gkbd_status_get_xkl_engine (); +- +- XklState *st = xkl_engine_get_current_state(engine); +- Window cur; +- st->group = group_number; +- xkl_engine_allow_one_switch_to_secondary_group (engine); +- cur = xkl_engine_get_current_window (engine); +- if (cur != (Window) NULL) { +- xkl_debug (150, "Enforcing the state %d for window %lx\n", +- st->group, cur); +- +- xkl_engine_save_state (engine, +- xkl_engine_get_current_window +- (engine), st); +-/* XSetInputFocus( GDK_DISPLAY(), cur, RevertToNone, CurrentTime );*/ +- } else { +- xkl_debug (150, +- "??? Enforcing the state %d for unknown window\n", +- st->group); +- /* strange situation - bad things can happen */ +- } +- if (!only_menu) +- xkl_engine_lock_group (engine, st->group); +-} +- +-static void +-popup_menu_set_group_cb (GtkMenuItem * item, gpointer param) +-{ +- gint group_number = GPOINTER_TO_INT (param); +- +- popup_menu_set_group(group_number, FALSE); +-} +- +- +-static GtkMenu * +-create_status_menu (void) +-{ +- GtkMenu *popup_menu = GTK_MENU (gtk_menu_new ()); +- int i = 0; +- +- GtkMenu *groups_menu = GTK_MENU (gtk_menu_new ()); +- gchar **current_name = gkbd_status_get_group_names (); +- +- GtkWidget *item = gtk_menu_item_new_with_mnemonic (_("_Layouts")); +- gtk_widget_show (item); +- gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item); +- gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), +- GTK_WIDGET (groups_menu)); +- +- item = gtk_menu_item_new_with_mnemonic (_("Show _Keyboard Layout...")); +- gtk_widget_show (item); +- g_signal_connect (item, "activate", popup_menu_show_layout, NULL); +- gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item); +- +- /* translators note: +- * This is the name of the cinnamon-settings "region" panel */ +- item = gtk_menu_item_new_with_mnemonic (_("Region and Language Settings")); +- gtk_widget_show (item); +- g_signal_connect (item, "activate", popup_menu_launch_capplet, NULL); +- gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item); +- +- for (i = 0; current_name && *current_name; i++, current_name++) { +- +- gchar *image_file = gkbd_status_get_image_filename (i); +- +- if (image_file == NULL) { +- item = +- gtk_menu_item_new_with_label (*current_name); +- } else { +- GdkPixbuf *pixbuf = +- gdk_pixbuf_new_from_file_at_size (image_file, +- 24, 24, +- NULL); +- GtkWidget *img = +- gtk_image_new_from_pixbuf (pixbuf); +- item = +- gtk_image_menu_item_new_with_label +- (*current_name); +- gtk_widget_show (img); +- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM +- (item), img); +- gtk_image_menu_item_set_always_show_image +- (GTK_IMAGE_MENU_ITEM (item), TRUE); +- g_free (image_file); +- } +- gtk_widget_show (item); +- gtk_menu_shell_append (GTK_MENU_SHELL (groups_menu), item); +- g_signal_connect (item, "activate", +- G_CALLBACK (popup_menu_set_group_cb), +- GINT_TO_POINTER (i)); +- } +- +- return popup_menu; +-} +- +-static void +-status_icon_popup_menu_cb (GtkStatusIcon * icon, guint button, guint time) +-{ +- GtkMenu *popup_menu = create_status_menu (); +- +- gtk_menu_popup (popup_menu, NULL, NULL, +- gtk_status_icon_position_menu, +- (gpointer) icon, button, time); +-} +- +-static void +-show_hide_icon () +-{ +- if (g_strv_length (current_kbd_config.layouts_variants) > 1) { +- if (icon == NULL) { +- xkl_debug (150, "Creating keyboard status icon\n"); +- icon = gkbd_status_new (); +- g_signal_connect (icon, "popup-menu", +- G_CALLBACK +- (status_icon_popup_menu_cb), +- NULL); +- +- } +- } else { +- if (icon != NULL) { +- xkl_debug (150, "Destroying icon\n"); +- g_object_unref (icon); +- icon = NULL; +- } +- } +-} +- +-static gboolean +-try_activating_xkb_config_if_new (GkbdKeyboardConfig * +- current_sys_kbd_config) +-{ +- /* Activate - only if different! */ +- if (!gkbd_keyboard_config_equals +- (¤t_kbd_config, current_sys_kbd_config)) { +- if (gkbd_keyboard_config_activate (¤t_kbd_config)) { +- if (pa_callback != NULL) { +- (*pa_callback) (pa_callback_user_data); +- return TRUE; +- } +- } else { +- return FALSE; +- } +- } +- return TRUE; +-} +- +-static gboolean +-filter_xkb_config (void) +-{ +- XklConfigItem *item; +- gchar *lname; +- gchar *vname; +- gchar **lv; +- gboolean any_change = FALSE; +- +- xkl_debug (100, "Filtering configuration against the registry\n"); +- if (!ensure_xkl_registry ()) +- return FALSE; +- +- lv = current_kbd_config.layouts_variants; +- item = xkl_config_item_new (); +- while (*lv) { +- xkl_debug (100, "Checking [%s]\n", *lv); +- if (gkbd_keyboard_config_split_items (*lv, &lname, &vname)) { +- gboolean should_be_dropped = FALSE; +- g_snprintf (item->name, sizeof (item->name), "%s", +- lname); +- if (!xkl_config_registry_find_layout +- (xkl_registry, item)) { +- xkl_debug (100, "Bad layout [%s]\n", +- lname); +- should_be_dropped = TRUE; +- } else if (vname) { +- g_snprintf (item->name, +- sizeof (item->name), "%s", +- vname); +- if (!xkl_config_registry_find_variant +- (xkl_registry, lname, item)) { +- xkl_debug (100, +- "Bad variant [%s(%s)]\n", +- lname, vname); +- should_be_dropped = TRUE; +- } +- } +- if (should_be_dropped) { +- gkbd_strv_behead (lv); +- any_change = TRUE; +- continue; +- } +- } +- lv++; +- } +- g_object_unref (item); +- return any_change; +-} +- +-static void +-apply_xkb_settings (void) +-{ +- GkbdKeyboardConfig current_sys_kbd_config; +- +- if (!inited_ok) +- return; +- +- gkbd_keyboard_config_init (¤t_sys_kbd_config, xkl_engine); +- +- gkbd_keyboard_config_load (¤t_kbd_config, +- &initial_sys_kbd_config); +- +- gkbd_keyboard_config_load_from_x_current (¤t_sys_kbd_config, +- NULL); +- +- if (!try_activating_xkb_config_if_new (¤t_sys_kbd_config)) { +- if (filter_xkb_config ()) { +- if (!try_activating_xkb_config_if_new +- (¤t_sys_kbd_config)) { +- g_warning +- ("Could not activate the filtered XKB configuration"); +- activation_error (); +- } +- } else { +- g_warning +- ("Could not activate the XKB configuration"); +- activation_error (); +- } +- } else +- xkl_debug (100, +- "Actual KBD configuration was not changed: redundant notification\n"); +- +- gkbd_keyboard_config_term (¤t_sys_kbd_config); +- show_hide_icon (); +-} +- +-static void +-csd_keyboard_xkb_analyze_sysconfig (void) +-{ +- if (!inited_ok) +- return; +- +- gkbd_keyboard_config_init (&initial_sys_kbd_config, xkl_engine); +- gkbd_keyboard_config_load_from_x_initial (&initial_sys_kbd_config, +- NULL); +-} +- +-void +-csd_keyboard_xkb_set_post_activation_callback (PostActivationCallback fun, +- void *user_data) +-{ +- pa_callback = fun; +- pa_callback_user_data = user_data; +-} +- +-static GdkFilterReturn +-csd_keyboard_xkb_evt_filter (GdkXEvent * xev, GdkEvent * event) +-{ +- XEvent *xevent = (XEvent *) xev; +- xkl_engine_filter_events (xkl_engine, xevent); +- return GDK_FILTER_CONTINUE; +-} +- +-/* When new Keyboard is plugged in - reload the settings */ +-static void +-csd_keyboard_new_device (XklEngine * engine) +-{ +- apply_desktop_settings (); +- apply_xkb_settings (); +-} +- +-void +-csd_keyboard_xkb_init (CsdKeyboardManager * kbd_manager) +-{ +- Display *display = +- GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); +- cinnamon_settings_profile_start (NULL); +- +- gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (), +- DATADIR G_DIR_SEPARATOR_S +- "icons"); +- +- manager = kbd_manager; +- cinnamon_settings_profile_start ("xkl_engine_get_instance"); +- xkl_engine = xkl_engine_get_instance (display); +- cinnamon_settings_profile_end ("xkl_engine_get_instance"); +- if (xkl_engine) { +- inited_ok = TRUE; +- +- gkbd_desktop_config_init (¤t_config, xkl_engine); +- gkbd_keyboard_config_init (¤t_kbd_config, +- xkl_engine); +- xkl_engine_backup_names_prop (xkl_engine); +- csd_keyboard_xkb_analyze_sysconfig (); +- +- settings_desktop = g_settings_new (GKBD_DESKTOP_SCHEMA); +- settings_keyboard = g_settings_new (GKBD_KEYBOARD_SCHEMA); +- g_signal_connect (settings_desktop, "changed", +- (GCallback) apply_desktop_settings, +- NULL); +- g_signal_connect (settings_keyboard, "changed", +- (GCallback) apply_xkb_settings, NULL); +- +- gdk_window_add_filter (NULL, (GdkFilterFunc) +- csd_keyboard_xkb_evt_filter, NULL); +- +- if (xkl_engine_get_features (xkl_engine) & +- XKLF_DEVICE_DISCOVERY) +- g_signal_connect (xkl_engine, "X-new-device", +- G_CALLBACK +- (csd_keyboard_new_device), NULL); +- +- cinnamon_settings_profile_start ("xkl_engine_start_listen"); +- xkl_engine_start_listen (xkl_engine, +- XKLL_MANAGE_LAYOUTS | +- XKLL_MANAGE_WINDOW_STATES); +- cinnamon_settings_profile_end ("xkl_engine_start_listen"); +- +- cinnamon_settings_profile_start ("apply_desktop_settings"); +- apply_desktop_settings (); +- cinnamon_settings_profile_end ("apply_desktop_settings"); +- cinnamon_settings_profile_start ("apply_xkb_settings"); +- apply_xkb_settings (); +- cinnamon_settings_profile_end ("apply_xkb_settings"); +- } +- preview_dialogs = g_hash_table_new (g_direct_hash, g_direct_equal); +- +- cinnamon_settings_profile_end (NULL); +-} +- +-void +-csd_keyboard_xkb_shutdown (void) +-{ +- if (!inited_ok) +- return; +- +- pa_callback = NULL; +- pa_callback_user_data = NULL; +- manager = NULL; +- +- if (preview_dialogs != NULL) +- g_hash_table_destroy (preview_dialogs); +- +- if (!inited_ok) +- return; +- +- xkl_engine_stop_listen (xkl_engine, +- XKLL_MANAGE_LAYOUTS | +- XKLL_MANAGE_WINDOW_STATES); +- +- gdk_window_remove_filter (NULL, (GdkFilterFunc) +- csd_keyboard_xkb_evt_filter, NULL); +- +- g_object_unref (settings_desktop); +- settings_desktop = NULL; +- g_object_unref (settings_keyboard); +- settings_keyboard = NULL; +- +- if (xkl_registry) { +- g_object_unref (xkl_registry); +- } +- +- g_object_unref (xkl_engine); +- +- xkl_engine = NULL; +- +- inited_ok = FALSE; +-} +diff -uNrp a/plugins/keyboard/csd-keyboard-xkb.h b/plugins/keyboard/csd-keyboard-xkb.h +--- a/plugins/keyboard/csd-keyboard-xkb.h 2013-08-24 18:04:31.000000000 +0100 ++++ b/plugins/keyboard/csd-keyboard-xkb.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,39 +0,0 @@ +-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +- * cinnamon-settings-keyboard-xkb.h +- * +- * Copyright (C) 2001 Udaltsoft +- * +- * Written by Sergey V. Oudaltsov <svu@users.sourceforge.net> +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2, or (at your option) +- * any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA +- * 02110-1335, USA. +- */ +- +-#ifndef __CSD_KEYBOARD_XKB_H +-#define __CSD_KEYBOARD_XKB_H +- +-#include <libxklavier/xklavier.h> +-#include "csd-keyboard-manager.h" +- +-void csd_keyboard_xkb_init (CsdKeyboardManager *manager); +-void csd_keyboard_xkb_shutdown (void); +- +-typedef void (*PostActivationCallback) (void *userData); +- +-void +-csd_keyboard_xkb_set_post_activation_callback (PostActivationCallback fun, +- void *userData); +- +-#endif +diff -uNrp a/plugins/keyboard/delayed-dialog.c b/plugins/keyboard/delayed-dialog.c +--- a/plugins/keyboard/delayed-dialog.c 2013-08-24 18:04:31.000000000 +0100 ++++ b/plugins/keyboard/delayed-dialog.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,128 +0,0 @@ +-/* +- * Copyright © 2006 Novell, Inc. +- * +- * This program is free software; you can redistribute it and/or +- * modify it under the terms of the GNU General Public License as +- * published by the Free Software Foundation; either version 2, or (at +- * your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, but +- * WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- * General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA +- * 02110-1335, USA. +- */ +- +-#include <stdlib.h> +-#include <string.h> +- +-#include <gtk/gtk.h> +-#include <gdk/gdkx.h> +- +-#include "delayed-dialog.h" +- +-static gboolean delayed_show_timeout (gpointer data); +-static GdkFilterReturn message_filter (GdkXEvent *xevent, +- GdkEvent *event, +- gpointer data); +- +-static GSList *dialogs = NULL; +- +-/** +- * csd_delayed_show_dialog: +- * @dialog: the dialog +- * +- * Shows the dialog as with gtk_widget_show(), unless a window manager +- * hasn't been started yet, in which case it will wait up to 5 seconds +- * for that to happen before showing the dialog. +- **/ +-void +-csd_delayed_show_dialog (GtkWidget *dialog) +-{ +- GdkDisplay *display = gtk_widget_get_display (dialog); +- Display *xdisplay = GDK_DISPLAY_XDISPLAY (display); +- GdkScreen *screen = gtk_widget_get_screen (dialog); +- char selection_name[10]; +- Atom selection_atom; +- +- /* We can't use gdk_selection_owner_get() for this, because +- * it's an unknown out-of-process window. +- */ +- snprintf (selection_name, sizeof (selection_name), "WM_S%d", +- gdk_screen_get_number (screen)); +- selection_atom = XInternAtom (xdisplay, selection_name, True); +- if (selection_atom && +- XGetSelectionOwner (xdisplay, selection_atom) != None) { +- gtk_widget_show (dialog); +- return; +- } +- +- dialogs = g_slist_prepend (dialogs, dialog); +- +- gdk_window_add_filter (NULL, message_filter, NULL); +- +- g_timeout_add (5000, delayed_show_timeout, NULL); +-} +- +-static gboolean +-delayed_show_timeout (gpointer data) +-{ +- GSList *l; +- +- for (l = dialogs; l; l = l->next) +- gtk_widget_show (l->data); +- g_slist_free (dialogs); +- dialogs = NULL; +- +- /* FIXME: There's no gdk_display_remove_client_message_filter */ +- +- return FALSE; +-} +- +-static GdkFilterReturn +-message_filter (GdkXEvent *xevent, GdkEvent *event, gpointer data) +-{ +- XClientMessageEvent *evt; +- char *selection_name; +- int screen; +- GSList *l, *next; +- +- if (((XEvent *)xevent)->type != ClientMessage) +- return GDK_FILTER_CONTINUE; +- +- evt = (XClientMessageEvent *)xevent; +- +- if (evt->message_type != XInternAtom (evt->display, "MANAGER", FALSE)) +- return GDK_FILTER_CONTINUE; +- +- selection_name = XGetAtomName (evt->display, evt->data.l[1]); +- +- if (strncmp (selection_name, "WM_S", 4) != 0) { +- XFree (selection_name); +- return GDK_FILTER_CONTINUE; +- } +- +- screen = atoi (selection_name + 4); +- +- for (l = dialogs; l; l = next) { +- GtkWidget *dialog = l->data; +- next = l->next; +- +- if (gdk_screen_get_number (gtk_widget_get_screen (dialog)) == screen) { +- gtk_widget_show (dialog); +- dialogs = g_slist_remove (dialogs, dialog); +- } +- } +- +- if (!dialogs) { +- gdk_window_remove_filter (NULL, message_filter, NULL); +- } +- +- XFree (selection_name); +- +- return GDK_FILTER_CONTINUE; +-} +diff -uNrp a/plugins/keyboard/delayed-dialog.h b/plugins/keyboard/delayed-dialog.h +--- a/plugins/keyboard/delayed-dialog.h 2013-08-24 18:04:31.000000000 +0100 ++++ b/plugins/keyboard/delayed-dialog.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,32 +0,0 @@ +-/* +- * Copyright © 2006 Novell, Inc. +- * +- * This program is free software; you can redistribute it and/or +- * modify it under the terms of the GNU General Public License as +- * published by the Free Software Foundation; either version 2, or (at +- * your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, but +- * WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- * General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA +- * 02110-1335, USA. +- */ +- +- +-#ifndef __DELAYED_DIALOG_H +-#define __DELAYED_DIALOG_H +- +-#include <gtk/gtk.h> +- +-G_BEGIN_DECLS +- +-void csd_delayed_show_dialog (GtkWidget *dialog); +- +-G_END_DECLS +- +-#endif +diff -uNrp a/plugins/keyboard/gkbd-configuration.c b/plugins/keyboard/gkbd-configuration.c +--- a/plugins/keyboard/gkbd-configuration.c 2013-08-24 18:04:31.000000000 +0100 ++++ b/plugins/keyboard/gkbd-configuration.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,350 +0,0 @@ +-/* +- * Copyright (C) 2010 Canonical Ltd. +- * +- * Authors: Jan Arne Petersen <jpetersen@openismus.com> +- * +- * Based on gkbd-status.c by Sergey V. Udaltsov <svu@gnome.org> +- * +- * This library is free software; you can redistribute it and/or +- * modify it under the terms of the GNU Lesser General Public +- * License as published by the Free Software Foundation; either +- * version 2 of the License, or (at your option) any later version. +- * +- * This 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 +- * Lesser General Public License for more details. +- * +- * You should have received a copy of the GNU Lesser General Public +- * License along with this library; if not, write to the +- * Free Software Foundation, Inc., 51 Franklin Street - Suite 500, +- * Boston, MA 02110-1335, USA. +- */ +- +-#include <memory.h> +- +-#include <gdk/gdkkeysyms.h> +-#include <gdk/gdkx.h> +-#include <glib/gi18n.h> +- +-#include <libgnomekbd/gkbd-desktop-config.h> +-#include <libgnomekbd/gkbd-indicator-config.h> +- +-#include "gkbd-configuration.h" +- +-struct _GkbdConfigurationPrivate { +- XklEngine *engine; +- XklConfigRegistry *registry; +- +- GkbdDesktopConfig cfg; +- GkbdIndicatorConfig ind_cfg; +- GkbdKeyboardConfig kbd_cfg; +- +- gchar **full_group_names; +- gchar **short_group_names; +- +- gulong state_changed_handler; +- gulong config_changed_handler; +-}; +- +-enum { +- SIGNAL_CHANGED, +- SIGNAL_GROUP_CHANGED, +- LAST_SIGNAL +-}; +- +-static guint signals[LAST_SIGNAL] = { 0, }; +- +-#define GKBD_CONFIGURATION_GET_PRIVATE(o) \ +- (G_TYPE_INSTANCE_GET_PRIVATE ((o), GKBD_TYPE_CONFIGURATION, GkbdConfigurationPrivate)) +- +-G_DEFINE_TYPE (GkbdConfiguration, gkbd_configuration, G_TYPE_OBJECT) +- +-/* Should be called once for all widgets */ +-static void +-gkbd_configuration_cfg_changed (GSettings *settings, +- const char *key, +- GkbdConfiguration * configuration) +-{ +- GkbdConfigurationPrivate *priv = configuration->priv; +- +- xkl_debug (100, +- "General configuration changed in GSettings - reiniting...\n"); +- gkbd_desktop_config_load (&priv->cfg); +- gkbd_desktop_config_activate (&priv->cfg); +- +- g_signal_emit (configuration, +- signals[SIGNAL_CHANGED], 0); +-} +- +-/* Should be called once for all widgets */ +-static void +-gkbd_configuration_ind_cfg_changed (GSettings *settings, +- const char *key, +- GkbdConfiguration * configuration) +-{ +- GkbdConfigurationPrivate *priv = configuration->priv; +- xkl_debug (100, +- "Applet configuration changed in GSettings - reiniting...\n"); +- gkbd_indicator_config_load (&priv->ind_cfg); +- +- gkbd_indicator_config_free_image_filenames (&priv->ind_cfg); +- gkbd_indicator_config_load_image_filenames (&priv->ind_cfg, +- &priv->kbd_cfg); +- +- gkbd_indicator_config_activate (&priv->ind_cfg); +- +- g_signal_emit (configuration, +- signals[SIGNAL_CHANGED], 0); +-} +- +-static void +-gkbd_configuration_load_group_names (GkbdConfiguration * configuration, +- XklConfigRec * xklrec) +-{ +- GkbdConfigurationPrivate *priv = configuration->priv; +- +- if (!gkbd_desktop_config_load_group_descriptions (&priv->cfg, +- priv->registry, +- (const char **) xklrec->layouts, +- (const char **) xklrec->variants, +- &priv->short_group_names, +- &priv->full_group_names)) { +- /* We just populate no short names (remain NULL) - +- * full names are going to be used anyway */ +- gint i, total_groups = +- xkl_engine_get_num_groups (priv->engine); +- xkl_debug (150, "group descriptions loaded: %d!\n", +- total_groups); +- priv->full_group_names = +- g_new0 (char *, total_groups + 1); +- +- if (xkl_engine_get_features (priv->engine) & +- XKLF_MULTIPLE_LAYOUTS_SUPPORTED) { +- for (i = 0; priv->kbd_cfg.layouts_variants[i]; i++) { +- priv->full_group_names[i] = +- g_strdup ((char *) priv->kbd_cfg.layouts_variants[i]); +- } +- } else { +- for (i = total_groups; --i >= 0;) { +- priv->full_group_names[i] = +- g_strdup_printf ("Group %d", i); +- } +- } +- } +-} +- +-/* Should be called once for all widgets */ +-static void +-gkbd_configuration_kbd_cfg_callback (XklEngine *engine, +- GkbdConfiguration *configuration) +-{ +- GkbdConfigurationPrivate *priv = configuration->priv; +- XklConfigRec *xklrec = xkl_config_rec_new (); +- xkl_debug (100, +- "XKB configuration changed on X Server - reiniting...\n"); +- +- gkbd_keyboard_config_load_from_x_current (&priv->kbd_cfg, +- xklrec); +- +- gkbd_indicator_config_free_image_filenames (&priv->ind_cfg); +- gkbd_indicator_config_load_image_filenames (&priv->ind_cfg, +- &priv->kbd_cfg); +- +- g_strfreev (priv->full_group_names); +- priv->full_group_names = NULL; +- +- g_strfreev (priv->short_group_names); +- priv->short_group_names = NULL; +- +- gkbd_configuration_load_group_names (configuration, +- xklrec); +- +- g_signal_emit (configuration, +- signals[SIGNAL_CHANGED], +- 0); +- +- g_object_unref (G_OBJECT (xklrec)); +-} +- +-/* Should be called once for all applets */ +-static void +-gkbd_configuration_state_callback (XklEngine * engine, +- XklEngineStateChange changeType, +- gint group, gboolean restore, +- GkbdConfiguration * configuration) +-{ +- xkl_debug (150, "group is now %d, restore: %d\n", group, restore); +- +- if (changeType == GROUP_CHANGED) { +- g_signal_emit (configuration, +- signals[SIGNAL_GROUP_CHANGED], 0, +- group); +- } +-} +- +-static void +-gkbd_configuration_init (GkbdConfiguration *configuration) +-{ +- GkbdConfigurationPrivate *priv; +- XklConfigRec *xklrec = xkl_config_rec_new (); +- +- priv = GKBD_CONFIGURATION_GET_PRIVATE (configuration); +- configuration->priv = priv; +- +- priv->engine = xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); +- if (priv->engine == NULL) { +- xkl_debug (0, "Libxklavier initialization error"); +- return; +- } +- +- priv->state_changed_handler = +- g_signal_connect (priv->engine, "X-state-changed", +- G_CALLBACK (gkbd_configuration_state_callback), +- configuration); +- priv->config_changed_handler = +- g_signal_connect (priv->engine, "X-config-changed", +- G_CALLBACK (gkbd_configuration_kbd_cfg_callback), +- configuration); +- +- gkbd_desktop_config_init (&priv->cfg, priv->engine); +- gkbd_keyboard_config_init (&priv->kbd_cfg, priv->engine); +- gkbd_indicator_config_init (&priv->ind_cfg, priv->engine); +- +- gkbd_desktop_config_load (&priv->cfg); +- gkbd_desktop_config_activate (&priv->cfg); +- +- priv->registry = xkl_config_registry_get_instance (priv->engine); +- xkl_config_registry_load (priv->registry, +- priv->cfg.load_extra_items); +- +- gkbd_keyboard_config_load_from_x_current (&priv->kbd_cfg, +- xklrec); +- +- gkbd_indicator_config_load (&priv->ind_cfg); +- +- gkbd_indicator_config_load_image_filenames (&priv->ind_cfg, +- &priv->kbd_cfg); +- +- gkbd_indicator_config_activate (&priv->ind_cfg); +- +- gkbd_configuration_load_group_names (configuration, +- xklrec); +- g_object_unref (G_OBJECT (xklrec)); +- +- gkbd_desktop_config_start_listen (&priv->cfg, +- G_CALLBACK (gkbd_configuration_cfg_changed), +- configuration); +- gkbd_indicator_config_start_listen (&priv->ind_cfg, +- G_CALLBACK (gkbd_configuration_ind_cfg_changed), +- configuration); +- xkl_engine_start_listen (priv->engine, +- XKLL_TRACK_KEYBOARD_STATE); +- +- xkl_debug (100, "Initiating the widget startup process for %p\n", +- configuration); +-} +- +-static void +-gkbd_configuration_finalize (GObject * obj) +-{ +- GkbdConfiguration *configuration = GKBD_CONFIGURATION (obj); +- GkbdConfigurationPrivate *priv = configuration->priv; +- +- xkl_debug (100, +- "Starting the gnome-kbd-configuration widget shutdown process for %p\n", +- configuration); +- +- xkl_engine_stop_listen (priv->engine, +- XKLL_TRACK_KEYBOARD_STATE); +- +- gkbd_desktop_config_stop_listen (&priv->cfg); +- gkbd_indicator_config_stop_listen (&priv->ind_cfg); +- +- gkbd_indicator_config_term (&priv->ind_cfg); +- gkbd_keyboard_config_term (&priv->kbd_cfg); +- gkbd_desktop_config_term (&priv->cfg); +- +- if (g_signal_handler_is_connected (priv->engine, +- priv->state_changed_handler)) { +- g_signal_handler_disconnect (priv->engine, +- priv->state_changed_handler); +- priv->state_changed_handler = 0; +- } +- if (g_signal_handler_is_connected (priv->engine, +- priv->config_changed_handler)) { +- g_signal_handler_disconnect (priv->engine, +- priv->config_changed_handler); +- priv->config_changed_handler = 0; +- } +- +- g_object_unref (priv->registry); +- priv->registry = NULL; +- g_object_unref (priv->engine); +- priv->engine = NULL; +- +- G_OBJECT_CLASS (gkbd_configuration_parent_class)->finalize (obj); +-} +- +-static void +-gkbd_configuration_class_init (GkbdConfigurationClass * klass) +-{ +- GObjectClass *object_class = G_OBJECT_CLASS (klass); +- +- /* Initing vtable */ +- object_class->finalize = gkbd_configuration_finalize; +- +- /* Signals */ +- signals[SIGNAL_CHANGED] = g_signal_new ("changed", +- GKBD_TYPE_CONFIGURATION, +- G_SIGNAL_RUN_LAST, +- 0, +- NULL, NULL, +- g_cclosure_marshal_VOID__VOID, +- G_TYPE_NONE, +- 0); +- signals[SIGNAL_GROUP_CHANGED] = g_signal_new ("group-changed", +- GKBD_TYPE_CONFIGURATION, +- G_SIGNAL_RUN_LAST, +- 0, +- NULL, NULL, +- g_cclosure_marshal_VOID__INT, +- G_TYPE_NONE, +- 1, +- G_TYPE_INT); +- +- g_type_class_add_private (klass, sizeof (GkbdConfigurationPrivate)); +-} +- +-GkbdConfiguration * +-gkbd_configuration_get (void) +-{ +- static gpointer instance = NULL; +- +- if (!instance) { +- instance = g_object_new (GKBD_TYPE_CONFIGURATION, NULL); +- g_object_add_weak_pointer (instance, &instance); +- } else { +- g_object_ref (instance); +- } +- +- return instance; +-} +- +-XklEngine * +-gkbd_configuration_get_xkl_engine (GkbdConfiguration *configuration) +-{ +- return configuration->priv->engine; +-} +- +-const char * const * +-gkbd_configuration_get_group_names (GkbdConfiguration *configuration) +-{ +- return configuration->priv->full_group_names; +-} +- +-const char * const * +-gkbd_configuration_get_short_group_names (GkbdConfiguration *configuration) +-{ +- return configuration->priv->short_group_names; +-} +diff -uNrp a/plugins/keyboard/gkbd-configuration.h b/plugins/keyboard/gkbd-configuration.h +--- a/plugins/keyboard/gkbd-configuration.h 2013-08-24 18:04:31.000000000 +0100 ++++ b/plugins/keyboard/gkbd-configuration.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,65 +0,0 @@ +-/* +- * Copyright (C) 2010 Canonical Ltd. +- * +- * Authors: Jan Arne Petersen <jpetersen@openismus.com> +- * +- * Based on gkbd-status.h by Sergey V. Udaltsov <svu@gnome.org> +- * +- * This library is free software; you can redistribute it and/or +- * modify it under the terms of the GNU Lesser General Public +- * License as published by the Free Software Foundation; either +- * version 2 of the License, or (at your option) any later version. +- * +- * This 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 +- * Lesser General Public License for more details. +- * +- * You should have received a copy of the GNU Lesser General Public +- * License along with this library; if not, write to the +- * Free Software Foundation, Inc., 51 Franklin Street - Suite 500, +- * Boston, MA 02110-1335, USA. +- */ +- +-#ifndef __GKBD_CONFIGURATION_H__ +-#define __GKBD_CONFIGURATION_H__ +- +-#include <glib-object.h> +- +-#include <libxklavier/xklavier.h> +- +-G_BEGIN_DECLS +- +-typedef struct _GkbdConfiguration GkbdConfiguration; +-typedef struct _GkbdConfigurationPrivate GkbdConfigurationPrivate; +-typedef struct _GkbdConfigurationClass GkbdConfigurationClass; +- +-#define GKBD_TYPE_CONFIGURATION (gkbd_configuration_get_type ()) +-#define GKBD_CONFIGURATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GKBD_TYPE_CONFIGURATION, GkbdConfiguration)) +-#define GKBD_INDCATOR_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), GKBD_TYPE_CONFIGURATION, GkbdConfigurationClass)) +-#define GKBD_IS_CONFIGURATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GKBD_TYPE_CONFIGURATION)) +-#define GKBD_IS_CONFIGURATION_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((obj), GKBD_TYPE_CONFIGURATION)) +-#define GKBD_CONFIGURATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GKBD_TYPE_CONFIGURATION, GkbdConfigurationClass)) +- +-struct _GkbdConfiguration { +- GObject parent; +- +- GkbdConfigurationPrivate *priv; +-}; +- +-struct _GkbdConfigurationClass { +- GObjectClass parent_class; +-}; +- +-extern GType gkbd_configuration_get_type (void); +- +-extern GkbdConfiguration *gkbd_configuration_get (void); +- +-extern XklEngine *gkbd_configuration_get_xkl_engine (GkbdConfiguration *configuration); +- +-extern const char * const *gkbd_configuration_get_group_names (GkbdConfiguration *configuration); +-extern const char * const *gkbd_configuration_get_short_group_names (GkbdConfiguration *configuration); +- +-G_END_DECLS +- +-#endif +diff -uNrp a/plugins/keyboard/.indent.pro b/plugins/keyboard/.indent.pro +--- a/plugins/keyboard/.indent.pro 1970-01-01 01:00:00.000000000 +0100 ++++ b/plugins/keyboard/.indent.pro 2013-08-25 16:36:02.000000000 +0100 +@@ -0,0 +1,2 @@ ++-kr -i8 -pcs -lps -psl ++ +diff -uNrp a/plugins/keyboard/Makefile.am b/plugins/keyboard/Makefile.am +--- a/plugins/keyboard/Makefile.am 2013-08-24 18:04:31.000000000 +0100 ++++ b/plugins/keyboard/Makefile.am 2013-08-25 16:36:02.000000000 +0100 +@@ -20,25 +20,20 @@ libkeyboard_la_SOURCES = \ + csd-keyboard-plugin.c \ + csd-keyboard-manager.h \ + csd-keyboard-manager.c \ +- csd-keyboard-xkb.h \ +- csd-keyboard-xkb.c \ +- delayed-dialog.h \ +- delayed-dialog.c \ +- gkbd-configuration.c \ +- gkbd-configuration.h \ + $(NULL) + + libkeyboard_la_CPPFLAGS = \ + -I$(top_srcdir)/cinnamon-settings-daemon \ + -I$(top_srcdir)/data \ ++ -I$(top_srcdir)/plugins/common \ + -DDATADIR=\""$(pkgdatadir)"\" \ ++ -DLIBEXECDIR=\""$(libexecdir)"\" \ + -DCINNAMON_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \ + $(AM_CPPFLAGS) + + libkeyboard_la_CFLAGS = \ + $(PLUGIN_CFLAGS) \ + $(SETTINGS_PLUGIN_CFLAGS) \ +- $(APPINDICATOR_CFLAGS) \ + $(KEYBOARD_CFLAGS) \ + $(AM_CFLAGS) + +@@ -46,19 +41,63 @@ libkeyboard_la_LDFLAGS = \ + $(CSD_PLUGIN_LDFLAGS) \ + $(NULL) + +-libkeyboard_la_LIBADD = \ +- $(SETTINGS_PLUGIN_LIBS) \ +- $(XF86MISC_LIBS) \ +- $(KEYBOARD_LIBS) \ +- $(APPINDICATOR_LIBS) \ ++libkeyboard_la_LIBADD = \ ++ $(top_builddir)/plugins/common/libcommon.la \ ++ $(SETTINGS_PLUGIN_LIBS) \ ++ $(XF86MISC_LIBS) \ ++ $(KEYBOARD_LIBS) \ + $(NULL) + ++libexec_PROGRAMS = csd-test-keyboard ++csd_test_keyboard_SOURCES = \ ++ test-keyboard.c \ ++ csd-keyboard-manager.h \ ++ csd-keyboard-manager.c \ ++ $(NULL) ++ ++csd_test_keyboard_CFLAGS = $(libkeyboard_la_CFLAGS) ++csd_test_keyboard_CPPFLAGS = $(libkeyboard_la_CPPFLAGS) ++csd_test_keyboard_LDADD = $(libkeyboard_la_LIBADD) $(top_builddir)/cinnamon-settings-daemon/libcsd.la ++ + plugin_in_files = \ + keyboard.cinnamon-settings-plugin.in \ + $(NULL) + + plugin_DATA = $(plugin_in_files:.cinnamon-settings-plugin.in=.cinnamon-settings-plugin) + ++if HAVE_IBUS ++noinst_PROGRAMS = test-keyboard-ibus-utils ++test_keyboard_ibus_utils_SOURCES = test-keyboard-ibus-utils.c ++test_keyboard_ibus_utils_CFLAGS = $(libkeyboard_la_CFLAGS) ++test_keyboard_ibus_utils_CPPFLAGS = $(libkeyboard_la_CPPFLAGS) ++test_keyboard_ibus_utils_LDADD = $(libkeyboard_la_LIBADD) $(top_builddir)/cinnamon-settings-daemon/libcsd.la ++ ++check-local: test-keyboard-ibus-utils ++ $(builddir)/test-keyboard-ibus-utils > /dev/null ++endif ++ ++libexec_PROGRAMS += csd-input-sources-switcher ++ ++csd_input_sources_switcher_SOURCES = \ ++ csd-input-sources-switcher.c \ ++ $(NULL) ++ ++csd_input_sources_switcher_CPPFLAGS = \ ++ -I$(top_srcdir)/data \ ++ -I$(top_srcdir)/plugins/common \ ++ $(AM_CPPFLAGS) \ ++ $(NULL) ++ ++csd_input_sources_switcher_CFLAGS = \ ++ $(SETTINGS_PLUGIN_CFLAGS) \ ++ $(AM_CFLAGS) \ ++ $(NULL) ++ ++csd_input_sources_switcher_LDADD = \ ++ $(top_builddir)/plugins/common/libcommon.la \ ++ $(SETTINGS_PLUGIN_LIBS) \ ++ $(NULL) ++ + EXTRA_DIST = \ + $(icons_DATA) \ + $(plugin_in_files) \ +diff -uNrp a/plugins/keyboard/test-keyboard.c b/plugins/keyboard/test-keyboard.c +--- a/plugins/keyboard/test-keyboard.c 1970-01-01 01:00:00.000000000 +0100 ++++ b/plugins/keyboard/test-keyboard.c 2013-08-25 16:36:02.000000000 +0100 +@@ -0,0 +1,7 @@ ++#define NEW csd_keyboard_manager_new ++#define START csd_keyboard_manager_start ++#define STOP csd_keyboard_manager_stop ++#define MANAGER CsdKeyboardManager ++#include "csd-keyboard-manager.h" ++ ++#include "test-plugin.h" +diff -uNrp a/plugins/keyboard/test-keyboard-ibus-utils.c b/plugins/keyboard/test-keyboard-ibus-utils.c +--- a/plugins/keyboard/test-keyboard-ibus-utils.c 1970-01-01 01:00:00.000000000 +0100 ++++ b/plugins/keyboard/test-keyboard-ibus-utils.c 2013-08-25 16:36:02.000000000 +0100 +@@ -0,0 +1,116 @@ ++#include "csd-keyboard-manager.c" ++ ++static void ++test_make_xkb_source_id (void) ++{ ++ gint i; ++ const gchar *test_strings[][2] = { ++ /* input output */ ++ { "xkb:aa:bb:cc", "aa+bb" }, ++ { "xkb:aa:bb:", "aa+bb" }, ++ { "xkb:aa::cc", "aa" }, ++ { "xkb:aa::", "aa" }, ++ { "xkb::bb:cc", "+bb" }, ++ { "xkb::bb:", "+bb" }, ++ { "xkb:::cc", "" }, ++ { "xkb:::", "" }, ++ }; ++ ++ for (i = 0; i < G_N_ELEMENTS (test_strings); ++i) ++ g_assert_cmpstr (make_xkb_source_id (test_strings[i][0]), ==, test_strings[i][1]); ++} ++ ++static void ++test_layout_from_ibus_layout (void) ++{ ++ gint i; ++ const gchar *test_strings[][2] = { ++ /* input output */ ++ { "", "" }, ++ { "a", "a" }, ++ { "a(", "a" }, ++ { "a[", "a" }, ++ }; ++ ++ for (i = 0; i < G_N_ELEMENTS (test_strings); ++i) ++ g_assert_cmpstr (layout_from_ibus_layout (test_strings[i][0]), ==, test_strings[i][1]); ++} ++ ++static void ++test_variant_from_ibus_layout (void) ++{ ++ gint i; ++ const gchar *test_strings[][2] = { ++ /* input output */ ++ { "", NULL }, ++ { "a", NULL }, ++ { "(", NULL }, ++ { "()", "" }, ++ { "(b)", "b" }, ++ { "a(", NULL }, ++ { "a()", "" }, ++ { "a(b)", "b" }, ++ }; ++ ++ for (i = 0; i < G_N_ELEMENTS (test_strings); ++i) ++ g_assert_cmpstr (variant_from_ibus_layout (test_strings[i][0]), ==, test_strings[i][1]); ++} ++ ++static void ++test_options_from_ibus_layout (void) ++{ ++ gint i, j; ++ gchar *output_0[] = { ++ NULL ++ }; ++ gchar *output_1[] = { ++ "", ++ NULL ++ }; ++ gchar *output_2[] = { ++ "b", ++ NULL ++ }; ++ gchar *output_3[] = { ++ "b", "", ++ NULL ++ }; ++ gchar *output_4[] = { ++ "b", "c", ++ NULL ++ }; ++ const gpointer tests[][2] = { ++ /* input output */ ++ { "", NULL }, ++ { "a", NULL }, ++ { "a[", output_0 }, ++ { "a[]", output_1 }, ++ { "a[b]", output_2 }, ++ { "a[b,]", output_3 }, ++ { "a[b,c]", output_4 }, ++ }; ++ ++ for (i = 0; i < G_N_ELEMENTS (tests); ++i) { ++ if (tests[i][1] == NULL) { ++ g_assert (options_from_ibus_layout (tests[i][0]) == NULL); ++ } else { ++ gchar **strv_a = options_from_ibus_layout (tests[i][0]); ++ gchar **strv_b = tests[i][1]; ++ ++ g_assert (g_strv_length (strv_a) == g_strv_length (strv_b)); ++ for (j = 0; j < g_strv_length (strv_a); ++j) ++ g_assert_cmpstr (strv_a[j], ==, strv_b[j]); ++ } ++ } ++} ++ ++int ++main (void) ++{ ++ test_make_xkb_source_id (); ++ test_layout_from_ibus_layout (); ++ test_variant_from_ibus_layout (); ++ test_options_from_ibus_layout (); ++ ++ return 0; ++} +diff -uNrp a/plugins/keyboard/xxx/csd-keyboard-xkb.c b/plugins/keyboard/xxx/csd-keyboard-xkb.c +--- a/plugins/keyboard/xxx/csd-keyboard-xkb.c 1970-01-01 01:00:00.000000000 +0100 ++++ b/plugins/keyboard/xxx/csd-keyboard-xkb.c 2013-08-25 16:36:02.000000000 +0100 +@@ -0,0 +1,579 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- ++ * ++ * Copyright (C) 2001 Udaltsoft ++ * ++ * Written by Sergey V. Oudaltsov <svu@users.sourceforge.net> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2, or (at your option) ++ * any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA ++ * 02110-1335, USA. ++ */ ++ ++#include "config.h" ++ ++#include <string.h> ++#include <time.h> ++ ++#include <glib/gi18n.h> ++#include <gdk/gdk.h> ++#include <gdk/gdkx.h> ++#include <gtk/gtk.h> ++ ++#include <libgnomekbd/gkbd-status.h> ++ ++#include <libgnomekbd/gkbd-keyboard-drawing.h> ++#include <libgnomekbd/gkbd-desktop-config.h> ++#include <libgnomekbd/gkbd-indicator-config.h> ++#include <libgnomekbd/gkbd-keyboard-config.h> ++#include <libgnomekbd/gkbd-util.h> ++ ++#include "csd-keyboard-xkb.h" ++#include "delayed-dialog.h" ++#include "cinnamon-settings-profile.h" ++ ++#define SETTINGS_KEYBOARD_DIR "org.cinnamon.settings-daemon.plugins.keyboard" ++ ++static CsdKeyboardManager *manager = NULL; ++ ++static XklEngine *xkl_engine; ++static XklConfigRegistry *xkl_registry = NULL; ++ ++static GkbdDesktopConfig current_config; ++static GkbdKeyboardConfig current_kbd_config; ++ ++/* never terminated */ ++static GkbdKeyboardConfig initial_sys_kbd_config; ++ ++static gboolean inited_ok = FALSE; ++ ++static GSettings *settings_desktop = NULL; ++static GSettings *settings_keyboard = NULL; ++ ++static PostActivationCallback pa_callback = NULL; ++static void *pa_callback_user_data = NULL; ++ ++static GtkStatusIcon *icon = NULL; ++ ++static GHashTable *preview_dialogs = NULL; ++ ++static void ++activation_error (void) ++{ ++ char const *vendor; ++ GtkWidget *dialog; ++ ++ vendor = ++ ServerVendor (GDK_DISPLAY_XDISPLAY ++ (gdk_display_get_default ())); ++ ++ /* VNC viewers will not work, do not barrage them with warnings */ ++ if (NULL != vendor && NULL != strstr (vendor, "VNC")) ++ return; ++ ++ dialog = gtk_message_dialog_new_with_markup (NULL, ++ 0, ++ GTK_MESSAGE_ERROR, ++ GTK_BUTTONS_CLOSE, ++ _ ++ ("Error activating XKB configuration.\n" ++ "There can be various reasons for that.\n\n" ++ "If you report this situation as a bug, include the results of\n" ++ " • <b>%s</b>\n" ++ " • <b>%s</b>\n" ++ " • <b>%s</b>\n" ++ " • <b>%s</b>"), ++ "xprop -root | grep XKB", ++ "gsettings get org.gnome.libgnomekbd.keyboard model", ++ "gsettings get org.gnome.libgnomekbd.keyboard layouts", ++ "gsettings get org.gnome.libgnomekbd.keyboard options"); ++ g_signal_connect (dialog, "response", ++ G_CALLBACK (gtk_widget_destroy), NULL); ++ csd_delayed_show_dialog (dialog); ++} ++ ++static gboolean ++ensure_xkl_registry (void) ++{ ++ if (!xkl_registry) { ++ xkl_registry = ++ xkl_config_registry_get_instance (xkl_engine); ++ /* load all materials, unconditionally! */ ++ if (!xkl_config_registry_load (xkl_registry, TRUE)) { ++ g_object_unref (xkl_registry); ++ xkl_registry = NULL; ++ return FALSE; ++ } ++ } ++ ++ return TRUE; ++} ++ ++static void ++apply_desktop_settings (void) ++{ ++ if (!inited_ok) ++ return; ++ ++ csd_keyboard_manager_apply_settings (manager); ++ gkbd_desktop_config_load (¤t_config); ++ /* again, probably it would be nice to compare things ++ before activating them */ ++ gkbd_desktop_config_activate (¤t_config); ++} ++ ++static void ++popup_menu_launch_capplet () ++{ ++ GAppInfo *info; ++ GdkAppLaunchContext *ctx; ++ GError *error = NULL; ++ ++ info = ++ g_app_info_create_from_commandline ++ ("cinnamon-settings region", NULL, 0, &error); ++ ++ if (info != NULL) { ++ ctx = ++ gdk_display_get_app_launch_context ++ (gdk_display_get_default ()); ++ ++ if (g_app_info_launch (info, NULL, ++ G_APP_LAUNCH_CONTEXT (ctx), &error) == FALSE) { ++ g_warning ++ ("Could not execute keyboard properties capplet: [%s]\n", ++ error->message); ++ g_error_free (error); ++ } ++ ++ g_object_unref (info); ++ g_object_unref (ctx); ++ } ++ ++} ++ ++static void ++show_layout_destroy (GtkWidget * dialog, gint group) ++{ ++ g_hash_table_remove (preview_dialogs, GINT_TO_POINTER (group)); ++} ++ ++static void ++popup_menu_show_layout () ++{ ++ GtkWidget *dialog; ++ XklEngine *engine = ++ xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY ++ (gdk_display_get_default ())); ++ XklState *xkl_state = xkl_engine_get_current_state (engine); ++ ++ gchar **group_names = gkbd_status_get_group_names (); ++ ++ gpointer p = g_hash_table_lookup (preview_dialogs, ++ GINT_TO_POINTER ++ (xkl_state->group)); ++ ++ if (xkl_state->group < 0 ++ || xkl_state->group >= g_strv_length (group_names)) { ++ return; ++ } ++ ++ if (p != NULL) { ++ /* existing window */ ++ gtk_window_present (GTK_WINDOW (p)); ++ return; ++ } ++ ++ if (!ensure_xkl_registry ()) ++ return; ++ ++ dialog = gkbd_keyboard_drawing_dialog_new (); ++ gkbd_keyboard_drawing_dialog_set_group (dialog, xkl_registry, xkl_state->group); ++ ++ g_signal_connect (dialog, "destroy", ++ G_CALLBACK (show_layout_destroy), ++ GINT_TO_POINTER (xkl_state->group)); ++ g_hash_table_insert (preview_dialogs, ++ GINT_TO_POINTER (xkl_state->group), dialog); ++ gtk_widget_show_all (dialog); ++} ++ ++static void ++popup_menu_set_group (gint group_number, gboolean only_menu) ++{ ++ ++ XklEngine *engine = gkbd_status_get_xkl_engine (); ++ ++ XklState *st = xkl_engine_get_current_state(engine); ++ Window cur; ++ st->group = group_number; ++ xkl_engine_allow_one_switch_to_secondary_group (engine); ++ cur = xkl_engine_get_current_window (engine); ++ if (cur != (Window) NULL) { ++ xkl_debug (150, "Enforcing the state %d for window %lx\n", ++ st->group, cur); ++ ++ xkl_engine_save_state (engine, ++ xkl_engine_get_current_window ++ (engine), st); ++/* XSetInputFocus( GDK_DISPLAY(), cur, RevertToNone, CurrentTime );*/ ++ } else { ++ xkl_debug (150, ++ "??? Enforcing the state %d for unknown window\n", ++ st->group); ++ /* strange situation - bad things can happen */ ++ } ++ if (!only_menu) ++ xkl_engine_lock_group (engine, st->group); ++} ++ ++static void ++popup_menu_set_group_cb (GtkMenuItem * item, gpointer param) ++{ ++ gint group_number = GPOINTER_TO_INT (param); ++ ++ popup_menu_set_group(group_number, FALSE); ++} ++ ++ ++static GtkMenu * ++create_status_menu (void) ++{ ++ GtkMenu *popup_menu = GTK_MENU (gtk_menu_new ()); ++ int i = 0; ++ ++ GtkMenu *groups_menu = GTK_MENU (gtk_menu_new ()); ++ gchar **current_name = gkbd_status_get_group_names (); ++ ++ GtkWidget *item = gtk_menu_item_new_with_mnemonic (_("_Layouts")); ++ gtk_widget_show (item); ++ gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item); ++ gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), ++ GTK_WIDGET (groups_menu)); ++ ++ item = gtk_menu_item_new_with_mnemonic (_("Show _Keyboard Layout...")); ++ gtk_widget_show (item); ++ g_signal_connect (item, "activate", popup_menu_show_layout, NULL); ++ gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item); ++ ++ /* translators note: ++ * This is the name of the cinnamon-settings "region" panel */ ++ item = gtk_menu_item_new_with_mnemonic (_("Region and Language Settings")); ++ gtk_widget_show (item); ++ g_signal_connect (item, "activate", popup_menu_launch_capplet, NULL); ++ gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item); ++ ++ for (i = 0; current_name && *current_name; i++, current_name++) { ++ ++ gchar *image_file = gkbd_status_get_image_filename (i); ++ ++ if (image_file == NULL) { ++ item = ++ gtk_menu_item_new_with_label (*current_name); ++ } else { ++ GdkPixbuf *pixbuf = ++ gdk_pixbuf_new_from_file_at_size (image_file, ++ 24, 24, ++ NULL); ++ GtkWidget *img = ++ gtk_image_new_from_pixbuf (pixbuf); ++ item = ++ gtk_image_menu_item_new_with_label ++ (*current_name); ++ gtk_widget_show (img); ++ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM ++ (item), img); ++ gtk_image_menu_item_set_always_show_image ++ (GTK_IMAGE_MENU_ITEM (item), TRUE); ++ g_free (image_file); ++ } ++ gtk_widget_show (item); ++ gtk_menu_shell_append (GTK_MENU_SHELL (groups_menu), item); ++ g_signal_connect (item, "activate", ++ G_CALLBACK (popup_menu_set_group_cb), ++ GINT_TO_POINTER (i)); ++ } ++ ++ return popup_menu; ++} ++ ++static void ++status_icon_popup_menu_cb (GtkStatusIcon * icon, guint button, guint time) ++{ ++ GtkMenu *popup_menu = create_status_menu (); ++ ++ gtk_menu_popup (popup_menu, NULL, NULL, ++ gtk_status_icon_position_menu, ++ (gpointer) icon, button, time); ++} ++ ++static void ++show_hide_icon () ++{ ++ if (g_strv_length (current_kbd_config.layouts_variants) > 1) { ++ if (icon == NULL) { ++ xkl_debug (150, "Creating keyboard status icon\n"); ++ icon = gkbd_status_new (); ++ g_signal_connect (icon, "popup-menu", ++ G_CALLBACK ++ (status_icon_popup_menu_cb), ++ NULL); ++ ++ } ++ } else { ++ if (icon != NULL) { ++ xkl_debug (150, "Destroying icon\n"); ++ g_object_unref (icon); ++ icon = NULL; ++ } ++ } ++} ++ ++static gboolean ++try_activating_xkb_config_if_new (GkbdKeyboardConfig * ++ current_sys_kbd_config) ++{ ++ /* Activate - only if different! */ ++ if (!gkbd_keyboard_config_equals ++ (¤t_kbd_config, current_sys_kbd_config)) { ++ if (gkbd_keyboard_config_activate (¤t_kbd_config)) { ++ if (pa_callback != NULL) { ++ (*pa_callback) (pa_callback_user_data); ++ return TRUE; ++ } ++ } else { ++ return FALSE; ++ } ++ } ++ return TRUE; ++} ++ ++static gboolean ++filter_xkb_config (void) ++{ ++ XklConfigItem *item; ++ gchar *lname; ++ gchar *vname; ++ gchar **lv; ++ gboolean any_change = FALSE; ++ ++ xkl_debug (100, "Filtering configuration against the registry\n"); ++ if (!ensure_xkl_registry ()) ++ return FALSE; ++ ++ lv = current_kbd_config.layouts_variants; ++ item = xkl_config_item_new (); ++ while (*lv) { ++ xkl_debug (100, "Checking [%s]\n", *lv); ++ if (gkbd_keyboard_config_split_items (*lv, &lname, &vname)) { ++ gboolean should_be_dropped = FALSE; ++ g_snprintf (item->name, sizeof (item->name), "%s", ++ lname); ++ if (!xkl_config_registry_find_layout ++ (xkl_registry, item)) { ++ xkl_debug (100, "Bad layout [%s]\n", ++ lname); ++ should_be_dropped = TRUE; ++ } else if (vname) { ++ g_snprintf (item->name, ++ sizeof (item->name), "%s", ++ vname); ++ if (!xkl_config_registry_find_variant ++ (xkl_registry, lname, item)) { ++ xkl_debug (100, ++ "Bad variant [%s(%s)]\n", ++ lname, vname); ++ should_be_dropped = TRUE; ++ } ++ } ++ if (should_be_dropped) { ++ gkbd_strv_behead (lv); ++ any_change = TRUE; ++ continue; ++ } ++ } ++ lv++; ++ } ++ g_object_unref (item); ++ return any_change; ++} ++ ++static void ++apply_xkb_settings (void) ++{ ++ GkbdKeyboardConfig current_sys_kbd_config; ++ ++ if (!inited_ok) ++ return; ++ ++ gkbd_keyboard_config_init (¤t_sys_kbd_config, xkl_engine); ++ ++ gkbd_keyboard_config_load (¤t_kbd_config, ++ &initial_sys_kbd_config); ++ ++ gkbd_keyboard_config_load_from_x_current (¤t_sys_kbd_config, ++ NULL); ++ ++ if (!try_activating_xkb_config_if_new (¤t_sys_kbd_config)) { ++ if (filter_xkb_config ()) { ++ if (!try_activating_xkb_config_if_new ++ (¤t_sys_kbd_config)) { ++ g_warning ++ ("Could not activate the filtered XKB configuration"); ++ activation_error (); ++ } ++ } else { ++ g_warning ++ ("Could not activate the XKB configuration"); ++ activation_error (); ++ } ++ } else ++ xkl_debug (100, ++ "Actual KBD configuration was not changed: redundant notification\n"); ++ ++ gkbd_keyboard_config_term (¤t_sys_kbd_config); ++ show_hide_icon (); ++} ++ ++static void ++csd_keyboard_xkb_analyze_sysconfig (void) ++{ ++ if (!inited_ok) ++ return; ++ ++ gkbd_keyboard_config_init (&initial_sys_kbd_config, xkl_engine); ++ gkbd_keyboard_config_load_from_x_initial (&initial_sys_kbd_config, ++ NULL); ++} ++ ++void ++csd_keyboard_xkb_set_post_activation_callback (PostActivationCallback fun, ++ void *user_data) ++{ ++ pa_callback = fun; ++ pa_callback_user_data = user_data; ++} ++ ++static GdkFilterReturn ++csd_keyboard_xkb_evt_filter (GdkXEvent * xev, GdkEvent * event) ++{ ++ XEvent *xevent = (XEvent *) xev; ++ xkl_engine_filter_events (xkl_engine, xevent); ++ return GDK_FILTER_CONTINUE; ++} ++ ++/* When new Keyboard is plugged in - reload the settings */ ++static void ++csd_keyboard_new_device (XklEngine * engine) ++{ ++ apply_desktop_settings (); ++ apply_xkb_settings (); ++} ++ ++void ++csd_keyboard_xkb_init (CsdKeyboardManager * kbd_manager) ++{ ++ Display *display = ++ GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); ++ cinnamon_settings_profile_start (NULL); ++ ++ gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (), ++ DATADIR G_DIR_SEPARATOR_S ++ "icons"); ++ ++ manager = kbd_manager; ++ cinnamon_settings_profile_start ("xkl_engine_get_instance"); ++ xkl_engine = xkl_engine_get_instance (display); ++ cinnamon_settings_profile_end ("xkl_engine_get_instance"); ++ if (xkl_engine) { ++ inited_ok = TRUE; ++ ++ gkbd_desktop_config_init (¤t_config, xkl_engine); ++ gkbd_keyboard_config_init (¤t_kbd_config, ++ xkl_engine); ++ xkl_engine_backup_names_prop (xkl_engine); ++ csd_keyboard_xkb_analyze_sysconfig (); ++ ++ settings_desktop = g_settings_new (GKBD_DESKTOP_SCHEMA); ++ settings_keyboard = g_settings_new (GKBD_KEYBOARD_SCHEMA); ++ g_signal_connect (settings_desktop, "changed", ++ (GCallback) apply_desktop_settings, ++ NULL); ++ g_signal_connect (settings_keyboard, "changed", ++ (GCallback) apply_xkb_settings, NULL); ++ ++ gdk_window_add_filter (NULL, (GdkFilterFunc) ++ csd_keyboard_xkb_evt_filter, NULL); ++ ++ if (xkl_engine_get_features (xkl_engine) & ++ XKLF_DEVICE_DISCOVERY) ++ g_signal_connect (xkl_engine, "X-new-device", ++ G_CALLBACK ++ (csd_keyboard_new_device), NULL); ++ ++ cinnamon_settings_profile_start ("xkl_engine_start_listen"); ++ xkl_engine_start_listen (xkl_engine, ++ XKLL_MANAGE_LAYOUTS | ++ XKLL_MANAGE_WINDOW_STATES); ++ cinnamon_settings_profile_end ("xkl_engine_start_listen"); ++ ++ cinnamon_settings_profile_start ("apply_desktop_settings"); ++ apply_desktop_settings (); ++ cinnamon_settings_profile_end ("apply_desktop_settings"); ++ cinnamon_settings_profile_start ("apply_xkb_settings"); ++ apply_xkb_settings (); ++ cinnamon_settings_profile_end ("apply_xkb_settings"); ++ } ++ preview_dialogs = g_hash_table_new (g_direct_hash, g_direct_equal); ++ ++ cinnamon_settings_profile_end (NULL); ++} ++ ++void ++csd_keyboard_xkb_shutdown (void) ++{ ++ if (!inited_ok) ++ return; ++ ++ pa_callback = NULL; ++ pa_callback_user_data = NULL; ++ manager = NULL; ++ ++ if (preview_dialogs != NULL) ++ g_hash_table_destroy (preview_dialogs); ++ ++ if (!inited_ok) ++ return; ++ ++ xkl_engine_stop_listen (xkl_engine, ++ XKLL_MANAGE_LAYOUTS | ++ XKLL_MANAGE_WINDOW_STATES); ++ ++ gdk_window_remove_filter (NULL, (GdkFilterFunc) ++ csd_keyboard_xkb_evt_filter, NULL); ++ ++ g_object_unref (settings_desktop); ++ settings_desktop = NULL; ++ g_object_unref (settings_keyboard); ++ settings_keyboard = NULL; ++ ++ if (xkl_registry) { ++ g_object_unref (xkl_registry); ++ } ++ ++ g_object_unref (xkl_engine); ++ ++ xkl_engine = NULL; ++ ++ inited_ok = FALSE; ++} +diff -uNrp a/plugins/keyboard/xxx/csd-keyboard-xkb.h b/plugins/keyboard/xxx/csd-keyboard-xkb.h +--- a/plugins/keyboard/xxx/csd-keyboard-xkb.h 1970-01-01 01:00:00.000000000 +0100 ++++ b/plugins/keyboard/xxx/csd-keyboard-xkb.h 2013-08-25 16:36:02.000000000 +0100 +@@ -0,0 +1,39 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- ++ * cinnamon-settings-keyboard-xkb.h ++ * ++ * Copyright (C) 2001 Udaltsoft ++ * ++ * Written by Sergey V. Oudaltsov <svu@users.sourceforge.net> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2, or (at your option) ++ * any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA ++ * 02110-1335, USA. ++ */ ++ ++#ifndef __CSD_KEYBOARD_XKB_H ++#define __CSD_KEYBOARD_XKB_H ++ ++#include <libxklavier/xklavier.h> ++#include "csd-keyboard-manager.h" ++ ++void csd_keyboard_xkb_init (CsdKeyboardManager *manager); ++void csd_keyboard_xkb_shutdown (void); ++ ++typedef void (*PostActivationCallback) (void *userData); ++ ++void ++csd_keyboard_xkb_set_post_activation_callback (PostActivationCallback fun, ++ void *userData); ++ ++#endif +diff -uNrp a/plugins/keyboard/xxx/delayed-dialog.c b/plugins/keyboard/xxx/delayed-dialog.c +--- a/plugins/keyboard/xxx/delayed-dialog.c 1970-01-01 01:00:00.000000000 +0100 ++++ b/plugins/keyboard/xxx/delayed-dialog.c 2013-08-25 16:36:02.000000000 +0100 +@@ -0,0 +1,128 @@ ++/* ++ * Copyright © 2006 Novell, Inc. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2, or (at ++ * your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA ++ * 02110-1335, USA. ++ */ ++ ++#include <stdlib.h> ++#include <string.h> ++ ++#include <gtk/gtk.h> ++#include <gdk/gdkx.h> ++ ++#include "delayed-dialog.h" ++ ++static gboolean delayed_show_timeout (gpointer data); ++static GdkFilterReturn message_filter (GdkXEvent *xevent, ++ GdkEvent *event, ++ gpointer data); ++ ++static GSList *dialogs = NULL; ++ ++/** ++ * csd_delayed_show_dialog: ++ * @dialog: the dialog ++ * ++ * Shows the dialog as with gtk_widget_show(), unless a window manager ++ * hasn't been started yet, in which case it will wait up to 5 seconds ++ * for that to happen before showing the dialog. ++ **/ ++void ++csd_delayed_show_dialog (GtkWidget *dialog) ++{ ++ GdkDisplay *display = gtk_widget_get_display (dialog); ++ Display *xdisplay = GDK_DISPLAY_XDISPLAY (display); ++ GdkScreen *screen = gtk_widget_get_screen (dialog); ++ char selection_name[10]; ++ Atom selection_atom; ++ ++ /* We can't use gdk_selection_owner_get() for this, because ++ * it's an unknown out-of-process window. ++ */ ++ snprintf (selection_name, sizeof (selection_name), "WM_S%d", ++ gdk_screen_get_number (screen)); ++ selection_atom = XInternAtom (xdisplay, selection_name, True); ++ if (selection_atom && ++ XGetSelectionOwner (xdisplay, selection_atom) != None) { ++ gtk_widget_show (dialog); ++ return; ++ } ++ ++ dialogs = g_slist_prepend (dialogs, dialog); ++ ++ gdk_window_add_filter (NULL, message_filter, NULL); ++ ++ g_timeout_add (5000, delayed_show_timeout, NULL); ++} ++ ++static gboolean ++delayed_show_timeout (gpointer data) ++{ ++ GSList *l; ++ ++ for (l = dialogs; l; l = l->next) ++ gtk_widget_show (l->data); ++ g_slist_free (dialogs); ++ dialogs = NULL; ++ ++ /* FIXME: There's no gdk_display_remove_client_message_filter */ ++ ++ return FALSE; ++} ++ ++static GdkFilterReturn ++message_filter (GdkXEvent *xevent, GdkEvent *event, gpointer data) ++{ ++ XClientMessageEvent *evt; ++ char *selection_name; ++ int screen; ++ GSList *l, *next; ++ ++ if (((XEvent *)xevent)->type != ClientMessage) ++ return GDK_FILTER_CONTINUE; ++ ++ evt = (XClientMessageEvent *)xevent; ++ ++ if (evt->message_type != XInternAtom (evt->display, "MANAGER", FALSE)) ++ return GDK_FILTER_CONTINUE; ++ ++ selection_name = XGetAtomName (evt->display, evt->data.l[1]); ++ ++ if (strncmp (selection_name, "WM_S", 4) != 0) { ++ XFree (selection_name); ++ return GDK_FILTER_CONTINUE; ++ } ++ ++ screen = atoi (selection_name + 4); ++ ++ for (l = dialogs; l; l = next) { ++ GtkWidget *dialog = l->data; ++ next = l->next; ++ ++ if (gdk_screen_get_number (gtk_widget_get_screen (dialog)) == screen) { ++ gtk_widget_show (dialog); ++ dialogs = g_slist_remove (dialogs, dialog); ++ } ++ } ++ ++ if (!dialogs) { ++ gdk_window_remove_filter (NULL, message_filter, NULL); ++ } ++ ++ XFree (selection_name); ++ ++ return GDK_FILTER_CONTINUE; ++} +diff -uNrp a/plugins/keyboard/xxx/delayed-dialog.h b/plugins/keyboard/xxx/delayed-dialog.h +--- a/plugins/keyboard/xxx/delayed-dialog.h 1970-01-01 01:00:00.000000000 +0100 ++++ b/plugins/keyboard/xxx/delayed-dialog.h 2013-08-25 16:36:02.000000000 +0100 +@@ -0,0 +1,32 @@ ++/* ++ * Copyright © 2006 Novell, Inc. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2, or (at ++ * your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA ++ * 02110-1335, USA. ++ */ ++ ++ ++#ifndef __DELAYED_DIALOG_H ++#define __DELAYED_DIALOG_H ++ ++#include <gtk/gtk.h> ++ ++G_BEGIN_DECLS ++ ++void csd_delayed_show_dialog (GtkWidget *dialog); ++ ++G_END_DECLS ++ ++#endif +diff -uNrp a/plugins/keyboard/xxx/gkbd-configuration.c b/plugins/keyboard/xxx/gkbd-configuration.c +--- a/plugins/keyboard/xxx/gkbd-configuration.c 1970-01-01 01:00:00.000000000 +0100 ++++ b/plugins/keyboard/xxx/gkbd-configuration.c 2013-08-25 16:36:02.000000000 +0100 +@@ -0,0 +1,350 @@ ++/* ++ * Copyright (C) 2010 Canonical Ltd. ++ * ++ * Authors: Jan Arne Petersen <jpetersen@openismus.com> ++ * ++ * Based on gkbd-status.c by Sergey V. Udaltsov <svu@gnome.org> ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the ++ * Free Software Foundation, Inc., 51 Franklin Street - Suite 500, ++ * Boston, MA 02110-1335, USA. ++ */ ++ ++#include <memory.h> ++ ++#include <gdk/gdkkeysyms.h> ++#include <gdk/gdkx.h> ++#include <glib/gi18n.h> ++ ++#include <libgnomekbd/gkbd-desktop-config.h> ++#include <libgnomekbd/gkbd-indicator-config.h> ++ ++#include "gkbd-configuration.h" ++ ++struct _GkbdConfigurationPrivate { ++ XklEngine *engine; ++ XklConfigRegistry *registry; ++ ++ GkbdDesktopConfig cfg; ++ GkbdIndicatorConfig ind_cfg; ++ GkbdKeyboardConfig kbd_cfg; ++ ++ gchar **full_group_names; ++ gchar **short_group_names; ++ ++ gulong state_changed_handler; ++ gulong config_changed_handler; ++}; ++ ++enum { ++ SIGNAL_CHANGED, ++ SIGNAL_GROUP_CHANGED, ++ LAST_SIGNAL ++}; ++ ++static guint signals[LAST_SIGNAL] = { 0, }; ++ ++#define GKBD_CONFIGURATION_GET_PRIVATE(o) \ ++ (G_TYPE_INSTANCE_GET_PRIVATE ((o), GKBD_TYPE_CONFIGURATION, GkbdConfigurationPrivate)) ++ ++G_DEFINE_TYPE (GkbdConfiguration, gkbd_configuration, G_TYPE_OBJECT) ++ ++/* Should be called once for all widgets */ ++static void ++gkbd_configuration_cfg_changed (GSettings *settings, ++ const char *key, ++ GkbdConfiguration * configuration) ++{ ++ GkbdConfigurationPrivate *priv = configuration->priv; ++ ++ xkl_debug (100, ++ "General configuration changed in GSettings - reiniting...\n"); ++ gkbd_desktop_config_load (&priv->cfg); ++ gkbd_desktop_config_activate (&priv->cfg); ++ ++ g_signal_emit (configuration, ++ signals[SIGNAL_CHANGED], 0); ++} ++ ++/* Should be called once for all widgets */ ++static void ++gkbd_configuration_ind_cfg_changed (GSettings *settings, ++ const char *key, ++ GkbdConfiguration * configuration) ++{ ++ GkbdConfigurationPrivate *priv = configuration->priv; ++ xkl_debug (100, ++ "Applet configuration changed in GSettings - reiniting...\n"); ++ gkbd_indicator_config_load (&priv->ind_cfg); ++ ++ gkbd_indicator_config_free_image_filenames (&priv->ind_cfg); ++ gkbd_indicator_config_load_image_filenames (&priv->ind_cfg, ++ &priv->kbd_cfg); ++ ++ gkbd_indicator_config_activate (&priv->ind_cfg); ++ ++ g_signal_emit (configuration, ++ signals[SIGNAL_CHANGED], 0); ++} ++ ++static void ++gkbd_configuration_load_group_names (GkbdConfiguration * configuration, ++ XklConfigRec * xklrec) ++{ ++ GkbdConfigurationPrivate *priv = configuration->priv; ++ ++ if (!gkbd_desktop_config_load_group_descriptions (&priv->cfg, ++ priv->registry, ++ (const char **) xklrec->layouts, ++ (const char **) xklrec->variants, ++ &priv->short_group_names, ++ &priv->full_group_names)) { ++ /* We just populate no short names (remain NULL) - ++ * full names are going to be used anyway */ ++ gint i, total_groups = ++ xkl_engine_get_num_groups (priv->engine); ++ xkl_debug (150, "group descriptions loaded: %d!\n", ++ total_groups); ++ priv->full_group_names = ++ g_new0 (char *, total_groups + 1); ++ ++ if (xkl_engine_get_features (priv->engine) & ++ XKLF_MULTIPLE_LAYOUTS_SUPPORTED) { ++ for (i = 0; priv->kbd_cfg.layouts_variants[i]; i++) { ++ priv->full_group_names[i] = ++ g_strdup ((char *) priv->kbd_cfg.layouts_variants[i]); ++ } ++ } else { ++ for (i = total_groups; --i >= 0;) { ++ priv->full_group_names[i] = ++ g_strdup_printf ("Group %d", i); ++ } ++ } ++ } ++} ++ ++/* Should be called once for all widgets */ ++static void ++gkbd_configuration_kbd_cfg_callback (XklEngine *engine, ++ GkbdConfiguration *configuration) ++{ ++ GkbdConfigurationPrivate *priv = configuration->priv; ++ XklConfigRec *xklrec = xkl_config_rec_new (); ++ xkl_debug (100, ++ "XKB configuration changed on X Server - reiniting...\n"); ++ ++ gkbd_keyboard_config_load_from_x_current (&priv->kbd_cfg, ++ xklrec); ++ ++ gkbd_indicator_config_free_image_filenames (&priv->ind_cfg); ++ gkbd_indicator_config_load_image_filenames (&priv->ind_cfg, ++ &priv->kbd_cfg); ++ ++ g_strfreev (priv->full_group_names); ++ priv->full_group_names = NULL; ++ ++ g_strfreev (priv->short_group_names); ++ priv->short_group_names = NULL; ++ ++ gkbd_configuration_load_group_names (configuration, ++ xklrec); ++ ++ g_signal_emit (configuration, ++ signals[SIGNAL_CHANGED], ++ 0); ++ ++ g_object_unref (G_OBJECT (xklrec)); ++} ++ ++/* Should be called once for all applets */ ++static void ++gkbd_configuration_state_callback (XklEngine * engine, ++ XklEngineStateChange changeType, ++ gint group, gboolean restore, ++ GkbdConfiguration * configuration) ++{ ++ xkl_debug (150, "group is now %d, restore: %d\n", group, restore); ++ ++ if (changeType == GROUP_CHANGED) { ++ g_signal_emit (configuration, ++ signals[SIGNAL_GROUP_CHANGED], 0, ++ group); ++ } ++} ++ ++static void ++gkbd_configuration_init (GkbdConfiguration *configuration) ++{ ++ GkbdConfigurationPrivate *priv; ++ XklConfigRec *xklrec = xkl_config_rec_new (); ++ ++ priv = GKBD_CONFIGURATION_GET_PRIVATE (configuration); ++ configuration->priv = priv; ++ ++ priv->engine = xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); ++ if (priv->engine == NULL) { ++ xkl_debug (0, "Libxklavier initialization error"); ++ return; ++ } ++ ++ priv->state_changed_handler = ++ g_signal_connect (priv->engine, "X-state-changed", ++ G_CALLBACK (gkbd_configuration_state_callback), ++ configuration); ++ priv->config_changed_handler = ++ g_signal_connect (priv->engine, "X-config-changed", ++ G_CALLBACK (gkbd_configuration_kbd_cfg_callback), ++ configuration); ++ ++ gkbd_desktop_config_init (&priv->cfg, priv->engine); ++ gkbd_keyboard_config_init (&priv->kbd_cfg, priv->engine); ++ gkbd_indicator_config_init (&priv->ind_cfg, priv->engine); ++ ++ gkbd_desktop_config_load (&priv->cfg); ++ gkbd_desktop_config_activate (&priv->cfg); ++ ++ priv->registry = xkl_config_registry_get_instance (priv->engine); ++ xkl_config_registry_load (priv->registry, ++ priv->cfg.load_extra_items); ++ ++ gkbd_keyboard_config_load_from_x_current (&priv->kbd_cfg, ++ xklrec); ++ ++ gkbd_indicator_config_load (&priv->ind_cfg); ++ ++ gkbd_indicator_config_load_image_filenames (&priv->ind_cfg, ++ &priv->kbd_cfg); ++ ++ gkbd_indicator_config_activate (&priv->ind_cfg); ++ ++ gkbd_configuration_load_group_names (configuration, ++ xklrec); ++ g_object_unref (G_OBJECT (xklrec)); ++ ++ gkbd_desktop_config_start_listen (&priv->cfg, ++ G_CALLBACK (gkbd_configuration_cfg_changed), ++ configuration); ++ gkbd_indicator_config_start_listen (&priv->ind_cfg, ++ G_CALLBACK (gkbd_configuration_ind_cfg_changed), ++ configuration); ++ xkl_engine_start_listen (priv->engine, ++ XKLL_TRACK_KEYBOARD_STATE); ++ ++ xkl_debug (100, "Initiating the widget startup process for %p\n", ++ configuration); ++} ++ ++static void ++gkbd_configuration_finalize (GObject * obj) ++{ ++ GkbdConfiguration *configuration = GKBD_CONFIGURATION (obj); ++ GkbdConfigurationPrivate *priv = configuration->priv; ++ ++ xkl_debug (100, ++ "Starting the gnome-kbd-configuration widget shutdown process for %p\n", ++ configuration); ++ ++ xkl_engine_stop_listen (priv->engine, ++ XKLL_TRACK_KEYBOARD_STATE); ++ ++ gkbd_desktop_config_stop_listen (&priv->cfg); ++ gkbd_indicator_config_stop_listen (&priv->ind_cfg); ++ ++ gkbd_indicator_config_term (&priv->ind_cfg); ++ gkbd_keyboard_config_term (&priv->kbd_cfg); ++ gkbd_desktop_config_term (&priv->cfg); ++ ++ if (g_signal_handler_is_connected (priv->engine, ++ priv->state_changed_handler)) { ++ g_signal_handler_disconnect (priv->engine, ++ priv->state_changed_handler); ++ priv->state_changed_handler = 0; ++ } ++ if (g_signal_handler_is_connected (priv->engine, ++ priv->config_changed_handler)) { ++ g_signal_handler_disconnect (priv->engine, ++ priv->config_changed_handler); ++ priv->config_changed_handler = 0; ++ } ++ ++ g_object_unref (priv->registry); ++ priv->registry = NULL; ++ g_object_unref (priv->engine); ++ priv->engine = NULL; ++ ++ G_OBJECT_CLASS (gkbd_configuration_parent_class)->finalize (obj); ++} ++ ++static void ++gkbd_configuration_class_init (GkbdConfigurationClass * klass) ++{ ++ GObjectClass *object_class = G_OBJECT_CLASS (klass); ++ ++ /* Initing vtable */ ++ object_class->finalize = gkbd_configuration_finalize; ++ ++ /* Signals */ ++ signals[SIGNAL_CHANGED] = g_signal_new ("changed", ++ GKBD_TYPE_CONFIGURATION, ++ G_SIGNAL_RUN_LAST, ++ 0, ++ NULL, NULL, ++ g_cclosure_marshal_VOID__VOID, ++ G_TYPE_NONE, ++ 0); ++ signals[SIGNAL_GROUP_CHANGED] = g_signal_new ("group-changed", ++ GKBD_TYPE_CONFIGURATION, ++ G_SIGNAL_RUN_LAST, ++ 0, ++ NULL, NULL, ++ g_cclosure_marshal_VOID__INT, ++ G_TYPE_NONE, ++ 1, ++ G_TYPE_INT); ++ ++ g_type_class_add_private (klass, sizeof (GkbdConfigurationPrivate)); ++} ++ ++GkbdConfiguration * ++gkbd_configuration_get (void) ++{ ++ static gpointer instance = NULL; ++ ++ if (!instance) { ++ instance = g_object_new (GKBD_TYPE_CONFIGURATION, NULL); ++ g_object_add_weak_pointer (instance, &instance); ++ } else { ++ g_object_ref (instance); ++ } ++ ++ return instance; ++} ++ ++XklEngine * ++gkbd_configuration_get_xkl_engine (GkbdConfiguration *configuration) ++{ ++ return configuration->priv->engine; ++} ++ ++const char * const * ++gkbd_configuration_get_group_names (GkbdConfiguration *configuration) ++{ ++ return configuration->priv->full_group_names; ++} ++ ++const char * const * ++gkbd_configuration_get_short_group_names (GkbdConfiguration *configuration) ++{ ++ return configuration->priv->short_group_names; ++} +diff -uNrp a/plugins/keyboard/xxx/gkbd-configuration.h b/plugins/keyboard/xxx/gkbd-configuration.h +--- a/plugins/keyboard/xxx/gkbd-configuration.h 1970-01-01 01:00:00.000000000 +0100 ++++ b/plugins/keyboard/xxx/gkbd-configuration.h 2013-08-25 16:36:02.000000000 +0100 +@@ -0,0 +1,65 @@ ++/* ++ * Copyright (C) 2010 Canonical Ltd. ++ * ++ * Authors: Jan Arne Petersen <jpetersen@openismus.com> ++ * ++ * Based on gkbd-status.h by Sergey V. Udaltsov <svu@gnome.org> ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the ++ * Free Software Foundation, Inc., 51 Franklin Street - Suite 500, ++ * Boston, MA 02110-1335, USA. ++ */ ++ ++#ifndef __GKBD_CONFIGURATION_H__ ++#define __GKBD_CONFIGURATION_H__ ++ ++#include <glib-object.h> ++ ++#include <libxklavier/xklavier.h> ++ ++G_BEGIN_DECLS ++ ++typedef struct _GkbdConfiguration GkbdConfiguration; ++typedef struct _GkbdConfigurationPrivate GkbdConfigurationPrivate; ++typedef struct _GkbdConfigurationClass GkbdConfigurationClass; ++ ++#define GKBD_TYPE_CONFIGURATION (gkbd_configuration_get_type ()) ++#define GKBD_CONFIGURATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GKBD_TYPE_CONFIGURATION, GkbdConfiguration)) ++#define GKBD_INDCATOR_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), GKBD_TYPE_CONFIGURATION, GkbdConfigurationClass)) ++#define GKBD_IS_CONFIGURATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GKBD_TYPE_CONFIGURATION)) ++#define GKBD_IS_CONFIGURATION_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((obj), GKBD_TYPE_CONFIGURATION)) ++#define GKBD_CONFIGURATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GKBD_TYPE_CONFIGURATION, GkbdConfigurationClass)) ++ ++struct _GkbdConfiguration { ++ GObject parent; ++ ++ GkbdConfigurationPrivate *priv; ++}; ++ ++struct _GkbdConfigurationClass { ++ GObjectClass parent_class; ++}; ++ ++extern GType gkbd_configuration_get_type (void); ++ ++extern GkbdConfiguration *gkbd_configuration_get (void); ++ ++extern XklEngine *gkbd_configuration_get_xkl_engine (GkbdConfiguration *configuration); ++ ++extern const char * const *gkbd_configuration_get_group_names (GkbdConfiguration *configuration); ++extern const char * const *gkbd_configuration_get_short_group_names (GkbdConfiguration *configuration); ++ ++G_END_DECLS ++ ++#endif +diff -uNrp a/plugins/media-keys/csd-media-keys-manager.c b/plugins/media-keys/csd-media-keys-manager.c +--- a/plugins/media-keys/csd-media-keys-manager.c 2013-08-24 18:04:31.000000000 +0100 ++++ b/plugins/media-keys/csd-media-keys-manager.c 2013-08-25 16:36:02.000000000 +0100 +@@ -120,6 +120,10 @@ static const gchar kb_introspection_xml[ + #define VOLUME_STEP 6 /* percents for one volume button press */ + #define MAX_VOLUME 65536.0 + ++#define GNOME_DESKTOP_INPUT_SOURCES_DIR "org.cinnamon.desktop.input-sources" ++#define KEY_CURRENT_INPUT_SOURCE "current" ++#define KEY_INPUT_SOURCES "sources" ++ + #define CSD_MEDIA_KEYS_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CSD_TYPE_MEDIA_KEYS_MANAGER, CsdMediaKeysManagerPrivate)) + + typedef struct { +@@ -1750,6 +1754,40 @@ do_keyboard_brightness_action (CsdMediaK + manager); + } + ++static void ++do_switch_input_source_action (CsdMediaKeysManager *manager, ++ MediaKeyType type) ++{ ++ GSettings *settings; ++ GVariant *sources; ++ gint i, n; ++ ++ settings = g_settings_new (GNOME_DESKTOP_INPUT_SOURCES_DIR); ++ sources = g_settings_get_value (settings, KEY_INPUT_SOURCES); ++ ++ n = g_variant_n_children (sources); ++ if (n < 2) ++ goto out; ++ ++ i = g_settings_get_uint (settings, KEY_CURRENT_INPUT_SOURCE); ++ ++ if (type == SWITCH_INPUT_SOURCE_KEY) ++ i += 1; ++ else ++ i -= 1; ++ ++ if (i < 0) ++ i = n - 1; ++ else if (i >= n) ++ i = 0; ++ ++ g_settings_set_uint (settings, KEY_CURRENT_INPUT_SOURCE, i); ++ ++ out: ++ g_variant_unref (sources); ++ g_object_unref (settings); ++} ++ + static gboolean + do_action (CsdMediaKeysManager *manager, + guint deviceid, +@@ -1908,6 +1946,10 @@ do_action (CsdMediaKeysManager *manager, + case BATTERY_KEY: + do_execute_desktop (manager, "gnome-power-statistics.desktop", timestamp); + break; ++ case SWITCH_INPUT_SOURCE_KEY: ++ case SWITCH_INPUT_SOURCE_BACKWARD_KEY: ++ do_switch_input_source_action (manager, type); ++ break; + /* Note, no default so compiler catches missing keys */ + case CUSTOM_KEY: + g_assert_not_reached (); +diff -uNrp a/plugins/media-keys/shortcuts-list.h b/plugins/media-keys/shortcuts-list.h +--- a/plugins/media-keys/shortcuts-list.h 2013-08-24 18:04:31.000000000 +0100 ++++ b/plugins/media-keys/shortcuts-list.h 2013-08-25 16:36:02.000000000 +0100 +@@ -81,6 +81,8 @@ typedef enum { + KEYBOARD_BRIGHTNESS_DOWN_KEY, + KEYBOARD_BRIGHTNESS_TOGGLE_KEY, + BATTERY_KEY, ++ SWITCH_INPUT_SOURCE_KEY, ++ SWITCH_INPUT_SOURCE_BACKWARD_KEY, + CUSTOM_KEY + } MediaKeyType; + +@@ -148,6 +150,9 @@ static struct { + { KEYBOARD_BRIGHTNESS_UP_KEY, NULL, "XF86KbdBrightnessUp" }, + { KEYBOARD_BRIGHTNESS_DOWN_KEY, NULL, "XF86KbdBrightnessDown" }, + { KEYBOARD_BRIGHTNESS_TOGGLE_KEY, NULL, "XF86KbdLightOnOff" }, ++ { SWITCH_INPUT_SOURCE_KEY, "switch-input-source", NULL }, ++ { SWITCH_INPUT_SOURCE_BACKWARD_KEY, "switch-input-source-backward", NULL }, ++ + { BATTERY_KEY, NULL, "XF86Battery" }, + }; + diff --git a/community/cinnamon/PKGBUILD b/community/cinnamon/PKGBUILD index fc345c2e4..2a7c3c3e7 100644 --- a/community/cinnamon/PKGBUILD +++ b/community/cinnamon/PKGBUILD @@ -1,21 +1,21 @@ -# $Id: PKGBUILD 98186 2013-10-07 12:08:20Z jgc $ +# $Id: PKGBUILD 98400 2013-10-09 16:38:23Z faidoc $ # Maintainer: Alexandre Filgueira <alexfilgueira@cinnarch.com> # Contributor: M0Rf30 # Contributor: unifiedlinux # Contributor: CReimer pkgname=cinnamon -pkgver=1.9.2 +pkgver=2.0.2 pkgrel=1 pkgdesc="Linux desktop which provides advanced innovative features and a traditional user experience" arch=('i686' 'x86_64' 'mips64el') url="http://cinnamon.linuxmint.com/" license=('GPL2') -depends=('accountsservice' 'caribou' 'clutter-gtk' 'cjs' 'gnome-bluetooth' - 'gnome-icon-theme' 'gnome-menus' 'cinnamon-settings-daemon' 'cinnamon-session' - 'gnome-themes-standard' 'gstreamer0.10' 'libgnome-keyring' 'librsvg' - 'networkmanager' 'muffin' 'pygtk' 'python2-dbus' 'python2-pillow' 'python2-pexpect' - 'python2-pyinotify' 'python2-lxml' 'webkitgtk' 'gnome-panel' 'python2' 'cinnamon-translations') +depends=('accountsservice' 'caribou' 'cinnamon-settings-daemon' 'cinnamon-session' + 'cinnamon-translations' 'cjs' 'clutter-gtk' 'gconf' 'gnome-icon-theme' + 'gnome-menus' 'gnome-themes-standard' 'gstreamer0.10' 'libgnome-keyring' + 'librsvg' 'networkmanager' 'muffin' 'pygtk' 'python2-dbus' 'python2-pillow' + 'python2-pam' 'python2-pexpect' 'python2-pyinotify' 'python2-lxml' 'webkitgtk') makedepends=('gnome-common' 'intltool') optdepends=('cinnamon-control-center: extended configurations for Cinnamon' 'cinnamon-screensaver: lock screen' @@ -25,13 +25,17 @@ optdepends=('cinnamon-control-center: extended configurations for Cinnamon' options=('!libtool' '!emptydirs') install=${pkgname}.install source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/Cinnamon/archive/$pkgver.tar.gz" - "remove_GC.patch" "fix-control-center-check.patch" - "background.patch") -sha256sums=('0abaa8da02c4d626084aa482adc551af154796c4c35faaebebdac896ce72aa6d' - '3d362efd15f8cfeca1713f5bcf88d4be787b39d7c7f24b73cd13f867af33a680' + "background.patch" + "keyboard_applet.patch" + "input_keybindings.patch" + "org.archlinux.pkexec.cinnamon-settings-users.policy") +sha256sums=('3b7043a603c19d96bf1e5ccaafde24ca507c93ee51e81e8c5c8754457a18a5ac' 'ee5694bdc997ffa35a817f691b15bae13747137d35ec2aecd0da298d7edbe426' - '373d80cdb23250fbde846ed493ba422672cc42b03a111c2ce044467ee782df7f') + '373d80cdb23250fbde846ed493ba422672cc42b03a111c2ce044467ee782df7f' + '6acb07393105ddced8a4c3c869a596350d1a7d81a808ca5307d2ad770653a9d3' + 'e28c40eb844105154fa6106f5b4de3151a22805b3a7b2f84be9ea6c15cec3de6' + '371beac9e55d36f7629d2fc5cb40d6a3e6c0f4aac014f6fefdcd6743b5194b23') prepare() { cd ${srcdir}/Cinnamon* @@ -40,20 +44,26 @@ prepare() { sed -i 's:/usr/bin/python :/usr/bin/python2 :' files/usr/bin/cinnamon-menu-editor find -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@' - # Fix crasher when disconnecting from wifi - patch -Np1 -i ../remove_GC.patch - # Check for the cc-panel path, not for the unneeded binary patch -Np1 -i ../fix-control-center-check.patch # Fix missing backgrounds patch -Np1 -i ../background.patch + # Fix keyboard applet + patch -Np1 -i ../keyboard_applet.patch + + # Add input keybindings + patch -Np1 -i ../input_keybindings.patch + # Prefix 'System Settings' with 'Cinnamon' to avoid confusion with gnome-control-center - sed -i 's/^Name\(.*\)=\(.*\)/Name\1=Cinnamon \2/' files/usr/share/applications/cinnamon-settings.desktop + sed -i 's/^Name\(.*\)=\(.*\)/Name\1=Cinnamon \2/' files/usr/share/applications/cinnamon-settings{,-users}.desktop # fix for the python2 PAM module sed -i 's:import PAM:import pam:' files/usr/lib/cinnamon-settings/modules/cs_user.py + + # Use pkexec instead of gksu + sed -i 's/gksu/pkexec/' files/usr/bin/cinnamon-settings-users } build() { @@ -76,4 +86,8 @@ package() { # Remove leftover files after patching find "$pkgdir" -type f -name *.orig | xargs rm + + # Install policy file + install -Dm644 "${srcdir}/org.archlinux.pkexec.cinnamon-settings-users.policy" \ + "${pkgdir}/usr/share/polkit-1/actions/org.archlinux.pkexec.cinnamon-settings-users.policy" } diff --git a/community/cinnamon/input_keybindings.patch b/community/cinnamon/input_keybindings.patch new file mode 100644 index 000000000..2e7a4cd66 --- /dev/null +++ b/community/cinnamon/input_keybindings.patch @@ -0,0 +1,11 @@ +--- a/files/usr/lib/cinnamon-settings/modules/cs_keyboard.py ++++ b/files/usr/lib/cinnamon-settings/modules/cs_keyboard.py +@@ -119,6 +119,8 @@ KEYBINDINGS = [ + [_("Log out"), MEDIA_KEYS_SCHEMA, "logout", False, "system"], + [_("Lock screen"), MEDIA_KEYS_SCHEMA, "screensaver", False, "system"], + [_("Toggle recording desktop (must restart Cinnamon)"), MUFFIN_KEYBINDINGS_SCHEMA, "toggle-recording", True, "system"], ++ [_("Switch to next source"), MEDIA_KEYS_SCHEMA, "switch-input-source", False, "system"], ++ [_("Switch to previous source"), MEDIA_KEYS_SCHEMA, "switch-input-source-backward", False, "system"], + + # Launchers + [_("Launch help browser"), MEDIA_KEYS_SCHEMA, "help", False, "launchers"], diff --git a/community/cinnamon/keyboard_applet.patch b/community/cinnamon/keyboard_applet.patch new file mode 100644 index 000000000..29ea489ce --- /dev/null +++ b/community/cinnamon/keyboard_applet.patch @@ -0,0 +1,133 @@ +--- a/files/usr/share/cinnamon/applets/keyboard@cinnamon.org/applet.js ++++ b/files/usr/share/cinnamon/applets/keyboard@cinnamon.org/applet.js +@@ -1,9 +1,10 @@ + const Applet = imports.ui.applet; +-const Gkbd = imports.gi.Gkbd; + const Lang = imports.lang; +-const Cinnamon = imports.gi.Cinnamon; ++const Gio = imports.gi.Gio; ++const GLib = imports.gi.GLib; + const St = imports.gi.St; + const Gtk = imports.gi.Gtk; ++const CinnamonDesktop = imports.gi.CinnamonDesktop; + const Main = imports.ui.main; + const PopupMenu = imports.ui.popupMenu; + const Util = imports.misc.util; +@@ -16,11 +17,12 @@ function LayoutMenuItem() { + LayoutMenuItem.prototype = { + __proto__: PopupMenu.PopupBaseMenuItem.prototype, + +- _init: function(config, id, indicator, long_name) { ++ _init: function(ipsettings, id, index, indicator, long_name) { + PopupMenu.PopupBaseMenuItem.prototype._init.call(this); + +- this._config = config; ++ this._ipsettings = ipsettings; + this._id = id; ++ this._index = index; + this.label = new St.Label({ text: long_name }); + this.indicator = indicator; + this.addActor(this.label); +@@ -29,7 +31,7 @@ LayoutMenuItem.prototype = { + + activate: function(event) { + PopupMenu.PopupBaseMenuItem.prototype.activate.call(this); +- this._config.lock_group(this._id); ++ this._ipsettings.set_value('current', GLib.Variant.new_uint32(this._index)); + } + }; + +@@ -62,18 +64,18 @@ MyApplet.prototype = { + this._syncConfig, + null); + +- this._config = Gkbd.Configuration.get(); +- this._config.connect('changed', Lang.bind(this, this._syncConfig)); +- this._config.connect('group-changed', Lang.bind(this, this._syncGroup)); ++ this._xkbInfo = new CinnamonDesktop.XkbInfo(); ++ this._ipsettings = new Gio.Settings({ schema: 'org.cinnamon.desktop.input-sources' }); ++ this._ipsettings.connect('changed::sources', Lang.bind(this, this._syncConfig)); ++ this._ipsettings.connect('changed::current', Lang.bind(this, this._syncGroup)); + +- this._config.start_listen(); + + this._syncConfig(); + + this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); + this.menu.addAction(_("Show Keyboard Layout"), Lang.bind(this, function() { + Main.overview.hide(); +- Util.spawn(['gkbd-keyboard-display', '-g', String(this._config.get_current_group() + 1)]); ++ Util.spawn(['gkbd-keyboard-display', '-l', this._selectedLayout._id]); + })); + this.menu.addAction(_("Show Character Table"), Lang.bind(this, function() { + Main.overview.hide(); +@@ -113,8 +115,8 @@ MyApplet.prototype = { + }, + + _syncConfig: function() { +- let groups = this._config.get_group_names(); +- if (groups.length > 1) { ++ let sources = this._ipsettings.get_value('sources'); ++ if (sources.n_children() > 1) { + this.actor.show(); + } else { + this.menu.close(); +@@ -127,25 +129,30 @@ MyApplet.prototype = { + for (let i = 0; i < this._labelActors.length; i++) + this._labelActors[i].destroy(); + +- let short_names = this._adjustGroupNames(this._config.get_short_group_names()); + + this._selectedLayout = null; + this._layoutItems = [ ]; + this._labelActors = [ ]; +- for (let i = 0; i < groups.length; i++) { +- let icon_name = this._config.get_group_name(i); ++ for (let i = 0; i < sources.n_children(); i++) { ++ let [type, id] = sources.get_child_value(i).deep_unpack(); ++ let displayName = id; ++ let shortName = id; ++ let xkbLayout = id; ++ if (type == 'xkb') { ++ [_exists, displayName, shortName, xkbLayout, _xkbVariant] = this._xkbInfo.get_layout_info(id); ++ } // TODO: errorhandling, handle 'ibus' ++ let icon_name = xkbLayout; // FIXME: Really? + let actor; + if (this._showFlags) + actor = new St.Icon({ icon_name: icon_name, icon_type: St.IconType.FULLCOLOR, style_class: 'popup-menu-icon' }); + else +- actor = new St.Label({ text: short_names[i] }); +- let item = new LayoutMenuItem(this._config, i, actor, groups[i]); +- item._short_group_name = short_names[i]; ++ actor = new St.Label({ text: shortName }); ++ let item = new LayoutMenuItem(this._ipsettings, id, i, actor, displayName); + item._icon_name = icon_name; + this._layoutItems.push(item); + this.menu.addMenuItem(item, i); + +- let shortLabel = new St.Label({ text: short_names[i] }); ++ let shortLabel = new St.Label({ text: shortName }); + this._labelActors.push(shortLabel); + } + +@@ -153,17 +160,17 @@ MyApplet.prototype = { + }, + + _syncGroup: function() { +- let selected = this._config.get_current_group(); ++ let current = this._ipsettings.get_uint('current'); + + if (this._selectedLayout) { + this._selectedLayout.setShowDot(false); + this._selectedLayout = null; + } + +- let item = this._layoutItems[selected]; ++ let item = this._layoutItems[current]; + item.setShowDot(true); + +- let selectedLabel = this._labelActors[selected]; ++ let selectedLabel = this._labelActors[current]; + + if (this._showFlags) { + this.set_applet_icon_name(item._icon_name); diff --git a/community/cinnamon/org.archlinux.pkexec.cinnamon-settings-users.policy b/community/cinnamon/org.archlinux.pkexec.cinnamon-settings-users.policy new file mode 100644 index 000000000..4d30ca9f3 --- /dev/null +++ b/community/cinnamon/org.archlinux.pkexec.cinnamon-settings-users.policy @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE policyconfig PUBLIC + "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" + "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd"> +<policyconfig> + + <action id="org.archlinux.pkexec.cinnamon-settings-users"> + <message>Authentication is required to run the Cinnamon Users and Groups</message> + <icon_name>system-users</icon_name> + <defaults> + <allow_any>auth_admin</allow_any> + <allow_inactive>auth_admin</allow_inactive> + <allow_active>auth_admin</allow_active> + </defaults> + <annotate key="org.freedesktop.policykit.exec.path">/usr/lib/cinnamon-settings-users/cinnamon-settings-users.py</annotate> + <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate> + </action> + +</policyconfig> + diff --git a/community/cinnamon/remove_GC.patch b/community/cinnamon/remove_GC.patch deleted file mode 100644 index 7bd8e45a6..000000000 --- a/community/cinnamon/remove_GC.patch +++ /dev/null @@ -1,124 +0,0 @@ ---- a/src/cinnamon-global.c -+++ b/src/cinnamon-global.c -@@ -1399,35 +1399,6 @@ cinnamon_global_reexec_self (CinnamonGlo - g_ptr_array_free (arr, TRUE); - } - --/** -- * cinnamon_global_gc: -- * @global: A #CinnamonGlobal -- * -- * Start a garbage collection process. For more information, see -- * https://developer.mozilla.org/En/JS_GC -- */ --void --cinnamon_global_gc (CinnamonGlobal *global) --{ -- JSContext *context = gjs_context_get_native_context (global->js_context); -- -- JS_GC (context); --} -- --/** -- * cinnamon_global_maybe_gc: -- * @global: A #CinnamonGlobal -- * -- * Start a garbage collection process when it would free up enough memory -- * to be worth the amount of time it would take -- * https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_MaybeGC -- */ --void --cinnamon_global_maybe_gc (CinnamonGlobal *global) --{ -- gjs_context_maybe_gc (global->js_context); --} -- - static void - cinnamon_global_on_gc (GjsContext *context, - CinnamonGlobal *global) -@@ -1768,13 +1768,6 @@ run_leisure_functions (gpointer data) - if (global->work_count > 0) - return FALSE; - -- /* Previously we called gjs_maybe_gc(). However, it simply doesn't -- * trigger often enough. Garbage collection is very fast here, so -- * let's just aggressively GC. This will help avoid both heap -- * fragmentation, and the GC kicking in when we don't want it to. -- */ -- gjs_context_gc (global->js_context); -- - /* No leisure closures, so we are done */ - if (global->leisure_closures == NULL) - return FALSE; ---- a/src/cinnamon-global.h -+++ b/src/cinnamon-global.h -@@ -88,10 +88,6 @@ void cinnamon_global_set_pointer - int y); - - --/* JavaScript utilities */ --void cinnamon_global_gc (CinnamonGlobal *global); --void cinnamon_global_maybe_gc (CinnamonGlobal *global); -- - typedef struct { - guint glibc_uordblks; - - - ---- a/js/perf/core.js -+++ b/js/perf/core.js -@@ -1,5 +1,7 @@ - // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- - -+const System = imports.system; -+ - const Main = imports.ui.main; - const Scripting = imports.ui.scripting; - -@@ -99,7 +101,7 @@ function run() { - Main.overview.hide(); - yield Scripting.waitLeisure(); - -- global.gc(); -+ System.gc(); - yield Scripting.sleep(1000); - Scripting.collectStatistics(); - Scripting.scriptEvent('afterShowHide'); ---- a/js/ui/lookingGlass.js -+++ b/js/ui/lookingGlass.js -@@ -11,6 +11,7 @@ const St = imports.gi.St; - const Cinnamon = imports.gi.Cinnamon; - const Signals = imports.signals; - const Lang = imports.lang; -+const System = imports.system; - - const History = imports.misc.history; - const Extension = imports.ui.extension; -@@ -680,7 +681,7 @@ Memory.prototype = { - - this._gcbutton = new St.Button({ label: 'Full GC', - style_class: 'lg-obj-inspector-button' }); -- this._gcbutton.connect('clicked', Lang.bind(this, function () { global.gc(); this._renderText(); })); -+ this._gcbutton.connect('clicked', Lang.bind(this, function () { System.gc(); this._renderText(); })); - this.actor.add(this._gcbutton, { x_align: St.Align.START, - x_fill: false }); - ---- a/js/ui/lookingGlassDBus.js -+++ b/js/ui/lookingGlassDBus.js -@@ -1,5 +1,7 @@ - // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- - -+const System = imports.system; -+ - const Gio = imports.gi.Gio; - const Main = imports.ui.main; - const Extension = imports.ui.extension; -@@ -99,7 +101,7 @@ CinnamonLookingGlass.prototype = { - }, - - FullGc: function() { -- global.gc(); -+ System.gc(); - }, - - Inspect: function(path) { diff --git a/community/cppcheck/PKGBUILD b/community/cppcheck/PKGBUILD index 7f645a576..28fb38e4b 100644 --- a/community/cppcheck/PKGBUILD +++ b/community/cppcheck/PKGBUILD @@ -1,17 +1,18 @@ -# $Id: PKGBUILD 97709 2013-09-27 18:17:34Z jelle $ +# $Id: PKGBUILD 98518 2013-10-12 16:47:42Z jelle $ # Maintainer: Stéphane Gaudreault <stephane@archlinux.org> pkgname=cppcheck -pkgver=1.61 -pkgrel=2 +pkgver=1.62.1 +pkgrel=1 pkgdesc="A tool for static C/C++ code analysis" arch=('i686' 'x86_64' 'mips64el') url="http://cppcheck.wiki.sourceforge.net/" license=('GPL') depends=('qt5-base') makedepends=('docbook-xsl') -source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2) -sha1sums=('fd81635612ba74a90b0ebe6d4c8a520826cc077c') +source=(https://github.com/danmar/cppcheck/archive/${pkgver}.tar.gz) +sha1sums=('2494a603bd505cc6ae5bd67286410a66cf7996b2') + build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/community/dmd/PKGBUILD b/community/dmd/PKGBUILD index 95bed66d6..72037c483 100644 --- a/community/dmd/PKGBUILD +++ b/community/dmd/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 97970 2013-10-02 11:26:53Z dicebot $ +# $Id: PKGBUILD 98383 2013-10-09 11:50:00Z dicebot $ # Maintainer: Mihails Strasunse <public@dicebot.lv> # Contributor: Sven-Hendrik Haase <sh@lutzhaase.com> # Contributor: Chris Brannon <cmbrannon79@gmail.com> @@ -10,7 +10,7 @@ pkgname=('dmd' 'libphobos-devel' 'libphobos' 'dtools') groups=('dlang' 'dlang-dmd') pkgbase=dmd pkgver=2.063.2 -pkgrel=3 +pkgrel=4 arch=('i686' 'x86_64') url="http://www.dlang.org" makedepends=('git' 'gcc' 'make') @@ -62,7 +62,7 @@ package_dmd() { install -Dm755 $srcdir/dmd/src/dmd $pkgdir/usr/bin/dmd mkdir -p $pkgdir/etc - echo -e "[Environment]\nDFLAGS=-I/usr/include/dlang/dmd -I/usr/include/dlang/dmd/druntime/import -L-L/usr/lib -L-L/usr/lib32 -L--no-warn-search-mismatch -L--export-dynamic" > $pkgdir/etc/dmd.conf + echo -e "[Environment]\nDFLAGS=-I/usr/include/dlang/dmd -L-L/usr/lib -L-L/usr/lib32 -L--no-warn-search-mismatch -L--export-dynamic" > $pkgdir/etc/dmd.conf install -Dm644 $srcdir/dmd/docs/man/man1/dmd.1 $pkgdir/usr/share/man/man1/dmd.1 install -Dm644 $srcdir/dmd/docs/man/man1/dmd.conf.5 $pkgdir/usr/share/man/man5/dmd.conf.5 @@ -89,9 +89,7 @@ package_libphobos-devel() { mkdir -p $pkgdir/usr/include/dlang/dmd cp -r $srcdir/phobos/{*.d,etc,std} $pkgdir/usr/include/dlang/dmd - - mkdir -p $pkgdir/usr/include/dlang/dmd/druntime - cp -r $srcdir/druntime/import $pkgdir/usr/include/dlang/dmd/druntime + cp -r $srcdir/druntime/import/* $pkgdir/usr/include/dlang/dmd/ find $pkgdir/usr -type f | xargs chmod 0644 diff --git a/community/fbpanel/PKGBUILD b/community/fbpanel/PKGBUILD index 97f7117cb..33b1844a9 100644 --- a/community/fbpanel/PKGBUILD +++ b/community/fbpanel/PKGBUILD @@ -1,23 +1,31 @@ -# $Id: PKGBUILD 65166 2012-02-20 06:59:42Z spupykin $ +# $Id: PKGBUILD 98391 2013-10-09 14:15:54Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: Jeff Mickey <jeff@archlinux.org> # Contributor: Torin Daniel <torindan@gmail.com> +# Contributor: Diep Pham Van <imeo@favadi.com> pkgname=fbpanel pkgver=6.1 -pkgrel=3 +pkgrel=4 pkgdesc="NetWM compliant desktop panel" arch=('i686' 'x86_64' 'mips64el') url="http://fbpanel.sourceforge.net/" depends=('gtk2') license=('GPL') -source=(http://downloads.sourceforge.net/fbpanel/fbpanel-${pkgver}.tbz2) -md5sums=('80ca0c64195b30587cfcb8c2cd9887a0') +source=("http://downloads.sourceforge.net/fbpanel/fbpanel-${pkgver}.tbz2" + "battery_fix.patch") +md5sums=('80ca0c64195b30587cfcb8c2cd9887a0' + 'dc1db8eee1be899725f350eb36793ea4') build() { cd "$srcdir/$pkgname-$pkgver" + patch -p1 <$srcdir/battery_fix.patch ./configure --prefix=/usr echo "LDFLAGSX += -lX11 -lm" >>config.mk make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" make DESTDIR="$pkgdir/" install } diff --git a/community/fbpanel/battery_fix.patch b/community/fbpanel/battery_fix.patch new file mode 100644 index 000000000..3a86e3ca7 --- /dev/null +++ b/community/fbpanel/battery_fix.patch @@ -0,0 +1,119 @@ +*** fbpanel-6.1/plugins/battery/os_linux.c~ 2010-04-08 12:35:26.000000000 +0200 +--- fbpanel-6.1/plugins/battery/os_linux.c 2013-07-09 13:13:50.958994816 +0200 +*************** +*** 1,5 **** +--- 1,6 ---- + + #include <string.h> ++ #include <stdlib.h> + #include <ctype.h> + + #define LEN 100 +*************** +*** 120,129 **** + } + + static gboolean + battery_update_os_sys(battery_priv *c) + { + ENTER; +! RET(FALSE); + } + + static gboolean +--- 121,215 ---- + } + + static gboolean ++ read_sys(battery_priv *c, GString *path) ++ { ++ int len, dcap, rcap; ++ gchar *buf; ++ gboolean ret, exist, charging; ++ ++ ENTER; ++ len = path->len; ++ ++ g_string_append(path, "/present"); ++ ret = g_file_get_contents(path->str, &buf, 0, NULL); ++ DBG("reading %s %s\n", path->str, ret ? "ok" : "fail"); ++ g_string_truncate(path, len); ++ if (!ret) ++ RET(FALSE); ++ exist = atoi(buf); ++ g_free(buf); ++ if (!exist) ++ RET(FALSE); ++ ++ g_string_append(path, "/charge_full_design"); ++ ret = g_file_get_contents(path->str, &buf, 0, NULL); ++ DBG("reading %s %s\n", path->str, ret ? "ok" : "fail"); ++ g_string_truncate(path, len); ++ if (!ret) ++ RET(FALSE); ++ dcap = atoi(buf); ++ g_free(buf); ++ if (dcap <= 0) ++ RET(FALSE); ++ ++ g_string_append(path, "/charge_now"); ++ ret = g_file_get_contents(path->str, &buf, 0, NULL); ++ DBG("reading %s %s\n", path->str, ret ? "ok" : "fail"); ++ g_string_truncate(path, len); ++ if (!ret) ++ RET(FALSE); ++ rcap = atoi(buf); ++ g_free(buf); ++ if (rcap <= 0) ++ RET(FALSE); ++ ++ g_string_append(path, "/current_now"); ++ ret = g_file_get_contents(path->str, &buf, 0, NULL); ++ DBG("reading %s %s\n", path->str, ret ? "ok" : "fail"); ++ g_string_truncate(path, len); ++ if (!ret) ++ RET(FALSE); ++ charging = (atoi(buf) <= 0); ++ g_free(buf); ++ ++ c->exist = exist; ++ c->charging = charging; ++ c->level = (int) ((gfloat) rcap * 100 / (gfloat) dcap); ++ RET(TRUE); ++ } ++ ++ static gboolean + battery_update_os_sys(battery_priv *c) + { ++ GString *path; ++ int len; ++ GDir *dir; ++ gboolean ret = FALSE; ++ const gchar *file; ++ + ENTER; +! c->exist = FALSE; +! path = g_string_sized_new(200); +! g_string_append(path, "/sys/class/power_supply"); +! len = path->len; +! if (!(dir = g_dir_open(path->str, 0, NULL))) { +! DBG("can't open dir %s\n", path->str); +! goto out; +! } +! while (!ret && (file = g_dir_read_name(dir))) { +! g_string_append(path, "/"); +! g_string_append(path, file); +! DBG("testing %s\n", path->str); +! ret = g_file_test(path->str, G_FILE_TEST_IS_DIR); +! if (ret) +! ret = read_sys(c, path); +! g_string_truncate(path, len); +! } +! g_dir_close(dir); +! +! out: +! g_string_free(path, TRUE); +! RET(ret); + } + + static gboolean diff --git a/community/gnome-menus2/PKGBUILD b/community/gnome-menus2/PKGBUILD deleted file mode 100644 index 90495aed2..000000000 --- a/community/gnome-menus2/PKGBUILD +++ /dev/null @@ -1,33 +0,0 @@ -# $Id: PKGBUILD 80041 2012-11-15 18:34:49Z bgyorgy $ -# Maintainer: Balló György <ballogyor+arch at gmail dot com> -# Contributor: Jan de Groot <jan@archlinux.org> - -pkgname=gnome-menus2 -_pkgname=gnome-menus -pkgver=3.0.1 -pkgrel=2 -pkgdesc="Library for the Desktop Menu Specification (legacy version)" -arch=('i686' 'x86_64' 'mips64el') -depends=('glib2' 'python2') -makedepends=('intltool' 'gobject-introspection') -options=('!libtool') -license=('LGPL') -url="http://www.gnome.org/" -source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver%.*}/$_pkgname-$pkgver.tar.bz2) -sha256sums=('579c119c26f37781f66708e867ea45b3c37589b3b69e5b32d33e9bdb944165f0') - -build() { - cd "$srcdir/$_pkgname-$pkgver" - - ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ - --disable-static \ - PYTHON=/usr/bin/python2 - make -} - -package(){ - cd "$srcdir/$_pkgname-$pkgver" - - make -C libmenu DESTDIR="$pkgdir" install - make -C python DESTDIR="$pkgdir" install -} diff --git a/community/gnome-panel/PKGBUILD b/community/gnome-panel/PKGBUILD deleted file mode 100644 index 3081043f6..000000000 --- a/community/gnome-panel/PKGBUILD +++ /dev/null @@ -1,64 +0,0 @@ -# $Id: PKGBUILD 98191 2013-10-07 12:08:25Z jgc $ -# Maintainer: Balló György <ballogyor+arch at gmail dot com> -# Contributor: Jan de Groot <jgc@archlinux.org> - -pkgbase=gnome-panel -pkgname=('gnome-panel' 'gnome-flashback-session') -pkgver=3.8.0 -pkgrel=2 -arch=('i686' 'x86_64' 'mips64el') -license=('GPL') -pkgdesc="Legacy GNOME panel" -url="https://live.gnome.org/GnomePanel" -depends=('dconf' 'evolution-data-server' 'gconf' 'gnome-desktop' 'gnome-menus' 'librsvg' - 'libwnck3' 'telepathy-glib') -makedepends=('gobject-introspection' 'intltool' 'itstool' 'networkmanager') -install=$pkgbase.install -options=('!libtool') -source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver:0:3}/$pkgbase-$pkgver.tar.xz - libgweather-3.10.patch - session.patch) -sha256sums=('d1cda458a38cb4f7d2a50c61b1a72f4bf4c39cab65ae0e6cfdc4e0c122252e7a' - 'd9e21449fc6c5f235673fe47e5b817ac7597490518a557908b14ca875263d90e' - 'cd4c21cf394ea5a702c660bb0d31cae31260bec1cee4e7ca8ee6c8aec2707ebb') - -prepare() { - cd "$pkgbase-$pkgver" - - # Fix build with libgweather 3.10 - patch -Np1 -i "$srcdir/libgweather-3.10.patch" - - # Add more required components to the session file - patch -Np1 -i "$srcdir/session.patch" -} - -build() { - cd "$pkgbase-$pkgver" - - ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$pkgbase \ - --disable-static --disable-schemas-compile \ - PYTHON=/usr/bin/python2 - make -} - -package_gnome-panel() { - cd "$pkgbase-$pkgver" - make DESTDIR="$pkgdir" install - - # Split out the session files - rm -r "$pkgdir"/usr/{lib/gnome-panel/gnome-*,share/{gnome-session,xsessions}} -} - -package_gnome-flashback-session() { - pkgdesc="Shell for Gnome 3 which was initially called Gnome Fallback" - url="https://live.gnome.org/GnomeFlashback" - depends=('gnome-screensaver' 'gnome-panel' 'gnome-session' 'gnome-settings-daemon' - 'gnome-settings-daemon-compat' 'gnome-themes-standard' 'metacity' - 'notification-daemon' 'polkit-gnome') - install= - - cd "$pkgbase-$pkgver" - make -C gnome-panel DESTDIR="$pkgdir" install-libexecSCRIPTS - make -C data DESTDIR="$pkgdir" install-sessionDATA - make -C data DESTDIR="$pkgdir" install-xsessionDATA -} diff --git a/community/gnome-panel/gnome-panel.install b/community/gnome-panel/gnome-panel.install deleted file mode 100644 index f7e8c46ac..000000000 --- a/community/gnome-panel/gnome-panel.install +++ /dev/null @@ -1,12 +0,0 @@ -post_install() { - glib-compile-schemas /usr/share/glib-2.0/schemas - gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} diff --git a/community/gnome-panel/libgweather-3.10.patch b/community/gnome-panel/libgweather-3.10.patch deleted file mode 100644 index 0a6e0e4e4..000000000 --- a/community/gnome-panel/libgweather-3.10.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -Naur gnome-panel-3.6.2.orig/applets/clock/clock-location.c gnome-panel-3.6.2/applets/clock/clock-location.c ---- gnome-panel-3.6.2.orig/applets/clock/clock-location.c 2013-09-27 02:39:03.315952789 +0000 -+++ gnome-panel-3.6.2/applets/clock/clock-location.c 2013-09-27 02:40:24.552036953 +0000 -@@ -542,9 +542,8 @@ - } - - priv->weather_info = -- gweather_info_new_for_world (priv->world, -- priv->loc, -- GWEATHER_FORECAST_LIST); -+ gweather_info_new (priv->loc, -+ GWEATHER_FORECAST_LIST); - g_signal_connect (priv->weather_info, "updated", - G_CALLBACK (weather_info_updated), loc); - diff --git a/community/gnome-panel/session.patch b/community/gnome-panel/session.patch deleted file mode 100644 index d288b41bb..000000000 --- a/community/gnome-panel/session.patch +++ /dev/null @@ -1,8 +0,0 @@ -diff -Naur gnome-panel-3.8.0.orig/data/gnome-flashback.session.desktop.in gnome-panel-3.8.0/data/gnome-flashback.session.desktop.in ---- gnome-panel-3.8.0.orig/data/gnome-flashback.session.desktop.in 2013-09-27 03:12:58.291413318 +0000 -+++ gnome-panel-3.8.0/data/gnome-flashback.session.desktop.in 2013-09-27 03:15:34.183583841 +0000 -@@ -1,3 +1,3 @@ - [GNOME Session] - _Name=GNOME Flashback --RequiredComponents=gnome-panel;gnome-settings-daemon;gnome-screensaver;metacity; -+RequiredComponents=gnome-panel;gnome-settings-daemon;gnome-screensaver;metacity;notification-daemon;polkit-gnome-authentication-agent-1;gnome-fallback-background-helper;gnome-fallback-media-keys-helper;gnome-fallback-mount-helper; diff --git a/community/gpsim/PKGBUILD b/community/gpsim/PKGBUILD index f96c1fada..7fe5e9e12 100644 --- a/community/gpsim/PKGBUILD +++ b/community/gpsim/PKGBUILD @@ -1,26 +1,28 @@ -# $Id: PKGBUILD 63608 2012-02-05 12:00:08Z ibiru $ +# $Id: PKGBUILD 98438 2013-10-10 13:31:09Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: mickael9 <mickael9 at gmail dot com> pkgname=gpsim -pkgver=0.26.1 -pkgrel=2 +pkgver=0.27.0 +pkgrel=1 pkgdesc="A full-featured software simulator for Microchip PIC microcontrollers" arch=(i686 x86_64 'mips64el') url="http://gpsim.sourceforge.net/" license=(GPL) depends=('gtk2+extra' 'popt') -makedepends=('gtk2+extra') +makedepends=('gtk2+extra' 'gputils') options=('!libtool') -source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz - gpsim-0.26.1-glib.patch) -md5sums=('c994c23d2d75056dbefcf5d1d63596d7' - 'ddc2ffc384ae37020cffb56d68b2fe04') +source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz) +md5sums=('b3ded17f1c8c6134f2381d6e6925b231') build() { cd ${srcdir}/${pkgname}-${pkgver} patch -Np1 -i ${srcdir}/gpsim-0.26.1-glib.patch ./configure --prefix=/usr make +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver} make DESTDIR=${pkgdir} install } diff --git a/community/intellij-idea-libs/PKGBUILD b/community/intellij-idea-libs/PKGBUILD index e5311bcef..1b64a8c69 100644 --- a/community/intellij-idea-libs/PKGBUILD +++ b/community/intellij-idea-libs/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 97952 2013-10-01 19:32:08Z stativ $ +# $Id: PKGBUILD 98333 2013-10-08 15:40:43Z stativ $ # Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com> pkgname=intellij-idea-libs -pkgver=12.1.5 -_pkgver=129.1328 +pkgver=12.1.6 +_pkgver=129.1359 pkgrel=1 pkgdesc="Architecture dependent libraries needed by the Intellij Idea IDE" arch=('i686' 'x86_64' 'mips64el') @@ -11,7 +11,7 @@ license=('Apache') depends=('glibc') options=(!strip) source=(http://download.jetbrains.com/idea/ideaIC-$pkgver.tar.gz) -md5sums=('1eadced44ba3dca58f909f9178833a21') +md5sums=('5731ad2d6113ea7e8aedffc011480cb8') package() { install -d -m755 "$pkgdir/usr/share/intellijidea-ce/bin" diff --git a/community/kgraphviewer/PKGBUILD b/community/kgraphviewer/PKGBUILD deleted file mode 100644 index fe18a5398..000000000 --- a/community/kgraphviewer/PKGBUILD +++ /dev/null @@ -1,33 +0,0 @@ -# $Id: PKGBUILD 57923 2011-11-04 14:25:20Z lcarlier $ -# Maintainer: Andrea Scarpino <andrea@archlinux.org> -# Contributor: Pierre Schmitz <pierre@archlinux.de> - -pkgname=kgraphviewer -pkgver=2.1.1 -pkgrel=3 -pkgdesc="A Graphviz dot graph file viewer for KDE" -arch=('i686' 'x86_64' 'mips64el') -url='http://opendesktop.org/content/show.php?content=23999' -license=('GPL' 'FDL') -depends=('kdebase-runtime' 'kdepimlibs' 'graphviz') -makedepends=('cmake' 'automoc4' 'boost' 'docbook-xsl') -install="${pkgname}.install" -source=("https://api.opensuse.org/public/source/home:milianw:kdeapps/${pkgname}/${pkgname}-${pkgver}.tar.gz") -md5sums=('6cc548221d8a741d13929993615c00f3') - -build(){ - cd ${srcdir} - - mkdir build - cd build - cmake ../${pkgname}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr - make -} - -package() { - cd ${srcdir}/build - - make DESTDIR=${pkgdir} install -} diff --git a/community/kgraphviewer/kgraphviewer.install b/community/kgraphviewer/kgraphviewer.install deleted file mode 100644 index e70c054ec..000000000 --- a/community/kgraphviewer/kgraphviewer.install +++ /dev/null @@ -1,11 +0,0 @@ -post_install() { - xdg-icon-resource forceupdate --theme hicolor &> /dev/null -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} diff --git a/community/kpovmodeler/PKGBUILD b/community/kpovmodeler/PKGBUILD deleted file mode 100644 index ebe6882e7..000000000 --- a/community/kpovmodeler/PKGBUILD +++ /dev/null @@ -1,36 +0,0 @@ -# $Id: PKGBUILD 57931 2011-11-04 17:14:03Z lcarlier $ -# Maintainer: Andrea Scarpino <andrea@archlinux.org> -# Contributor: Pierre Schmitz <pierre@archlinux.de> - -pkgname=kpovmodeler -pkgver=1.1.3 -_kdever=4.1.1 -pkgrel=4 -pkgdesc="A graphical editor for povray scenes" -arch=('i686' 'x86_64' 'mips64el') -url='http://kpovmodeler.org' -license=('GPL' 'LGPL' 'FDL') -depends=('kdebase-runtime' 'povray') -makedepends=('pkgconfig' 'cmake' 'automoc4') -options=('docs') -install=${pkgname}.install -source=("http://kpovmodeler.org/files/${pkgname}-${pkgver}-kde${_kdever}.tar.bz2") -md5sums=('aee8461cc813bb8e21ece3339c677288') - -build() { - cd ${srcdir} - - mkdir build - cd build - - cmake ../${pkgname}-${pkgver}-kde${_kdever} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr - make -} - -package() { - cd ${srcdir}/build - - make DESTDIR=${pkgdir} install -} diff --git a/community/kpovmodeler/kpovmodeler.install b/community/kpovmodeler/kpovmodeler.install deleted file mode 100644 index e70c054ec..000000000 --- a/community/kpovmodeler/kpovmodeler.install +++ /dev/null @@ -1,11 +0,0 @@ -post_install() { - xdg-icon-resource forceupdate --theme hicolor &> /dev/null -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} diff --git a/community/lgi/PKGBUILD b/community/lgi/PKGBUILD index 30fb56785..3d25972c2 100644 --- a/community/lgi/PKGBUILD +++ b/community/lgi/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 85686 2013-03-04 23:40:53Z seblu $ +# $Id: PKGBUILD 98427 2013-10-10 07:57:51Z seblu $ # Maintainer: speps <speps at aur dot archlinux dot org> # Maintainer: Sébastien Luttringer pkgbase=lgi pkgname=(lua-lgi) -pkgver=0.7.1 +pkgver=0.7.2 pkgrel=1 pkgdesc='Lua bindings for gnome/gobject using gobject-introspection library' arch=(i686 x86_64 mips64el) @@ -14,7 +14,7 @@ depends=('glibc' 'glib2' 'libffi' 'lua' 'gobject-introspection') replaces=('lgi') conflicts=('lgi') source=("$pkgbase-$pkgver.tar.gz::https://github.com/pavouk/$pkgbase/archive/$pkgver.tar.gz") -md5sums=('de7367aee8e39f7df7c2229675c5ff2d') +md5sums=('f41902695c3d8ef40312d7c654885bf3') build() { cd $pkgbase-$pkgver diff --git a/community/libdesktop-agnostic/PKGBUILD b/community/libdesktop-agnostic/PKGBUILD deleted file mode 100644 index 9513ef819..000000000 --- a/community/libdesktop-agnostic/PKGBUILD +++ /dev/null @@ -1,36 +0,0 @@ -# $Id: PKGBUILD 79732 2012-11-11 19:02:50Z bgyorgy $ -# Maintainer: Balló György <ballogyor+arch at gmail dot com> -# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com> -# Contributor: Daniel J Griffiths <ghost1227@archlinux.us> - -pkgname=libdesktop-agnostic -pkgver=0.3.92 -pkgrel=5 -pkgdesc="Provides an extensible config API, a unified virtual fs API, and a desktop item editor for GLib-based projects" -arch=('i686' 'x86_64' 'mips64el') -url="https://launchpad.net/libdesktop-agnostic" -license=('GPL' 'LGPL') -depends=('pygtk') -makedepends=('intltool' 'vala' 'gconf' 'gobject-introspection') -optdepends=('gconf: gconf configuration backend') -options=('!libtool') -backup=(etc/xdg/libdesktop-agnostic/desktop-agnostic.ini) -source=(https://launchpad.net/$pkgname/0.4/$pkgver/+download/$pkgname-$pkgver.tar.gz) -md5sums=('42374d226a21d57637f97173f6b105a1') - -build() { - cd "$srcdir/$pkgname-$pkgver" - export PYTHON=/usr/bin/python2 - - python2 ./waf configure --prefix=/usr --sysconfdir=/etc \ - --config-backends=gconf,keyfile \ - --vfs-backends=gio \ - --desktop-entry-backends=gio,glib - python2 ./waf -} - -package() { - cd "$srcdir/$pkgname-$pkgver" - - python2 ./waf install --destdir="$pkgdir" -} diff --git a/community/libraw/PKGBUILD b/community/libraw/PKGBUILD index eb1cc9991..871d225c8 100644 --- a/community/libraw/PKGBUILD +++ b/community/libraw/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 96733 2013-09-03 17:15:14Z jlichtblau $ +# $Id: PKGBUILD 98350 2013-10-08 20:37:21Z jlichtblau $ # Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> # Contributor: Ionut Biru <ibiru@archlinux.org> # Contributor: Joeny Ang <ang(dot)joeny(at)gmail(dot)com> @@ -6,13 +6,13 @@ pkgname=libraw pkgver=0.15.4 -pkgrel=1 +pkgrel=2 pkgdesc="A library for reading RAW files obtained from digital photo cameras (CRW/CR2, NEF, RAF, DNG, and others)" arch=('i686' 'x86_64' 'mips64el') url="http://www.libraw.org/" license=('CDDL' 'LGPL' 'custom') depends=('lcms') -options=('!makeflags') +options=('!makeflags' '!libtool') changelog=$pkgname.changelog source=(http://www.libraw.org/data/LibRaw-${pkgver}.tar.gz) sha256sums=('b3fcfee33bc34ae5869a9741880e28a62f029f196cb1d1a007ab156f4a110f79') diff --git a/community/libvirt-glib/PKGBUILD b/community/libvirt-glib/PKGBUILD index d5fc7f3cc..ff5edb19c 100644 --- a/community/libvirt-glib/PKGBUILD +++ b/community/libvirt-glib/PKGBUILD @@ -1,24 +1,25 @@ -# $Id: PKGBUILD 96155 2013-08-20 11:52:08Z spupykin $ +# $Id: PKGBUILD 98284 2013-10-08 01:35:38Z bgyorgy $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: Stefano Facchini <stefano.facchini@gmail.com> pkgname=libvirt-glib pkgver=0.1.7 -pkgrel=1 +pkgrel=2 pkgdesc="GLib bindings for libvirt" arch=('i686' 'x86_64') url="http://libvirt.org" license=('LGPL2.1') -depends=('libvirt' 'glib2' 'gobject-introspection' 'python2') -makedepends=('intltool') +depends=('libvirt') +makedepends=('intltool' 'gobject-introspection' 'vala') options=('!libtool') source=(ftp://libvirt.org/libvirt/glib/$pkgname-$pkgver.tar.gz) -sha256sums=('274b88584db94bb5d404e5398d6b5ef184afad49a2e4b3f4f6c47ba940bf55bf') sha256sums=('39652c07d95f980ff30b39e0fd072e768fb85d778d65432da24b17dee9d36429') build() { cd "$srcdir/$pkgname-$pkgver" - PYTHON=/usr/bin/python2 ./configure --prefix=/usr + ./configure --prefix=/usr \ + --disable-static \ + --with-python=/usr/bin/python2 make } diff --git a/community/lightdm-gtk2-greeter/PKGBUILD b/community/lightdm-gtk2-greeter/PKGBUILD index dd4bad4f1..d3e64d514 100755 --- a/community/lightdm-gtk2-greeter/PKGBUILD +++ b/community/lightdm-gtk2-greeter/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 92267 2013-06-03 13:05:16Z alucryd $ +# $Id: PKGBUILD 98452 2013-10-10 20:04:45Z alucryd $ # Maintainer: Maxime Gauduin <alucryd@gmail.com> # Contributor: Padfoot <padfoot@exemail.com.au> pkgname=lightdm-gtk2-greeter -pkgver=1.6.0 +pkgver=1.6.1 pkgrel=1 epoch=1 pkgdesc="GTK+ greeter for LightDM" @@ -16,17 +16,17 @@ provides=("${pkgname/2/}") conflicts=("${pkgname/2/3}") backup=('etc/lightdm/lightdm-gtk-greeter.conf') source=("https://launchpad.net/${pkgname/2/}/1.6/${pkgver}/+download/${pkgname/2/}-${pkgver}.tar.gz") -sha256sums=('69df6199a7e62b07a1865b0319a7c031abc2b06dc3eb193b8b7b453f536283ac') +sha256sums=('1f0286ab093d50151f0efc46496aef3f8ed8c7306bbc81807a3fdcbcb2a468d9') build() { - cd "${srcdir}"/${pkgname/2/}-${pkgver} + cd ${pkgname/2/}-${pkgver} - ./configure --prefix=/usr --sbindir=/usr/bin --sysconfdir=/etc --libexecdir=/usr/lib/lightdm --disable-static --with-gtk2 + ./configure --prefix='/usr' --sbindir='/usr/bin' --sysconfdir='/etc' --libexecdir='/usr/lib/lightdm' --disable-static --with-gtk2 make } package() { - cd "${srcdir}"/${pkgname/2/}-${pkgver} + cd ${pkgname/2/}-${pkgver} make DESTDIR="${pkgdir}" install } diff --git a/community/lightdm-gtk3-greeter/PKGBUILD b/community/lightdm-gtk3-greeter/PKGBUILD index a18d94aae..e85df609b 100755 --- a/community/lightdm-gtk3-greeter/PKGBUILD +++ b/community/lightdm-gtk3-greeter/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 92265 2013-06-03 12:53:06Z alucryd $ +# $Id: PKGBUILD 98450 2013-10-10 19:59:15Z alucryd $ # Maintainer: Maxime Gauduin <alucryd@gmail.com> # Contributor: Padfoot <padfoot@exemail.com.au> pkgname=lightdm-gtk3-greeter -pkgver=1.6.0 +pkgver=1.6.1 pkgrel=1 epoch=1 pkgdesc="GTK+ greeter for LightDM" @@ -16,17 +16,17 @@ provides=("${pkgname/3/}") conflicts=("${pkgname/3/2}") backup=('etc/lightdm/lightdm-gtk-greeter.conf') source=("https://launchpad.net/${pkgname/3/}/1.6/${pkgver}/+download/${pkgname/3/}-${pkgver}.tar.gz") -sha256sums=('69df6199a7e62b07a1865b0319a7c031abc2b06dc3eb193b8b7b453f536283ac') +sha256sums=('1f0286ab093d50151f0efc46496aef3f8ed8c7306bbc81807a3fdcbcb2a468d9') build() { - cd "${srcdir}"/${pkgname/3/}-${pkgver} + cd ${pkgname/3/}-${pkgver} - ./configure --prefix=/usr --sbindir=/usr/bin --sysconfdir=/etc --libexecdir=/usr/lib/lightdm --disable-static + ./configure --prefix='/usr' --sbindir='/usr/bin' --sysconfdir='/etc' --libexecdir='/usr/lib/lightdm' --disable-static make } package() { - cd "${srcdir}"/${pkgname/3/}-${pkgver} + cd ${pkgname/3/}-${pkgver} make DESTDIR="${pkgdir}" install } diff --git a/community/lightdm-kde-greeter/PKGBUILD b/community/lightdm-kde-greeter/PKGBUILD index aea2722d5..ffd609c31 100755 --- a/community/lightdm-kde-greeter/PKGBUILD +++ b/community/lightdm-kde-greeter/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 90484 2013-05-12 21:57:59Z alucryd $ +# $Id: PKGBUILD 98490 2013-10-11 19:21:24Z alucryd $ # Maintainer: Maxime Gauduin <alucryd@gmail.com> # Contributor: Massimiliano Torromeo <massimiliano.torromeo@gmail.com> # Contributor: Mladen Pejakovic <pejakm@gmail.com> @@ -6,7 +6,7 @@ pkgname=lightdm-kde-greeter pkgver=0.3.2.1 -pkgrel=2 +pkgrel=3 pkgdesc="KDE greeter for LightDM" arch=('i686' 'x86_64' 'mips64el') url="https://projects.kde.org/projects/playground/base/lightdm" @@ -16,24 +16,32 @@ makedepends=('cmake' 'automoc4') backup=('etc/lightdm/lightdm-kde-greeter.conf' 'etc/dbus-1/system.d/org.kde.kcontrol.kcmlightdm.conf') source=("ftp://ftp.kde.org/pub/kde/unstable/${pkgname%-*}/src/${pkgname%-*}-${pkgver}.tar.bz2" + 'findlightdm.patch' 'lightdm-kde-greeter.conf') sha256sums=('65b2a1bab2c88bf55a07e62cbe0eb8ac3660638636c5825e5925b28d03f12188' + '9a042204df841f93a817c0613284bb09006e5dc4af910648025e7ab1bb56e114' 'a8fe10ef68d553781b91b1377106f95915c3ca14d835bd66910e08f922ef64c8') +prepare() { + cd lightdm-${pkgver} + + patch -Np1 -i ../findlightdm.patch +} + build() { - cd "${srcdir}"/lightdm-${pkgver} + cd lightdm-${pkgver} if [[ -d build ]]; then rm -rf build fi mkdir build && cd build - cmake .. -DCMAKE_INSTALL_PREFIX=/usr + cmake .. -DCMAKE_INSTALL_PREFIX='/usr' make } package() { - cd "${srcdir}"/lightdm-${pkgver}/build + cd lightdm-${pkgver}/build make DESTDIR="${pkgdir}" install mv "${pkgdir}"/usr/{sbin,bin} diff --git a/community/lightdm-kde-greeter/findlightdm.patch b/community/lightdm-kde-greeter/findlightdm.patch new file mode 100644 index 000000000..564dc3f84 --- /dev/null +++ b/community/lightdm-kde-greeter/findlightdm.patch @@ -0,0 +1,33 @@ +--- a/cmake/modules/FindQLightDM.cmake ++++ b/cmake/modules/FindQLightDM.cmake +@@ -19,10 +19,19 @@ + find_package(PkgConfig) + if(PKG_CONFIG_FOUND) + if (QLIGHTDM_MIN_VERSION) +- PKG_CHECK_MODULES(PC_QLIGHTDM liblightdm-qt-2>=${QLIGHTDM_MIN_VERSION}) ++ PKG_CHECK_MODULES(PC_QLIGHTDM liblightdm-qt-3>=${QLIGHTDM_MIN_VERSION}) + else (QLIGHTDM_MIN_VERSION) +- PKG_CHECK_MODULES(PC_QLIGHTDM liblightdm-qt-2) ++ PKG_CHECK_MODULES(PC_QLIGHTDM liblightdm-qt-3) + endif (QLIGHTDM_MIN_VERSION) ++ SET (QLIGHTDM_API 3) ++ if (NOT PC_QLIGHTDM_FOUND) ++ if (QLIGHTDM_MIN_VERSION) ++ PKG_CHECK_MODULES(PC_QLIGHTDM liblightdm-qt-2>=${QLIGHTDM_MIN_VERSION}) ++ else (QLIGHTDM_MIN_VERSION) ++ PKG_CHECK_MODULES(PC_QLIGHTDM liblightdm-qt-2) ++ endif (QLIGHTDM_MIN_VERSION) ++ SET (QLIGHTDM_API 2) ++ endif (NOT PC_QLIGHTDM_FOUND) + endif(PKG_CONFIG_FOUND) + + +@@ -34,7 +43,7 @@ + ) + + find_library(QLIGHTDM_LIBRARIES +- NAMES lightdm-qt-2 ++ NAMES lightdm-qt-${QLIGHTDM_API} + HINTS + ${PC_QLIGHTDM_LIBDIR} + ${PC_QLIGHTDM_LIBRARY_DIRS} diff --git a/community/lightdm/PKGBUILD b/community/lightdm/PKGBUILD index 9cb3a37ff..5fe0c9f2c 100755 --- a/community/lightdm/PKGBUILD +++ b/community/lightdm/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 98119 2013-10-06 08:35:43Z alucryd $ +# $Id: PKGBUILD 98444 2013-10-10 16:19:18Z alucryd $ # Maintainer: Maxime Gauduin <alucryd@gmail.com> # Contributor: Morfeo <morfeo89@hotmail.it> pkgbase=lightdm pkgname=('lightdm' 'liblightdm-qt4' 'liblightdm-qt5') -pkgver=1.6.2 -pkgrel=2 +pkgver=1.8.1 +pkgrel=1 epoch=1 pkgdesc="A lightweight display manager" arch=('i686' 'x86_64' 'mips64el') @@ -13,36 +13,27 @@ url="https://launchpad.net/lightdm" license=('GPL3' 'LGPL3') makedepends=('gobject-introspection' 'gtk-doc' 'intltool' 'itstool' 'libxklavier' 'polkit' 'qt4' 'qt5-base') options=('!libtool') -source=("https://launchpad.net/lightdm/1.6/${pkgver}/+download/${pkgbase}-${pkgver}.tar.xz" +source=("https://launchpad.net/lightdm/${pkgver%.*}/${pkgver}/+download/${pkgbase}-${pkgver}.tar.xz" 'lightdm.service' 'lightdm.tmpfiles' 'lightdm.pam' 'lightdm-autologin.pam' 'lightdm.rules' - 'lightdm-corrupt-x-authority.patch' 'lightdm-default-config.patch' - 'lightdm-lock-screen-before-switch.patch' - 'lightdm-use-login1.patch' 'Xsession') -sha256sums=('b0de1dc81bb5ce81800feafb9fbc7806ef4dfc83733f0df058568e55b8a045f3' +sha256sums=('e749ea72ac2517f592a8dfcd8bbdf7aba6729cb75c569c03347751d87f99305a' '0d2adba25cdbe59e97ffd302083db9d5e23920780f41e04f64512cd6b633289a' 'b29521fbd7a48a8f60b93ecca3b30c30bcb71560de8033c8d39b25c22c6f696f' 'e8c4c5fd3b801a390d201166fd1fb9730e78a5c62928768103b870b6bd980ea0' '33e3c3d6e16c8d30756754ea3f31f5457c5be0343686aad287692be34958984a' 'a89566307e1c81c24f037d854cbd472d2f94f8a4b759877a01563a332319f7d6' - '420aac58151bc441696db0bf234123b934ca8a8798e90db8a59252258e82b5d5' - '15f75ffe122fa86c0c4b3558b9d73e151ba89355093036ffc64110c5e306216b' - '4793eaee5915f5c519f569a4cd9158822d4c57c8b6e405895d2eddf82fa00822' - 'a760c7b4d8c0b54bb204b5d6e574c82360a90464ac06042409a17f950d2c1194' + '0b2f740616110887d5c8662e40f1a8350fc0dfa6c7e99f6e3a5636c6b0ca714f' '7fb85a1b54406032a922e8fd6f45d869fcfe5681df630e74e8e50c040b786ee4') prepare() { cd ${pkgbase}-${pkgver} - patch -Np0 -i ../lightdm-corrupt-x-authority.patch patch -Np1 -i ../lightdm-default-config.patch - patch -Np1 -i ../lightdm-lock-screen-before-switch.patch - patch -Np0 -i ../lightdm-use-login1.patch } build() { diff --git a/community/lightdm/lightdm-corrupt-x-authority.patch b/community/lightdm/lightdm-corrupt-x-authority.patch deleted file mode 100755 index f994b394c..000000000 --- a/community/lightdm/lightdm-corrupt-x-authority.patch +++ /dev/null @@ -1,21 +0,0 @@ -=== modified file 'src/xauthority.c' ---- src/xauthority.c 2013-09-10 23:14:12 +0000 -+++ src/xauthority.c 2013-09-30 02:59:01 +0000 -@@ -237,7 +237,7 @@ - gboolean - x_authority_write (XAuthority *auth, XAuthWriteMode mode, const gchar *filename, GError **error) - { -- gchar *input; -+ gchar *input = NULL; - gsize input_length = 0, input_offset = 0; - GList *link, *records = NULL; - XAuthority *a; -@@ -328,6 +328,7 @@ - } - - errno = 0; -+ result = TRUE; - for (link = records; link && result; link = link->next) - { - XAuthority *a = link->data; - diff --git a/community/lightdm/lightdm-default-config.patch b/community/lightdm/lightdm-default-config.patch index 7c7b421b6..54963c689 100755 --- a/community/lightdm/lightdm-default-config.patch +++ b/community/lightdm/lightdm-default-config.patch @@ -17,29 +17,29 @@ +log-directory=/var/log/lightdm +run-directory=/run/lightdm #cache-directory=/var/cache/lightdm - #xsessions-directory=/usr/share/xsessions + #sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions #remote-sessions-directory=/usr/share/lightdm/remote-sessions -@@ -71,7 +71,7 @@ - #xdmcp-manager= - #xdmcp-port=177 +@@ -81,7 +81,7 @@ #xdmcp-key= + #unity-compositor-command=unity-system-compositor + #unity-compositor-timeout=60 -#greeter-session=example-gtk-gnome +greeter-session=lightdm-gtk-greeter #greeter-hide-users=false #greeter-allow-guest=true #greeter-show-manual-login=false -@@ -79,7 +79,7 @@ +@@ -89,7 +89,7 @@ #user-session=default #allow-guest=true #guest-session=UNIMPLEMENTED -#session-wrapper=lightdm-session +session-wrapper=/etc/lightdm/Xsession + #greeter-wrapper= #display-setup-script= #greeter-setup-script= - #session-setup-script= -@@ -88,6 +88,7 @@ - #autologin-user= +@@ -100,6 +100,7 @@ #autologin-user-timeout=0 + #autologin-in-background=false #autologin-session=UNIMPLEMENTED +pam-service=lightdm-autologin #exit-on-failure=false diff --git a/community/lightdm/lightdm-lock-screen-before-switch.patch b/community/lightdm/lightdm-lock-screen-before-switch.patch deleted file mode 100755 index b8b1d559c..000000000 --- a/community/lightdm/lightdm-lock-screen-before-switch.patch +++ /dev/null @@ -1,55 +0,0 @@ -# HG changeset patch -# Parent b329fa1badaa454239690c3feb93d53324134915 -try to lock the screen before switching users - -diff --git a/utils/gdmflexiserver b/utils/gdmflexiserver ---- a/utils/gdmflexiserver -+++ b/utils/gdmflexiserver -@@ -9,9 +9,47 @@ - # - # See http://www.gnu.org/copyleft/gpl.html for the full text of the license. - -+PATH=/usr/local/bin:/bin:/usr/bin -+export PATH -+ - if [ -z "$XDG_SEAT_PATH" ]; then - # something went wrong - exit 1 - fi - -+find_command () { -+ cmd="$1" -+ oIFS="${IFS}"; IFS=: -+ set -- ${PATH} -+ IFS="${oIFS}" -+ -+ for part; do -+ [ -x "${part}/${cmd}" ] && return 0 -+ done -+ return 1 -+} -+ -+lock_screen () { -+ for lock_cmd in \ -+ "xscreensaver-command -lock" \ -+ "gnome-screensaver-command --lock" \ -+ "dbus-send --session --dest=org.freedesktop.ScreenSaver --type=method_call /ScreenSaver org.freedesktop.ScreenSaver.Lock" -+ do -+ ${lock_cmd} >/dev/null 2>&1 && return -+ done -+ -+ for lock_cmd in \ -+ "slock" \ -+ "xlock -mode blank" -+ do -+ set -- ${lock_cmd} -+ if find_command "$1"; then -+ ${lock_cmd} >/dev/null 2>&1 & -+ return -+ fi -+ done -+} -+ -+lock_screen -+ - dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.DisplayManager $XDG_SEAT_PATH org.freedesktop.DisplayManager.Seat.SwitchToGreeter diff --git a/community/lightdm/lightdm-use-login1.patch b/community/lightdm/lightdm-use-login1.patch deleted file mode 100755 index cc3d5a5fd..000000000 --- a/community/lightdm/lightdm-use-login1.patch +++ /dev/null @@ -1,505 +0,0 @@ -=== modified file 'liblightdm-gobject/power.c' ---- liblightdm-gobject/power.c 2013-01-31 20:56:09 +0000 -+++ liblightdm-gobject/power.c 2013-04-15 02:21:06 +0000 -@@ -17,6 +17,7 @@ - - static GDBusProxy *upower_proxy = NULL; - static GDBusProxy *ck_proxy = NULL; -+static GDBusProxy *login1_proxy = NULL; - - static gboolean - upower_call_function (const gchar *function, gboolean default_result, GError **error) -@@ -109,11 +110,10 @@ - return upower_call_function ("Hibernate", TRUE, error); - } - --static gboolean --ck_call_function (const gchar *function, gboolean default_result, GError **error) -+static GVariant * -+ck_call_function (const gchar *function, GError **error) - { -- GVariant *result; -- gboolean function_result = FALSE; -+ GVariant *r; - - if (!ck_proxy) - { -@@ -129,22 +129,46 @@ - return FALSE; - } - -- result = g_dbus_proxy_call_sync (ck_proxy, -- function, -- NULL, -- G_DBUS_CALL_FLAGS_NONE, -- -1, -- NULL, -- error); -- -- if (!result) -- return default_result; -- -- if (g_variant_is_of_type (result, G_VARIANT_TYPE ("(b)"))) -- g_variant_get (result, "(b)", &function_result); -- -- g_variant_unref (result); -- return function_result; -+ r = g_dbus_proxy_call_sync (ck_proxy, -+ function, -+ NULL, -+ G_DBUS_CALL_FLAGS_NONE, -+ -1, -+ NULL, -+ error); -+ -+ return r; -+} -+ -+static GVariant * -+login1_call_function (const gchar *function, GVariant *parameters, GError **error) -+{ -+ GVariant *r; -+ gchar *str_result; -+ -+ if (!login1_proxy) -+ { -+ login1_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, -+ G_DBUS_PROXY_FLAGS_NONE, -+ NULL, -+ "org.freedesktop.login1", -+ "/org/freedesktop/login1", -+ "org.freedesktop.login1.Manager", -+ NULL, -+ error); -+ if (!login1_proxy) -+ return NULL; -+ } -+ -+ r = g_dbus_proxy_call_sync (login1_proxy, -+ function, -+ parameters, -+ G_DBUS_CALL_FLAGS_NONE, -+ -1, -+ NULL, -+ error); -+ -+ return r; - } - - /** -@@ -157,7 +181,29 @@ - gboolean - lightdm_get_can_restart (void) - { -- return ck_call_function ("CanRestart", FALSE, NULL); -+ gboolean can_restart = FALSE; -+ GVariant *r; -+ -+ r = login1_call_function ("CanReboot", NULL, NULL); -+ if (r) -+ { -+ gchar *result; -+ if (g_variant_is_of_type (r, G_VARIANT_TYPE ("(s)"))) -+ { -+ g_variant_get (r, "(&s)", &result); -+ can_restart = g_strcmp0 (result, "yes") == 0; -+ } -+ } -+ else -+ { -+ r = ck_call_function ("CanRestart", NULL); -+ if (r && g_variant_is_of_type (r, G_VARIANT_TYPE ("(b)"))) -+ g_variant_get (r, "(b)", &can_restart); -+ } -+ if (r) -+ g_variant_unref (r); -+ -+ return can_restart; - } - - /** -@@ -171,7 +217,20 @@ - gboolean - lightdm_restart (GError **error) - { -- return ck_call_function ("Restart", TRUE, error); -+ GVariant *r; -+ gboolean restarted; -+ -+ r = login1_call_function ("Reboot", g_variant_new("(b)", FALSE), error); -+ if (!r) -+ { -+ g_clear_error (error); -+ r = ck_call_function ("Restart", error); -+ } -+ restarted = r != NULL; -+ if (r) -+ g_variant_unref (r); -+ -+ return restarted; - } - - /** -@@ -184,7 +243,29 @@ - gboolean - lightdm_get_can_shutdown (void) - { -- return ck_call_function ("CanStop", FALSE, NULL); -+ gboolean can_shutdown = FALSE; -+ GVariant *r; -+ -+ r = login1_call_function ("CanPowerOff", NULL, NULL); -+ if (r) -+ { -+ gchar *result; -+ if (g_variant_is_of_type (r, G_VARIANT_TYPE ("(s)"))) -+ { -+ g_variant_get (r, "(&s)", &result); -+ can_shutdown = g_strcmp0 (result, "yes") == 0; -+ } -+ } -+ else -+ { -+ r = ck_call_function ("CanStop", NULL); -+ if (r && g_variant_is_of_type (r, G_VARIANT_TYPE ("(b)"))) -+ g_variant_get (r, "(b)", &can_shutdown); -+ } -+ if (r) -+ g_variant_unref (r); -+ -+ return can_shutdown; - } - - /** -@@ -198,5 +279,18 @@ - gboolean - lightdm_shutdown (GError **error) - { -- return ck_call_function ("Stop", TRUE, error); -+ GVariant *r; -+ gboolean shutdown; -+ -+ r = login1_call_function ("PowerOff", g_variant_new("(b)", FALSE), error); -+ if (!r) -+ { -+ g_clear_error (error); -+ r = ck_call_function ("Stop", error); -+ } -+ shutdown = r != NULL; -+ if (r) -+ g_variant_unref (r); -+ -+ return shutdown; - } - -=== modified file 'liblightdm-qt/power.cpp' ---- liblightdm-qt/power.cpp 2013-02-06 14:08:25 +0000 -+++ liblightdm-qt/power.cpp 2013-04-14 23:00:34 +0000 -@@ -15,6 +15,7 @@ - #include <QtCore/QVariant> - #include <QtDBus/QDBusInterface> - #include <QtDBus/QDBusReply> -+#include <QDebug> - - #include "config.h" - -@@ -26,11 +27,13 @@ - PowerInterfacePrivate(); - QScopedPointer<QDBusInterface> powerManagementInterface; - QScopedPointer<QDBusInterface> consoleKitInterface; -+ QScopedPointer<QDBusInterface> login1Interface; - }; - - PowerInterface::PowerInterfacePrivate::PowerInterfacePrivate() : - powerManagementInterface(new QDBusInterface("org.freedesktop.UPower","/org/freedesktop/UPower", "org.freedesktop.UPower", QDBusConnection::systemBus())), -- consoleKitInterface(new QDBusInterface("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", QDBusConnection::systemBus())) -+ consoleKitInterface(new QDBusInterface("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", QDBusConnection::systemBus())), -+ login1Interface(new QDBusInterface("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus())) - { - } - -@@ -80,34 +83,54 @@ - - bool PowerInterface::canShutdown() - { -+ if (d->login1Interface->isValid()) { -+ QDBusReply<QString> reply1 = d->login1Interface->call("CanPowerOff"); -+ if (reply1.isValid()) { -+ return reply1.value() == "yes"; -+ } -+ } -+ qWarning() << d->login1Interface->lastError(); -+ - QDBusReply<bool> reply = d->consoleKitInterface->call("CanStop"); - if (reply.isValid()) { - return reply.value(); - } -- else { -- return false; -- } -+ -+ return false; - } - - void PowerInterface::shutdown() - { -- d->consoleKitInterface->call("Stop"); -+ if (d->login1Interface->isValid()) -+ d->login1Interface->call("PowerOff", false); -+ else -+ d->consoleKitInterface->call("Stop"); - } - - bool PowerInterface::canRestart() - { -+ if (d->login1Interface->isValid()) { -+ QDBusReply<QString> reply1 = d->login1Interface->call("CanReboot"); -+ if (reply1.isValid()) { -+ return reply1.value() == "yes"; -+ } -+ } -+ qWarning() << d->login1Interface->lastError(); -+ - QDBusReply<bool> reply = d->consoleKitInterface->call("CanRestart"); - if (reply.isValid()) { - return reply.value(); - } -- else { -- return false; -- } -+ -+ return false; - } - - void PowerInterface::restart() - { -- d->consoleKitInterface->call("Restart"); -+ if (d->login1Interface->isValid()) -+ d->login1Interface->call("Reboot", false); -+ else -+ d->consoleKitInterface->call("Restart"); - } - - #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) - -=== modified file 'tests/Makefile.am' ---- tests/Makefile.am 2013-04-12 03:46:06 +0000 -+++ tests/Makefile.am 2013-04-14 22:54:54 +0000 -@@ -135,6 +135,8 @@ - test-no-accounts-service \ - test-console-kit \ - test-no-console-kit \ -+ test-no-login1 \ -+ test-no-console-kit-or-login1 \ - test-open-file-descriptors \ - test-xdmcp-open-file-descriptors - -@@ -284,8 +286,10 @@ - scripts/no-accounts-service.conf \ - scripts/no-config.conf \ - scripts/no-console-kit.conf \ -+ scripts/no-console-kit-or-login1.conf \ - scripts/no-keyboard-layout.conf \ - scripts/no-language.conf \ -+ scripts/no-login1.conf \ - scripts/open-file-descriptors.conf \ - scripts/pam.conf \ - scripts/plymouth-active-vt.conf \ - -=== added file 'tests/scripts/no-console-kit-or-login1.conf' ---- tests/scripts/no-console-kit-or-login1.conf 1970-01-01 00:00:00 +0000 -+++ tests/scripts/no-console-kit-or-login1.conf 2013-04-14 22:54:54 +0000 -@@ -0,0 +1,34 @@ -+# -+# Check still works when neither ConsoleKit or login1 is available -+# -+ -+[test-runner-config] -+disable-console-kit=true -+disable-login1=true -+ -+[LightDM] -+minimum-display-number=50 -+ -+[SeatDefaults] -+autologin-user=have-password1 -+ -+#?RUNNER DAEMON-START -+ -+# X server starts -+#?XSERVER :50 START -+#?XSERVER :50 INDICATE-READY -+ -+# LightDM connects to X server -+#?XSERVER :50 ACCEPT-CONNECT -+ -+# Session starts -+#?SESSION :50 START USER=have-password1 -+#?XSERVER :50 ACCEPT-CONNECT -+#?SESSION :50 CONNECT-XSERVER -+ -+# Cleanup -+#?*STOP-DAEMON -+# Don't know what order they will terminate -+#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) -+#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) -+#?RUNNER DAEMON-EXIT STATUS=0 - -=== added file 'tests/scripts/no-login1.conf' ---- tests/scripts/no-login1.conf 1970-01-01 00:00:00 +0000 -+++ tests/scripts/no-login1.conf 2013-04-14 22:54:54 +0000 -@@ -0,0 +1,33 @@ -+# -+# Check still works when login1 is not available -+# -+ -+[test-runner-config] -+disable-login1=true -+ -+[LightDM] -+minimum-display-number=50 -+ -+[SeatDefaults] -+autologin-user=have-password1 -+ -+#?RUNNER DAEMON-START -+ -+# X server starts -+#?XSERVER :50 START -+#?XSERVER :50 INDICATE-READY -+ -+# LightDM connects to X server -+#?XSERVER :50 ACCEPT-CONNECT -+ -+# Session starts -+#?SESSION :50 START USER=have-password1 -+#?XSERVER :50 ACCEPT-CONNECT -+#?SESSION :50 CONNECT-XSERVER -+ -+# Cleanup -+#?*STOP-DAEMON -+# Don't know what order they will terminate -+#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) -+#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) -+#?RUNNER DAEMON-EXIT STATUS=0 - -=== modified file 'tests/src/test-runner.c' ---- tests/src/test-runner.c 2013-03-27 00:48:48 +0000 -+++ tests/src/test-runner.c 2013-04-14 22:54:54 +0000 -@@ -1464,6 +1464,101 @@ accounts_user_set_hidden (AccountsUser * - } - - static void -+handle_login1_call (GDBusConnection *connection, -+ const gchar *sender, -+ const gchar *object_path, -+ const gchar *interface_name, -+ const gchar *method_name, -+ GVariant *parameters, -+ GDBusMethodInvocation *invocation, -+ gpointer user_data) -+{ -+ if (strcmp (method_name, "CanReboot") == 0) -+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("(s)", "yes")); -+ else if (strcmp (method_name, "Reboot") == 0) -+ { -+ gboolean interactive; -+ g_variant_get (parameters, "(b)", &interactive); -+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("()")); -+ } -+ if (strcmp (method_name, "CanPowerOff") == 0) -+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("(s)", "yes")); -+ else if (strcmp (method_name, "PowerOff") == 0) -+ { -+ gboolean interactive; -+ g_variant_get (parameters, "(b)", &interactive); -+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("()")); -+ } -+ else -+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "No such method: %s", method_name); -+} -+ -+static void -+login1_name_acquired_cb (GDBusConnection *connection, -+ const gchar *name, -+ gpointer user_data) -+{ -+ const gchar *login1_interface = -+ "<node>" -+ " <interface name='org.freedesktop.login1.Manager'>" -+ " <method name='CanReboot'>" -+ " <arg name='result' direction='out' type='s'/>" -+ " </method>" -+ " <method name='Reboot'>" -+ " <arg name='interactive' direction='in' type='b'/>" -+ " </method>" -+ " <method name='CanPowerOff'>" -+ " <arg name='result' direction='out' type='s'/>" -+ " </method>" -+ " <method name='PowerOff'>" -+ " <arg name='interactive' direction='in' type='b'/>" -+ " </method>" -+ " </interface>" -+ "</node>"; -+ static const GDBusInterfaceVTable login1_vtable = -+ { -+ handle_login1_call, -+ }; -+ GDBusNodeInfo *login1_info; -+ GError *error = NULL; -+ -+ login1_info = g_dbus_node_info_new_for_xml (login1_interface, &error); -+ if (error) -+ g_warning ("Failed to parse D-Bus interface: %s", error->message); -+ g_clear_error (&error); -+ if (!login1_info) -+ return; -+ g_dbus_connection_register_object (connection, -+ "/org/freedesktop/login1", -+ login1_info->interfaces[0], -+ &login1_vtable, -+ NULL, NULL, -+ &error); -+ if (error) -+ g_warning ("Failed to register login1 service: %s", error->message); -+ g_clear_error (&error); -+ g_dbus_node_info_unref (login1_info); -+ -+ service_count--; -+ if (service_count == 0) -+ run_lightdm (); -+} -+ -+static void -+start_login1_daemon () -+{ -+ service_count++; -+ g_bus_own_name (G_BUS_TYPE_SYSTEM, -+ "org.freedesktop.login1", -+ G_BUS_NAME_OWNER_FLAGS_NONE, -+ login1_name_acquired_cb, -+ NULL, -+ NULL, -+ NULL, -+ NULL); -+} -+ -+static void - load_passwd_file (void) - { - gchar *path, *data, **lines; - -=== added file 'tests/test-no-console-kit-or-login1' ---- tests/test-no-console-kit-or-login1 1970-01-01 00:00:00 +0000 -+++ tests/test-no-console-kit-or-login1 2013-04-14 22:54:54 +0000 -@@ -0,0 +1,2 @@ -+#!/bin/sh -+./src/dbus-env ./src/test-runner no-console-kit-or-login1 test-gobject-greeter - -=== added file 'tests/test-no-login1' ---- tests/test-no-login1 1970-01-01 00:00:00 +0000 -+++ tests/test-no-login1 2013-04-14 22:54:54 +0000 -@@ -0,0 +1,2 @@ -+#!/bin/sh -+./src/dbus-env ./src/test-runner no-login1 test-gobject-greeter - diff --git a/community/mpv/PKGBUILD b/community/mpv/PKGBUILD index 1b211fb4f..a02999b94 100644 --- a/community/mpv/PKGBUILD +++ b/community/mpv/PKGBUILD @@ -1,15 +1,18 @@ -# $Id: PKGBUILD 98183 2013-10-07 12:06:59Z jgc $ +# $Id: PKGBUILD 98298 2013-10-08 06:09:02Z bpiotrowski $ # Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl> # Contributor: Eivind Uggedal <eivind@uggedal.com> pkgname=mpv pkgver=0.1.7 -pkgrel=2 +pkgrel=3 pkgdesc='Video player based on MPlayer/mplayer2' arch=('i686' 'x86_64') license=('GPL') url='http://mpv.io' -depends=('portaudio' 'ffmpeg' 'lcms2' 'libxinerama' 'libquvi' 'mpg123' 'libxv' 'libxkbcommon' 'libva') +depends=( + 'portaudio' 'ffmpeg' 'lcms2' 'libdvdread' 'libcdio-paranoia' 'libxinerama' + 'libquvi' 'mpg123' 'libxv' 'libxkbcommon' 'libva' 'lirc-utils' + ) makedepends=('mesa' 'python-docutils') options=(!emptydirs) source=("https://github.com/mpv-player/$pkgname/archive/v$pkgver.tar.gz") diff --git a/community/muffin/PKGBUILD b/community/muffin/PKGBUILD index 06619942b..db6729ef4 100644 --- a/community/muffin/PKGBUILD +++ b/community/muffin/PKGBUILD @@ -1,22 +1,22 @@ -# $Id: PKGBUILD 98231 2013-10-07 17:24:18Z faidoc $ +# $Id: PKGBUILD 98396 2013-10-09 15:37:53Z faidoc $ # Maintainer: Alexandre Filgueira <alexfilgueira@cinnarch.com> # Contributor: Adam Hani Schakaki <adam@schakaki.net> # Contributor: Ner0 pkgname=muffin -pkgver=2.0.0 +pkgver=2.0.1 pkgrel=1 pkgdesc="Cinnamon window manager based on Mutter" arch=('i686' 'x86_64' 'mips64el') url="https://github.com/linuxmint/muffin" license=('GPL') -depends=('clutter' 'gobject-introspection' 'gsettings-desktop-schemas' \ - 'libcanberra' 'startup-notification' 'zenity' 'dconf' 'cinnamon-desktop') +depends=('clutter' 'gobject-introspection' 'cinnamon-desktop' 'libcanberra' + 'startup-notification' 'zenity' 'dconf') makedepends=('intltool' 'gnome-doc-utils' 'gnome-common') options=('!libtool' '!emptydirs') install=$pkgname.install source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/muffin/archive/$pkgver.tar.gz") -sha256sums=('e16efc49d7629141d0d784ca855b9276c83deee0669b7053d457e9f7676dc028') +sha256sums=('0643e10e4932ee575b864531e662df5bf209a87b64bd8e0324adbaee6d8af6dd') build() { cd ${pkgname}-${pkgver} diff --git a/community/nautilus-actions/PKGBUILD b/community/nautilus-actions/PKGBUILD index b356670b7..4e4bef6f9 100644 --- a/community/nautilus-actions/PKGBUILD +++ b/community/nautilus-actions/PKGBUILD @@ -1,22 +1,22 @@ -# $Id: PKGBUILD 72886 2012-06-24 13:16:21Z bgyorgy $ +# $Id: PKGBUILD 98372 2013-10-09 07:28:55Z bgyorgy $ # Maintainer: Balló György <ballogyor+arch at gmail dot com> # Contributor: Ionut Biru <ibiru@archlinux.org> # Contributor: Roman Kyrylych <roman@archlinux.org> # Contributor: Tor Krill <tor@krill.nu> pkgname=nautilus-actions -pkgver=3.2.2 -pkgrel=2 +pkgver=3.2.3 +pkgrel=1 pkgdesc="Configures programs to be launched when files are selected in Nautilus" arch=('i686' 'x86_64' 'mips64el') url="http://www.nautilus-actions.org/" license=('GPL') -depends=('nautilus' 'libunique3' 'libgtop' 'gconf' 'libsm') +depends=('nautilus' 'libunique3' 'libgtop' 'gconf') makedepends=('intltool' 'gnome-doc-utils') install=nautilus-actions.install options=('!libtool') -source=(http://ftp.gnome.org/pub/GNOME/sources/nautilus-actions/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('214af9fd2a7f561366bf88446f9b79182e696a303da8e15c7a8a1ffaeaca11c4') +source=(http://www.nautilus-actions.org/downloads/$pkgname-$pkgver.tar.gz) +sha1sums=('af3b8017a13feeda221a52cfef4e61bea659e436') build() { cd "$srcdir/$pkgname-$pkgver" diff --git a/community/nginx/PKGBUILD b/community/nginx/PKGBUILD index c28463a87..dd63f4890 100644 --- a/community/nginx/PKGBUILD +++ b/community/nginx/PKGBUILD @@ -1,12 +1,12 @@ -# $Id: PKGBUILD 96815 2013-09-05 20:15:59Z seblu $ +# $Id: PKGBUILD 98429 2013-10-10 07:58:09Z seblu $ # Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl> # Maintainer: Sébastien Luttringer # Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: Miroslaw Szot <mss@czlug.icis.pcz.pl> pkgname=nginx -pkgver=1.4.2 -pkgrel=4 +pkgver=1.4.3 +pkgrel=1 pkgdesc='Lightweight HTTP server and IMAP/POP3 proxy server' arch=('i686' 'x86_64' 'mips64el') url='http://nginx.org' @@ -26,7 +26,7 @@ install=install source=("http://nginx.org/download/nginx-$pkgver.tar.gz" 'service' 'logrotate') -sha256sums=('5361ffb7b0ebf8b1a04369bc3d1295eaed091680c1c58115f88d56c8e51f3611' +sha256sums=('ae123885c923a6c3f5bab0a8b7296ef21c4fdf6087834667ebbc16338177de84' '05fdc0c0483410944b988d7f4beabb00bec4a44a41bd13ebc9b78585da7d3f9b' '272907d3213d69dac3bd6024d6d150caa23cb67d4f121e4171f34ba5581f9e98') diff --git a/extra/ogle/PKGBUILD b/community/ogle/PKGBUILD index fbd7846b5..9c4d8a993 100644 --- a/extra/ogle/PKGBUILD +++ b/community/ogle/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 137878 2011-09-12 06:26:48Z eric $ +# $Id: PKGBUILD 98421 2013-10-10 01:44:06Z eric $ # Maintainer: Eric Bélanger <eric@archlinux.org> pkgname=ogle diff --git a/extra/ogle/dvdread-4.1.3.patch b/community/ogle/dvdread-4.1.3.patch index d928ac2aa..d928ac2aa 100644 --- a/extra/ogle/dvdread-4.1.3.patch +++ b/community/ogle/dvdread-4.1.3.patch diff --git a/extra/ogle/gcc34alsafix.patch b/community/ogle/gcc34alsafix.patch index 76de3462d..76de3462d 100644 --- a/extra/ogle/gcc34alsafix.patch +++ b/community/ogle/gcc34alsafix.patch diff --git a/extra/ogle/gcc4.patch b/community/ogle/gcc4.patch index b6a10a325..b6a10a325 100644 --- a/extra/ogle/gcc4.patch +++ b/community/ogle/gcc4.patch diff --git a/extra/ogle/ogle-vuln-scripts-makefile.patch b/community/ogle/ogle-vuln-scripts-makefile.patch index f25964378..f25964378 100644 --- a/extra/ogle/ogle-vuln-scripts-makefile.patch +++ b/community/ogle/ogle-vuln-scripts-makefile.patch diff --git a/extra/ogle/xvideofix.patch b/community/ogle/xvideofix.patch index aafde447a..aafde447a 100644 --- a/extra/ogle/xvideofix.patch +++ b/community/ogle/xvideofix.patch diff --git a/community/openbox/PKGBUILD b/community/openbox/PKGBUILD index caae00e5f..4a7c90e11 100644 --- a/community/openbox/PKGBUILD +++ b/community/openbox/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 96638 2013-09-02 18:32:53Z bgyorgy $ +# $Id: PKGBUILD 98381 2013-10-09 08:18:19Z bgyorgy $ # Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl> # Contributor: Brad Fanella <bradfanella@archlinux.us> # Contributor: Andrea Scarpino <andrea@archlinux.org> @@ -6,15 +6,14 @@ pkgname=openbox pkgver=3.5.2 -pkgrel=4 +pkgrel=5 pkgdesc='Highly configurable and lightweight X11 window manager' arch=('i686' 'x86_64' 'mips64el') url='http://openbox.org' license=('GPL') depends=('startup-notification' 'libxml2' 'libxinerama' 'libxrandr' 'libxcursor' 'pango' 'imlib2' 'librsvg') -optdepends=('gnome-flashback-session: for the GNOME/Openbox xsession' - 'kdebase-workspace: for the KDE/Openbox xsession' +optdepends=('kdebase-workspace: for the KDE/Openbox xsession' 'python2-xdg: for the openbox-xdg-autostart script') groups=('lxde') options=('!libtool') @@ -22,12 +21,10 @@ backup=('etc/xdg/openbox/menu.xml' 'etc/xdg/openbox/rc.xml' 'etc/xdg/openbox/autostart' 'etc/xdg/openbox/environment') source=(http://www.icculus.org/openbox/releases/$pkgname-$pkgver.tar.gz openbox-3.5.0-title-matching.patch - openbox-3.5.0-which-2.20.patch - openbox-3.5.0-gnome-session.patch) + openbox-3.5.0-which-2.20.patch) md5sums=('93df606606053b7e8578a5c116afb8ec' '0a11d7149da210a31ef88f8a9c717711' - '7ca3b5244bb092d46f5bcf1e2bdf4a18' - '47fb1a16af05b6aba3b07051e6027f93') + '7ca3b5244bb092d46f5bcf1e2bdf4a18') prepare() { cd $pkgname-$pkgver @@ -35,9 +32,6 @@ prepare() { patch -Np1 -i "$srcdir"/openbox-3.5.0-title-matching.patch # OB#5277 patch -Np1 -i "$srcdir"/openbox-3.5.0-which-2.20.patch # FS#11455 - # Fix GNOME/Openbox xsession with GNOME 3.8 - patch -Np1 -i "$srcdir"/openbox-3.5.0-gnome-session.patch - sed -i 's|/usr/bin/env python|/usr/bin/env python2|' \ data/autostart/openbox-xdg-autostart } @@ -56,11 +50,12 @@ package() { cd $pkgname-$pkgver make DESTDIR="$pkgdir" install - rm "$pkgdir"/usr/bin/gdm-control \ - "$pkgdir"/usr/share/gnome-session/sessions/openbox-gnome-fallback.session + # GNOME Panel is no longer available in the official repositories + rm -r "$pkgdir"/usr/bin/{gdm-control,gnome-panel-control,openbox-gnome-session} \ + "$pkgdir"/usr/share/gnome{,-session} \ + "$pkgdir"/usr/share/man/man1/openbox-gnome-session.1 \ + "$pkgdir"/usr/share/xsessions/openbox-gnome.desktop sed -i 's:startkde:/usr/bin/\0:' \ "$pkgdir"/usr/share/xsessions/openbox-kde.desktop - sed -i 's:=gnome-session:=/usr/bin/gnome-session:' \ - "$pkgdir"/usr/share/xsessions/openbox-gnome.desktop } diff --git a/community/openbox/openbox-3.5.0-gnome-session.patch b/community/openbox/openbox-3.5.0-gnome-session.patch deleted file mode 100644 index e0121d9a8..000000000 --- a/community/openbox/openbox-3.5.0-gnome-session.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -Naur openbox-3.5.2.orig/data/gnome-session/openbox-gnome.session openbox-3.5.2/data/gnome-session/openbox-gnome.session ---- openbox-3.5.2.orig/data/gnome-session/openbox-gnome.session 2013-09-02 16:06:03.076984284 +0000 -+++ openbox-3.5.2/data/gnome-session/openbox-gnome.session 2013-09-02 16:07:32.696385427 +0000 -@@ -1,9 +1,3 @@ - [GNOME Session] - Name=GNOME/Openbox --RequiredComponents=gnome-settings-daemon; --# Try load with the gnome-panel and use the fallback if we can't load a panel --RequiredProviders=windowmanager;panel --DefaultProvider-windowmanager=openbox --DefaultProvider-panel=gnome-panel --FallbackSession=openbox-gnome-fallback --DesktopName=GNOME -+RequiredComponents=gnome-panel;gnome-settings-daemon;gnome-screensaver;openbox;notification-daemon;polkit-gnome-authentication-agent-1;gnome-fallback-background-helper;gnome-fallback-media-keys-helper;gnome-fallback-mount-helper; diff --git a/community/pgadmin3/PKGBUILD b/community/pgadmin3/PKGBUILD index e363630e3..2d3065ab3 100644 --- a/community/pgadmin3/PKGBUILD +++ b/community/pgadmin3/PKGBUILD @@ -1,12 +1,12 @@ -# $Id: PKGBUILD 97840 2013-09-30 10:03:39Z spupykin $ +# $Id: PKGBUILD 98468 2013-10-11 10:07:30Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: Douglas Soares de Andrade <dsa@aur.archlinux.org> # Contributor: Benjamin Andresen <benny@klapmuetz.org> # Contributor: bekks <eduard.warkentin@gmx.de> pkgname=pgadmin3 -pkgver=1.18.0 -pkgrel=2 +pkgver=1.18.1 +pkgrel=1 pkgdesc="Comprehensive design and management interface for PostgreSQL" arch=('i686' 'x86_64' 'mips64el') url="http://www.pgadmin.org" @@ -15,7 +15,7 @@ depends=('wxgtk' 'postgresql-libs' 'libxslt') makedepends=('libpqxx' 'krb5' 'postgresql' 'imagemagick') _categories="Development;Application" source=(http://ftp.postgresql.org/pub/pgadmin3/release/v${pkgver}/src/pgadmin3-${pkgver}.tar.gz) -md5sums=('ed1968a9abda0064be68bf57d7ccad43') +md5sums=('7dde96680407c900af72d0839a377de4') build() { cd "$srcdir" diff --git a/community/pigz/PKGBUILD b/community/pigz/PKGBUILD index 2dfd3c71b..261ffbea5 100644 --- a/community/pigz/PKGBUILD +++ b/community/pigz/PKGBUILD @@ -1,24 +1,23 @@ -# $Id: PKGBUILD 86235 2013-03-13 19:48:34Z bpiotrowski $ -# Maintainer: Bartłomiej Piotrowski +# $Id: PKGBUILD 98523 2013-10-12 20:12:05Z jsteel $ +# Maintainer: Jonathan Steel <jsteel@aur.archlinux.org> +# Contributor: Bartłomiej Piotrowski # Contributor: Laszlo Papp <djszapi2@gmail.com> # Contributor: Stefan Husmann <stefan-husmann@t-online.de> pkgname=pigz -pkgver=2.3 +pkgver=2.3.1 pkgrel=1 pkgdesc='Parallel implementation of the gzip file compressor' arch=('i686' 'x86_64' 'mips64el') url='http://www.zlib.net/pigz/' license=('custom') depends=('zlib') -source=(http://www.zlib.net/$pkgname/$pkgname-$pkgver.tar.gz - pigz-2.3-make.patch) -md5sums=('042e3322534f2c3d761736350cac303f' - 'f6291ee36e36e098d7fbf0655a89b183') +source=(http://www.zlib.net/$pkgname/$pkgname-$pkgver.tar.gz) +md5sums=('e803f8bc0770c7a5e96dccb1d2dd2aab') build() { cd "$srcdir"/$pkgname-$pkgver - patch -Np1 -i "$srcdir"/pigz-2.3-make.patch + make } diff --git a/community/pigz/pigz-2.3-make.patch b/community/pigz/pigz-2.3-make.patch deleted file mode 100644 index f014c7b02..000000000 --- a/community/pigz/pigz-2.3-make.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 545a9350f8026f6c9826dd4fa7ab6000d8826d78 Mon Sep 17 00:00:00 2001 -From: Tim Harder <radhermit@gmail.com> -Date: Wed, 6 Mar 2013 15:51:27 -0800 -Subject: [PATCH] Respect LDFLAGS and explicitly link to math library - ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 3cc231d..48d1f26 100644 ---- a/Makefile -+++ b/Makefile -@@ -3,7 +3,7 @@ CFLAGS=-O3 -Wall -Wextra - - - pigz: pigz.o yarn.o zopfli/deflate.o zopfli/blocksplitter.o zopfli/tree.o zopfli/lz77.o zopfli/cache.o zopfli/hash.o zopfli/util.o zopfli/squeeze.o zopfli/katajainen.o -- $(CC) -o pigz $^ -lpthread -lz -+ $(CC) $(LDFLAGS) -o pigz $^ -lpthread -lz -lm - ln -f pigz unpigz - - pigz.o: pigz.c yarn.h zopfli/deflate.h zopfli/util.h --- -1.8.1.5 - diff --git a/community/pitivi/ChangeLog b/community/pitivi/ChangeLog new file mode 100644 index 000000000..4df7843a8 --- /dev/null +++ b/community/pitivi/ChangeLog @@ -0,0 +1,41 @@ +pitivi (0.13.1-2) + + * Update hicolor icon cache. + * Update mime database. + + -- Abhishek Dasgupta <abhidg@gmail.com> Thu, 23 Jul 2009 11:57:49 +0530 + +pitivi (0.13.1-1) + + * New upstream version. + * Removed: fix-as-problems.diff pitivi.desktop + + -- Abhishek Dasgupta <abhidg@gmail.com> Wed, 24 Jun 2009 16:01:42 +0530 + +pitivi (0.11.3-1) + + * New upstream version. + * fix-as-problems.diff: Fixed the problem caused by "as" in + pitivi/timeline/timeline.py + + -- Abhishek Dasgupta <abhidg@gmail.com> Sat, 13 Dec 2008 16:29:24 +0530 + +pitivi (0.11.2-4) + + * Added gnome-icon-theme as dependency. Closes: FS# 12292. + + -- Abhishek Dasgupta <abhidg@gmail.com> Mon, 01 Dec 2008 23:08:28 +0530 + +pitivi (0.11.2-3) + + * fix-as.diff: Fixed the error + in pitivi/objectfactory.py caused by the line + as = self.audio_info_stream + + -- Abhishek Dasgupta <abhidg@gmail.com> Sun, 09 Nov 2008 00:34:22 +0530 + +pitivi (0.11.2-2) + + * Added dbus-python as dependency. + + -- Abhishek Dasgupta <abhidg@gmail.com> Sun, 26 Oct 2008 14:08:06 +0530 diff --git a/community/pitivi/PKGBUILD b/community/pitivi/PKGBUILD new file mode 100644 index 000000000..0a7c76d9f --- /dev/null +++ b/community/pitivi/PKGBUILD @@ -0,0 +1,36 @@ +# $Id: PKGBUILD 98281 2013-10-07 22:50:21Z bgyorgy $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Maintainer: Abhishek Dasgupta <abhidg@gmail.com> +# Contributor: Gabor Nyekhelyi (n0gabor) <n0gabor@vipmail.hu> + +pkgname=pitivi +pkgver=0.91 +pkgrel=3 +pkgdesc="Editor for audio/video projects using the GStreamer framework" +arch=('i686' 'x86_64') +url="http://www.pitivi.org/" +license=('LGPL') +depends=('clutter-gtk' 'gnonlin' 'gst-editing-services' 'gst-plugins-good' 'gst-python' + 'libnotify' 'python2-gobject' 'python2-gobject2' 'python2-numpy' 'python2-xdg' + 'gnome-icon-theme' 'desktop-file-utils') +makedepends=('intltool' 'itstool') +optdepends=('frei0r-plugins: additional video effects, clip transformation feature' + 'gst-libav: additional multimedia codecs' + 'gst-plugins-bad: additional multimedia codecs' + 'gst-plugins-ugly: additional multimedia codecs') +options=('!libtool') +install=$pkgname.install +source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/0.91/$pkgname-$pkgver.tar.xz) +md5sums=('30f520587885d231aeb9a7ddb2585e45') + +build() { + cd "$srcdir/$pkgname-$pkgver" + export PYTHON=python2 + ./configure --prefix=/usr --disable-static + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + make DESTDIR="$pkgdir/" install +} diff --git a/community/pitivi/pitivi.install b/community/pitivi/pitivi.install new file mode 100644 index 000000000..a41a84585 --- /dev/null +++ b/community/pitivi/pitivi.install @@ -0,0 +1,13 @@ +post_install() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor + update-mime-database usr/share/mime >/dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/community/playpen/PKGBUILD b/community/playpen/PKGBUILD index b01dc48b6..450d7b9d8 100644 --- a/community/playpen/PKGBUILD +++ b/community/playpen/PKGBUILD @@ -1,20 +1,19 @@ # Maintainer: Daniel Micay <danielmicay@gmail.com> pkgname=playpen -pkgver=1 -pkgrel=2 +pkgver=2 +pkgrel=1 epoch=1 pkgdesc='A secure application sandbox using namespaces, cgroups and seccomp' arch=(i686 x86_64) url='https://github.com/thestinger/playpen/' license=(MIT) -depends=(libseccomp gcc-libs) -makedepends=(git python clang) -source=(git://github.com/thestinger/playpen#tag=1) +depends=(libseccomp) +makedepends=(git clang) +source=(git://github.com/thestinger/playpen#tag=$pkgver) md5sums=(SKIP) build() { cd $pkgname - git submodule update --init make } diff --git a/community/postgis/PKGBUILD b/community/postgis/PKGBUILD index 0761f81cd..dcda1022d 100644 --- a/community/postgis/PKGBUILD +++ b/community/postgis/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 96248 2013-08-22 17:02:31Z alucryd $ +# $Id: PKGBUILD 98497 2013-10-12 06:26:10Z jlichtblau $ # Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> # Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org # Contributor: William Rea <sillywilly@gmail.com> pkgname=postgis pkgver=2.1.0 -pkgrel=1 +pkgrel=2 pkgdesc="Adds support for geographic objects to PostgreSQL" arch=('i686' 'x86_64' 'mips64el') url="http://postgis.net/" diff --git a/community/python-basemap/PKGBUILD b/community/python-basemap/PKGBUILD index 33e38db5e..9087f00ea 100644 --- a/community/python-basemap/PKGBUILD +++ b/community/python-basemap/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 97800 2013-09-29 19:59:55Z jlichtblau $ +# $Id: PKGBUILD 98348 2013-10-08 20:26:40Z jlichtblau $ # Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> # Contributor: Stéphane Gaudreault <stephane@archlinux.org> # Contributor: Matthias Ellmer <ellmer.matthias@gmail.com> @@ -6,14 +6,14 @@ pkgbase=python-basemap pkgname=('python-basemap' 'python2-basemap' 'python-basemap-common') -pkgver=1.0.6 -pkgrel=3 +pkgver=1.0.7 +pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url="http://matplotlib.org/basemap/" license=('custom') makedepends=('python2-numpy' 'python-numpy' 'geos' 'shapelib') source=("http://downloads.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-${pkgver}/basemap-${pkgver}.tar.gz") -sha1sums=('76191964c580b3af33c169cb050bb171328298f9') +sha1sums=('e1d5750aab4b2d2c3191bba078a6ae3e2bafa068') _py2basever=2.7 _py3basever=3.3 @@ -41,7 +41,7 @@ build() { package_python-basemap() { pkgdesc="Toolkit for plotting data on map projections" depends=('python-basemap-common' 'python-matplotlib' 'geos' 'shapelib' 'python-numpy' 'python-httplib2') - optdepends=('python-imaging: Python Imaging Library is only needed for bluemarble and warpimage methods.') + optdepends=('python-pillow: Python Imaging Library is only needed for bluemarble and warpimage methods.') cd "${srcdir}"/basemap-${pkgver} @@ -58,7 +58,7 @@ package_python-basemap() { package_python2-basemap() { pkgdesc="Toolkit for plotting data on map projections" depends=('python-basemap-common' 'python2-matplotlib' 'geos' 'shapelib' 'python2-numpy' 'python2-httplib2') - optdepends=('python2-imaging: Python Imaging Library is only needed for bluemarble and warpimage methods.') + optdepends=('python2-pillow: Python Imaging Library is only needed for bluemarble and warpimage methods.') cd "${srcdir}"/basemap-${pkgver}-python2 diff --git a/community/python-matplotlib/PKGBUILD b/community/python-matplotlib/PKGBUILD index 40fe8fd98..594f8c62b 100644 --- a/community/python-matplotlib/PKGBUILD +++ b/community/python-matplotlib/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 95128 2013-08-05 23:48:54Z eric $ +# $Id: PKGBUILD 98442 2013-10-10 15:29:19Z fyan $ # Maintainer: Stéphane Gaudreault <stephane@archlinux.org> # Contributor: Stefan Husmann <stefan-husmann@t-online.de> # Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve> @@ -6,7 +6,7 @@ pkgbase=python-matplotlib pkgname=('python2-matplotlib' 'python-matplotlib') -pkgver=1.3.0 +pkgver=1.3.1 pkgrel=1 pkgdesc="A python plotting library, making publication quality plots" arch=('i686' 'x86_64' 'mips64el') @@ -21,7 +21,6 @@ optdepends=('pygtk: for use with the GTK or GTKAgg backend' 'ghostscript: usetex dependencies' 'texlive-bin: usetex dependencies') source=("http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-${pkgver}/matplotlib-${pkgver}.tar.gz") -sha1sums=('4bcf177bbe2a1a576fbc0896e69c2de2cf7429ae') prepare() { cp -a matplotlib-${pkgver} matplotlib-${pkgver}-py3 @@ -66,3 +65,4 @@ package_python-matplotlib() { install -dm755 "${pkgdir}"/usr/share/licenses/python-matplotlib install -m 644 doc/users/license.rst "${pkgdir}"/usr/share/licenses/python-matplotlib } +sha512sums=('04877aa15b6d52a6f813e8377098d13c432f66ae2522c544575440180944c9b73a2164ae63edd3a0eff807883bf7b39cd55f28454ccee8c76146567ff4a6fd40') diff --git a/community/python-mpi4py/PKGBUILD b/community/python-mpi4py/PKGBUILD deleted file mode 100644 index 4200b5c5c..000000000 --- a/community/python-mpi4py/PKGBUILD +++ /dev/null @@ -1,48 +0,0 @@ -# $Id: PKGBUILD 96118 2013-08-20 06:32:52Z lcarlier $ -# Maintainer : Stéphane Gaudreault <stephane@archlinux.org> -# Contributor: Sebastien Binet <binet@cern.ch> - -pkgbase=python-mpi4py -pkgname=('python-mpi4py' 'python2-mpi4py') -pkgver=1.3.1 -pkgrel=2 -arch=('i686' 'x86_64' 'mips64el') -url="http://mpi4py.scipy.org" -license=('BSD') -makedepends=('python' 'python2' 'python-setuptools' 'python2-setuptools' 'openmpi') -source=(http://mpi4py.googlecode.com/files/mpi4py-${pkgver}.tar.gz) - -build() { - cd "${srcdir}" - cp -a mpi4py-${pkgver}{,-python2} - - # Build python 3 module - cd mpi4py-${pkgver} - python3 setup.py build - - # Build python 2 module - cd ../mpi4py-${pkgver}-python2 - python2 setup.py build -} - -package_python-mpi4py() { - pkgdesc="Python bindings of the Message Passing Interface (MPI)" - depends=('python>=3.3' 'openmpi') - - cd "${srcdir}/mpi4py-${pkgver}" - python3 setup.py install --root "${pkgdir}" --optimize=1 --skip-build - - install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE.txt" -} - -package_python2-mpi4py() { - pkgdesc="Python2 bindings of the Message Passing Interface (MPI)" - depends=('python2>=2.7' 'openmpi') - - cd "${srcdir}/mpi4py-${pkgver}-python2" - python2 setup.py install --root "${pkgdir}" --optimize=1 --skip-build - - install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE.txt" -} - -sha512sums=('15e81f2a1e6f6af7a54f0e8ec43ddf36cc565b7fe9e3dd35603c9d128199c5acd1584757ffca999c8826c0bbccf371175d40a7a24c85d3369efd77da5b3b603f') diff --git a/community/python-psutil/PKGBUILD b/community/python-psutil/PKGBUILD index 194841fc0..6e9a92d5c 100644 --- a/community/python-psutil/PKGBUILD +++ b/community/python-psutil/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 96120 2013-08-20 06:32:54Z lcarlier $ +# $Id: PKGBUILD 98418 2013-10-09 22:50:40Z seblu $ # Maintainer: Sébastien Luttringer pkgbase=python-psutil pkgname=('python-psutil' 'python2-psutil') -pkgver=1.0.1 -pkgrel=2 +pkgver=1.1.1 +pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url='http://code.google.com/p/psutil/' license=('custom: BSD') makedepends=('python' 'python-setuptools' 'python2' 'python2-setuptools') -source=("https://psutil.googlecode.com/files/psutil-$pkgver.tar.gz") -sha1sums=('3d3abb8b7a5479b7299a8d170ec25179410f24d1') +source=("https://pypi.python.org/packages/source/p/psutil/psutil-$pkgver.tar.gz") +md5sums=('24430ee6486be2f1a960d9ce4dc87ad0') build() { cd psutil-$pkgver diff --git a/community/qgo/PKGBUILD b/community/qgo/PKGBUILD index c66c167b3..e642d9589 100644 --- a/community/qgo/PKGBUILD +++ b/community/qgo/PKGBUILD @@ -1,35 +1,41 @@ -# $Id: PKGBUILD 88006 2013-04-09 21:47:09Z eric $ +# $Id: PKGBUILD 98278 2013-10-07 22:46:15Z arodseth $ # Maintainer: Alexander Rødseth <rodseth@gmail.com> # Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org> +# Contributor: Magnus Jonsson <jmagnusj@gmail.com> pkgname=qgo -pkgver=1.5.4 -pkgrel=5 -pkgdesc="Go client and full featured SGF editor" +pkgver=2.0.0.dda95c9 +pkgrel=1 +pkgdesc='Go client and full featured SGF editor' arch=('x86_64' 'i686' 'mips64el') url="http://qgo.sourceforge.net/" license=('GPL') -depends=('qt3' 'libsm') -source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver-r3.tar.gz" - 'gcc43.patch' - 'gcc45.patch') -sha256sums=('ddfb66ada7027b844838895061f266bda03b327e8dfec2ee2782e14748bac104' - 'f6ddd28325523e3d5aabac2284334c73114dd823e00bf282aae2646982206e78' - '7f94acfe58d75b57d55bab5b296a801d48f54c8e12dfc1556cd1586abebd3580') +depends=('qt5-multimedia' 'qt5-tools' 'libsm' 'desktop-file-utils' + 'shared-mime-info') +makedepends=('git') +install='qgo.install' +options=('!emptydirs') +source=("$pkgname::git://github.com/pzorin/$pkgname.git") +md5sums=('SKIP') + +pkgver() { + cd "$pkgname" + + # fragments in the git url doesn't seem to work? + git checkout -q qt5 + + echo -n '2.0.0.' + git describe --always | sed 's|-|.|g' +} build() { - cd "$srcdir/$pkgname-$pkgver" + cd "$pkgname" - patch -Np1 -i "$srcdir/gcc43.patch" - patch -Np1 -i "$srcdir/gcc45.patch" - ./configure --prefix=/usr --build=$CHOST --with-qt-includes=/usr/include/qt3 - make + qmake && make } package() { - cd "$srcdir/$pkgname-$pkgver" - - make DESTDIR="$pkgdir" install + make -C "$pkgname" INSTALL_ROOT="$pkgdir" install } # vim:set ts=2 sw=2 et: diff --git a/community/qgo/gcc43.patch b/community/qgo/gcc43.patch deleted file mode 100644 index 1af8b8bd9..000000000 --- a/community/qgo/gcc43.patch +++ /dev/null @@ -1,37 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 05_g++-4.3.dpatch by Pierre Habouzit <madcoder@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: g++-4.3 patch - -@DPATCH@ ---- qgo-1.5.4-r2~/src/matrix.cpp 2004-10-30 20:49:50.000000000 +0000 -+++ qgo-1.5.4-r2/src/matrix.cpp 2008-03-16 23:04:18.306414183 +0000 -@@ -2,12 +2,14 @@ - * matrix.cpp - */ - -+#include <cstdlib> - #include "matrix.h" --#include <stdlib.h> - #ifndef NO_DEBUG --#include <iostream.h> -+#include <iostream> - #endif - -+using namespace std; -+ - Matrix::Matrix(int s) - : size(s) - { ---- qgo-1.5.4-r2~/src/tree.cpp 2005-05-12 20:58:23.000000000 +0000 -+++ qgo-1.5.4-r2/src/tree.cpp 2008-03-16 23:04:50.660267034 +0000 -@@ -5,7 +5,7 @@ - #include "tree.h" - #include "move.h" - #include "qgo.h" --#include <iostream.h> -+#include <iostream> - #include <qptrstack.h> - - Tree::Tree(int board_size) diff --git a/community/qgo/gcc45.patch b/community/qgo/gcc45.patch deleted file mode 100644 index 6c71f92f6..000000000 --- a/community/qgo/gcc45.patch +++ /dev/null @@ -1,205 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## Description: fix builiding with gcc4.5 -## Origin/Author: Ubuntu -## Bug: http://bugs.launchpad.net/bugs/756004 -## 06_ftbfs_gcc45.dpatch by Andreas Moog <amoog@ubuntu.com> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: fix build with gcc 4.5 - -@DPATCH@ -diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' qgo-1.5.4-r3~/src/gamedialog.cpp qgo-1.5.4-r3/src/gamedialog.cpp ---- qgo-1.5.4-r3~/src/gamedialog.cpp 2011-04-12 20:03:12.000000000 +0200 -+++ qgo-1.5.4-r3/src/gamedialog.cpp 2011-04-12 20:03:15.640382627 +0200 -@@ -512,7 +512,7 @@ - if (handicapSpin->value() != val.toInt()) - { - handicapSpin->setValue(val.toInt()); -- handicapSpin->setPaletteBackgroundColor(QColor::QColor("cyan")); -+ handicapSpin->setPaletteBackgroundColor(QColor("cyan")); - } - else - handicapSpin->unsetPalette(); -@@ -521,7 +521,7 @@ - if (boardSizeSpin->value() != val.toInt()) - { - boardSizeSpin->setValue(val.toInt()); -- boardSizeSpin->setPaletteBackgroundColor(QColor::QColor("cyan")); -+ boardSizeSpin->setPaletteBackgroundColor(QColor("cyan")); - } - else - boardSizeSpin->unsetPalette(); -@@ -530,7 +530,7 @@ - if (timeSpin->value() != val.toInt()/60) - { - timeSpin->setValue(val.toInt()/60); -- timeSpin->setPaletteBackgroundColor(QColor::QColor("cyan")); -+ timeSpin->setPaletteBackgroundColor(QColor("cyan")); - } - else - timeSpin->unsetPalette(); -@@ -539,7 +539,7 @@ - if (byoTimeSpin->value() != val.toInt()/60) - { - byoTimeSpin->setValue(val.toInt()/60); -- byoTimeSpin->setPaletteBackgroundColor(QColor::QColor("cyan")); -+ byoTimeSpin->setPaletteBackgroundColor(QColor("cyan")); - } - else - byoTimeSpin->unsetPalette(); -@@ -550,25 +550,25 @@ - val = element(line,0," "); - if ( !(play_nigiri_button->isChecked()) && (val == "N")) - { -- play_nigiri_button->setPaletteBackgroundColor(QColor::QColor("cyan")); -- play_white_button->setPaletteBackgroundColor(QColor::QColor("cyan")); -- play_black_button->setPaletteBackgroundColor(QColor::QColor("cyan")); -+ play_nigiri_button->setPaletteBackgroundColor(QColor("cyan")); -+ play_white_button->setPaletteBackgroundColor(QColor("cyan")); -+ play_black_button->setPaletteBackgroundColor(QColor("cyan")); - play_nigiri_button->setChecked(true); - - } - else if ( (play_black_button->isChecked()) && (val == "B")) - { -- play_nigiri_button->setPaletteBackgroundColor(QColor::QColor("cyan")); -- play_white_button->setPaletteBackgroundColor(QColor::QColor("cyan")); -- play_black_button->setPaletteBackgroundColor(QColor::QColor("cyan")); -+ play_nigiri_button->setPaletteBackgroundColor(QColor("cyan")); -+ play_white_button->setPaletteBackgroundColor(QColor("cyan")); -+ play_black_button->setPaletteBackgroundColor(QColor("cyan")); - play_white_button->setChecked(true); - - } - else if ( (play_white_button->isChecked()) && (val == "W")) - { -- play_nigiri_button->setPaletteBackgroundColor(QColor::QColor("cyan")); -- play_white_button->setPaletteBackgroundColor(QColor::QColor("cyan")); -- play_black_button->setPaletteBackgroundColor(QColor::QColor("cyan")); -+ play_nigiri_button->setPaletteBackgroundColor(QColor("cyan")); -+ play_white_button->setPaletteBackgroundColor(QColor("cyan")); -+ play_black_button->setPaletteBackgroundColor(QColor("cyan")); - play_black_button->setChecked(true); - - } -diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' qgo-1.5.4-r3~/src/mainwin.cpp qgo-1.5.4-r3/src/mainwin.cpp ---- qgo-1.5.4-r3~/src/mainwin.cpp 2011-04-12 20:03:12.000000000 +0200 -+++ qgo-1.5.4-r3/src/mainwin.cpp 2011-04-12 20:03:15.640382627 +0200 -@@ -68,35 +68,35 @@ - { - - -- prefsIcon= QPixmap::QPixmap(qembed_findImage("package_settings"));//QPixmap(ICON_PREFS); -+ prefsIcon= QPixmap(qembed_findImage("package_settings"));//QPixmap(ICON_PREFS); - // infoIcon= QPixmap(ICON_GAMEINFO); -- exitIcon = QPixmap::QPixmap(qembed_findImage("exit"));//QPixmap(ICON_EXIT); -- fileNewboardIcon = QPixmap::QPixmap(qembed_findImage("newboard"));//QPixmap(ICON_FILENEWBOARD); -- fileNewIcon = QPixmap::QPixmap(qembed_findImage("filenew"));//QPixmap(ICON_FILENEW); -- fileOpenIcon = QPixmap::QPixmap(qembed_findImage("fileopen"));//QPixmap(ICON_FILEOPEN); -+ exitIcon = QPixmap(qembed_findImage("exit"));//QPixmap(ICON_EXIT); -+ fileNewboardIcon = QPixmap(qembed_findImage("newboard"));//QPixmap(ICON_FILENEWBOARD); -+ fileNewIcon = QPixmap(qembed_findImage("filenew"));//QPixmap(ICON_FILENEW); -+ fileOpenIcon = QPixmap(qembed_findImage("fileopen"));//QPixmap(ICON_FILEOPEN); - // fileSaveIcon = QPixmap(ICON_FILESAVE); - // fileSaveAsIcon = QPixmap(ICON_FILESAVEAS); - // transformIcon = QPixmap(ICON_TRANSFORM); - // charIcon = QPixmap(ICON_CHARSET); -- manualIcon = QPixmap::QPixmap(qembed_findImage("help"));//QPixmap(ICON_MANUAL); -+ manualIcon = QPixmap(qembed_findImage("help"));//QPixmap(ICON_MANUAL); - // autoplayIcon = QPixmap(ICON_AUTOPLAY); -- connectedIcon = QPixmap::QPixmap(qembed_findImage("connected"));//QPixmap(ICON_CONNECTED); -- disconnectedIcon = QPixmap::QPixmap(qembed_findImage("connect_no"));//QPixmap(ICON_DISCONNECTED); -- OpenIcon = QPixmap::QPixmap(qembed_findImage("open"));//QPixmap(ICON_OPEN); -- LookingIcon = QPixmap::QPixmap(qembed_findImage("looking"));//QPixmap(ICON_LOOKING); -- QuietIcon= QPixmap::QPixmap(qembed_findImage("quiet"));//QPixmap(ICON_QUIET); -- NotOpenIcon = QPixmap::QPixmap(qembed_findImage("not_open"));//QPixmap(ICON_NOT_OPEN); -- NotLookingIcon = QPixmap::QPixmap(qembed_findImage("not_looking"));//QPixmap(ICON_NOT_LOOKING); -- NotQuietIcon= QPixmap::QPixmap(qembed_findImage("not_quiet"));//QPixmap(ICON_NOT_QUIET); -- RefreshPlayersIcon = QPixmap::QPixmap(qembed_findImage("refresh_players"));//QPixmap(ICON_REFRESH_PLAYERS); -- RefreshGamesIcon = QPixmap::QPixmap(qembed_findImage("refresh_games"));//QPixmap(ICON_REFRESH_GAMES); -- ComputerPlayIcon = QPixmap::QPixmap(qembed_findImage("computerplay"));//QPixmap(ICON_COMPUTER_PLAY); -- qgoIcon = QPixmap::QPixmap(qembed_findImage("Bowl"));//QPixmap(ICON_COMPUTER_PLAY); -- NotSeekingIcon = QPixmap::QPixmap(qembed_findImage("not_seeking")); -- seekingIcon[0] = QPixmap::QPixmap(qembed_findImage("seeking1")); -- seekingIcon[1] = QPixmap::QPixmap(qembed_findImage("seeking2")); -- seekingIcon[2] = QPixmap::QPixmap(qembed_findImage("seeking3")); -- seekingIcon[3] = QPixmap::QPixmap(qembed_findImage("seeking4")); -+ connectedIcon = QPixmap(qembed_findImage("connected"));//QPixmap(ICON_CONNECTED); -+ disconnectedIcon = QPixmap(qembed_findImage("connect_no"));//QPixmap(ICON_DISCONNECTED); -+ OpenIcon = QPixmap(qembed_findImage("open"));//QPixmap(ICON_OPEN); -+ LookingIcon = QPixmap(qembed_findImage("looking"));//QPixmap(ICON_LOOKING); -+ QuietIcon= QPixmap(qembed_findImage("quiet"));//QPixmap(ICON_QUIET); -+ NotOpenIcon = QPixmap(qembed_findImage("not_open"));//QPixmap(ICON_NOT_OPEN); -+ NotLookingIcon = QPixmap(qembed_findImage("not_looking"));//QPixmap(ICON_NOT_LOOKING); -+ NotQuietIcon= QPixmap(qembed_findImage("not_quiet"));//QPixmap(ICON_NOT_QUIET); -+ RefreshPlayersIcon = QPixmap(qembed_findImage("refresh_players"));//QPixmap(ICON_REFRESH_PLAYERS); -+ RefreshGamesIcon = QPixmap(qembed_findImage("refresh_games"));//QPixmap(ICON_REFRESH_GAMES); -+ ComputerPlayIcon = QPixmap(qembed_findImage("computerplay"));//QPixmap(ICON_COMPUTER_PLAY); -+ qgoIcon = QPixmap(qembed_findImage("Bowl"));//QPixmap(ICON_COMPUTER_PLAY); -+ NotSeekingIcon = QPixmap(qembed_findImage("not_seeking")); -+ seekingIcon[0] = QPixmap(qembed_findImage("seeking1")); -+ seekingIcon[1] = QPixmap(qembed_findImage("seeking2")); -+ seekingIcon[2] = QPixmap(qembed_findImage("seeking3")); -+ seekingIcon[3] = QPixmap(qembed_findImage("seeking4")); - - // init - -@@ -576,7 +576,7 @@ - if (e->timerId() == seekButtonTimer) - { - imagecounter = (imagecounter+1) % 4; -- toolSeek->setIconSet(QIconSet::QIconSet(seekingIcon[imagecounter])); -+ toolSeek->setIconSet(QIconSet(seekingIcon[imagecounter])); - return; - } - -@@ -2950,17 +2950,17 @@ - //tb->setProperty( "geometry", QRect(0, 0, 20, 20)); - - //added the icons -- refreshPlayers->setIconSet(QIconSet::QIconSet(RefreshPlayersIcon)); -- refreshGames->setIconSet(QIconSet::QIconSet(RefreshGamesIcon)); -- fileNew->setIconSet(QIconSet::QIconSet(fileNewIcon)); -- fileNewBoard->setIconSet(QIconSet::QIconSet(fileNewboardIcon)); -- fileOpen->setIconSet(QIconSet::QIconSet(fileOpenIcon)); -- fileQuit->setIconSet(QIconSet::QIconSet(exitIcon)); -- computerPlay->setIconSet(QIconSet::QIconSet(ComputerPlayIcon)); -- Connect->setIconSet(QIconSet::QIconSet(connectedIcon)); -- Disconnect->setIconSet(QIconSet::QIconSet(disconnectedIcon)); -- helpManual->setIconSet(QIconSet::QIconSet(manualIcon)); -- setPreferences->setIconSet(QIconSet::QIconSet(prefsIcon)); -+ refreshPlayers->setIconSet(QIconSet(RefreshPlayersIcon)); -+ refreshGames->setIconSet(QIconSet(RefreshGamesIcon)); -+ fileNew->setIconSet(QIconSet(fileNewIcon)); -+ fileNewBoard->setIconSet(QIconSet(fileNewboardIcon)); -+ fileOpen->setIconSet(QIconSet(fileOpenIcon)); -+ fileQuit->setIconSet(QIconSet(exitIcon)); -+ computerPlay->setIconSet(QIconSet(ComputerPlayIcon)); -+ Connect->setIconSet(QIconSet(connectedIcon)); -+ Disconnect->setIconSet(QIconSet(disconnectedIcon)); -+ helpManual->setIconSet(QIconSet(manualIcon)); -+ setPreferences->setIconSet(QIconSet(prefsIcon)); - setIcon(qgoIcon); - - UserToolbar->show(); -@@ -3218,7 +3218,7 @@ - toolSeek->setOn(false); - toolSeek->setPopup(seekMenu); - toolSeek->setPopupDelay(1); -- toolSeek->setIconSet(QIconSet::QIconSet(NotSeekingIcon)); -+ toolSeek->setIconSet(QIconSet(NotSeekingIcon)); - killTimer(seekButtonTimer); - seekButtonTimer = 0; - } -diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' qgo-1.5.4-r3~/src/qgtp.cpp qgo-1.5.4-r3/src/qgtp.cpp ---- qgo-1.5.4-r3~/src/qgtp.cpp 2011-04-12 20:03:12.000000000 +0200 -+++ qgo-1.5.4-r3/src/qgtp.cpp 2011-04-12 20:03:22.360029899 +0200 -@@ -277,7 +277,7 @@ - _cpt++; - - qDebug(QString("flush -> %1").arg(s)); -- programProcess->writeToStdin(QString::QString(s)); -+ programProcess->writeToStdin(QString(s)); - - - } diff --git a/community/qgo/qgo.install b/community/qgo/qgo.install new file mode 100644 index 000000000..e3a36c814 --- /dev/null +++ b/community/qgo/qgo.install @@ -0,0 +1,14 @@ +post_upgrade() { + update-desktop-database -q + update-mime-database /usr/share/mime +} + +post_install() { + post_upgrade +} + +post_remove() { + post_upgrade +} + +# vim:set ts=2 sw=2 et: diff --git a/community/qtractor/PKGBUILD b/community/qtractor/PKGBUILD index 8a1a9f3d9..c64c433ee 100644 --- a/community/qtractor/PKGBUILD +++ b/community/qtractor/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 94309 2013-07-19 17:36:37Z schiv $ +# $Id: PKGBUILD 98346 2013-10-08 20:19:08Z schiv $ # Maintainer: Ray Rashif <schiv@archlinux.org> # Contributor: Philipp Überbacher <hollunder at gmx dot at> pkgname=qtractor -pkgver=0.5.10 +pkgver=0.5.11 pkgrel=1 pkgdesc="Audio/MIDI multitrack sequencer" arch=('i686' 'x86_64' 'mips64el') @@ -15,7 +15,7 @@ makedepends=('ladspa' 'dssi') [ "$CARCH" = "i686" ] && optdepends=('dssi-vst: win32 VST support') install=qtractor.install source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz") -md5sums=('54a9c2b4eb0f65e44bdc27c91849a341') +md5sums=('97a07f55ea61747859b1fd6c284a0806') build() { cd "$srcdir/$pkgname-$pkgver" diff --git a/community/quassel/PKGBUILD b/community/quassel/PKGBUILD index 87eb801ca..69801123a 100644 --- a/community/quassel/PKGBUILD +++ b/community/quassel/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 96366 2013-08-26 17:18:57Z jelle $ +# $Id: PKGBUILD 98503 2013-10-12 08:31:51Z jlichtblau $ # Maintainer: Vesa Kaihlavirta <vegai@iki.fi> # Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> pkgbase=quassel pkgname=('quassel-client' 'quassel-core') -pkgver=0.9.0 -pkgrel=2 +pkgver=0.9.1 +pkgrel=1 pkgdesc="QT4 irc client with a separated core" arch=('i686' 'x86_64' 'mips64el') url="http://quassel-irc.org/" license=('GPL') makedepends=('cmake' 'automoc4' 'qt4' 'icu') -source=("http://quassel-irc.org/pub/quassel-$pkgver.tar.bz2" - 'quassel.service' - 'quassel.conf') - -sha256sums=('2e3fe06ae3731c829aa3c2f6bb5320619bad264c831f322985c3aa3fe58b6027' - '91a1aaae47d41c11aa418dd560039ddbbfb659e02b86379d8c4789c5ada362d3' +source=(http://quassel-irc.org/pub/$pkgbase-$pkgver.tar.bz2 + $pkgbase.service + $pkgbase.conf) +sha256sums=('39e97bd67160d6575a57d4f71c4b1be5c13461ca238baef462ab43164419864e' + '81222ce0a868993dbe80572f34a555d7fedf07f87413803b7e40397ec283161e' 'f3031ea8217e01ba42cea14606169e3e27affa5918968ffd5a03c21ae92fe2b8') + build() { cd $srcdir [[ ! -d build ]] && mkdir build diff --git a/community/quassel/quassel.service b/community/quassel/quassel.service index eff018899..cdc7d0890 100644 --- a/community/quassel/quassel.service +++ b/community/quassel/quassel.service @@ -1,12 +1,10 @@ [Unit] -Description=Quassel core service +Description=Quassel Core After=network.target [Service] -Type=simple -User=quassel -Group=quassel -ExecStart=/usr/bin/quasselcore --configdir=/var/lib/quassel --listen=0.0.0.0 +PIDFile=/var/run/quassel.pid +ExecStart=/usr/bin/quasselcore --listen=127.0.0.1 --configdir=/var/lib/quassel [Install] WantedBy=multi-user.target diff --git a/community/rtl-sdr/PKGBUILD b/community/rtl-sdr/PKGBUILD index 63cefd78f..04c8afa7f 100644 --- a/community/rtl-sdr/PKGBUILD +++ b/community/rtl-sdr/PKGBUILD @@ -1,12 +1,12 @@ -# $Id: PKGBUILD 95461 2013-08-12 16:40:03Z kkeen $ +# $Id: PKGBUILD 98280 2013-10-07 22:50:19Z kkeen $ # Maintainer: Kyle Keen <keenerd@gmail.com> # Contributor: Michael Düll <mail@akurei.me> pkgname=rtl-sdr # they are just starting to play with tags # consider using tags for the pkgver in the future -pkgver=20130604 -_pkgtag=v0.5.0 +pkgver=20130913 +_commit=4914b5d4314b752 pkgrel=1 pkgdesc="Driver for Realtek RTL2832U, allowing general purpose software defined radio (SDR)." arch=('i686' 'x86_64') @@ -16,7 +16,7 @@ depends=('libusb>=1.0') makedepends=('git' 'cmake') conflicts=('rtl-sdr-git') install=rtl-sdr.install -source=("git://git.osmocom.org/rtl-sdr.git#tag=$_pkgtag" +source=("git://git.osmocom.org/rtl-sdr.git#commit=$_commit" 'rtlsdr.conf') md5sums=('SKIP' '9c65be40f8916a220e3f55b819897331') diff --git a/community/simple-scan/PKGBUILD b/community/simple-scan/PKGBUILD index 93233537f..9f5c42a87 100644 --- a/community/simple-scan/PKGBUILD +++ b/community/simple-scan/PKGBUILD @@ -1,8 +1,10 @@ +# $Id: PKGBUILD 98500 2013-10-12 08:24:27Z jlichtblau $ # Maintainer: Thomas Dziedzic < gostrc at gmail > +# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> # Contributor: Joeny Ang <ang(dot)joeny(at)gmail(dot)com> pkgname=simple-scan -pkgver=3.8.0 +pkgver=3.10.0 pkgrel=1 pkgdesc='Simple scanning utility' arch=('i686' 'x86_64' 'mips64el') @@ -10,9 +12,9 @@ url='http://launchpad.net/simple-scan' license=('GPL3') depends=('sane' 'dconf' 'gtk3' 'colord' 'hicolor-icon-theme') makedepends=('yelp-tools' 'intltool') -install=simple-scan.install -source=(https://launchpad.net/$pkgname/${pkgver:0:3}/$pkgver/+download/$pkgname-$pkgver.tar.xz) -sha256sums=('8df71e5f9e5db5c53217cb56b0e23b58dfe65bc174e873ad3ee576fbeccadc22') +install=$pkgname.install +source=(https://launchpad.net/$pkgname/${pkgver:0:4}/$pkgver/+download/$pkgname-$pkgver.tar.xz) +sha256sums=('2732641fa77c75dcd47008cc40864f7847b93d5b27291ded6f4233289f5d10f2') build() { cd $pkgname-$pkgver diff --git a/community/sk1/PKGBUILD b/community/sk1/PKGBUILD index 6da48a5d6..bff38847f 100644 --- a/community/sk1/PKGBUILD +++ b/community/sk1/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 97887 2013-09-30 13:21:30Z bgyorgy $ +# $Id: PKGBUILD 98434 2013-10-10 11:32:25Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: ConnorBehan <connor.behan@gmail.com> pkgname=sk1 pkgver=0.9.1 -pkgrel=11 +pkgrel=12 pkgdesc="Fork of skencil with improved CMYK support" arch=(i686 x86_64 'mips64el') url="http://sk1project.org/modules.php?name=Products&product=sk1" -depends=('tcl' 'tk' 'python2-lcms' 'python2-pillow' 'pyxml' 'zenity' 'sk1libs') +depends=('tcl' 'tk' 'python2-lcms' 'python2-pillow' 'zenity' 'sk1libs') license=('GPL' 'LGPL') source=(http://sk1project.org/downloads/sk1/${pkgver}pre_rev905/sK1-${pkgver}pre_rev905.tar.gz sk1.desktop diff --git a/community/solfege/PKGBUILD b/community/solfege/PKGBUILD index 8b3e6aaff..7ba744b5f 100644 --- a/community/solfege/PKGBUILD +++ b/community/solfege/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 93249 2013-06-29 19:58:40Z schiv $ +# $Id: PKGBUILD 98416 2013-10-09 19:27:11Z schiv $ # Maintainer: Ray Rashif <schiv@archlinux.org> # Contributor: Corrado Primier <bardo@aur.archlinux.org> # Contributor: sickhate <sickhate@tux-linux.net> # TODO: bring in pyalsa, csound, mma pkgname=solfege -pkgver=3.22.0 -pkgrel=1 +pkgver=3.22.2 +pkgrel=2 pkgdesc="Music education and ear training software" arch=('i686' 'x86_64' 'mips64el') url="http://www.solfege.org/" license=('GPL3') -depends=('pygtk' 'libgtkhtml' 'librsvg') +depends=('pygtk' 'librsvg') makedepends=('ghostscript' 'gnome-doc-utils' 'libxslt' 'swig' 'texinfo' 'txt2man') optdepends=('timidity++: or any MIDI player & MIDI-WAV converter' @@ -21,7 +21,7 @@ optdepends=('timidity++: or any MIDI player & MIDI-WAV converter' 'lilypond: for generating print-outs & score sheets' 'texlive-bin: use LaTeX to replace HTML reports with DVI') source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz") -md5sums=('8a5275d6db3ff181068441d7e32ad7f3') +md5sums=('ee9778d2b960b7afb375c5b3c3878222') build() { cd "$srcdir/$pkgname-$pkgver" diff --git a/community/spice-gtk3/PKGBUILD b/community/spice-gtk3/PKGBUILD index bd7afb102..840b6a390 100644 --- a/community/spice-gtk3/PKGBUILD +++ b/community/spice-gtk3/PKGBUILD @@ -1,33 +1,30 @@ -# $Id: PKGBUILD 97529 2013-09-23 16:16:35Z spupykin $ +# $Id: PKGBUILD 98296 2013-10-08 04:33:16Z bgyorgy $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> -# Maintainer: Stefano Facchini <stefano.facchini@gmail.com> +# Contributor: Stefano Facchini <stefano.facchini@gmail.com> # Contributor: Jonathan Lestrelin <zanko@daemontux.org> -# Derived from the spice-gtk PKGBUILD by # Contributor: Lucio Zara <pennega@gmail.com> pkgname=spice-gtk3 pkgver=0.21 -pkgrel=1 -pkgdesc="A Gtk client and libraries for SPICE remote desktop servers (gtk3 version)." -arch=('x86_64' 'i686') +pkgrel=2 +pkgdesc="Gtk client and libraries for SPICE remote desktop servers (gtk3 version)" +arch=('i686' 'x86_64') url="http://spice-space.org" -license=('GPL') -makedepends=('intltool' 'vala' 'python2-pyparsing' 'python2-gobject') -depends=('libpulse' 'gtk3' 'spice' 'libusb' 'usbredir') -conflicts=('spice-gtk') +license=('LGPL2.1') +depends=('celt0.5.1' 'gtk3' 'libcacard' 'libpulse' 'usbredir') +makedepends=('gobject-introspection' 'intltool' 'python2-pyparsing' 'qemu' 'spice-protocol' 'usbutils' 'vala') options=('!libtool') source=("http://www.spice-space.org/download/gtk/spice-gtk-$pkgver.tar.bz2") -sha256sums=('b1355823b0ceb2e118c1f9a9a602ccab78e1e2edf2d93f71fa42d3bc85ca75df') sha256sums=('73d418ffa97d6cf5edb1920d46f1d51fc40d14a8d4edfab3be6041e25062c564') -build() { +prepare() { cd "$srcdir/spice-gtk-$pkgver" sed -i 's,/usr/bin/env python,/usr/bin/python2,' spice-common/spice_codegen.py - ./configure --prefix=/usr \ - --with-gtk=3.0 \ - --with-python \ - --enable-vala \ - --enable-smartcard=no +} + +build() { + cd "$srcdir/spice-gtk-$pkgver" + PYTHON=python2 ./configure --prefix=/usr --disable-static --enable-vala --with-gtk=3.0 make } diff --git a/community/splix/PKGBUILD b/community/splix/PKGBUILD index 62cb5b8f8..95404addc 100644 --- a/community/splix/PKGBUILD +++ b/community/splix/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 65457 2012-02-21 05:54:06Z spupykin $ +# $Id: PKGBUILD 98329 2013-10-08 13:33:57Z heftig $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve> # Contributor: Francis Carroll (franciscarroll at gmail dot com) pkgname=splix pkgver=2.0.0 -pkgrel=11 +pkgrel=12 pkgdesc="CUPS drivers for SPL (Samsung Printer Language) printers" arch=('i686' 'x86_64' 'mips64el') url="http://splix.ap2c.org/" @@ -13,19 +13,24 @@ license=('GPL') depends=('libcups' 'gcc-libs' 'ghostscript>=9.02') makedepends=('libcups' 'jbigkit' 'krb5') install=splix.install -source=(http://downloads.sourceforge.net/splix/$pkgname-$pkgver.tar.bz2) -md5sums=('f3aa735c22a926818b3d8b26c9964186') +source=(svn://svn.code.sf.net/p/splix/code/splix#revision=315 + splix-deviceID.patch) +md5sums=('SKIP' + '674b6880dcee844e0e7f50baae0dc09f') + +prepare() { + cd splix + patch -Np1 -i ../splix-deviceID.patch +} build() { - cd "$srcdir/$pkgname-$pkgver" - sed -i 's#const PPDFile::Value::Value #const PPDFile::Value #' src/ppdfile.cpp - make PSTORASTER=gstoraster + cd splix + CXXFLAGS+=" -fno-strict-aliasing" + make drv + make all DRV_ONLY=1 } package() { - cd "$srcdir/$pkgname-$pkgver" - install -d "$pkgdir/usr/lib/cups/filter" - install -d "$pkgdir/usr/share/cups/model/samsung" - make DESTDIR="$pkgdir" install - ln -s gstoraster $pkgdir/usr/lib/cups/filter/pstoraster + cd splix + make DESTDIR="$pkgdir" install DRV_ONLY=1 } diff --git a/community/splix/splix-deviceID.patch b/community/splix/splix-deviceID.patch new file mode 100644 index 000000000..74822473d --- /dev/null +++ b/community/splix/splix-deviceID.patch @@ -0,0 +1,105 @@ +diff -up splix/ppd/samsung.drv.in.deviceID splix/ppd/samsung.drv.in +--- splix/ppd/samsung.drv.in.deviceID 2013-08-26 21:45:31.000000000 +0200 ++++ splix/ppd/samsung.drv.in 2013-09-02 13:56:57.002669362 +0200 +@@ -39,6 +39,7 @@ Manufacturer "Samsung" + Resolution k 1 0 0 0 "300dpi/300 DPI" + + ModelName "SCX-4200" ++ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:SCX-4200 Series;CMD:GDI;" + PCFileName "scx4200.ppd" + } { + Resolution k 1 0 0 0 "300dpi/300 DPI" +@@ -83,6 +84,7 @@ Manufacturer "Samsung" + PCFileName "ml1520.ppd" + } { + ModelName "ML-1610" ++ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-1610;CMD:GDI;" + PCFileName "ml1610.ppd" + } { + ModelName "ML-1710" +@@ -121,6 +123,7 @@ Manufacturer "Samsung" + Throughput 22 + { + ModelName "ML-2250" ++ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-2250;" + PCFileName "ml2250.ppd" + } { + ModelName "ML-2251" +@@ -166,6 +169,7 @@ Manufacturer "Samsung" + PCFileName "ml1640.ppd" + } { + ModelName "ML-2010" ++ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-2010;CMD:GDI;" + PCFileName "ml2010.ppd" + } { + ModelName "ML-2015" +@@ -177,6 +181,7 @@ Manufacturer "Samsung" + #import "srtmode.defs" + + ModelName "ML-2510" ++ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-2510 Series;CMD:GDI;" + PCFileName "ml2510.ppd" + } + } +@@ -193,15 +198,18 @@ Manufacturer "Samsung" + + { + ModelName "ML-1660" ++ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-1660 Series;CMD:GDI,FWV,EXT;" + PCFileName "ml1660.ppd" + } { + ModelName "ML-1910" + PCFileName "ml1910.ppd" + } { + ModelName "ML-2525" ++ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-2525 Series;CMD:GDI,FWV,EXT;" + PCFileName "ml2525.ppd" + } { + ModelName "ML-2525W" ++ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-2525W Series;CMD:GDI,FWV,EXT;" + PCFileName "ml2525w.ppd" + } + } { +@@ -465,6 +473,7 @@ Manufacturer "Samsung" + Attribute General CMSFile "CLP-310" + + ModelName "CLP-310" ++ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:CLP-310 Series;CMD:SPLC,FWV;" + PCFileName "clp310.ppd" + }{ + Attribute General CMSFile "CLP-315" +diff -up splix/ppd/xerox.drv.in.deviceID splix/ppd/xerox.drv.in +--- splix/ppd/xerox.drv.in.deviceID 2013-08-26 17:22:00.000000000 +0200 ++++ splix/ppd/xerox.drv.in 2013-09-02 13:55:22.634957854 +0200 +@@ -66,6 +66,7 @@ Manufacturer "Xerox" + } { + #import "manualduplex.defs" + ModelName "Phaser 3120" ++ Attribute "1284DeviceID" "" "MFG:Xerox;MDL:Phaser 3120;CMD:GDI;" + PCFileName "ph3120.ppd" + } { + #import "manualduplex.defs" +@@ -74,6 +75,7 @@ Manufacturer "Xerox" + } { + #import "manualduplex.defs" + ModelName "Phaser 3130" ++ Attribute "1284DeviceID" "" "MFG:Xerox;MDL:Phaser 3130;CMD:PCL5E,PCL6;" + PCFileName "ph3130.ppd" + } { + // Multi-tray +@@ -118,6 +120,7 @@ Manufacturer "Xerox" + + { + ModelName "Phaser 3117" ++ Attribute "1284DeviceID" "" "MFG:Xerox;MDL:Phaser 3117;CMD:GDI;" + PCFileName "ph3117.ppd" + } { + Resolution k 1 0 0 0 "1200x600dpi/1200x600 DPI" +@@ -131,6 +134,7 @@ Manufacturer "Xerox" + + { + ModelName "Phaser 3124" ++ Attribute "1284DeviceID" "" "MFG:Xerox;MDL:Phaser 3124;CMD:GDI;" + PCFileName "ph3124.ppd" + } + } diff --git a/community/splix/splix.install b/community/splix/splix.install index ee1eb78a3..d0b9b2798 100644 --- a/community/splix/splix.install +++ b/community/splix/splix.install @@ -3,17 +3,13 @@ post_install() { Installation of the color profile for color printers: ----------------------------------------------------- - Color printers needs color profile files to get better results. These + Color printers need color profile files to get better results. These files are provided by your printer manufacturer and you have to install them -manually. To do that, download the linux official drivers and locate the "cms" -directory. Install this directory to "/usr/share/cups/model/\$MANUFACTURER/cms". +manually. To do that, download the official linux drivers and locate the "cms" +directory. Install the contents to "/usr/share/cups/profiles/\$MANUFACTURER". Samsung color profile files are available at: (Then use MANUFACTURER=samsung) http://splix.ap2c.org/samsung_cms.tar.bz2 EOF } - -post_upgrade() { - post_install -} diff --git a/community/stella/PKGBUILD b/community/stella/PKGBUILD index 9b903cd2c..ea68ee2ce 100644 --- a/community/stella/PKGBUILD +++ b/community/stella/PKGBUILD @@ -4,7 +4,7 @@ # Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw> pkgname=stella -pkgver=3.9 +pkgver=3.9.2 pkgrel=1 pkgdesc="A multi-platform Atari 2600 VCS emulator" arch=('i686' 'x86_64') @@ -13,7 +13,7 @@ license=('GPL') depends=('sdl' 'hicolor-icon-theme' 'gtk-update-icon-cache') install=$pkgname.install source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver-src.tar.gz) -md5sums=('a0b1dbfef4f7b5e6ff9273c15cf4ba7d') +md5sums=('49d2accab82601ad0ad04536e8400266') build() { cd "$srcdir"/$pkgname-$pkgver diff --git a/community/stone-soup/PKGBUILD b/community/stone-soup/PKGBUILD index 57e890a72..f58a6e833 100644 --- a/community/stone-soup/PKGBUILD +++ b/community/stone-soup/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Jakob Gruber <jakob.gruber@gmail.com> pkgname=stone-soup -pkgver=0.12.2 +pkgver=0.13.0 pkgrel=1 pkgdesc='Open-source, single-player, role-playing roguelike game of exploration and treasure-hunting' arch=('i686' 'x86_64' 'mips64el') @@ -66,4 +66,4 @@ package() { } -md5sums=('a0d5e6f2c4e32c943eb82d9d655199a4') +md5sums=('120adc528f020a6440bf1dbc4ccb6abb') diff --git a/community/ude/PKGBUILD b/community/ude/PKGBUILD index 465716987..28d73b219 100644 --- a/community/ude/PKGBUILD +++ b/community/ude/PKGBUILD @@ -1,12 +1,12 @@ -# $Id: PKGBUILD 90591 2013-05-13 09:59:42Z spupykin $ +# $Id: PKGBUILD 98464 2013-10-11 09:25:30Z bgyorgy $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: eric <eric@archlinux.org> # Contributor: dorphell <dorphell@gmx.net> pkgname=ude pkgver=0.2.11 -pkgrel=1 -pkgdesc="Unix Desktop Environment (GUI desktop environment)" +pkgrel=2 +pkgdesc="The ultimate window manager for UDE" arch=('x86_64' 'i686' 'mips64el') license=('GPL') depends=('libjpeg' 'libxmu' 'libxpm' 'bash') @@ -17,7 +17,7 @@ md5sums=('d4952a7edffd30ac07f32fce244c86d7') build() { cd "$srcdir" - gendesk + gendesk -n --pkgname=uwm --name=UWM --pkgdesc="$pkgdesc" cd "uwm-$pkgver" ./configure --prefix=/usr @@ -27,10 +27,7 @@ build() { package() { cd "$srcdir/uwm-$pkgver" - mkdir -p $pkgdir/etc/X11/sessions - make prefix=$pkgdir/usr install - install -Dm644 "$srcdir/$pkgname.desktop" "$pkgdir/etc/X11/sessions" - install -Dm644 "$srcdir/$pkgname.png" \ - "$pkgdir/usr/share/pixmaps/$pkgname.png" - mv $pkgdir/usr/doc $pkgdir/usr/share/ + make prefix="$pkgdir/usr" install + install -Dm644 "$srcdir/uwm.desktop" "$pkgdir/usr/share/xsessions/uwm.desktop" + mv "$pkgdir/usr/doc" "$pkgdir/usr/share/" } diff --git a/community/vbam/PKGBUILD b/community/vbam/PKGBUILD new file mode 100755 index 000000000..3ea2ab4e0 --- /dev/null +++ b/community/vbam/PKGBUILD @@ -0,0 +1,106 @@ +# $Id: PKGBUILD 98482 2013-10-11 16:52:10Z alucryd $ +# Maintainer: Maxime Gauduin <alucryd@gmail.com> +# Contributor: Bartłomiej Piotrowski <nospam@bpiotrowski.pl> + +pkgbase=vbam +pkgname=('vbam-cli' 'vbam-gtk' 'vbam-wx') +pkgver=1.8.0.1202 +pkgrel=1 +arch=('i686' 'x86_64') +url="http://vba-m.com" +license=('GPL2') +makedepends=('cmake' 'desktop-file-utils' 'freetype2' 'gtkglextmm' 'imagemagick' 'glew' 'libjpeg' 'libpng' 'libsndfile' 'libxrandr' 'mesa' 'openal' 'wxgtk' 'zip') +[[ $CARCH == i686 ]] && makedepends+=('nasm') +source=("http://downloads.sourceforge.net/project/vbam/vbam-src/vbam-r${pkgver##*.}-src.tar.bz2" + 'http://downloads.sourceforge.net/sfml/SFML-1.6-sdk-linux-64.tar.gz' + 'http://www.lonesock.net/files/soil.zip' + 'sfml.patch' + 'soil.patch') +sha256sums=('148d866c08d7a810be5c845247d212f1d1d07395f2ccdecef10ad81a76072877' + '05bdc32286ab2ec8cb1ccdafe53f31830284e09e11ebfc3ab3836c99a0d9654b' + 'a2305b8d64f6d636e36d669bbdb0ca5445d1345c754b3d61d3f037dad2e5f701' + 'c3c2fc48f4edc303ad24d91583a57aef9b7ca3b78de1d6734cb666745fff9bad' + '65705aeef90667bd4e28dd03ac0b43685470f2925b642637b7ff6e2f3acd34c7') + +prepare() { + patch -Np0 -i soil.patch + patch -Np0 -i sfml.patch +} + +build() { +# Build static SOIL + pushd "Simple OpenGL Image Library/src" + make -f "../projects/makefile/alternate Makefile.txt" + make -f "../projects/makefile/alternate Makefile.txt" DESTDIR="${srcdir}/staging" install + popd + +# Build static SFML + pushd SFML-1.6 + make + make DESTDIR="${srcdir}/staging/usr" install + popd + +# Build VBA-M + if [[ -d build ]]; then + rm -rf build + fi + mkdir build && cd build + + local _cmakeargs="-DCMAKE_INSTALL_PREFIX='/usr' -DCMAKE_CXX_FLAGS=-I${srcdir}/staging/usr/include -DENABLE_GTK='ON' -DENABLE_WX='ON' \ + -DSFML_INCLUDE_DIR='../staging/usr/include/SFML' \ + -DSFML_AUDIO_INCLUDE_DIR='../staging/usr/include/SFML/Audio' \ + -DSFML_AUDIO_LIBRARY='../staging/usr/lib/libsfml-audio-s.a' \ + -DSFML_GRAPHICS_INCLUDE_DIR='../staging/usr/include/SFML/Graphics' \ + -DSFML_GRAPHICS_LIBRARY='../staging/usr/lib/libsfml-graphics-s.a' \ + -DSFML_NETWORK_INCLUDE_DIR='../staging/usr/include/SFML/Network' \ + -DSFML_NETWORK_LIBRARY='../staging/usr/lib/libsfml-network-s.a' \ + -DSFML_SYSTEM_INCLUDE_DIR='../staging/usr/include/SFML/System' \ + -DSFML_SYSTEM_LIBRARY='../staging/usr/lib/libsfml-system-s.a'" + + if [[ $CARCH == i686 ]]; then + cmake .. ${_cmakeargs} -DENABLE_ASM_{CORE,SCALERS}='ON' + else + cmake .. ${_cmakeargs} + fi + make +} + +package_vbam-cli() { +pkgdesc="Nintendo GameBoy Advance emulator - SDL version" +depends=('mesa' 'libpng' 'sdl') +backup=('etc/vbam.cfg') + + cd build + + make DESTDIR="${pkgdir}" install + rm -rf "${pkgdir}"/usr/{bin/{g,wx}vbam,share} +} + +package_vbam-gtk() { +pkgdesc="Nintendo GameBoy Advance emulator - GTK version" +depends=('desktop-file-utils' 'gtkglextmm' 'sdl') +conflicts=('vbam-wx') +install='vbam-gtk.install' + + cd build + + make DESTDIR="${pkgdir}" install + rm -rf "${pkgdir}"/{etc,usr/bin/vbam} + find "${pkgdir}" -type f -regex .*wxvbam.* -exec rm {} + +} + +package_vbam-wx() { +pkgdesc="Nintendo GameBoy Advance emulator - wx version" +depends=('wxgtk') +conflicts=('vbam-gtk') +options=('!emptydirs') +install='vbam-wx.install' + + cd build + + make DESTDIR="${pkgdir}" install + rm -rf "${pkgdir}"/{etc,usr/{bin,share}/vbam} + find "${pkgdir}" -type f -regex .*gvbam.* -exec rm {} + +} + +# vim: ts=2 sw=2 et: diff --git a/community/vbam/sfml.patch b/community/vbam/sfml.patch new file mode 100755 index 000000000..30e7c137b --- /dev/null +++ b/community/vbam/sfml.patch @@ -0,0 +1,181 @@ +diff -rupN SFML-1.6.orig/include/SFML/System/Resource.hpp SFML-1.6/include/SFML/System/Resource.hpp +--- SFML-1.6.orig/include/SFML/System/Resource.hpp 2010-01-27 14:53:54.000000000 +0100 ++++ SFML-1.6/include/SFML/System/Resource.hpp 2013-10-11 15:22:44.416388808 +0200 +@@ -29,7 +29,7 @@ + // Headers
+ ////////////////////////////////////////////////////////////
+ #include <set>
+-
++#include <cstddef>
+
+ namespace sf
+ {
+diff -rupN SFML-1.6.orig/src/SFML/Audio/Makefile SFML-1.6/src/SFML/Audio/Makefile +--- SFML-1.6.orig/src/SFML/Audio/Makefile 2010-01-27 15:00:19.000000000 +0100 ++++ SFML-1.6/src/SFML/Audio/Makefile 2013-10-11 15:24:44.588725944 +0200 +@@ -25,7 +25,7 @@ $(OBJ): %.o: %.cpp + $(CPP) -o $@ -c $< $(CFLAGS)
+
+ $(OBJVORBIS): %.o: %.c
+- $(CC) -o $@ -c $< $(CFLAGSEXT)
++ $(CC) -o $@ -c $< $(CFLAGS)
+
+ .PHONY: clean mrproper
+
+diff -rupN SFML-1.6.orig/src/SFML/Graphics/GraphicsContext.hpp SFML-1.6/src/SFML/Graphics/GraphicsContext.hpp +--- SFML-1.6.orig/src/SFML/Graphics/GraphicsContext.hpp 2010-01-27 15:00:05.000000000 +0100 ++++ SFML-1.6/src/SFML/Graphics/GraphicsContext.hpp 2013-10-11 15:22:44.419722114 +0200 +@@ -30,7 +30,7 @@ + ////////////////////////////////////////////////////////////
+ #include <SFML/Config.hpp>
+ #include <SFML/System/NonCopyable.hpp>
+-#include <SFML/Graphics/GLEW/glew.h>
++#include <GL/glew.h>
+ #include <iostream>
+ #include <string>
+
+diff -rupN SFML-1.6.orig/src/SFML/Graphics/ImageLoader.cpp SFML-1.6/src/SFML/Graphics/ImageLoader.cpp +--- SFML-1.6.orig/src/SFML/Graphics/ImageLoader.cpp 2010-01-27 15:00:05.000000000 +0100 ++++ SFML-1.6/src/SFML/Graphics/ImageLoader.cpp 2013-10-11 15:22:44.419722114 +0200 +@@ -28,11 +28,12 @@ + #include <SFML/Graphics/ImageLoader.hpp>
+ extern "C"
+ {
+- #include <SFML/Graphics/libjpeg/jpeglib.h>
+- #include <SFML/Graphics/libjpeg/jerror.h>
++ #include <jpeglib.h>
++ #include <jerror.h>
+ }
+-#include <SFML/Graphics/libpng/png.h>
+-#include <SFML/Graphics/SOIL/SOIL.h>
++#include <png.h>
++#include <SOIL/SOIL.h>
++#include <cstring>
+ #include <iostream>
+
+
+@@ -44,7 +45,7 @@ namespace + void PngErrorHandler(png_structp Png, png_const_charp Message)
+ {
+ std::cerr << "Failed to write PNG image. Reason : " << Message << std::endl;
+- longjmp(Png->jmpbuf, 1);
++ longjmp(png_jmpbuf(Png), 1);
+ }
+ }
+
+@@ -289,7 +290,7 @@ bool ImageLoader::WritePng(const std::st + }
+
+ // For proper error handling...
+- if (setjmp(Png->jmpbuf))
++ if (setjmp(png_jmpbuf(Png)))
+ {
+ png_destroy_write_struct(&Png, &PngInfo);
+ return false;
+diff -rupN SFML-1.6.orig/src/SFML/Graphics/Makefile SFML-1.6/src/SFML/Graphics/Makefile +--- SFML-1.6.orig/src/SFML/Graphics/Makefile 2010-01-27 15:00:05.000000000 +0100 ++++ SFML-1.6/src/SFML/Graphics/Makefile 2013-10-11 15:26:37.971432986 +0200 +@@ -1,15 +1,5 @@ + SRC = $(wildcard *.cpp)
+-SRCGLEW = $(wildcard ./GLEW/*.c)
+-SRCJPEG = $(wildcard ./libjpeg/*.c)
+-SRCPNG = $(wildcard ./libpng/*.c)
+-SRCSOIL = $(wildcard ./SOIL/*.c)
+-SRCZLIB = $(wildcard ./zlib/*.c)
+ OBJ = $(SRC:.cpp=.o)
+-OBJGLEW = $(SRCGLEW:.c=.o)
+-OBJJPEG = $(SRCJPEG:.c=.o)
+-OBJPNG = $(SRCPNG:.c=.o)
+-OBJSOIL = $(SRCSOIL:.c=.o)
+-OBJZLIB = $(SRCZLIB:.c=.o)
+
+ ifeq ($(STATIC), yes)
+ LIB = libsfml-graphics-s.a
+@@ -23,22 +13,19 @@ endif +
+ all: $(LIB)
+
+-libsfml-graphics-s.a: $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB)
+- $(AR) $(ARFLAGS) $(LIBNAME) $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB)
++libsfml-graphics-s.a: $(OBJ)
++ $(AR) $(ARFLAGS) $(LIBNAME) $(OBJ)
+
+-libsfml-graphics.so: $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB)
+- $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) -lfreetype -lX11 -lGL
++libsfml-graphics.so: $(OBJ)
++ $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) -lGLEW -ljpeg -lpng -lz -lfreetype -lX11 -lGL
+
+ $(OBJ): %.o: %.cpp
+ $(CPP) -o $@ -c $< $(CFLAGS) -I/usr/include/freetype2
+
+-$(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB): %.o: %.c
+- $(CC) -o $@ -c $< $(CFLAGSEXT) -DSTBI_FAILURE_USERMSG
+-
+ .PHONY: clean mrproper
+
+ clean:
+- @rm -rf $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB)
++ @rm -rf $(OBJ)
+
+ mrproper: clean
+ @rm -rf $(LIBNAME)
+diff -rupN SFML-1.6.orig/src/SFML/Makefile SFML-1.6/src/SFML/Makefile +--- SFML-1.6.orig/src/SFML/Makefile 2010-01-27 15:00:37.000000000 +0100 ++++ SFML-1.6/src/SFML/Makefile 2013-10-11 15:29:14.687273136 +0200 +@@ -1,10 +1,10 @@ + export DEBUGBUILD = no
+-export STATIC = no
++export STATIC = yes
+
+ ifeq ($(DEBUGBUILD), yes)
+ DEBUGFLAGS = -g -DDEBUG
+ else
+- DEBUGFLAGS = -O2 -DNDEBUG
++ DEBUGFLAGS = -DNDEBUG
+ endif
+
+ ifeq ($(STATIC), no)
+@@ -17,9 +17,9 @@ endif +
+ export CC = gcc
+ export CPP = g++
+-export CFLAGS = -W -Wall -pedantic -I../../../include -I../../ $(DEBUGFLAGS) $(BUILDFLAGS)
+-export CFLAGSEXT = -I../../../include -I../.. $(DEBUGFLAGS) $(BUILDFLAGS)
+-export LDFLAGS = $(LINKFLAGS)
++export CFLAGS += -W -Wall -pedantic -I../../../include -I../../../../staging/usr/include -I../../ $(DEBUGFLAGS) $(BUILDFLAGS)
++export CFLAGSEXT = -I../../../include -I../../../../staging/usr/include -I../.. $(DEBUGFLAGS) $(BUILDFLAGS)
++export LDFLAGS += $(LINKFLAGS)
+ export LIBPATH = ../../../lib
+ export VERSION = 1.6
+ export CP = cp
+diff -rupN SFML-1.6.orig/src/SFML/Window/Linux/Joystick.cpp SFML-1.6/src/SFML/Window/Linux/Joystick.cpp +--- SFML-1.6.orig/src/SFML/Window/Linux/Joystick.cpp 2010-01-27 15:00:27.000000000 +0100 ++++ SFML-1.6/src/SFML/Window/Linux/Joystick.cpp 2013-10-11 15:22:44.423055420 +0200 +@@ -27,7 +27,7 @@ + ////////////////////////////////////////////////////////////
+ #include <SFML/Window/Joystick.hpp>
+ #include <sstream>
+-
++#include <unistd.h>
+
+ namespace sf
+ {
+diff -rupN SFML-1.6.orig/src/SFML/Window/Makefile SFML-1.6/src/SFML/Window/Makefile +--- SFML-1.6.orig/src/SFML/Window/Makefile 2010-01-27 15:00:37.000000000 +0100 ++++ SFML-1.6/src/SFML/Window/Makefile 2013-10-11 15:31:52.909728371 +0200 +@@ -1,6 +1,5 @@ + SRC = $(wildcard *.cpp ./Linux/*.cpp)
+ OBJ = $(SRC:.cpp=.o)
+-OBJGLEW = $(SRCGLEW:.c=.o)
+
+ ifeq ($(STATIC), yes)
+ LIB = libsfml-window-s.a
+@@ -18,7 +17,7 @@ libsfml-window-s.a: $(OBJ) + $(AR) $(ARFLAGS) $(LIBNAME) $(OBJ)
+
+ libsfml-window.so: $(OBJ)
+- $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) $(OBJGLEW) -lX11 -lXrandr -lGL
++ $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) -lGLEW -lX11 -lXrandr -lGL
+
+ $(OBJ): %.o: %.cpp
+ $(CPP) -o $@ -c $< $(CFLAGS)
diff --git a/community/vbam/soil.patch b/community/vbam/soil.patch new file mode 100755 index 000000000..bf38faed3 --- /dev/null +++ b/community/vbam/soil.patch @@ -0,0 +1,51 @@ +diff -rupN "Simple OpenGL Image Library.orig/projects/makefile/alternate Makefile.txt" "Simple OpenGL Image Library/projects/makefile/alternate Makefile.txt" +--- "Simple OpenGL Image Library.orig/projects/makefile/alternate Makefile.txt" 2008-07-07 18:13:28.000000000 +0200 ++++ "Simple OpenGL Image Library/projects/makefile/alternate Makefile.txt" 2013-10-11 12:31:18.545860800 +0200 +@@ -1,7 +1,7 @@ + MAKE = make + CC = gcc +-INSTALL_FILE = install -p -o root -g root -m 644 +-INSTALL_DIR = install -p -o root -g root -d ++INSTALL_FILE = install -p -m 644 ++INSTALL_DIR = install -p -d + LN = ln -s + RM = rm -fv + CFLAGS += -c -O2 -Wall +@@ -10,13 +10,12 @@ LDFLAGS += + CFILES = image_DXT.c image_helper.c SOIL.c stb_image_aug.c + OFILES = $(CFILES:.c=.o) + LIBNAME = libSOIL +-VERSION = 1.07-20071110 ++VERSION = 1.16 + MAJOR = 1 + + HFILES = SOIL.h image_DXT.h image_helper.h \ + stbi_DDS_aug.h stbi_DDS_aug_c.h stb_image_aug.h + AFILE = libSOIL.a +-SOFILE = libSOIL.so.$(VERSION) + INCLUDEDIR = /usr/include/SOIL + LIBDIR = /usr/lib + +@@ -29,22 +28,17 @@ lib: $(OFILES) + # create static library + ar -cvq $(LIBNAME).a $(OFILES) + # create shared library +- gcc -shared -Wl,-soname,$(LIBNAME).so.$(MAJOR) -o $(LIBNAME).so.$(VERSION) $(OFILES) + + install: + $(INSTALL_DIR) $(DESTDIR)/$(INCLUDEDIR) + $(INSTALL_FILE) $(HFILES) $(DESTDIR)/$(INCLUDEDIR) + $(INSTALL_DIR) $(DESTDIR)/$(LIBDIR) + $(INSTALL_FILE) $(AFILE) $(DESTDIR)/$(LIBDIR) +- $(INSTALL_FILE) $(SOFILE) $(DESTDIR)/$(LIBDIR) +- ( cd $(DESTDIR)/$(LIBDIR) && $(LN) $(SOFILE) $(LIBNAME).so.$(MAJOR) \ +- && $(LN) $(SOFILE) $(LIBNAME).so ) + + clean: + $(RM) *.o + $(RM) *~ + + distclean: +- $(RM) $(AFILE) $(SOFILE) + + .PHONY: all lib clean distclean diff --git a/community/vbam/vbam-gtk.install b/community/vbam/vbam-gtk.install new file mode 100755 index 000000000..1ade13cc7 --- /dev/null +++ b/community/vbam/vbam-gtk.install @@ -0,0 +1,14 @@ +post_install() { + update-desktop-database -q + gtk-update-icon-cache -ftq usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} + +# vim: ts=2 sw=2 et: diff --git a/community/vbam/vbam-wx.install b/community/vbam/vbam-wx.install new file mode 100755 index 000000000..11027f6ea --- /dev/null +++ b/community/vbam/vbam-wx.install @@ -0,0 +1,13 @@ +post_install() { + gtk-update-icon-cache -ftq usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} + +# vim: ts=2 sw=2 et: diff --git a/community/virtkey/PKGBUILD b/community/virtkey/PKGBUILD deleted file mode 100644 index a29c75190..000000000 --- a/community/virtkey/PKGBUILD +++ /dev/null @@ -1,46 +0,0 @@ -# Maintainer: Balló György <ballogyor+arch at gmail dot com> -# Contributor: codl <codl@aquageek.net> -# Contributor: Megamixman <Megamixman@gmail.com> - -pkgbase=virtkey -pkgname=('python2-virtkey' 'python-virtkey') -pkgver=0.63.0 -pkgrel=1 -arch=('i686' 'x86_64' 'mips64el') -url="https://launchpad.net/virtkey" -license=('LGPL') -makedepends=('python2' 'python' 'libxtst' 'libxkbfile' 'gtk2') -source=(http://launchpad.net/$pkgbase/${pkgver%.*}/$pkgver/+download/$pkgbase-$pkgver.tar.gz) -md5sums=('c1569fbb143692aafba00758041fad98') - -build() { - cd "$srcdir" - - cp -a {,python2-}$pkgbase-$pkgver - - # Build python 2 module - cd "$srcdir/python2-$pkgbase-$pkgver" - python2 setup.py build - - # Build python 3 module - cd "$srcdir/$pkgbase-$pkgver" - python setup.py build -} - -package_python2-virtkey() { - pkgdesc="Python 2 extension for emulating keypresses and getting layout information from the X server" - depends=('python2' 'libxtst' 'libxkbfile' 'gtk2') - - cd "$srcdir/python2-$pkgbase-$pkgver" - - python2 setup.py install --root=$pkgdir/ --optimize=1 -} - -package_python-virtkey() { - pkgdesc="Python extension for emulating keypresses and getting layout information from the X server" - depends=('python' 'libxtst' 'libxkbfile' 'gtk2') - - cd "$srcdir/$pkgbase-$pkgver" - - python3 setup.py install --root=$pkgdir/ --optimize=1 -} diff --git a/community/weston/PKGBUILD b/community/weston/PKGBUILD index 247153b30..3fca66d3b 100644 --- a/community/weston/PKGBUILD +++ b/community/weston/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 96469 2013-08-30 09:41:38Z seblu $ +# $Id: PKGBUILD 98516 2013-10-12 14:35:58Z seblu $ # Maintainer: Sébastien Luttringer # Contributor: Joel Teichroeb <joel@teichroeb.net> pkgname=weston -pkgver=1.2.2 +pkgver=1.3.0 pkgrel=1 pkgdesc='Reference implementation of a Wayland compositor' arch=('i686' 'x86_64' 'mips64el') @@ -12,7 +12,7 @@ license=('MIT') options=(!libtool) depends=('libxkbcommon' 'libunwind' 'poppler-glib' 'mtdev' 'libxcursor' 'glu' 'pango' 'colord') source=("http://wayland.freedesktop.org/releases/$pkgname-$pkgver.tar.xz") -sha1sums=('b08d0c15b5eef65d5f7b864fe393b27f981f97f7') +sha1sums=('670f95844d20dc87da579b6ac566388edc0bfa0c') build() { cd $pkgname-$pkgver diff --git a/core/kbd/PKGBUILD b/core/kbd/PKGBUILD index 7e88f3f7e..b2e250cda 100644 --- a/core/kbd/PKGBUILD +++ b/core/kbd/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 193453 2013-08-20 12:18:42Z tpowa $ +# $Id: PKGBUILD 196308 2013-10-11 09:58:13Z tpowa $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> pkgname=kbd pkgver=2.0.0 -pkgrel=1 +pkgrel=2 pkgdesc="Keytable files and keyboard utilities" arch=('i686' 'x86_64' 'mips64el') url="http://www.kbd-project.org" @@ -12,13 +12,17 @@ depends=('glibc' 'pam') makedepends=('check') source=(ftp://ftp.altlinux.org/pub/people/legion/kbd/${pkgname}-${pkgver}.tar.gz 'fix-dvorak-es.patch' - 'fix-euro2.patch') + 'fix-euro2.patch' + 'fix-alt_is_meta.patch' + 'merge-fullline_singleline.patch') provides=('vlock') conflicts=('vlock') replaces=('vlock') md5sums=('5ba259a0b2464196f6488a72070a3d60' '998957c4f815347dcc874c4d7555dc66' - 'd869200acbc0aab6a9cafa43cb140d4e') + 'd869200acbc0aab6a9cafa43cb140d4e' + '91de90cde763c7f704027c2837360098' + 'b21e24509ea9db206971ce8a02dfc46f') prepare() { cd ${srcdir}/${pkgname}-${pkgver} @@ -36,6 +40,9 @@ prepare() { patch -Np1 -i ../fix-dvorak-es.patch # fix euro2 #28213 patch -Np1 -i ../fix-euro2.patch + # fix #36689 + patch -Np1 -i ../fix-alt_is_meta.patch + patch -Np1 -i ../merge-fullline_singleline.patch } build() { diff --git a/core/kbd/fix-alt_is_meta.patch b/core/kbd/fix-alt_is_meta.patch new file mode 100644 index 000000000..865ea917b --- /dev/null +++ b/core/kbd/fix-alt_is_meta.patch @@ -0,0 +1,212 @@ +From f6d17ec929f59cc65a8c5f8a4918c1fe89e2b85a Mon Sep 17 00:00:00 2001 +From: Alexey Gladkov <gladkov.alexey@gmail.com> +Date: Mon, 7 Oct 2013 17:48:57 +0400 +Subject: [PATCH] Fix alt_is_meta regression + +Signed-off-by: Alexey Gladkov <gladkov.alexey@gmail.com> +--- + src/libkeymap/kmap.c | 8 ++++---- + tests/Makefile.am | 8 ++++++-- + tests/alt-is-meta.in | 19 +++++++++++++++++++ + tests/alt-is-meta.map | 12 ++++++++++++ + tests/alt-is-meta.output | 42 ++++++++++++++++++++++++++++++++++++++++++ + tests/libkeymap-showmaps.c | 30 ++++++++++++++++++++++++++++++ + 6 files changed, 113 insertions(+), 6 deletions(-) + create mode 100755 tests/alt-is-meta.in + create mode 100644 tests/alt-is-meta.map + create mode 100644 tests/alt-is-meta.output + create mode 100644 tests/libkeymap-showmaps.c + +diff --git a/src/libkeymap/kmap.c b/src/libkeymap/kmap.c +index ca97ed5..c7945bc 100644 +--- a/src/libkeymap/kmap.c ++++ b/src/libkeymap/kmap.c +@@ -149,10 +149,10 @@ lk_add_key(struct lk_ctx *ctx, unsigned int k_table, unsigned int k_index, int k + int type = KTYP(keycode); + int val = KVAL(keycode); + +- if (alttable != k_table && !lk_key_exists(ctx, alttable, k_index) && +- (type == KT_LATIN || type == KT_LETTER) && val < 128) { +- if (lk_add_map(ctx, alttable) < 0) +- return -1; ++ if (alttable != k_table && lk_map_exists(ctx, alttable) && ++ !lk_key_exists(ctx, alttable, k_index) && ++ (type == KT_LATIN || type == KT_LETTER) && ++ val < 128) { + if (lk_add_key(ctx, alttable, k_index, K(KT_META, val)) < 0) + return -1; + } +diff --git a/tests/Makefile.am b/tests/Makefile.am +index e7d22c2..d9a9f61 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -7,10 +7,12 @@ AM_CFLAGS = $(CHECK_CFLAGS) + LDADD = $(top_builddir)/src/libkeymap/libkeymap.la $(CHECK_LIBS) + + EXTRA_DIST = \ ++ alt-is-meta.in \ + dumpkeys-bkeymap.in \ + dumpkeys-fulltable.in \ + dumpkeys-mktable.in \ + \ ++ alt-is-meta.map \ + charset-keymap0.map \ + dumpkeys.full.ruwin_cplk-UTF-8.map \ + dumpkeys.qwerty-layout.map \ +@@ -19,15 +21,16 @@ EXTRA_DIST = \ + keymap0.map keymap1.map keymap2.map keymap3.map keymap4.map keymap5.map keymap6.map \ + VoidSymbol.map \ + \ ++ alt-is-meta.output \ + dumpkeys.bkeymap.bin \ + dumpkeys.defkeymap.c + +-check_SCRIPTS = dumpkeys-fulltable dumpkeys-mktable dumpkeys-bkeymap ++check_SCRIPTS = dumpkeys-fulltable dumpkeys-mktable dumpkeys-bkeymap alt-is-meta + check_PROGRAMS = libkeymap-init libkeymap-kmap libkeymap-keys libkeymap-parse \ + libkeymap-charset + + noinst_PROGRAMS = \ +- libkeymap-dumpkeys libkeymap-mktable libkeymap-bkeymap \ ++ libkeymap-dumpkeys libkeymap-mktable libkeymap-bkeymap libkeymap-showmaps \ + $(check_PROGRAMS) + + TESTS = $(check_PROGRAMS) $(check_SCRIPTS) +@@ -41,6 +44,7 @@ libkeymap_charset_SOURCES = libkeymap-charset.c + libkeymap_dumpkeys_SOURCES = libkeymap-dumpkeys.c + libkeymap_mktable_SOURCES = libkeymap-mktable.c + libkeymap_bkeymap_SOURCES = libkeymap-bkeymap.c ++libkeymap_showmaps_SOURCES = libkeymap-showmaps.c + + %: %.in + sed \ +diff --git a/tests/alt-is-meta.in b/tests/alt-is-meta.in +new file mode 100755 +index 0000000..ddd5ed8 +--- /dev/null ++++ b/tests/alt-is-meta.in +@@ -0,0 +1,19 @@ ++#!/bin/sh -efu ++ ++cwd="$(readlink -ev "${0%/*}")" ++ ++cd "$cwd" ++ ++rc=0 ++temp="$(mktemp "@BUILDDIR@/temp.XXXXXXXXX")" ++ ++./libkeymap-showmaps "@DATADIR@"/alt-is-meta.map > "$temp" || rc=$? ++cmp -s "@DATADIR@//alt-is-meta.output" "$temp" || rc=$? ++ ++if [ "$rc" != 0 ]; then ++ printf 'failed\n' ++else ++ rm -f -- "$temp" ++fi ++ ++exit $rc +diff --git a/tests/alt-is-meta.map b/tests/alt-is-meta.map +new file mode 100644 +index 0000000..fa182a5 +--- /dev/null ++++ b/tests/alt-is-meta.map +@@ -0,0 +1,12 @@ ++keymaps 0-9,12-13,16-20,22,24-25,28,32-41,44-45,48-52,54,56-57,60 ++alt_is_meta ++keycode 16 = +q Q backslash backslash Control_q \ ++ Control_q Control_backslash Control_backslash \ ++ Meta_q Meta_Q VoidSymbol VoidSymbol +Q \ ++ q VoidSymbol VoidSymbol VoidSymbol VoidSymbol \ ++ Meta_Q Meta_q VoidSymbol \ ++ +q Q backslash backslash Control_q \ ++ Control_q Control_backslash Control_backslash \ ++ Meta_q Meta_Q VoidSymbol VoidSymbol +Q \ ++ q VoidSymbol VoidSymbol VoidSymbol VoidSymbol \ ++ Meta_Q Meta_q VoidSymbol +diff --git a/tests/alt-is-meta.output b/tests/alt-is-meta.output +new file mode 100644 +index 0000000..25abb20 +--- /dev/null ++++ b/tests/alt-is-meta.output +@@ -0,0 +1,42 @@ ++keymap 000 ++keymap 001 ++keymap 002 ++keymap 003 ++keymap 004 ++keymap 005 ++keymap 006 ++keymap 007 ++keymap 008 ++keymap 009 ++keymap 012 ++keymap 013 ++keymap 016 ++keymap 017 ++keymap 018 ++keymap 019 ++keymap 020 ++keymap 022 ++keymap 024 ++keymap 025 ++keymap 028 ++keymap 032 ++keymap 033 ++keymap 034 ++keymap 035 ++keymap 036 ++keymap 037 ++keymap 038 ++keymap 039 ++keymap 040 ++keymap 041 ++keymap 044 ++keymap 045 ++keymap 048 ++keymap 049 ++keymap 050 ++keymap 051 ++keymap 052 ++keymap 054 ++keymap 056 ++keymap 057 ++keymap 060 +diff --git a/tests/libkeymap-showmaps.c b/tests/libkeymap-showmaps.c +new file mode 100644 +index 0000000..acbf9f1 +--- /dev/null ++++ b/tests/libkeymap-showmaps.c +@@ -0,0 +1,30 @@ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++#include <keymap.h> ++ ++#include "contextP.h" ++ ++int main(int argc, char **argv) ++{ ++ int i; ++ struct lk_ctx *ctx; ++ lkfile_t f; ++ ++ ctx = lk_init(); ++ ++ f.pipe = 0; ++ strcpy(f.pathname, argv[1]); ++ f.fd = fopen( argv[1], "r"); ++ ++ lk_parse_keymap(ctx, &f); ++ ++ for (i = 0; i < ctx->keymap->total; i++) { ++ if (!lk_map_exists(ctx, i)) ++ continue; ++ printf("keymap %03d\n", i); ++ } ++ ++ lk_free(ctx); ++ return 0; ++} +-- +1.7.3.3 + diff --git a/core/kbd/merge-fullline_singleline.patch b/core/kbd/merge-fullline_singleline.patch new file mode 100644 index 000000000..cc2b2c3b0 --- /dev/null +++ b/core/kbd/merge-fullline_singleline.patch @@ -0,0 +1,104 @@ +From 301cb9f132017ec67cc00681ca3f7a25f0d24ca2 Mon Sep 17 00:00:00 2001 +From: Alexey Gladkov <gladkov.alexey@gmail.com> +Date: Mon, 7 Oct 2013 18:11:45 +0400 +Subject: [PATCH] parser: Merge fullline and singleline rule + +Signed-off-by: Alexey Gladkov <gladkov.alexey@gmail.com> +--- + src/libkeymap/parser.y | 59 ++++++++++++++++++++++++----------------------- + 1 files changed, 30 insertions(+), 29 deletions(-) + +diff --git a/src/libkeymap/parser.y b/src/libkeymap/parser.y +index 627494a..17d953a 100644 +--- a/src/libkeymap/parser.y ++++ b/src/libkeymap/parser.y +@@ -180,7 +180,6 @@ line : EOL + | usualstringsline + | usualcomposeline + | keymapline +- | fullline + | singleline + | strline + | compline +@@ -281,34 +280,7 @@ compline : COMPOSE compsym compsym TO compsym EOL + compsym : CCHAR { $$ = $1; } + | UNUMBER { $$ = $1 ^ 0xf000; } + ; +-singleline : { +- ctx->mod = 0; +- } +- modifiers KEYCODE NUMBER EQUALS rvalue EOL +- { +- if (lk_add_key(ctx, ctx->mod, $4, $6) < 0) +- YYERROR; +- } +- | PLAIN KEYCODE NUMBER EQUALS rvalue EOL +- { +- if (lk_add_key(ctx, 0, $3, $5) < 0) +- YYERROR; +- } +- ; +-modifiers : modifiers modifier +- | modifier +- ; +-modifier : SHIFT { ctx->mod |= M_SHIFT; } +- | CONTROL { ctx->mod |= M_CTRL; } +- | ALT { ctx->mod |= M_ALT; } +- | ALTGR { ctx->mod |= M_ALTGR; } +- | SHIFTL { ctx->mod |= M_SHIFTL; } +- | SHIFTR { ctx->mod |= M_SHIFTR; } +- | CTRLL { ctx->mod |= M_CTRLL; } +- | CTRLR { ctx->mod |= M_CTRLR; } +- | CAPSSHIFT { ctx->mod |= M_CAPSSHIFT; } +- ; +-fullline : KEYCODE NUMBER EQUALS rvalue0 EOL ++singleline : KEYCODE NUMBER EQUALS rvalue0 EOL + { + unsigned int j, i, keycode; + int *val; +@@ -367,6 +339,33 @@ fullline : KEYCODE NUMBER EQUALS rvalue0 EOL + } + } + } ++ ++ | modifiers KEYCODE NUMBER EQUALS rvalue EOL ++ { ++ if (lk_add_key(ctx, ctx->mod, $3, $5) < 0) ++ YYERROR; ++ ctx->mod = 0; ++ } ++ | PLAIN KEYCODE NUMBER EQUALS rvalue EOL ++ { ++ if (lk_add_key(ctx, 0, $3, $5) < 0) ++ YYERROR; ++ ctx->mod = 0; ++ } ++ ; ++modifiers : modifiers modifier ++ | modifier ++ ; ++modifier : SHIFT { ctx->mod |= M_SHIFT; } ++ | CONTROL { ctx->mod |= M_CTRL; } ++ | ALT { ctx->mod |= M_ALT; } ++ | ALTGR { ctx->mod |= M_ALTGR; } ++ | SHIFTL { ctx->mod |= M_SHIFTL; } ++ | SHIFTR { ctx->mod |= M_SHIFTR; } ++ | CTRLL { ctx->mod |= M_CTRLL; } ++ | CTRLR { ctx->mod |= M_CTRLR; } ++ | CAPSSHIFT { ctx->mod |= M_CAPSSHIFT; } ++ ; + ; + + rvalue0 : +@@ -393,6 +392,8 @@ lk_parse_keymap(struct lk_ctx *ctx, lkfile_t *f) + yyscan_t scanner; + int rc = -1; + ++ ctx->mod = 0; ++ + yylex_init(&scanner); + yylex_init_extra(ctx, &scanner); + +-- +1.7.3.3 + diff --git a/core/lvm2/PKGBUILD b/core/lvm2/PKGBUILD index 52c98604a..9cc0623f8 100644 --- a/core/lvm2/PKGBUILD +++ b/core/lvm2/PKGBUILD @@ -1,19 +1,20 @@ -# $Id: PKGBUILD 193403 2013-08-19 17:24:15Z thomas $ +# $Id: PKGBUILD 196179 2013-10-07 23:45:54Z thomas $ # Maintainer: Eric Bélanger <eric@archlinux.org> # Maintainer: Thomas Bächler <thomas@archlinux.org> pkgbase=lvm2 pkgname=('lvm2' 'device-mapper') -pkgver=2.02.100 +pkgver=2.02.103 pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url="http://sourceware.org/lvm2/" license=('GPL2' 'LGPL2.1') -makedepends=('systemd') +makedepends=('systemd' 'thin-provisioning-tools') groups=('base') source=(ftp://sources.redhat.com/pub/lvm2/LVM2.${pkgver}.tgz{,.asc} lvm2_install lvm2_hook + sd-lvm2 11-dm-initramfs.rules lvm2.conf dmeventd.service @@ -21,10 +22,11 @@ source=(ftp://sources.redhat.com/pub/lvm2/LVM2.${pkgver}.tgz{,.asc} lvm-monitoring.service lvmetad.service lvmetad.socket) -sha1sums=('95a4478e4a19bba2c6eb8c36b08b310a96e3944b' +sha1sums=('1194babd8d3cd5a9620bec1fe98a3be060465daf' 'SKIP' '76e83966d1bc84f9a1e30bcaff84b8b8fefbca0f' 'ff0fdf0a3005a41acd4b36865056109effc3474b' + '30777d42e31cb7fe1f4fadc1e8f4c4d4cdd8ffed' 'f6a554eea9557c3c236df2943bb6e7e723945c41' 'ccefad65fde3d50331a42b0e90a1539dc7c8b9e4' '01782ce8e10718c1513e3906b126f30f682f5cab' @@ -48,7 +50,7 @@ build() { --with-default-pid-dir=/run --with-default-dm-run-dir=/run --with-default-run-dir=/run/lvm \ --enable-pkgconfig --enable-readline --enable-dmeventd --enable-cmdlib --enable-applib \ --enable-udev_sync --enable-udev_rules --with-default-locking-dir=/run/lock/lvm \ - --enable-lvmetad + --enable-lvmetad --with-thin=internal make } @@ -74,6 +76,7 @@ package_lvm2() { conflicts=('lvm' 'mkinitcpio<0.7') backup=('etc/lvm/lvm.conf') options=('!makeflags') + optdepends=('thin-provisioning-tools: For thin provisioning support.') install=lvm2.install cd LVM2.${pkgver} @@ -85,6 +88,7 @@ package_lvm2() { # mkinitcpio hook install -D -m644 "${srcdir}/lvm2_hook" "${pkgdir}/usr/lib/initcpio/hooks/lvm2" install -D -m644 "${srcdir}/lvm2_install" "${pkgdir}/usr/lib/initcpio/install/lvm2" + install -D -m644 "${srcdir}/sd-lvm2" "${pkgdir}/usr/lib/initcpio/install/sd-lvm2" # systemd support install -D -m644 "${srcdir}/lvm2.conf" "${pkgdir}/usr/lib/tmpfiles.d/lvm2.conf" install -D -m644 "${srcdir}/lvm-monitoring.service" "${pkgdir}/usr/lib/systemd/system/lvm-monitoring.service" diff --git a/core/lvm2/sd-lvm2 b/core/lvm2/sd-lvm2 new file mode 100644 index 000000000..07cb19a09 --- /dev/null +++ b/core/lvm2/sd-lvm2 @@ -0,0 +1,31 @@ +#!/usr/bin/bash + +build() { + local mod + for mod in dm-mod dm-snapshot dm-mirror; do + add_module "$mod" + done + + add_binary "/usr/bin/lvm" + add_binary "/usr/bin/lvmetad" + add_binary "/usr/bin/dmsetup" + add_file "/usr/lib/udev/rules.d/10-dm.rules" + add_file "/usr/lib/udev/rules.d/13-dm-disk.rules" + add_file "/usr/lib/udev/rules.d/95-dm-notify.rules" + add_file "/usr/lib/udev/rules.d/11-dm-lvm.rules" + add_file "/usr/lib/udev/rules.d/69-dm-lvm-metad.rules" + add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules" + add_file "/etc/lvm/lvm.conf" + + add_file "/usr/lib/systemd/system/lvmetad.service" + add_file "/usr/lib/systemd/system/lvmetad.socket" + add_symlink "/usr/lib/systemd/system/sockets.target.wants/lvmetad.socket" +} + +help() { + cat <<HELPEOF +This hook enables LVM2 volumes in systemd-based initramfs. +HELPEOF +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/core/s-nail/PKGBUILD b/core/s-nail/PKGBUILD index 87800c6bc..7a685f014 100644 --- a/core/s-nail/PKGBUILD +++ b/core/s-nail/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 195886 2013-10-03 16:52:03Z bisson $ +# $Id: PKGBUILD 196202 2013-10-08 07:40:42Z bisson $ # Maintainer: Gaetan Bisson <bisson@archlinux.org> # Contributor: Stéphane Gaudreault <stephane@archlinux.org> # Contributor: Sergej Pupykin <pupykin.s@arch@gmail.com> # Contributor: Andreas Wagner <Andreas.Wagner@em.uni-frankfurt.de> pkgname=s-nail -pkgver=14.4.3 +pkgver=14.4.4 pkgrel=1 pkgdesc='Mail processing system with a command syntax reminiscent of ed' url='http://sourceforge.net/projects/s-nail/' @@ -14,7 +14,7 @@ arch=('i686' 'x86_64' 'mips64el') depends=('openssl') optdepends=('smtp-forwarder: for sending mail') source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}-${pkgver//./_}.tar.gz") -sha1sums=('39fdade9b622a6addc5e70a5d929b0bc5ef49d00') +sha1sums=('6aaa2ca4c269a073cdfd778de0f05d8eb2303737') groups=('base') backup=('etc/mail.rc') @@ -30,23 +30,20 @@ build() { MANDIR=/usr/share/man \ MAILSPOOL=/var/spool/mail \ SID= NAIL=mail \ - CFLAGS="$CFLAGS $CPPFLAGS" \ + CFLAGS="${CFLAGS} ${CPPFLAGS}" \ + LDFLAGS="${LDFLAGS}" \ DESTDIR="${pkgdir}" \ all } -package() { +check() { cd "${srcdir}/${pkgname}-${pkgver}" - make \ - PREFIX=/usr \ - SYSCONFDIR=/etc \ - MANDIR=/usr/share/man \ - MAILSPOOL=/var/spool/mail \ - SID= NAIL=mail \ - CFLAGS="$CFLAGS $CPPFLAGS" \ - DESTDIR="${pkgdir}" \ - install + #./cc-test.sh +} +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make -f mk.mk install ln -sf mail "${pkgdir}"/usr/bin/mailx ln -sf mail.1.gz "${pkgdir}"/usr/share/man/man1/mailx.1.gz install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" diff --git a/extra/alsaplayer/PKGBUILD b/extra/alsaplayer/PKGBUILD index 40f4b77c9..4bdf5059d 100644 --- a/extra/alsaplayer/PKGBUILD +++ b/extra/alsaplayer/PKGBUILD @@ -1,12 +1,12 @@ -# $Id: PKGBUILD 170547 2012-11-08 15:28:30Z heftig $ +# $Id: PKGBUILD 196265 2013-10-10 02:58:34Z eric $ # Maintainer: Eric Bélanger <eric@archlinux.org> pkgname=alsaplayer pkgver=0.99.81 -pkgrel=5.1 +pkgrel=6 pkgdesc="A heavily multi-threaded PCM player that tries to excercise the ALSA library and driver quite a bit" arch=('i686' 'x86_64' 'mips64el') -url="http://www.alsaplayer.org/" +url="http://alsaplayer.sourceforge.net/" license=('GPL') depends=('gcc-libs' 'desktop-file-utils') makedepends=('gtk2' 'libid3tag' 'libvorbis' 'libmad' 'libmikmod' 'jack' 'mesa' 'audiofile' 'doxygen') @@ -22,7 +22,7 @@ optdepends=('gtk2: for the gtk2 GUI interface' \ 'libmikmod: for mod, s3m, it and xm formats supports') options=('!libtool') install=alsaplayer.install -source=(http://www.alsaplayer.org/${pkgname}-${pkgver}.tar.bz2) +source=(http://alsaplayer.sourceforge.net/${pkgname}-${pkgver}.tar.bz2) sha1sums=('25817ebd1e5c36da31a88363315a1bf7a945ddfd') build() { diff --git a/extra/aterm/PKGBUILD b/extra/aterm/PKGBUILD deleted file mode 100644 index e122f00d5..000000000 --- a/extra/aterm/PKGBUILD +++ /dev/null @@ -1,28 +0,0 @@ -# $Id: PKGBUILD 135001 2011-08-09 20:47:19Z eric $ -# Maintainer: Eric Bélanger <eric@archlinux.org> - -pkgname=aterm -pkgver=1.0.1 -pkgrel=3.1 -pkgdesc="An xterm replacement with transparency support" -arch=('i686' 'x86_64' 'mips64el') -url="http://aterm.sourceforge.net/" -license=('GPL') -depends=('libx11') -makedepends=('libxt') -source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2) -md5sums=('c2eede028e1011e0ec7035cf319c9b5a') -sha1sums=('a975753b415306a0734efc3773de8a86129bb54b') - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - ./configure --prefix=/usr --enable-transparency=yes \ - --enable-background-image --enable-fading --enable-menubar \ - --enable-graphics - make -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install -} diff --git a/extra/calligra/PKGBUILD b/extra/calligra/PKGBUILD index 8c5c4f89e..7af7bc8e7 100644 --- a/extra/calligra/PKGBUILD +++ b/extra/calligra/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 193497 2013-08-21 11:58:14Z andrea $ +# $Id: PKGBUILD 196349 2013-10-12 06:13:09Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Ronald van Haren <ronald.archlinux.org> @@ -17,7 +17,7 @@ pkgname=('calligra-braindump' 'calligra-sheets' 'calligra-stage' 'calligra-words') -pkgver=2.7.2 +pkgver=2.7.3 pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url='http://www.calligra-suite.org/' @@ -29,7 +29,7 @@ makedepends=('cmake' 'automoc4' 'boost' 'kdepimlibs' 'eigen2' 'kdeedu-marble' [ "$CARCH" != "mips64el" ] && makedepends+=('vc') groups=('calligra') source=("http://download.kde.org/stable/${pkgbase}-${pkgver}/${pkgbase}-${pkgver}.tar.xz") -md5sums=('645886d0fff6b1dd865850f3187004a6') +md5sums=('35165d00f38eba5de575662cafe3bf0f') prepare() { mkdir build @@ -91,7 +91,7 @@ package_calligra-karbon() { pkgdesc="Create scalable vector drawings" depends=('calligra-libs' 'kdebase-runtime' 'pstoedit') optdepends=('calligra-filters: import/export filters' - 'calligra-tools: extra calligra tools') + 'calligra-extras: extra calligra tools') conflicts=('koffice-karbon' 'koffice-karbon-doc' 'calligra-karbon-doc') replaces=('koffice-karbon' 'koffice-karbon-doc' 'calligra-karbon-doc') install=calligra-karbon.install @@ -163,7 +163,7 @@ package_calligra-sheets() { depends=('calligra-libs' 'gsl' 'kdebase-runtime') optdepends=('calligra-filters: import/export filters' 'calligra-plugins: extra calligra plugins' - 'calligra-tools: extra calligra tools') + 'calligra-extras: extra calligra tools') conflicts=('koffice-kspread' 'koffice-kspread-doc' 'calligra-tables-doc' 'calligra-tables') replaces=('koffice-kspread' 'koffice-kspread-doc' 'calligra-tables-doc' 'calligra-tables') install=calligra-sheets.install @@ -177,7 +177,7 @@ package_calligra-sheets() { package_calligra-words() { pkgdesc="Word Processor" depends=('calligra-plugins' 'kdegraphics-okular') - optdepends=('calligra-tools: extra calligra tools') + optdepends=('calligra-extras: extra calligra tools') conflicts=('koffice-kword') replaces=('koffice-kword') install=calligra-words.install diff --git a/community/celt0.5.1/PKGBUILD b/extra/celt0.5.1/PKGBUILD index 61ab275e1..6eab9ed40 100644 --- a/community/celt0.5.1/PKGBUILD +++ b/extra/celt0.5.1/PKGBUILD @@ -5,13 +5,12 @@ pkgname=celt0.5.1 _basename=celt pkgver=0.5.1.3 -pkgrel=1 +pkgrel=2 pkgdesc="Low-latency audio communication codec - SPICE version" arch=(i686 x86_64 mips64el) url="http://www.celt-codec.org" license=('BSD') depends=('libogg') -provides=('celt=0.5.1') options=('!libtool') source=(http://downloads.us.xiph.org/releases/celt/celt-$pkgver.tar.gz) md5sums=('67e7b5e45db57a6f1f0a6962f5ecb190') diff --git a/extra/cmake/PKGBUILD b/extra/cmake/PKGBUILD index 3e8043dc4..fa1eb7491 100644 --- a/extra/cmake/PKGBUILD +++ b/extra/cmake/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 192290 2013-08-09 19:48:53Z eric $ +# $Id: PKGBUILD 196220 2013-10-08 19:06:31Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> pkgname=cmake -pkgver=2.8.11.2 -pkgrel=2 +pkgver=2.8.12 +pkgrel=1 pkgdesc="A cross-platform open-source make system" arch=('i686' 'x86_64' 'mips64el') url="http://www.cmake.org/" @@ -13,18 +13,8 @@ depends=('curl' 'libarchive' 'shared-mime-info') makedepends=('qt4' 'emacs') optdepends=('qt4: cmake-gui') install="${pkgname}.install" -source=("http://www.cmake.org/files/v2.8/${pkgname}-${pkgver}.tar.gz" - 'imagemagick.patch') -md5sums=('6f5d7b8e7534a5d9e1a7664ba63cf882' - '19c4cf0e6e9c9a890f3698c9df8062f1') - -prepare() { - cd ${pkgname}-${pkgver} - patch -p1 -i "${srcdir}"/imagemagick.patch - sed -i 's/Magick++-6.Q16/Magick++-6.Q16 Magick++-6.Q16HDRI/' Modules/FindImageMagick.cmake - sed -i 's/MagickWand-6.Q16/MagickWand-6.Q16 MagickWand-6.Q16HDRI/' Modules/FindImageMagick.cmake - sed -i 's/MagickCore-6.Q16/MagickCore-6.Q16 MagickCore-6.Q16HDRI/' Modules/FindImageMagick.cmake -} +source=("http://www.cmake.org/files/v2.8/${pkgname}-${pkgver}.tar.gz") +md5sums=('105bc6d21cc2e9b6aff901e43c53afea') build() { cd ${pkgname}-${pkgver} diff --git a/extra/cmake/imagemagick.patch b/extra/cmake/imagemagick.patch deleted file mode 100644 index 8e5279030..000000000 --- a/extra/cmake/imagemagick.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 3de9bb48a5d7976d5f22e3c7c0f95cfda102ed8a Mon Sep 17 00:00:00 2001 -From: Funda Wang <fundawang@gmail.com> -Date: Tue, 28 May 2013 06:17:49 +0000 -Subject: [PATCH] FindImageMagick: Find v6 include dir (#14174) - -The header files of ImageMagick are now located at -<prefix>/include/ImageMagick-6 instead of <prefix>/include/ImageMagick. ---- - Modules/FindImageMagick.cmake | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/Modules/FindImageMagick.cmake b/Modules/FindImageMagick.cmake -index cd97b38..02a5777 100644 ---- a/Modules/FindImageMagick.cmake -+++ b/Modules/FindImageMagick.cmake -@@ -81,7 +81,7 @@ function(FIND_IMAGEMAGICK_API component header) - ${ImageMagick_INCLUDE_DIRS} - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ImageMagick\\Current;BinPath]/include" - PATH_SUFFIXES -- ImageMagick -+ ImageMagick ImageMagick-6 - DOC "Path to the ImageMagick include dir." - ) - find_library(ImageMagick_${component}_LIBRARY --- -1.7.0 - diff --git a/extra/cups-pdf/PKGBUILD b/extra/cups-pdf/PKGBUILD index b589dff05..93f458729 100644 --- a/extra/cups-pdf/PKGBUILD +++ b/extra/cups-pdf/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 140448 2011-10-14 16:56:59Z andyrtr $ +# $Id: PKGBUILD 196354 2013-10-12 07:52:56Z andyrtr $ # Maintainer: Andreas Radke <andyrtr at archlinux.org> # Contributor: Thomas Baechler <thomas.baechler@rwth-aachen.de> pkgname=cups-pdf pkgver=2.6.1 -pkgrel=1.1 +pkgrel=2 pkgdesc="PDF printer for cups" arch=(i686 x86_64 'mips64el') depends=('cups' 'ghostscript') @@ -31,4 +31,7 @@ package() { # Install config file install -D -m644 cups-pdf.conf $pkgdir/etc/cups/cups-pdf.conf + + # use lp group from cups pkg FS#36769 + chgrp -R lp ${pkgdir}/etc/cups } diff --git a/extra/cups/PKGBUILD b/extra/cups/PKGBUILD index 991c98f64..3163d2747 100644 --- a/extra/cups/PKGBUILD +++ b/extra/cups/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 190057 2013-07-13 17:35:12Z andyrtr $ +# $Id: PKGBUILD 196352 2013-10-12 07:52:54Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> pkgbase="cups" pkgname=('libcups' 'cups') -pkgver=1.6.3 +pkgver=1.6.4 pkgrel=1 arch=('i686' 'x86_64' 'mips64el') license=('GPL') @@ -30,7 +30,7 @@ source=(#http://mirror.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.b cupsd-no-crash-on-avahi-threaded-poll-shutdown.patch get-ppd-file-for-statically-configured-ipp-shared-queues.patch ppd-poll-with-client-conf.patch) -md5sums=('3c50d396fef2ba721224fe65880fe3c3' +md5sums=('17c948b442dfdb3c53f5c8b7eaa1442f' 'f861b18f4446c43918c8643dcbbd7f6d' '96f82c38f3f540b53f3e5144900acf17' '3ba9e3410df1dc3015463d615ef91b3b' @@ -137,11 +137,11 @@ backup=(etc/cups/client.conf) # install client.conf man page and config file install -dm755 ${pkgdir}/usr/share/man/man5 install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5 ${pkgdir}/usr/share/man/man5/ - install -dm755 ${pkgdir}/etc/cups + install -dm755 -g lp ${pkgdir}/etc/cups touch ${pkgdir}/etc/cups/client.conf echo "# see 'man client.conf'" >> ${pkgdir}/etc/cups/client.conf echo "ServerName /var/run/cups/cups.sock # alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> ${pkgdir}/etc/cups/client.conf - chgrp lp ${pkgdir}/etc/cups/client.conf + chgrp -R lp ${pkgdir}/etc/cups } package_cups() { @@ -185,7 +185,7 @@ optdepends=('xdg-utils: xdg .desktop file support') touch ${pkgdir}/etc/cups/printers.conf touch ${pkgdir}/etc/cups/classes.conf touch ${pkgdir}/etc/cups/subscriptions.conf - chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,subscriptions.conf} + chgrp -R lp ${pkgdir}/etc/cups # fix .desktop file sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop diff --git a/extra/dssi/PKGBUILD b/extra/dssi/PKGBUILD index 840977910..ba3691e76 100644 --- a/extra/dssi/PKGBUILD +++ b/extra/dssi/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 178955 2013-03-01 10:20:10Z andrea $ +# $Id: PKGBUILD 196279 2013-10-10 13:13:50Z schiv $ # Maintainer: Ray Rashif <schiv@archlinux.org> # Contributor: damir <damir@archlinux.org> # Contributor: Pajaro pkgname=dssi pkgver=1.1.1 -pkgrel=3 +pkgrel=4 pkgdesc="An API for audio processing plugins & softsynths with UIs" arch=(i686 x86_64 'mips64el') url="http://dssi.sourceforge.net/" @@ -20,7 +20,6 @@ md5sums=('619ab73c883b02dc37ddb37001591f8b' '258ca4d0ca28c5c4d4675147621fac18') build() { - . /etc/profile.d/qt4.sh cd "$srcdir/$pkgname-$pkgver" ./configure --prefix=/usr diff --git a/extra/ffmpeg/PKGBUILD b/extra/ffmpeg/PKGBUILD index 17525f0b1..c533c25eb 100644 --- a/extra/ffmpeg/PKGBUILD +++ b/extra/ffmpeg/PKGBUILD @@ -1,18 +1,18 @@ -# $Id: PKGBUILD 192419 2013-08-11 13:05:15Z bpiotrowski $ +# $Id: PKGBUILD 196252 2013-10-09 20:32:23Z bpiotrowski $ # Maintainer : Ionut Biru <ibiru@archlinux.org> # Contributor: Tom Newsom <Jeepster@gmx.co.uk> # Contributor: Paul Mattal <paul@archlinux.org> pkgname=ffmpeg -pkgver=2.0.1 -pkgrel=1 +pkgver=2.0.2 +pkgrel=2 epoch=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix" arch=('i686' 'x86_64' 'mips64el') url="http://ffmpeg.org/" license=('GPL') depends=( - 'alsa-lib' 'bzip2' 'fontconfig' 'gsm' 'lame' 'libass' + 'alsa-lib' 'bzip2' 'fontconfig' 'gnutls' 'gsm' 'lame' 'libass' 'libbluray' 'libmodplug' 'libpulse' 'libtheora' 'libvorbis' 'libvpx' 'opencore-amr' 'openjpeg' 'opus' 'rtmpdump' 'schroedinger' 'sdl' 'speex' 'v4l-utils' 'x264' 'xvidcore' 'zlib' 'libxfixes' @@ -22,7 +22,7 @@ if [ "${CARCH}" != "mips64el" ]; then makedepends=('yasm' 'libvdpau') fi source=(http://ffmpeg.org/releases/$pkgname-$pkgver.tar.bz2) -sha256sums=('611eae7e3485d5fd9ff03e0ac7575ea89bc8105e40e99a40de02324957482f95') +sha256sums=('986f63dc0785f473b1832d0eead502e39c9706fbe7f9677bbea0dad6fe0fab4a') build() { cd $pkgname-$pkgver @@ -41,6 +41,7 @@ build() { --enable-avresample \ --enable-dxva2 \ --enable-fontconfig \ + --enable-gnutls \ --enable-gpl \ --enable-libass \ --enable-libbluray \ diff --git a/extra/five-or-more/PKGBUILD b/extra/five-or-more/PKGBUILD index 2867b3946..9eab21392 100644 --- a/extra/five-or-more/PKGBUILD +++ b/extra/five-or-more/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 196037 2013-10-07 11:50:51Z jgc $ +# $Id: PKGBUILD 196387 2013-10-12 16:51:58Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Jan de Groot <jgc@archlinux.org> pkgname=five-or-more -pkgver=3.10.0 +pkgver=3.10.1 pkgrel=1 pkgdesc="Remove colored balls from the board by forming lines" arch=('i686' 'x86_64' 'mips64el') @@ -17,7 +17,7 @@ install=five-or-more.install url="https://live.gnome.org/Five%20or%20more" groups=('gnome-extra') source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('4198d713a2e29e4c1e5493cfb3880acee295d486e2f5b4d3c4780b154cad3a07') +sha256sums=('3614ad2548d4954c4069c348ba08b32b4ef92b22939e4d2955f44f50ecb0a15b') build() { cd $pkgname-$pkgver diff --git a/extra/four-in-a-row/PKGBUILD b/extra/four-in-a-row/PKGBUILD index c5944b6c8..a30310c95 100644 --- a/extra/four-in-a-row/PKGBUILD +++ b/extra/four-in-a-row/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 196039 2013-10-07 11:50:54Z jgc $ +# $Id: PKGBUILD 196384 2013-10-12 16:45:33Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Jan de Groot <jgc@archlinux.org> pkgname=four-in-a-row -pkgver=3.10.0 +pkgver=3.10.1 pkgrel=1 pkgdesc="Make lines of the same color to win" arch=('i686' 'x86_64' 'mips64el') @@ -17,7 +17,7 @@ install=four-in-a-row.install url="https://live.gnome.org/Four-in-a-row" groups=('gnome-extra') source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('4759dcc8483c5bbf89de8b10a5379539ec1df6392cf2f7b96e91ec9dd2897001') +sha256sums=('a54cf796b518bc4f561c56d5ab3160440bb4b340326a2eceda0f563031ab5bf5') build() { cd $pkgname-$pkgver diff --git a/extra/fping/PKGBUILD b/extra/fping/PKGBUILD index 2a7718ba0..0d7ab6e4c 100644 --- a/extra/fping/PKGBUILD +++ b/extra/fping/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 186276 2013-05-23 15:38:45Z giovanni $ +# $Id: PKGBUILD 196316 2013-10-11 13:19:32Z giovanni $ # Maintainer: Giovanni Scafora <giovanni@archlinux.org> # Contributor: Tom Newsom <Jeepster@gmx.co.uk> pkgname=fping -pkgver=3.5 +pkgver=3.6 pkgrel=1 pkgdesc="A utility to ping multiple hosts at once" arch=('i686' 'x86_64' 'mips64el') @@ -11,7 +11,7 @@ url="http://www.fping.org/" license=('custom') depends=('glibc') source=("http://www.fping.org/dist/${pkgname}-${pkgver}.tar.gz") -md5sums=('2e17cb655aa4eb59b5a4a38a89e746ed') +md5sums=('997b1e998caff6ad5b28c48a5a8bf84b') build() { cd "$srcdir/$pkgname-$pkgver" diff --git a/extra/freetype2/PKGBUILD b/extra/freetype2/PKGBUILD index e6f2bfad4..449b04e68 100644 --- a/extra/freetype2/PKGBUILD +++ b/extra/freetype2/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 188918 2013-06-25 14:14:01Z heftig $ +# $Id: PKGBUILD 196343 2013-10-11 16:51:57Z heftig $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=freetype2 pkgver=2.5.0.1 -pkgrel=1 +pkgrel=2 pkgdesc="TrueType font rendering library" arch=(i686 x86_64 'mips64el') license=('GPL') url="http://freetype.sourceforge.net" -depends=('zlib' 'bzip2' 'sh') +depends=('zlib' 'bzip2' 'sh' 'libpng') options=('!libtool') source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver}.tar.bz2 freetype-2.2.1-enable-valid.patch @@ -33,9 +33,7 @@ prepare() { build() { cd "${srcdir}/freetype-${pkgver}" - # PNG support is useless if FT_CONFIG_OPTION_USE_PNG is disabled - ./configure --prefix=/usr --disable-static \ - --without-png + ./configure --prefix=/usr --disable-static make } diff --git a/extra/glibmm/PKGBUILD b/extra/glibmm/PKGBUILD index 7cb0e8679..180362e24 100644 --- a/extra/glibmm/PKGBUILD +++ b/extra/glibmm/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 196047 2013-10-07 11:51:06Z jgc $ +# $Id: PKGBUILD 196330 2013-10-11 14:50:36Z heftig $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Tom Newsom <Jeepster@gmx.co.uk> pkgbase=glibmm pkgname=('glibmm' 'glibmm-docs') -pkgver=2.37.93 +pkgver=2.38.0 pkgrel=1 arch=('i686' 'x86_64' 'mips64el') license=('LGPL') @@ -12,7 +12,7 @@ makedepends=('glib2' 'libsigc++2.0' 'pkgconfig') source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) options=('!libtool') url="http://www.gtkmm.org/" -sha256sums=('a01031d7d05ba9df5915fc84867303c93341a8dd13a2aa5af78a71dfb46842f6') +sha256sums=('f37bab6bedb7b68045e356feca9e27760a5ce50d95df07156656a0e1deabc402') build() { cd "$pkgname-$pkgver" diff --git a/extra/gnome-chess/PKGBUILD b/extra/gnome-chess/PKGBUILD index 6ccd272a2..121eae114 100644 --- a/extra/gnome-chess/PKGBUILD +++ b/extra/gnome-chess/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 196052 2013-10-07 11:51:13Z jgc $ +# $Id: PKGBUILD 196390 2013-10-12 16:54:13Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Jan de Groot <jgc@archlinux.org> pkgname=gnome-chess -pkgver=3.10.0 +pkgver=3.10.1 pkgrel=1 pkgdesc="Play the classic two-player boardgame of chess" arch=('i686' 'x86_64' 'mips64el') @@ -18,7 +18,7 @@ install=gnome-chess.install url="https://live.gnome.org/Chess" groups=('gnome-extra') source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('9bbc0b2819a3f6d9d688ea0089a0d5f826d368100af7a0f3e8361e0d6f9e77ee') +sha256sums=('6541db85d2ca5b843fce61bd3be9c08733cf456c6fdf9bbc02ad78d043ca71fd') build() { cd $pkgname-$pkgver diff --git a/extra/gnome-dictionary/PKGBUILD b/extra/gnome-dictionary/PKGBUILD index 2f76b3c90..e47c61929 100644 --- a/extra/gnome-dictionary/PKGBUILD +++ b/extra/gnome-dictionary/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 196059 2013-10-07 11:51:24Z jgc $ +# $Id: PKGBUILD 196236 2013-10-09 09:41:32Z heftig $ # Maintainer: Ionut Biru <ibiru@archlinux.org> pkgname=gnome-dictionary -pkgver=3.9.0 +pkgver=3.10.0 pkgrel=1 pkgdesc="Look up words in dictionary sources" arch=(i686 x86_64 mips64el) @@ -14,7 +14,7 @@ install=$pkgname.install options=(!libtool) groups=('gnome') source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('4881096d5952ca39e19e4ecfb37f16634d5f5c1e41ee1e74fa8550f59f5bd455') +sha256sums=('258b60fe50f7d0580a7dc3bb83f7fe2f6f0597d4013d97ac083c3f062c350ed7') build() { cd $pkgname-$pkgver diff --git a/extra/gnome-mines/PKGBUILD b/extra/gnome-mines/PKGBUILD index 97e5041df..9c7e3a4d2 100644 --- a/extra/gnome-mines/PKGBUILD +++ b/extra/gnome-mines/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 196069 2013-10-07 11:51:38Z jgc $ +# $Id: PKGBUILD 196385 2013-10-12 16:47:50Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Jan de Groot <jgc@archlinux.org> pkgname=gnome-mines -pkgver=3.10.0 +pkgver=3.10.1 pkgrel=1 pkgdesc="Clear hidden mines from a minefield" arch=('i686' 'x86_64' 'mips64el') @@ -17,7 +17,7 @@ install=gnome-mines.install url="https://live.gnome.org/Mines" groups=('gnome-extra') source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('b0f71a58e864848f5dd1067488b7d1d31b7c8f30d6d9904411b755d29074826c') +sha256sums=('7b7c73a6f1cf4896ff0a650fca017869f2a7334682661062bdd0c863d0bacdd9') build() { cd $pkgname-$pkgver diff --git a/extra/gnome-nibbles/PKGBUILD b/extra/gnome-nibbles/PKGBUILD index 4a521a010..71864656a 100644 --- a/extra/gnome-nibbles/PKGBUILD +++ b/extra/gnome-nibbles/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 168943 2012-10-16 16:31:44Z heftig $ +# $Id: PKGBUILD 196347 2013-10-12 04:08:16Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Jan de Groot <jgc@archlinux.org> pkgname=gnome-nibbles -pkgver=3.10.0 +pkgver=3.10.1 pkgrel=1 pkgdesc="Guide a worm around a maze" arch=('i686' 'x86_64' 'mips64el') @@ -17,7 +17,7 @@ install=gnome-nibbles.install url="https://live.gnome.org/Nibbles" groups=('gnome-extra') source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('6bf774cbd86e617c49f1740e79d52a7d26bf23656a673db1efb20bcc893e614a') +sha256sums=('af659b52974493a618de5c288427aea2ebece9c90b5dd075a31c2a4d502d0ef9') build() { cd $pkgname-$pkgver diff --git a/extra/gnome-session/PKGBUILD b/extra/gnome-session/PKGBUILD index 3248f0e22..1507a5a05 100644 --- a/extra/gnome-session/PKGBUILD +++ b/extra/gnome-session/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 196077 2013-10-07 11:51:51Z jgc $ +# $Id: PKGBUILD 196333 2013-10-11 14:58:47Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> pkgname=gnome-session -pkgver=3.10.0 -pkgrel=2 +pkgver=3.10.1 +pkgrel=1 pkgdesc="The GNOME Session Handler" arch=(i686 x86_64 'mips64el') license=(GPL LGPL) @@ -16,7 +16,7 @@ url="http://www.gnome.org" groups=(gnome) source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz timeout.patch) -sha256sums=('38d90c5d5a33ec8a3002f1e77e201c1554eeb8bbba8923d94fab81b3a8e0696e' +sha256sums=('f620704e07e6bbf49aa6c65897475a46f80f7ac5593606f2b6889c7cb4f6a9cc' '9eaf31857b41db417475c3b14adc11b10c8226ed76978cdf96dd648fa6e505fc') prepare() { diff --git a/extra/gnumeric/PKGBUILD b/extra/gnumeric/PKGBUILD index d31a65301..6c39e8b4d 100644 --- a/extra/gnumeric/PKGBUILD +++ b/extra/gnumeric/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 193817 2013-09-02 12:41:23Z jgc $ +# $Id: PKGBUILD 196206 2013-10-08 07:53:37Z jgc $ # Maintainer: Eric Belanger <eric@archlinux.org> # Contributor: Kritoke <typeolinux@yahoo.com> pkgname=gnumeric -pkgver=1.12.7 +pkgver=1.12.8 pkgrel=1 pkgdesc="A GNOME Spreadsheet Program" arch=('i686' 'x86_64' 'mips64el') @@ -20,7 +20,7 @@ install=gnumeric.install options=('!libtool') source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz revert-warnings.patch) -sha256sums=('5de9cca87efb2ea190bcddf57bd83a34e7f9580f5b7c92c6757707d1164748ef' +sha256sums=('02688fb6c32c28db2eb4e9a8e012cf1386f4f3a18b4c94f5ecdd13342521ec76' 'bcafca016b809000c2a5bf911e2e3dfa4de28f9e541d9964574cac5c7ce09e53') prepare() { diff --git a/extra/goffice/PKGBUILD b/extra/goffice/PKGBUILD index 0adf72294..1602c276c 100644 --- a/extra/goffice/PKGBUILD +++ b/extra/goffice/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 193815 2013-09-02 12:10:06Z jgc $ +# $Id: PKGBUILD 196195 2013-10-08 07:31:56Z jgc $ # Maintainer: Aaron Griffin <aaron@archlinux.org> pkgname=goffice -pkgver=0.10.7 +pkgver=0.10.8 pkgrel=1 pkgdesc="A library of document-centric objects and utilities built on top of GLib and Gtk+" arch=('i686' 'x86_64' 'mips64el') @@ -11,8 +11,8 @@ license=('GPL') options=('!libtool') makedepends=('pkgconfig' 'intltool' 'gtk-doc' 'gobject-introspection') depends=('librsvg' 'gtk3' 'libgsf' 'libspectre') -source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz) -sha256sums=('d1663fc7851f0f50329b37311b1859db184ac088eea4b80472f163c036896597') +source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver:0:4}/${pkgname}-${pkgver}.tar.xz) +sha256sums=('11964b907b03dede6d8d8a1a4ae2d5727ffbe8d7bab5c92dec586acb616e807c') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/gtk2/PKGBUILD b/extra/gtk2/PKGBUILD index bc6004fc4..75a97d1dd 100644 --- a/extra/gtk2/PKGBUILD +++ b/extra/gtk2/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 196102 2013-10-07 11:52:32Z jgc $ +# $Id: PKGBUILD 196328 2013-10-11 14:41:41Z heftig $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgbase=gtk2 pkgname=('gtk2' 'gtk-update-icon-cache') -pkgver=2.24.21 -pkgrel=2 +pkgver=2.24.22 +pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url="http://www.gtk.org/" makedepends=('atk' 'pango' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' @@ -12,16 +12,14 @@ makedepends=('atk' 'pango' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxc options=('!libtool') license=('LGPL') source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-$pkgver.tar.xz - gtkrc xid-collision-debug.patch gtkrc-fix.patch) -sha256sums=('302e9216dd19ec4b5b9e2f77275e23758253f7e86b06287284d8e794ef38dce3' + gtkrc xid-collision-debug.patch) +sha256sums=('b114b6e9fb389bf3aa8a6d09576538f58dce740779653084046852fb4140ae7f' 'b77a427df55a14182c10ad7e683b4d662df2846fcd38df2aa8918159d6be3ae2' - 'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558' - '4038c0f1ef4cc052e469858abe32eaa8afc8d4f540760f18ad132986e396604d') + 'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558') prepare() { cd gtk+-$pkgver patch -Np1 -i ../xid-collision-debug.patch - patch -Np1 -i ../gtkrc-fix.patch } build() { diff --git a/extra/gtk2/gtkrc-fix.patch b/extra/gtk2/gtkrc-fix.patch deleted file mode 100644 index 09e350e98..000000000 --- a/extra/gtk2/gtkrc-fix.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 1b8d3b9210c1d2201bb01a748d748f5d17e9eb4f Mon Sep 17 00:00:00 2001 -From: Matthias Clasen <mclasen@redhat.com> -Date: Mon, 30 Sep 2013 16:50:34 +0000 -Subject: Actually look in /usr/share/gtk-2.0 for default rc files - -I managed to forget the 'share' component of the path. ---- -diff --git a/gtk/gtkrc.c b/gtk/gtkrc.c -index b1f68e2..50b2563 100644 ---- a/gtk/gtkrc.c -+++ b/gtk/gtkrc.c -@@ -525,7 +525,7 @@ gtk_rc_add_initial_default_files (void) - const gchar * const *config_dirs; - const gchar *config_dir; - -- str = g_build_filename (GTK_DATA_PREFIX, "gtk-2.0", "gtkrc", NULL); -+ str = g_build_filename (GTK_DATA_PREFIX, "share", "gtk-2.0", "gtkrc", NULL); - gtk_rc_add_default_file (str); - g_free (str); - --- -cgit v0.9.2 diff --git a/extra/gtk3/PKGBUILD b/extra/gtk3/PKGBUILD index bf8444926..c4ea72288 100644 --- a/extra/gtk3/PKGBUILD +++ b/extra/gtk3/PKGBUILD @@ -1,9 +1,10 @@ -# $Id: PKGBUILD 196103 2013-10-07 11:52:34Z jgc $ +# $Id: PKGBUILD 196329 2013-10-11 14:46:45Z heftig $ # Maintainer: Ionut Biru <ibiru@archlinux.org> +# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> pkgname=gtk3 -pkgver=3.10.0 -pkgrel=2 +pkgver=3.10.1 +pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3)" arch=(i686 x86_64 mips64el) url="http://www.gtk.org/" @@ -17,7 +18,7 @@ options=('!libtool') license=(LGPL) source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-$pkgver.tar.xz settings.ini) -sha256sums=('6559feb360cd935d341cd7a0b69a72f8f4346ed6ee9b7c4040c02b73b75c53fe' +sha256sums=('c12e6897fb1ec8d8f1a6de6cd0ac1372fee6fd63ee3a5a63813dc5f3473e6ab8' '14369dfd1d325c393e17c105d5d5cc5501663277bd4047ea04a50abb3cfbd119') build() { diff --git a/extra/gtkmm3/PKGBUILD b/extra/gtkmm3/PKGBUILD index 6b7105aa7..3f324013c 100644 --- a/extra/gtkmm3/PKGBUILD +++ b/extra/gtkmm3/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 196104 2013-10-07 11:52:35Z jgc $ +# $Id: PKGBUILD 196332 2013-10-11 14:56:43Z heftig $ # Maintainer: Ionut Biru <ibiru@archlinux.org> pkgbase=gtkmm3 _pkgbasename=gtkmm pkgname=('gtkmm3' 'gtkmm3-docs') -pkgver=3.9.16 +pkgver=3.10.0 pkgrel=1 arch=('i686' 'x86_64' 'mips64el') makedepends=('gtk3' 'pangomm' 'atkmm' 'glibmm-docs' 'mm-common' 'doxygen' 'libxslt') @@ -12,7 +12,7 @@ license=('LGPL') options=('!libtool' '!emptydirs') url="http://www.gtkmm.org/" source=(http://ftp.gnome.org/pub/GNOME/sources/$_pkgbasename/${pkgver%.*}/$_pkgbasename-$pkgver.tar.xz) -sha256sums=('3a07679530c0c58ddaf3b2bdc7859d8f7050a1057ae99e2d3857004e36e7c879') +sha256sums=('5e45fed4a7cff1baa72d1ef67e0d9883063d3a575cb53190e7ecf27047d241f8') build() { cd "$_pkgbasename-$pkgver" diff --git a/extra/iagno/PKGBUILD b/extra/iagno/PKGBUILD index e3a1312c3..e9e388d61 100644 --- a/extra/iagno/PKGBUILD +++ b/extra/iagno/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 196108 2013-10-07 11:52:44Z jgc $ +# $Id: PKGBUILD 196392 2013-10-12 16:57:40Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Jan de Groot <jgc@archlinux.org> pkgname=iagno -pkgver=3.10.0 +pkgver=3.10.1 pkgrel=1 pkgdesc="Dominate the board in a classic version of Reversi" arch=('i686' 'x86_64' 'mips64el') @@ -17,7 +17,7 @@ install=iagno.install url="https://live.gnome.org/Iagno" groups=('gnome-extra') source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('23a041b54fd4df817c8d507e87d19495ddfc8a23bfe812a3e7d500f32f8a49d0') +sha256sums=('abb4aee5fe6b2d668dbd4f5a06783419bebdfa8bbf8911262e4d217fed0be5f0') build() { cd $pkgname-$pkgver diff --git a/extra/kdeplasma-applets-networkmanagement/PKGBUILD b/extra/kdeplasma-applets-networkmanagement/PKGBUILD deleted file mode 100644 index d0ad3cb44..000000000 --- a/extra/kdeplasma-applets-networkmanagement/PKGBUILD +++ /dev/null @@ -1,34 +0,0 @@ -# $Id: PKGBUILD 105813 2011-01-12 00:25:58Z andrea $ -# Maintainer: Andrea Scarpino <andrea@archlinux.org> -# Contributor: Jakub Schmidtke <sjakub-at-gmail.com> - -pkgname=kdeplasma-applets-networkmanagement -epoch=1 -pkgver=0.9.0.9 -pkgrel=1 -pkgdesc="KDE control panel and widget network connections" -arch=('i686' 'x86_64' 'mips64el') -url='https://projects.kde.org/projects/extragear/base/networkmanagement' -license=('GPL') -depends=('kdebase-workspace' 'networkmanager') -makedepends=('cmake' 'python2' 'automoc4' 'mobile-broadband-provider-info' - 'openconnect') -optdepends=('mobile-broadband-provider-info: Database of mobile broadband service providers' - 'openconnect: Cisco AnyConnect compatible VPN client') -install=${pkgname}.install -source=("http://download.kde.org/unstable/networkmanagement/${pkgver}/src/networkmanagement-${pkgver}.tar.bz2") -sha256sums=('d6a7603df2a48e14cef4c44dcaee5773d7ed3cad5b8780307b356df4639231ca') - -build() { - mkdir build - cd build - cmake ../networkmanagement-${pkgver} \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_BUILD_TYPE=Release - make -} - -package() { - cd build - make DESTDIR="${pkgdir}" install -} diff --git a/extra/kdeplasma-applets-networkmanagement/kdeplasma-applets-networkmanagement.install b/extra/kdeplasma-applets-networkmanagement/kdeplasma-applets-networkmanagement.install deleted file mode 100644 index e70c054ec..000000000 --- a/extra/kdeplasma-applets-networkmanagement/kdeplasma-applets-networkmanagement.install +++ /dev/null @@ -1,11 +0,0 @@ -post_install() { - xdg-icon-resource forceupdate --theme hicolor &> /dev/null -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} diff --git a/extra/kdeplasma-applets-plasma-nm/PKGBUILD b/extra/kdeplasma-applets-plasma-nm/PKGBUILD new file mode 100644 index 000000000..ea548ab39 --- /dev/null +++ b/extra/kdeplasma-applets-plasma-nm/PKGBUILD @@ -0,0 +1,34 @@ +# $Id: PKGBUILD 196399 2013-10-12 17:21:21Z andrea $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> +# Contributor: Antonio Rojas < nqn1976 @ gmail.com > + +pkgname=kdeplasma-applets-plasma-nm +pkgver=0.9.3.0 +pkgrel=2 +pkgdesc="Plasma applet written in QML for managing network connections" +arch=('i686' 'x86_64') +url="https://projects.kde.org/projects/playground/network/plasma-nm" +license=('GPL') +depends=('kdebase-workspace' 'libnm-qt') +makedepends=('cmake' 'automoc4' 'openconnect') +optdepends=('mobile-broadband-provider-info: Database of mobile broadband service providers' + 'openconnect: Cisco AnyConnect VPN plugin') +source=("http://download.kde.org/unstable/plasma-nm/plasma-nm-${pkgver}.tar.xz") +md5sums=('cdc781eb6f62ebddbe4fafb444f72d9b') + +prepare() { + mkdir build +} + +build() { + cd build + cmake ../plasma-nm-${pkgver} \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release + make +} + +package() { + cd build + make DESTDIR="${pkgdir}" install +} diff --git a/extra/lftp/PKGBUILD b/extra/lftp/PKGBUILD index 3a61e5a17..5271b475f 100644 --- a/extra/lftp/PKGBUILD +++ b/extra/lftp/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 193566 2013-08-24 08:12:15Z andyrtr $ +# $Id: PKGBUILD 196341 2013-10-11 16:33:42Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> # Contributor: Aaron Griffin <aaron@archlinux.org> pkgname=lftp -pkgver=4.4.9 +pkgver=4.4.10 pkgrel=1 pkgdesc="Sophisticated command line based FTP client" arch=('i686' 'x86_64' 'mips64el') @@ -12,8 +12,9 @@ depends=('gcc-libs' 'readline>=6.2' "gnutls" "expat>=2.0.1-4" 'sh') optdepends=('perl: needed for convert-netscape-cookies and verify-file') url="http://lftp.yar.ru/" backup=('etc/lftp.conf') -source=(http://ftp.yars.free.net/pub/source/lftp/${pkgname}-${pkgver}.tar.bz2 ) -md5sums=('f942d632d71b7bf35dca2e75a8432b83') +source=(http://lftp.yar.ru/ftp/${pkgname}-${pkgver}.tar.xz{,.asc}) +md5sums=('1b8d77f1a5a9cfe4e48e45636b775101' + 'SKIP') build() { cd ${srcdir}/${pkgname}-${pkgver} diff --git a/extra/libdvbpsi/PKGBUILD b/extra/libdvbpsi/PKGBUILD index c44f8e725..c6cedcb9c 100644 --- a/extra/libdvbpsi/PKGBUILD +++ b/extra/libdvbpsi/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 195173 2013-09-26 15:48:02Z foutrelis $ +# $Id: PKGBUILD 196290 2013-10-10 15:39:09Z giovanni $ # Maintainer: Giovanni Scafora <giovanni@archlinux.org> # Contributor: Gilles CHAUVIN <gcnweb@gmail.com> pkgname=libdvbpsi -pkgver=1.1.0 +pkgver=1.1.1 pkgrel=1 epoch=1 pkgdesc="A library designed for decoding and generation of MPEG TS and DVB PSI tables" @@ -15,7 +15,7 @@ replaces=('libdvbpsi4' 'libdvbpsi5') conflicts=('libdvbpsi4' 'libdvbpsi5') url="http://developers.videolan.org/libdvbpsi/" source=("http://download.videolan.org/pub/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2") -md5sums=('1f84f9d1de08e15f94e6ff9957278064') +md5sums=('0c7c355201f325ea99c522d8ec97bf86') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/libffado/PKGBUILD b/extra/libffado/PKGBUILD index b67e0a6a3..37e9f3b75 100644 --- a/extra/libffado/PKGBUILD +++ b/extra/libffado/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 168113 2012-10-06 05:43:33Z schiv $ +# $Id: PKGBUILD 196292 2013-10-10 19:31:03Z schiv $ # Maintainer: Ray Rashif <schiv@archlinux.org> # Contributor: galiyosha@gmail.com # Contributor: Jon Kristian Nilsen <jokr.nilsen@gmail.com> pkgname=libffado pkgver=2.1.0 -pkgrel=3 +pkgrel=4 pkgdesc="Driver for FireWire audio devices" arch=('i686' 'x86_64' 'mips64el') url="http://www.ffado.org/" @@ -17,9 +17,11 @@ optdepends=('python2: ffado-diag' 'python2-pyqt: mixer applet') provides=('ffado') source=("http://www.ffado.org/files/$pkgname-$pkgver.tgz" - 'python2-qt.patch') + 'python2-qt.patch' + 'rules.patch') md5sums=('26bce2be0b9c1fa4e614f2f494edf388' - '10aa837f5521da213caa93e1ddc58c0e') + '10aa837f5521da213caa93e1ddc58c0e' + 'da1102bfb02e67b3dfcb3947435a81e9') _scons-conf() { scons DEBUG=False \ @@ -29,17 +31,25 @@ _scons-conf() { COMPILE_FLAGS="$CFLAGS" $@ } -build() { +prepare() { cd "$srcdir/$pkgname-$pkgver" # python2 fix patch -Np1 -i "$srcdir/python2-qt.patch" - if [ "$CARCH" = "x86_64" ]; then + # rule comments must be on their own line + # see https://bugs.archlinux.org/task/36949 + # and http://subversion.ffado.org/ticket/373 + patch -Np0 -i "$srcdir/rules.patch" +} + +build() { + cd "$srcdir/$pkgname-$pkgver" + + if [ "$CARCH" = 'x86_64' ]; then _scons-conf ENABLE_OPTIMIZATIONS=True elif [ "$CARCH" = "mips64el" ]; then sed -i "s/-mn32/-mn32 $CFLAGS/g" SConstruct - _scons-conf ENABLE_OPTIMIZATIONS=True else _scons-conf fi @@ -55,7 +65,7 @@ package() { "$pkgdir/usr/share/applications/ffadomixer.desktop" install -Dm644 support/xdg/hi64-apps-ffado.png \ - "$pkgdir/usr/share/pixmaps/$pkgname.png" + "$pkgdir/usr/share/pixmaps/ffado.png" } # vim:set ts=2 sw=2 et: diff --git a/extra/libffado/rules.patch b/extra/libffado/rules.patch new file mode 100644 index 000000000..8e37c164a --- /dev/null +++ b/extra/libffado/rules.patch @@ -0,0 +1,84 @@ +--- libffado/60-ffado.rules ++++ libffado/60-ffado.rules +@@ -1,35 +1,58 @@ + SUBSYSTEM!="firewire", GOTO="ffado_end" + +-ATTR{vendor}=="0x000166", GROUP="audio", ENV{ID_FFADO}="1" # TC GROUP A/S +-ATTR{vendor}=="0x0001f2", GROUP="audio", ENV{ID_FFADO}="1" # Mark of the Unicorn, Inc. (aka MOTU) +-ATTR{vendor}=="0x0003db", GROUP="audio", ENV{ID_FFADO}="1" # Apogee Electronics Corp. +-ATTR{vendor}=="0x000595", GROUP="audio", ENV{ID_FFADO}="1" # Alesis Corporation +-ATTR{vendor}=="0x0007f5", GROUP="audio", ENV{ID_FFADO}="1" # Bridgeco Co AG +-ATTR{vendor}=="0x000a92", GROUP="audio", ENV{ID_FFADO}="1" # Presonus Corporation +-ATTR{vendor}=="0x000aac", GROUP="audio", ENV{ID_FFADO}="1" # TerraTec Electronic GmbH +-ATTR{vendor}=="0x000d6c", GROUP="audio", ENV{ID_FFADO}="1" # M-Audio +-ATTR{vendor}=="0x000f1b", GROUP="audio", ENV{ID_FFADO}="1" # Ego Systems Inc. +-ATTR{vendor}=="0x000ff2", GROUP="audio", ENV{ID_FFADO}="1" # Loud Technologies Inc. +-ATTR{vendor}=="0x001260", GROUP="audio", ENV{ID_FFADO}="1" # Stanton Magnetics,inc. +-ATTR{vendor}=="0x00130e", GROUP="audio", ENV{ID_FFADO}="1" # Focusrite Audio Engineering Limited +-ATTR{vendor}=="0x001486", GROUP="audio", ENV{ID_FFADO}="1" # Echo Digital Audio Corporation +-ATTR{vendor}=="0x001496", GROUP="audio", ENV{ID_FFADO}="1" # Phonic Corporation +-ATTR{vendor}=="0x001564", GROUP="audio", ENV{ID_FFADO}="1" # BEHRINGER Spezielle Studiotechnik GmbH +-ATTR{vendor}=="0x001c2d", GROUP="audio", ENV{ID_FFADO}="1" # FlexRadio Systems +-ATTR{vendor}=="0x001c6a", GROUP="audio", ENV{ID_FFADO}="1" # Weiss Engineering Ltd. +-ATTR{vendor}=="0x0040ab", GROUP="audio", ENV{ID_FFADO}="1" # ROLAND DG CORPORATION +-ATTR{vendor}=="0x000f64", GROUP="audio", ENV{ID_FFADO}="1" # DnR ++# TC GROUP A/S ++ATTR{vendor}=="0x000166", GROUP="audio", ENV{ID_FFADO}="1" ++# Mark of the Unicorn, Inc. (aka MOTU) ++ATTR{vendor}=="0x0001f2", GROUP="audio", ENV{ID_FFADO}="1" ++# Apogee Electronics Corp. ++ATTR{vendor}=="0x0003db", GROUP="audio", ENV{ID_FFADO}="1" ++# Alesis Corporation ++ATTR{vendor}=="0x000595", GROUP="audio", ENV{ID_FFADO}="1" ++# Bridgeco Co AG ++ATTR{vendor}=="0x0007f5", GROUP="audio", ENV{ID_FFADO}="1" ++# Presonus Corporation ++ATTR{vendor}=="0x000a92", GROUP="audio", ENV{ID_FFADO}="1" ++# TerraTec Electronic GmbH ++ATTR{vendor}=="0x000aac", GROUP="audio", ENV{ID_FFADO}="1" ++# M-Audio ++ATTR{vendor}=="0x000d6c", GROUP="audio", ENV{ID_FFADO}="1" ++# Ego Systems Inc. ++ATTR{vendor}=="0x000f1b", GROUP="audio", ENV{ID_FFADO}="1" ++# Loud Technologies Inc. ++ATTR{vendor}=="0x000ff2", GROUP="audio", ENV{ID_FFADO}="1" ++# Stanton Magnetics,inc. ++ATTR{vendor}=="0x001260", GROUP="audio", ENV{ID_FFADO}="1" ++# Focusrite Audio Engineering Limited ++ATTR{vendor}=="0x00130e", GROUP="audio", ENV{ID_FFADO}="1" ++# Echo Digital Audio Corporation ++ATTR{vendor}=="0x001486", GROUP="audio", ENV{ID_FFADO}="1" ++# Phonic Corporation ++ATTR{vendor}=="0x001496", GROUP="audio", ENV{ID_FFADO}="1" ++# BEHRINGER Spezielle Studiotechnik GmbH ++ATTR{vendor}=="0x001564", GROUP="audio", ENV{ID_FFADO}="1" ++# FlexRadio Systems ++ATTR{vendor}=="0x001c2d", GROUP="audio", ENV{ID_FFADO}="1" ++# Weiss Engineering Ltd. ++ATTR{vendor}=="0x001c6a", GROUP="audio", ENV{ID_FFADO}="1" ++# ROLAND DG CORPORATION ++ATTR{vendor}=="0x0040ab", GROUP="audio", ENV{ID_FFADO}="1" ++# DnR ++ATTR{vendor}=="0x000f64", GROUP="audio", ENV{ID_FFADO}="1" + + # The devices below are by vendors who make other firewire devices in + # addition to their audio interfaces. They need more specific rules to + # ensure only audio interfaces are covered here. + +-ATTR{vendor}=="0x00022e", ATTR{model}=="0x010067", GROUP="audio", ENV{ID_FFADO}="1" # Tascam, a subsiduary of TEAC (the OUI is TEAC's) ++# Tascam, a subsiduary of TEAC (the OUI is TEAC's) ++ATTR{vendor}=="0x00022e", ATTR{model}=="0x010067", GROUP="audio", ENV{ID_FFADO}="1" + + # The devices below abuse another Vendor's ID, and therefore we need more advanced rules for those. + +-ATTR{vendor}=="0x00000a", ATTR{model}=="0x030000", ATTR{units}=="*0x00a02d:0x010001*", GROUP="audio", ENV{ID_FFADO}="1" # CME, Matrix K FW +-ATTR{vendor}=="0x00000f", ATTR{model}=="0x01006?", ATTR{units}=="*0x00a02d:0x010001*", GROUP="audio", ENV{ID_FFADO}="1" # Mackie, Onyx Firewire +-ATTR{vendor}=="0x000a35", ATTR{units}=="0x000a35:0x00000[12]", GROUP="audio", ENV{ID_FFADO}="1" # RME ++# CME, Matrix K FW ++ATTR{vendor}=="0x00000a", ATTR{model}=="0x030000", ATTR{units}=="*0x00a02d:0x010001*", GROUP="audio", ENV{ID_FFADO}="1" ++# Mackie, Onyx Firewire ++ATTR{vendor}=="0x00000f", ATTR{model}=="0x01006?", ATTR{units}=="*0x00a02d:0x010001*", GROUP="audio", ENV{ID_FFADO}="1" ++# RME ++ATTR{vendor}=="0x000a35", ATTR{units}=="0x000a35:0x00000[12]", GROUP="audio", ENV{ID_FFADO}="1" + + LABEL="ffado_end" diff --git a/extra/libmm-qt/PKGBUILD b/extra/libmm-qt/PKGBUILD new file mode 100644 index 000000000..d6a6c6c22 --- /dev/null +++ b/extra/libmm-qt/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 196394 2013-10-12 17:04:01Z andrea $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> + +pkgname=libmm-qt +pkgver=0.5.1 +pkgrel=1 +pkgdesc='Qt-only wrapper for ModemManager DBus API' +arch=('i686' 'x86_64') +url='https://projects.kde.org/projects/extragear/libs/libmm-qt' +license=('LGPL') +depends=('qt4') +makedepends=('cmake') +source=("http://download.kde.org/unstable/modemmanager-qt/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") +md5sums=('97a61c398426ea596564d1c876025d93') + +prepare() { + mkdir -p build +} + +build() { + cd build + cmake ../${pkgname}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr + make +} + +package() { + cd build + make DESTDIR="${pkgdir}" install +} diff --git a/extra/libnm-qt/PKGBUILD b/extra/libnm-qt/PKGBUILD new file mode 100644 index 000000000..fb085736d --- /dev/null +++ b/extra/libnm-qt/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 196395 2013-10-12 17:08:13Z andrea $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> + +pkgname=libnm-qt +pkgver=0.9.0 +pkgrel=1 +pkgdesc='Qt-only wrapper for NetworkManager DBus API' +arch=('i686' 'x86_64') +url='https://projects.kde.org/projects/extragear/libs/libnm-qt' +license=('LGPL') +depends=('libmm-qt' 'networkmanager') +makedepends=('cmake') +source=("http://download.kde.org/unstable/networkmanagement/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") +sha256sums=('1afc4b21efd656b34f45692e2c40c0337ca44d7238a56b4318f3bb6fc7df6e22') + +prepare() { + mkdir -p build +} + +build() { + cd build + cmake ../${pkgname}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr + make +} + +package() { + cd build + make DESTDIR="${pkgdir}" install +} diff --git a/extra/libtar/PKGBUILD b/extra/libtar/PKGBUILD index 0c518d5e8..e8379a7d0 100644 --- a/extra/libtar/PKGBUILD +++ b/extra/libtar/PKGBUILD @@ -1,40 +1,46 @@ -# $Id: PKGBUILD 155876 2012-04-08 10:03:47Z giovanni $ +# $Id: PKGBUILD 196404 2013-10-12 18:57:59Z giovanni $ # Maintainer: Giovanni Scafora <giovanni@archlinux.org> # Contributor: Biru Ionut <ionut@archlinux.ro> # Contributor: Eric Belanger <eric@archlinux.org> # Contributor: Aurelien Foret <orelien@chez.com> pkgname=libtar -pkgver=1.2.11 -pkgrel=4 +pkgver=1.2.20 +pkgrel=1 pkgdesc="C library for manipulating POSIX tar files" arch=('i686' 'x86_64' 'mips64el') -url="http://www.feep.net/libtar/" +url="http://repo.or.cz/w/libtar.git/" license=('BSD') depends=('zlib') -source=("ftp://ftp.feep.net/pub/software/${pkgname}/${pkgname}-${pkgver}.tar.gz" - 'libtar-1.2.11-tar_header.patch' - 'libtar-1.2.11.patch') -md5sums=('604238e8734ce6e25347a58c4f1a1d7e' - '94b03c0fdee20671e1f6d1ecaf187258' - 'baef7da841c186e1830566296859c35b') +options=('!libtool') +source=("http://pkgbuild.com/~giovanni/${pkgname}/${pkgname}-${pkgver}.tar.gz" + 'libtar-1.2.20-free.patch') +md5sums=('32cd952ff74f1c78c06ffff5c0695b90' + '00c2d03a3c13e4b6bc6c3b30a4db9f64') -build() { - cd "${srcdir}/${pkgname}-${pkgver}" +prepare() { + cd "${srcdir}/${pkgname}" - export CFLAGS+=" -fPIC" + patch -Np0 -i "${srcdir}/libtar-1.2.20-free.patch" + sed -i \ + -e '/INSTALL_PROGRAM/s:-s::' {doc,lib{,tar}}/Makefile.in +} - # Fix FS#29322 - patch -Np1 -i "${srcdir}/libtar-1.2.11-tar_header.patch" +build() { + cd "${srcdir}/${pkgname}" + export CFLAGS+=" -fPIC" - patch -Np1 -i "${srcdir}/libtar-1.2.11.patch" + autoreconf -fi ./configure --prefix=/usr \ - --mandir=/usr/share/man + --mandir=/usr/share/man \ + --disable-static \ + --disable-encap \ + --disable-epkg-install make } package() { - cd "${srcdir}/${pkgname}-${pkgver}" + cd "${srcdir}/${pkgname}" make DESTDIR="${pkgdir}" install install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" diff --git a/extra/libtar/libtar-1.2.11-tar_header.patch b/extra/libtar/libtar-1.2.11-tar_header.patch deleted file mode 100644 index 161f7da7b..000000000 --- a/extra/libtar/libtar-1.2.11-tar_header.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -Naur libtar-1.2.11/lib/encode.c libtar-1.2.11.tar_header/lib/encode.c ---- libtar-1.2.11/lib/encode.c 2003-01-07 07:10:59.000000000 +0530 -+++ libtar-1.2.11.tar_header/lib/encode.c 2009-11-20 11:13:25.166756167 +0530 -@@ -30,7 +30,10 @@ - int i, sum = 0; - - if (t->options & TAR_GNU) -- strncpy(t->th_buf.magic, "ustar ", 8); -+ { -+ memcpy(t->th_buf.magic, "ustar ", 6); -+ memcpy(t->th_buf.version, " \0", 2); -+ } - else - { - strncpy(t->th_buf.version, TVERSION, TVERSLEN); diff --git a/extra/libtar/libtar-1.2.11.patch b/extra/libtar/libtar-1.2.11.patch deleted file mode 100644 index 347203dc3..000000000 --- a/extra/libtar/libtar-1.2.11.patch +++ /dev/null @@ -1,108 +0,0 @@ -diff -Naur libtar-1.2.11-orig/lib/decode.c libtar-1.2.11/lib/decode.c ---- libtar-1.2.11-orig/lib/decode.c 2003-01-06 17:40:59.000000000 -0800 -+++ libtar-1.2.11/lib/decode.c 2004-08-13 12:26:34.000000000 -0700 -@@ -26,7 +26,7 @@ - char * - th_get_pathname(TAR *t) - { -- char filename[MAXPATHLEN]; -+ static char filename[MAXPATHLEN]; - - if (t->th_buf.gnu_longname) - return t->th_buf.gnu_longname; -@@ -35,11 +35,11 @@ - { - snprintf(filename, sizeof(filename), "%.155s/%.100s", - t->th_buf.prefix, t->th_buf.name); -- return strdup(filename); -+ return filename; - } - - snprintf(filename, sizeof(filename), "%.100s", t->th_buf.name); -- return strdup(filename); -+ return filename; - } - - -diff -Naur libtar-1.2.11-orig/lib/extract.c libtar-1.2.11/lib/extract.c ---- libtar-1.2.11-orig/lib/extract.c 2003-03-02 15:58:07.000000000 -0800 -+++ libtar-1.2.11/lib/extract.c 2004-08-13 12:26:34.000000000 -0700 -@@ -28,14 +28,6 @@ - #endif - - --struct linkname --{ -- char ln_save[MAXPATHLEN]; -- char ln_real[MAXPATHLEN]; --}; --typedef struct linkname linkname_t; -- -- - static int - tar_set_file_perms(TAR *t, char *realname) - { -@@ -98,7 +90,9 @@ - tar_extract_file(TAR *t, char *realname) - { - int i; -- linkname_t *lnp; -+ char *lnp; -+ int pathname_len; -+ int realname_len; - - if (t->options & TAR_NOOVERWRITE) - { -@@ -137,11 +131,13 @@ - if (i != 0) - return i; - -- lnp = (linkname_t *)calloc(1, sizeof(linkname_t)); -+ pathname_len = strlen(th_get_pathname(t)) + 1; -+ realname_len = strlen(realname) + 1; -+ lnp = (char *)calloc(1, pathname_len + realname_len); - if (lnp == NULL) - return -1; -- strlcpy(lnp->ln_save, th_get_pathname(t), sizeof(lnp->ln_save)); -- strlcpy(lnp->ln_real, realname, sizeof(lnp->ln_real)); -+ strcpy(&lnp[0], th_get_pathname(t)); -+ strcpy(&lnp[pathname_len], realname); - #ifdef DEBUG - printf("tar_extract_file(): calling libtar_hash_add(): key=\"%s\", " - "value=\"%s\"\n", th_get_pathname(t), realname); -@@ -288,7 +284,7 @@ - { - char *filename; - char *linktgt = NULL; -- linkname_t *lnp; -+ char *lnp; - libtar_hashptr_t hp; - - if (!TH_ISLNK(t)) -@@ -304,8 +300,8 @@ - if (libtar_hash_getkey(t->h, &hp, th_get_linkname(t), - (libtar_matchfunc_t)libtar_str_match) != 0) - { -- lnp = (linkname_t *)libtar_hashptr_data(&hp); -- linktgt = lnp->ln_real; -+ lnp = (char *)libtar_hashptr_data(&hp); -+ linktgt = &lnp[strlen(lnp) + 1]; - } - else - linktgt = th_get_linkname(t); -diff -Naur libtar-1.2.11-orig/lib/libtar.h libtar-1.2.11/lib/libtar.h ---- libtar-1.2.11-orig/lib/libtar.h 2003-01-06 17:40:59.000000000 -0800 -+++ libtar-1.2.11/lib/libtar.h 2004-08-13 12:26:52.000000000 -0700 -@@ -63,9 +63,9 @@ - /***** handle.c ************************************************************/ - - typedef int (*openfunc_t)(const char *, int, ...); --typedef int (*closefunc_t)(int); --typedef ssize_t (*readfunc_t)(int, void *, size_t); --typedef ssize_t (*writefunc_t)(int, const void *, size_t); -+typedef int (*closefunc_t)(long); -+typedef ssize_t (*readfunc_t)(long, void *, size_t); -+typedef ssize_t (*writefunc_t)(long, const void *, size_t); - - typedef struct - { diff --git a/extra/libtar/libtar-1.2.20-free.patch b/extra/libtar/libtar-1.2.20-free.patch new file mode 100644 index 000000000..3a7b028d5 --- /dev/null +++ b/extra/libtar/libtar-1.2.20-free.patch @@ -0,0 +1,22 @@ +stdlib.h is required for free() + +--- lib/output.c ++++ lib/output.c +@@ -20,6 +20,7 @@ + #include <sys/param.h> + + #ifdef STDC_HEADERS ++# include <stdlib.h> + # include <string.h> + #endif + +--- lib/wrapper.c ++++ lib/wrapper.c +@@ -18,6 +18,7 @@ + #include <errno.h> + + #ifdef STDC_HEADERS ++# include <stdlib.h> + # include <string.h> + #endif + diff --git a/extra/maxima/PKGBUILD b/extra/maxima/PKGBUILD index de2c8f8fa..275cbd3a2 100644 --- a/extra/maxima/PKGBUILD +++ b/extra/maxima/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 192520 2013-08-13 12:39:35Z juergen $ +# $Id: PKGBUILD 196297 2013-10-11 08:53:38Z juergen $ # Maintainer: Ronald van Haren <ronald.archlinux.org> # Contributor: Damir Perisa <damir@archlinux.org> pkgname=maxima pkgver=5.30.0 -pkgrel=3 +pkgrel=4 pkgdesc="Maxima - a sophisticated computer algebra system" arch=('i686' 'x86_64' 'mips64el') license=('GPL') @@ -12,7 +12,7 @@ url="http://maxima.sourceforge.net" if [ "${CARCH}" == "mips64el" ] ; then depends=('clisp' 'texinfo' 'sh') else - depends=('sbcl=1.1.10' 'texinfo' 'sh') + depends=('sbcl=1.1.12' 'texinfo' 'sh') fi makedepends=('python2') optdepends=('gnuplot: plotting capabilities' 'rlwrap: readline support via /usr/bin/rmaxima' 'tk: graphical xmaxima interface') diff --git a/extra/mercurial/PKGBUILD b/extra/mercurial/PKGBUILD index 3186d2cc7..d42e69a3e 100644 --- a/extra/mercurial/PKGBUILD +++ b/extra/mercurial/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 193933 2013-09-07 05:53:52Z giovanni $ +# $Id: PKGBUILD 196286 2013-10-10 15:22:37Z giovanni $ # Maintainer: Giovanni Scafora <giovanni@archlinux.org> # Contributor: Douglas Soares de Andrade <douglas@archlinux.org> pkgname=mercurial -pkgver=2.7.1 +pkgver=2.7.2 pkgrel=1 pkgdesc="A scalable distributed SCM tool" arch=('i686' 'x86_64' 'mips64el') @@ -14,7 +14,7 @@ optdepends=('tk: for the hgk GUI') backup=('etc/mercurial/hgrc') source=("http://mercurial.selenic.com/release/${pkgname}-${pkgver}.tar.gz" 'mercurial.profile') -md5sums=('3313de3667902ae4dc82f29f5280294d' +md5sums=('ec00ddc6aadfea1e11b23650cb741d53' '43e1d36564d4c7fbe9a091d3ea370a44') package() { diff --git a/extra/mpg123/PKGBUILD b/extra/mpg123/PKGBUILD index 15855b9e2..c0b4d752e 100644 --- a/extra/mpg123/PKGBUILD +++ b/extra/mpg123/PKGBUILD @@ -1,13 +1,13 @@ -# $Id: PKGBUILD 186257 2013-05-23 01:22:39Z eric $ +# $Id: PKGBUILD 196183 2013-10-08 02:41:01Z eric $ # Maintainer: Eric Bélanger <eric@archlinux.org> pkgname=mpg123 -pkgver=1.15.4 +pkgver=1.16.0 pkgrel=1 pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3" arch=('i686' 'x86_64' 'mips64el') url="http://sourceforge.net/projects/mpg123" -license=('GPL2' 'LGPL2.1') +license=('LGPL2.1') depends=('libltdl' 'alsa-lib') makedepends=('sdl' 'jack' 'libpulse') optdepends=('sdl: for sdl audio support' @@ -15,7 +15,7 @@ optdepends=('sdl: for sdl audio support' 'libpulse: for pulse audio support') options=('!libtool') source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2{,.sig}) -sha1sums=('f39d927bcf7abf4f9d857f10cd97c8ceccaffbfa' +sha1sums=('73105629f8d4b9426ec9fe93455a8271a96c4ae4' 'SKIP') build() { diff --git a/extra/networkmanager/PKGBUILD b/extra/networkmanager/PKGBUILD index 2b7eb91f4..8ea6c3cf7 100644 --- a/extra/networkmanager/PKGBUILD +++ b/extra/networkmanager/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 196155 2013-10-07 12:16:03Z jgc $ +# $Id: PKGBUILD 196312 2013-10-11 11:02:08Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Maintainer: Jan de Groot <jgc@archlinxu.org> # Contributor: Wael Nasreddine <gandalf@siemens-mobiles.org> @@ -8,7 +8,7 @@ pkgname=networkmanager _pkgname=NetworkManager -pkgver=0.9.8.6 +pkgver=0.9.8.8 pkgrel=1 pkgdesc="Network Management daemon" arch=('i686' 'x86_64' 'mips64el') @@ -28,7 +28,7 @@ install=networkmanager.install #source=(git://anongit.freedesktop.org/NetworkManager/NetworkManager#commit=93c1041 source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver:0:3}/$_pkgname-$pkgver.tar.xz NetworkManager.conf disable_set_hostname.patch) -sha256sums=('2289800de66fd7f8c141e029923beb39f43952e442b3cb864e3bf73b26c0c369' +sha256sums=('8a0a3de9cd2897f778193aa5f04c8a6f6f87fe07f7a088aab26d2b35baa17a55' '44b048804c7c0b8b3b0c29b8632b6ad613c397d0a1635ec918e10c0fbcdadf21' '25056837ea92e559f09563ed817e3e0cd9333be861b8914e45f62ceaae2e0460') diff --git a/extra/opencv/PKGBUILD b/extra/opencv/PKGBUILD index 95f0f4dfd..ac07b0dcf 100644 --- a/extra/opencv/PKGBUILD +++ b/extra/opencv/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 191907 2013-08-01 06:53:40Z bpiotrowski $ +# $Id: PKGBUILD 196269 2013-10-10 11:00:54Z schiv $ # Maintainer: Ray Rashif <schiv@archlinux.org> # Contributor: Tobias Powalowski <tpowa@archlinux.org> @@ -6,7 +6,7 @@ pkgbase=opencv pkgname=('opencv' 'opencv-samples') _realname=OpenCV pkgver=2.4.6.1 -pkgrel=2 +pkgrel=3 pkgdesc="Open Source Computer Vision Library" arch=('i686' 'x86_64' 'mips64el') license=('BSD') diff --git a/extra/php-xcache/PKGBUILD b/extra/php-xcache/PKGBUILD index 470da9072..454c3a5d2 100644 --- a/extra/php-xcache/PKGBUILD +++ b/extra/php-xcache/PKGBUILD @@ -1,20 +1,18 @@ -# $Id: PKGBUILD 195126 2013-09-25 11:18:14Z pierre $ +# $Id: PKGBUILD 196293 2013-10-11 06:26:09Z pierre $ # Maintainer: Pierre Schmitz <pierre@archlinux.de> pkgname=php-xcache -pkgver=3.1.0dev -_svnrev=1394 -pkgrel=14 +pkgver=3.1.0 +pkgrel=1 arch=('i686' 'x86_64' 'mips64el') pkgdesc='A PHP opcode cacher' url='http://xcache.lighttpd.net/' depends=('php') -makedepends=('subversion') license=('custom') -source=("xcache-${pkgver}::svn://svn.lighttpd.net/xcache/trunk/#revision=${_svnrev}" +source=("http://xcache.lighttpd.net/pub/Releases/${pkgver}/xcache-${pkgver}.tar.bz2" 'xcache.ini') backup=('etc/php/conf.d/xcache.ini') -md5sums=('SKIP' +md5sums=('e5816d47d52be200b959bf69a673ff74' '8fd9ce537ada9463c4b0c042243158c0') build() { diff --git a/extra/postgresql-old-upgrade/PKGBUILD b/extra/postgresql-old-upgrade/PKGBUILD index 07109de00..ca2ff9e0f 100644 --- a/extra/postgresql-old-upgrade/PKGBUILD +++ b/extra/postgresql-old-upgrade/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 186424 2013-05-26 09:25:57Z bluewind $ +# $Id: PKGBUILD 196303 2013-10-11 09:53:41Z dan $ # Maintainer: Dan McGee <dan@archlinux.org> pkgname=postgresql-old-upgrade -pkgver=9.1.9 +pkgver=9.2.5 _majorver=${pkgver%.*} -pkgrel=2 +pkgrel=1 pkgdesc="PostgreSQL build for migrating between major versions with pg_upgrade" arch=('i686' 'x86_64' 'mips64el') url="http://www.postgresql.org/" @@ -47,5 +47,5 @@ package() { rm -rf "${pkgdir}/opt/pgsql-${_majorver}/include/" } -md5sums=('6b5ea53dde48fcd79acfc8c196b83535') -sha256sums=('28a533e181009308722e8b3c51f1ea7224ab910c380ac1a86f07118667602dd8') +md5sums=('e8438e0ed5e6371741be7697886e7340') +sha256sums=('22c1edfd6a404bb15fba655863e94f09a10716ded1910a8bc98ee85f413007a4') diff --git a/extra/postgresql/PKGBUILD b/extra/postgresql/PKGBUILD index d4e739b6c..beca39e8f 100644 --- a/extra/postgresql/PKGBUILD +++ b/extra/postgresql/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 186423 2013-05-26 09:25:56Z bluewind $ +# $Id: PKGBUILD 196301 2013-10-11 09:52:27Z dan $ # Maintainer: Dan McGee <dan@archlinux.org> pkgbase=postgresql pkgname=('postgresql-libs' 'postgresql-docs' 'postgresql') -pkgver=9.2.4 +pkgver=9.3.1 _majorver=${pkgver%.*} -pkgrel=2 +pkgrel=3 arch=('i686' 'x86_64' 'mips64el') url="http://www.postgresql.org/" license=('custom:PostgreSQL') @@ -14,20 +14,20 @@ source=(http://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar postgresql-run-socket.patch postgresql.pam postgresql.logrotate postgresql.service postgresql.tmpfiles.conf postgresql-check-db-dir) -md5sums=('6ee5bb53b97da7c6ad9cb0825d3300dd' +md5sums=('c003d871f712d4d3895956b028a96e74' '75c579eed03ffb2312631f0b649175b4' '96f82c38f3f540b53f3e5144900acf17' 'd28e443f9f65a5712c52018b84e27137' '89b48774b0dae7c37fbb0e907c3c1db8' '1c5a1f99e8e93776c593c468e2612985' - '505e0e4abfc746cae9558584d471a03c') -sha256sums=('d97dd918a88a4449225998f46aafa85216a3f89163a3411830d6890507ffae93' + 'ea7f9f914900e60835d20cb95010e63c') +sha256sums=('8ea4a7a92a6f5a79359b02e683ace335c5eb45dffe7f8a681a9ce82470a8a0b8' '8538619cb8bea51078b605ad64fe22abd6050373c7ae3ad6595178da52f6a7d9' '57dfd072fd7ef0018c6b0a798367aac1abb5979060ff3f9df22d1048bb71c0d5' '6abb842764bbed74ea4a269d24f1e73d1c0b1d8ecd6e2e6fb5fb10590298605e' 'c69b614731fdd3f4e127540814f5999f423363523c5209e252e19b1d4362ad68' '7e086d70e0dcaa6ce45693b4e826ce92d770192b3aff5642319b1ef279d88dc4' - '3a3279d290f556bf7a362670e32b491794f47ed218f6b8c6acef366a3291f669') + 'b3ed31e5882e5bdf4515d488d3f2db874ff5561be3091eab29810f831038a888') build() { cd "${srcdir}/postgresql-${pkgver}" @@ -64,11 +64,14 @@ package_postgresql-libs() { install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/postgresql-libs/LICENSE" # install libs - for dir in src/interfaces src/bin/pg_config src/bin/psql; do + for dir in src/interfaces src/bin/pg_config src/bin/psql src/bin/pg_dump; do make -C ${dir} DESTDIR="${pkgdir}" install done install -D -m644 doc/src/sgml/man1/pg_config.1 "${pkgdir}/usr/share/man/man1/pg_config.1" + install -D -m644 doc/src/sgml/man1/pg_dump.1 "${pkgdir}/usr/share/man/man1/pg_dump.1" + install -D -m644 doc/src/sgml/man1/pg_dumpall.1 "${pkgdir}/usr/share/man/man1/pg_dumpall.1" + install -D -m644 doc/src/sgml/man1/pg_restore.1 "${pkgdir}/usr/share/man/man1/pg_restore.1" install -D -m644 doc/src/sgml/man1/psql.1 "${pkgdir}/usr/share/man/man1/psql.1" cd src/include @@ -78,6 +81,7 @@ package_postgresql-libs() { # these headers are needed by the public headers of the interfaces install -m644 pg_config.h "${pkgdir}/usr/include/" install -m644 pg_config_os.h "${pkgdir}/usr/include/" + install -m644 pg_config_ext.h "${pkgdir}/usr/include/" install -m644 postgres_ext.h "${pkgdir}/usr/include/" install -m644 libpq/libpq-fs.h "${pkgdir}/usr/include/libpq/" install -m644 pg_config_manual.h "${pkgdir}/usr/include/" @@ -108,7 +112,7 @@ package_postgresql-docs() { package_postgresql() { pkgdesc="A sophisticated object-relational DBMS" - backup=('etc/conf.d/postgresql' 'etc/pam.d/postgresql' 'etc/logrotate.d/postgresql') + backup=('etc/pam.d/postgresql' 'etc/logrotate.d/postgresql') depends=("postgresql-libs>=${pkgver}" 'krb5' 'libxml2' 'readline>=6.0' 'openssl>=1.0.0') optdepends=('python2: for PL/Python support' 'perl: for PL/Perl support' @@ -124,10 +128,13 @@ package_postgresql() { make -C doc/src/sgml DESTDIR="${pkgdir}" install-man # we don't want these, they are in the -libs package - for dir in src/interfaces src/bin/pg_config src/bin/psql; do + for dir in src/interfaces src/bin/pg_config src/bin/psql src/bin/pg_dump; do make -C ${dir} DESTDIR="${pkgdir}" uninstall done rm "${pkgdir}/usr/share/man/man1/pg_config.1" + rm "${pkgdir}/usr/share/man/man1/pg_dump.1" + rm "${pkgdir}/usr/share/man/man1/pg_dumpall.1" + rm "${pkgdir}/usr/share/man/man1/pg_restore.1" rm "${pkgdir}/usr/share/man/man1/psql.1" # install license diff --git a/extra/postgresql/postgresql-check-db-dir b/extra/postgresql/postgresql-check-db-dir index 542c82209..e563d114c 100755 --- a/extra/postgresql/postgresql-check-db-dir +++ b/extra/postgresql/postgresql-check-db-dir @@ -16,9 +16,9 @@ then fi # PGMAJORVERSION is major version -PGMAJORVERSION=9.2 +PGMAJORVERSION=9.3 # PREVMAJORVERSION is the previous major version, e.g., 8.4, for upgrades -PREVMAJORVERSION=9.1 +PREVMAJORVERSION=9.2 # Check for the PGDATA structure if [ -f "$PGDATA/PG_VERSION" ] && [ -d "$PGDATA/base" ] @@ -35,7 +35,7 @@ then else echo $"An old version of the database format was found." echo $"You need to dump and reload before using PostgreSQL $PGMAJORVERSION." - echo $"See http://www.postgresql.org/docs/9.2/static/upgrading.html" + echo $"See http://www.postgresql.org/docs/$PGMAJORVERSION/static/upgrading.html" exit 1 fi else diff --git a/extra/qemu/PKGBUILD b/extra/qemu/PKGBUILD index b97721f09..282bc6307 100644 --- a/extra/qemu/PKGBUILD +++ b/extra/qemu/PKGBUILD @@ -1,12 +1,12 @@ -# $Id: PKGBUILD 195926 2013-10-05 14:25:32Z tpowa $ +# $Id: PKGBUILD 196267 2013-10-10 06:36:39Z tpowa $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> pkgname=('qemu' 'libcacard') -pkgver=1.6.0 -pkgrel=4 +pkgver=1.6.1 +pkgrel=1 arch=('i686' 'x86_64') license=('GPL2' 'LGPL2.1') url="http://wiki.qemu.org/Index.html" -makedepends=('texi2html' 'perl' 'python2') +makedepends=('texi2html' 'perl' 'python2' 'spice-protocol') install=qemu.install source=(http://wiki.qemu.org/download/${pkgname}-${pkgver}.tar.bz2 65-kvm.rules) @@ -20,7 +20,8 @@ build () ./configure --prefix=/usr --sysconfdir=/etc --audio-drv-list='pa alsa sdl' \ --python=/usr/bin/python2 --smbd=/usr/bin/smbd \ --enable-docs --enable-mixemu --libexecdir=/usr/lib/qemu \ - --disable-gtk --enable-linux-aio --enable-seccomp --localstatedir=/var + --disable-gtk --enable-linux-aio --enable-seccomp \ + --enable-spice --localstatedir=/var make } @@ -29,7 +30,7 @@ package_qemu() { depends=('pixman' 'libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2' 'gnutls>=2.4.1' 'bluez-libs' 'vde2' 'util-linux' 'curl' 'libsasl' 'libgl' 'libpulse' 'seabios' 'libcap-ng' 'libaio' 'libseccomp' - 'libiscsi' 'libcacard') + 'libiscsi' 'libcacard' 'spice') backup=('etc/qemu/target-x86_64.conf') cd "${srcdir}/${pkgname}-${pkgver}" make DESTDIR="${pkgdir}" libexecdir="/usr/lib/qemu" install @@ -54,6 +55,7 @@ package_qemu() { esac done # remove libcacard files + rm -rf ${pkgdir}/usr/include/cacard rm -rf ${pkgdir}/usr/lib/libcacard* rm -rf ${pkgdir}/usr/lib/pkgconfig/libcacard.pc rm -rf ${pkgdir}/usr/bin/vscclient @@ -65,9 +67,11 @@ package_libcacard() { depends=('nss' 'libaio' 'libcap-ng' 'libiscsi' 'curl' 'vde2') mkdir -p ${pkgdir}/usr/bin mkdir -p ${pkgdir}/usr/lib/pkgconfig + mkdir -p ${pkgdir}/usr/include/cacard + cp -a ${srcdir}/qemu-${pkgver}/libcacard/*.h ${pkgdir}/usr/include/cacard/ cp -a ${srcdir}/qemu-${pkgver}/.libs/libcacard.so* ${pkgdir}/usr/lib/ cp -a ${srcdir}/qemu-${pkgver}/libcacard.pc ${pkgdir}/usr/lib/pkgconfig/ cp -a ${srcdir}/qemu-${pkgver}/.libs/vscclient ${pkgdir}/usr/bin/ } -md5sums=('f3f39308472d629aca57a255a0c91ba9' +md5sums=('3a897d722457c5a895cd6ac79a28fda0' '9d6de26867a05c306157e3d3c612b28a') diff --git a/extra/samba/PKGBUILD b/extra/samba/PKGBUILD index 4ff6ed60a..878a7c708 100644 --- a/extra/samba/PKGBUILD +++ b/extra/samba/PKGBUILD @@ -10,11 +10,11 @@ pkgbase=samba pkgname=('libwbclient' 'smbclient' 'samba') -pkgver=4.0.9 +pkgver=4.0.10 # We use the 'A' to fake out pacman's version comparators. Samba chooses # to append 'a','b',etc to their subsequent releases, which pamcan # misconstrues as alpha, beta, etc. Bad samba! -_realver=4.0.9 +_realver=4.0.10 pkgrel=1 arch=(i686 x86_64 mips64el) url="http://www.samba.org" @@ -245,7 +245,7 @@ sys.path.insert(0, '/usr/lib/python${_pyver}/site-packages')" \ # copy ldap example install -D -m644 ${srcdir}/samba-${_realver}/examples/LDAP/samba.schema ${pkgdir}/usr/share/doc/samba/examples/LDAP/samba.schema } -md5sums=('f5f2ad0e2aabf024e2e3e2f297a0631a' +md5sums=('220740f75035b2221e3b9a848e19d1ea' '5697da77590ec092cc8a883bae06093c' 'ee8507839745cf17d2fb5401be7da6a8' '96f82c38f3f540b53f3e5144900acf17' diff --git a/extra/sbcl/PKGBUILD b/extra/sbcl/PKGBUILD index 014f6d1f9..0c4e1146f 100644 --- a/extra/sbcl/PKGBUILD +++ b/extra/sbcl/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 192518 2013-08-13 12:04:18Z juergen $ +# $Id: PKGBUILD 196298 2013-10-11 08:53:55Z juergen $ # Contributor: John Proctor <jproctor@prium.net> # Contributor: Daniel White <daniel@whitehouse.id.au> # Maintainer: Juergen Hoetzel <juergen@archlinux.org> # Contributor: Leslie Polzer (skypher) pkgname=sbcl -pkgver=1.1.10 +pkgver=1.1.12 pkgrel=1 pkgdesc="Steel Bank Common Lisp" url="http://www.sbcl.org/" @@ -18,30 +18,13 @@ makedepends=('sbcl') makedepends=('clisp') install=sbcl.install source=("http://downloads.sourceforge.net/project/sbcl/sbcl/$pkgver/$pkgname-$pkgver-source.tar.bz2" - "arch-fixes.lisp" - "ftp://ftp.gnu.org/pub/gnu/texinfo/texinfo-4.13a.tar.gz" - "texinfo-4.13a-data_types.patch") -md5sums=('ccec396f1bef6468be1f18bcc60231fe' - '7ac0c1936547f4278198b8bf7725204d' - '71ba711519209b5fb583fed2b3d86fcb' - 'd8574782ff7def1e2dc5c291dbeaec18') - - -# Temporary Texinfo legacy build -# See: http://sourceforge.net/mailarchive/message.php?msg_id=30747919 - -build-texinfo-legacy() { - cd ${srcdir}/texinfo-4.13 - patch -Np1 -i $srcdir/texinfo-4.13a-data_types.patch - mkdir -p $srcdir/texinfo-instroot - ./configure --prefix=$srcdir/texinfo-instroot - make install -} + "arch-fixes.lisp") +md5sums=('817e0606e4615e758c0bf3d381197711' + '7ac0c1936547f4278198b8bf7725204d') -build() { - build-texinfo-legacy - export PATH=$srcdir/texinfo-instroot/bin:$PATH + +build() { cd "$srcdir/$pkgname-$pkgver" export CFLAGS+=" -D_GNU_SOURCE -fno-omit-frame-pointer -DSBCL_HOME=/usr/lib/sbcl" diff --git a/extra/soprano/PKGBUILD b/extra/soprano/PKGBUILD index 444f74dd0..f4aa76497 100644 --- a/extra/soprano/PKGBUILD +++ b/extra/soprano/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 189903 2013-07-11 07:11:16Z andrea $ +# $Id: PKGBUILD 196389 2013-10-12 16:52:25Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Tobias Powalowski <tpowa@archlinux.org> pkgname=soprano -pkgver=2.9.3 +pkgver=2.9.4 pkgrel=1 pkgdesc='A library which provides a highly usable object-oriented C++/Qt4 framework for RDF data' arch=('i686' 'x86_64' 'mips64el') @@ -13,7 +13,7 @@ depends=('qt4' 'libiodbc' 'virtuoso-base' 'redland') makedepends=('cmake' 'doxygen') [ "$CARCH" != "mips64el" ] && makedepends+=('java-environment') source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2") -md5sums=('714a729809943efd4b536ed15cd66aca') +md5sums=('91413e5783efeee0beb747ea4c5c9ef0') prepare() { mkdir build diff --git a/community/spice/PKGBUILD b/extra/spice/PKGBUILD index f409fc994..b5878e11d 100644 --- a/community/spice/PKGBUILD +++ b/extra/spice/PKGBUILD @@ -1,22 +1,23 @@ -# $Id: PKGBUILD 94713 2013-07-29 10:19:34Z spupykin $ +# $Id: PKGBUILD 196189 2013-10-08 07:21:39Z tpowa $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: Patryk Kowalczyk < patryk at kowalczyk dot ws> pkgname=spice pkgver=0.12.4 -pkgrel=1 +pkgrel=2 pkgdesc="SPICE client and server" arch=('i686' 'x86_64') url="http://spice-space.org" -license=('GPL') -makedepends=(python2 python2-pyparsing qemu mesa) -depends=(pixman spice-protocol alsa-utils libxrandr libxinerama libsasl openssl celt0.5.1 libgl glu) +license=('LGPL2.1') +depends=(alsa-lib celt0.5.1 libcacard libjpeg-turbo libsasl libxinerama libxfixes libxrandr pixman) +makedepends=(python2-pyparsing qemu spice-protocol) +options=(!libtool) source=(http://spice-space.org/download/releases/$pkgname-$pkgver.tar.bz2) md5sums=('325b1c42ce24e75de45a75876b73a8bd') build() { cd "$srcdir/$pkgname-$pkgver" - PYTHON=python2 ./configure --prefix=/usr --enable-opengl --enable-client + PYTHON=python2 ./configure --prefix=/usr --disable-static --enable-smartcard --enable-client make } diff --git a/extra/suil/PKGBUILD b/extra/suil/PKGBUILD index 6aaa1f6f6..b2e94ba4b 100644 --- a/extra/suil/PKGBUILD +++ b/extra/suil/PKGBUILD @@ -3,8 +3,8 @@ # Contributor: speps <speps at aur dot archlinux dot org> pkgname=suil -pkgver=0.6.14 -pkgrel=2 +pkgver=0.6.16 +pkgrel=1 pkgdesc="A lightweight C library for loading and wrapping LV2 plugin UIs" arch=('i686' 'x86_64' 'mips64el') url="http://drobilla.net/software/suil/" @@ -14,7 +14,7 @@ makedepends=('python2' 'qt4' 'gtk2') optdepends=('qt4: Qt 4.x UI wrapping support' 'gtk2: GTK+ 2.x UI wrapping support') source=("http://download.drobilla.net/$pkgname-$pkgver.tar.bz2") -md5sums=('c9738de0d6974aca1fe75dd280114158') +md5sums=('644ccd95179f32f01cee0107a1ad88c9') build() { cd "$srcdir/$pkgname-$pkgver" diff --git a/extra/swell-foop/PKGBUILD b/extra/swell-foop/PKGBUILD index dccd864ce..dabe2ea53 100644 --- a/extra/swell-foop/PKGBUILD +++ b/extra/swell-foop/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 196138 2013-10-07 11:53:31Z jgc $ +# $Id: PKGBUILD 196386 2013-10-12 16:49:43Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Jan de Groot <jgc@archlinux.org> pkgname=swell-foop -pkgver=3.10.0 +pkgver=3.10.1 pkgrel=1 pkgdesc="Clear the screen by removing groups of colored and shaped tiles" arch=('i686' 'x86_64' 'mips64el') @@ -17,7 +17,7 @@ install=swell-foop.install url="https://live.gnome.org/Swell%20Foop" groups=('gnome-extra') source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:4}/$pkgname-$pkgver.tar.xz) -sha256sums=('d96c5cbd071a97038cc281d6a85902721ab5fc50d27981dc2c37b003126a43a6') +sha256sums=('5b750c3b5100d2b1a1c4d73387c478ac6dcdaf27dd3b168da652b0c26bceb611') build() { cd $pkgname-$pkgver diff --git a/extra/uim/PKGBUILD b/extra/uim/PKGBUILD index dc1da967f..cb424a7fb 100644 --- a/extra/uim/PKGBUILD +++ b/extra/uim/PKGBUILD @@ -1,20 +1,19 @@ -# $Id: PKGBUILD 189234 2013-07-01 01:03:08Z bisson $ +# $Id: PKGBUILD 196248 2013-10-09 16:10:58Z bisson $ # Maintainer: Gaetan Bisson <bisson@archlinux.org> # Contributor: damir <damir@archlinux.org> pkgname=uim pkgver=1.8.6 -pkgrel=1 +pkgrel=2 pkgdesc='Multilingual input method library' url='http://code.google.com/p/uim/' license=('custom:BSD') arch=('i686' 'x86_64' 'mips64el') depends=('libxft' 'libedit' 'anthy' 'm17n-lib') -makedepends=('intltool' 'gettext' 'qt4' 'gtk2' 'gtk3' 'gnome-panel') +makedepends=('intltool' 'gettext' 'qt4' 'gtk2' 'gtk3') optdepends=('qt4: immodule and helper applications' 'gtk2: immodule and helper applications' - 'gtk3: immodules and helper applications' - 'gnome-panel: gnome applet indicator') + 'gtk3: immodules and helper applications') options=('!libtool') source=("https://uim.googlecode.com/files/${pkgname}-${pkgver}.tar.gz") sha1sums=('409c30b31b9e58e3c18cb7862933487b0585cd1d') diff --git a/extra/v4l-utils/PKGBUILD b/extra/v4l-utils/PKGBUILD index 83c9ac161..32eba6ff4 100644 --- a/extra/v4l-utils/PKGBUILD +++ b/extra/v4l-utils/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 187074 2013-06-03 11:16:59Z allan $ +# $Id: PKGBUILD 196345 2013-10-11 18:25:19Z thomas $ # Maintainer: Thomas Bächler <thomas@archlinux.org> pkgname=v4l-utils -pkgver=0.9.5 -pkgrel=2 +pkgver=1.0.0 +pkgrel=1 pkgdesc="Userspace tools and conversion library for Video 4 Linux" arch=('i686' 'x86_64' 'mips64el') url="http://freshmeat.net/projects/libv4l" @@ -16,7 +16,7 @@ optdepends=('qt4') depends=('glibc' 'gcc-libs' 'sysfsutils' 'libjpeg-turbo') source=(http://linuxtv.org/downloads/v4l-utils/${pkgname}-${pkgver}.tar.bz2 http://linuxtv.org/downloads/v4l-utils/${pkgname}-${pkgver}.tar.bz2.asc) -sha256sums=('6c9f1be981d5763069e0969ebe426c39da5a7d738865367e390e3b486f1b502c' +sha256sums=('1de3882099e04e89e354675ee408b82c8ac8afd3ca6ab27ea321771901285f30' 'SKIP') options=(!libtool) diff --git a/extra/wayland/PKGBUILD b/extra/wayland/PKGBUILD index 5884f67a8..24faa49fd 100644 --- a/extra/wayland/PKGBUILD +++ b/extra/wayland/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 193712 2013-08-28 20:08:20Z lcarlier $ +# $Id: PKGBUILD 196331 2013-10-11 14:56:14Z tomegun $ # Maintainer: Tom Gundersen <teg@jklm.no> # Contributor: Sébastien Luttringer # Contributor: Joel Teichroeb <joel@teichroeb.net> pkgname=wayland -pkgver=1.2.1 +pkgver=1.3.0 pkgrel=1 pkgdesc='A computer display server protocol' arch=('i686' 'x86_64' 'mips64el') @@ -14,7 +14,7 @@ depends=('libffi' 'expat') makedepends=('doxygen') options=(!libtool) source=("http://wayland.freedesktop.org/releases/$pkgname-$pkgver.tar.xz") -sha1sums=('2214b690cb5a4f9695d287f27730c4368e6ef829') +sha1sums=('febbbfc8d76ed0b2157077d50cb6e5ceb1aa47de') build() { cd $pkgname-$pkgver diff --git a/extra/weechat/PKGBUILD b/extra/weechat/PKGBUILD index e61c92471..8154b0a98 100644 --- a/extra/weechat/PKGBUILD +++ b/extra/weechat/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 193946 2013-09-07 16:40:23Z andrea $ +# $Id: PKGBUILD 196288 2013-10-10 15:27:58Z giovanni $ # Maintainer: Giovanni Scafora <giovanni@archlinux.org> # Contributor: lucke <lucke at o2 dot pl> pkgname=weechat -pkgver=0.4.1 -pkgrel=4 +pkgver=0.4.2 +pkgrel=1 pkgdesc="Fast, light and extensible IRC client (curses UI)" arch=('i686' 'x86_64' 'mips64el') url="http://www.weechat.org/" @@ -14,7 +14,7 @@ makedepends=('cmake' 'pkg-config' 'perl' 'python2' 'lua' 'tcl' 'ruby' 'aspell' ' optdepends=('perl' 'python2' 'lua' 'tcl' 'ruby' 'aspell' 'guile') options=('!libtool') source=("http://www.weechat.org/files/src/${pkgname}-${pkgver}.tar.bz2") -md5sums=('071d6f1cd21c892cae126af21095c43f') +md5sums=('fbbb4c319474d4a3b123fea7e8402fa2') prepare() { mkdir build diff --git a/extra/xorg-server/0001-Avoid-use-after-free-in-dix-dixfonts.c-doImageText-C.patch b/extra/xorg-server/0001-Avoid-use-after-free-in-dix-dixfonts.c-doImageText-C.patch new file mode 100644 index 000000000..b550bcedd --- /dev/null +++ b/extra/xorg-server/0001-Avoid-use-after-free-in-dix-dixfonts.c-doImageText-C.patch @@ -0,0 +1,76 @@ +From 7bddc2ba16a2a15773c2ea8947059afa27727764 Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Mon, 16 Sep 2013 21:47:16 -0700 +Subject: [PATCH] Avoid use-after-free in dix/dixfonts.c: doImageText() + [CVE-2013-4396] + +Save a pointer to the passed in closure structure before copying it +and overwriting the *c pointer to point to our copy instead of the +original. If we hit an error, once we free(c), reset c to point to +the original structure before jumping to the cleanup code that +references *c. + +Since one of the errors being checked for is whether the server was +able to malloc(c->nChars * itemSize), the client can potentially pass +a number of characters chosen to cause the malloc to fail and the +error path to be taken, resulting in the read from freed memory. + +Since the memory is accessed almost immediately afterwards, and the +X server is mostly single threaded, the odds of the free memory having +invalid contents are low with most malloc implementations when not using +memory debugging features, but some allocators will definitely overwrite +the memory there, leading to a likely crash. + +Reported-by: Pedro Ribeiro <pedrib@gmail.com> +Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> +Reviewed-by: Julien Cristau <jcristau@debian.org> +--- + dix/dixfonts.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/dix/dixfonts.c b/dix/dixfonts.c +index feb765d..2e34d37 100644 +--- a/dix/dixfonts.c ++++ b/dix/dixfonts.c +@@ -1425,6 +1425,7 @@ doImageText(ClientPtr client, ITclosurePtr c) + GC *pGC; + unsigned char *data; + ITclosurePtr new_closure; ++ ITclosurePtr old_closure; + + /* We're putting the client to sleep. We need to + save some state. Similar problem to that handled +@@ -1436,12 +1437,14 @@ doImageText(ClientPtr client, ITclosurePtr c) + err = BadAlloc; + goto bail; + } ++ old_closure = c; + *new_closure = *c; + c = new_closure; + + data = malloc(c->nChars * itemSize); + if (!data) { + free(c); ++ c = old_closure; + err = BadAlloc; + goto bail; + } +@@ -1452,6 +1455,7 @@ doImageText(ClientPtr client, ITclosurePtr c) + if (!pGC) { + free(c->data); + free(c); ++ c = old_closure; + err = BadAlloc; + goto bail; + } +@@ -1464,6 +1468,7 @@ doImageText(ClientPtr client, ITclosurePtr c) + FreeScratchGC(pGC); + free(c->data); + free(c); ++ c = old_closure; + err = BadAlloc; + goto bail; + } +-- +1.7.9.2 + diff --git a/extra/xorg-server/PKGBUILD b/extra/xorg-server/PKGBUILD index 8063d37e2..452ebc859 100644 --- a/extra/xorg-server/PKGBUILD +++ b/extra/xorg-server/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 194374 2013-09-15 07:40:13Z andyrtr $ +# $Id: PKGBUILD 196227 2013-10-08 22:59:23Z lcarlier $ # Maintainer: AndyRTR <andyrtr@archlinux.org> # Maintainer: Jan de Groot <jgc@archlinux.org> pkgbase=xorg-server pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-common' 'xorg-server-devel') pkgver=1.14.3 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64' 'mips64el') license=('custom') url="http://xorg.freedesktop.org" @@ -24,7 +24,8 @@ source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2 xvfb-run.1 10-quirks.conf loongson.patch - fb-rename-wfbDestroyGlyphCache.patch) + fb-rename-wfbDestroyGlyphCache.patch + 0001-Avoid-use-after-free-in-dix-dixfonts.c-doImageText-C.patch) sha256sums=('02125ae13a443dcbb55f964d5c37f1da2f58ad54c2102356037bec23c1b84f5e' '66e25f76a7496c429e0aff4b0670f168719bb0ceaeb88c6f2272f2bf3ed21162' 'd027776fac1f7675b0a9ee817502290b1c45f9c09b0f0a6bb058c35f92361e84' @@ -59,7 +60,12 @@ prepare() { # http://cgit.freedesktop.org/xorg/xserver/commit/fb/wfbrename.h?id=5047810a4c20fab444b8c6eb146c55dcdb0d4219 patch -Np1 -i ../fb-rename-wfbDestroyGlyphCache.patch + + # CVE-2013-4396: Use after free in Xserver handling of ImageText requests + # (to be included in xorg-server 1.15.0 and 1.14.4) + patch -Np1 -i ../0001-Avoid-use-after-free-in-dix-dixfonts.c-doImageText-C.patch } + build() { cd "${pkgbase}-${pkgver}" autoreconf -fi @@ -223,3 +229,14 @@ package_xorg-server-devel() { install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-devel" ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-devel/COPYING" } +sha256sums=('02125ae13a443dcbb55f964d5c37f1da2f58ad54c2102356037bec23c1b84f5e' + '66e25f76a7496c429e0aff4b0670f168719bb0ceaeb88c6f2272f2bf3ed21162' + 'd027776fac1f7675b0a9ee817502290b1c45f9c09b0f0a6bb058c35f92361e84' + 'e033f9bcc21980f7f0428e6ed6c362a3d55ad293b05fd6e6c6c1933b86f9e63a' + '26ee6ff255a60d7c1e136c612925eb63c86e85a4a3a55d531852ad9275526588' + 'bb63658d250c21bbfaf94c5417f2920ce5963ee1f7db6cac2b163a54f2e9b619' + 'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9' + '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776' + '94612f5c0d34a3b7152915c2e285c7b462e9d8e38d3539bd551a339498eac166' + 'd0832cc16b5e6c1dee2959055a4b327f5c87e2a67b5f427d654663057207b2c1' + '2b90ce92a900b6d4edda9ef33acdd3d2c2708fec2344175c2d8dfd4265f56d32') diff --git a/extra/xorg-xauth/PKGBUILD b/extra/xorg-xauth/PKGBUILD index 081b19d2c..6edbc76f4 100644 --- a/extra/xorg-xauth/PKGBUILD +++ b/extra/xorg-xauth/PKGBUILD @@ -1,9 +1,10 @@ -# $Id: PKGBUILD 154150 2012-03-23 19:14:18Z andyrtr $ +# $Id: PKGBUILD 196360 2013-10-12 08:39:11Z andyrtr $ +# Maintainer: Andreas Radke <andyrtr@archlinux.org> # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=xorg-xauth -pkgver=1.0.7 -pkgrel=1.1 +pkgver=1.0.8 +pkgrel=1 pkgdesc="X.Org authorization settings program" arch=(i686 x86_64 'mips64el') license=('custom') @@ -12,7 +13,7 @@ depends=('libxmu') makedepends=('xorg-util-macros') groups=('xorg-apps' 'xorg') source=(${url}/releases/individual/app/xauth-${pkgver}.tar.bz2) -sha1sums=('54f93f0539a98900c36c4f7c8ae933f77699dc7b') +sha256sums=('a8696ae7a50c699d5fb3a41408b60d98843d19ea46e9f09e391cb98c8f7fd4f7') build() { cd "${srcdir}/xauth-${pkgver}" diff --git a/kernels/linux-libre-rt/PKGBUILD b/kernels/linux-libre-rt/PKGBUILD index 601c9559f..5f310ddc0 100644 --- a/kernels/linux-libre-rt/PKGBUILD +++ b/kernels/linux-libre-rt/PKGBUILD @@ -10,12 +10,12 @@ pkgbase=linux-libre-rt # Build stock -LIBRE-RT kernel #pkgbase=linux-libre-custom # Build kernel with a different name _basekernel=3.10 -_releasever=10 -_rtpatchver=rt7 +_releasever=14 +_rtpatchver=rt9 _pkgver=${_basekernel}.${_releasever} pkgver=${_basekernel}.${_releasever}_${_rtpatchver} pkgrel=1 -_lxopkgver=${_basekernel}.10 # nearly always the same as pkgver +_lxopkgver=${_basekernel}.14 # nearly always the same as pkgver arch=('i686' 'x86_64' 'mips64el') url="http://linux-libre.fsfla.org/" license=('GPL2') @@ -36,10 +36,10 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn '3.10.6-logitech-dj.patch' "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2") md5sums=('d562fd52580a3b6b18b6eeb5921d1d5c' - '673ae6d60b4ce8acad930a06f9fe2e3f' - 'b634614a96f47a564bc32bc87afe587f' - '9dad7b1491caf056b10d4fbf54081988' - '6fb1660497947ec5c20405dc439b5c5a' + '33e33cc6a9f3f3fc0a760e9920bedc8b' + '303d1fbf2f5144628d67b65509325c52' + 'aee046ea7320dce066bb180facd7262a' + 'c21fb94a198752879b059a08d73cd3a6' '82496e68851d1960543a07ba51cdb44a' '2967cecc3af9f954ccc822fd63dca6ff' '8267264d9a8966e57fdacd1fa1fc65c4' @@ -47,7 +47,7 @@ md5sums=('d562fd52580a3b6b18b6eeb5921d1d5c' 'f3def2cefdcbb954c21d8505d23cc83c' 'd50c1ac47394e9aec637002ef3392bd1' '3ff40ca684cfe719723e627e2cef7cea' - '714134bcb52e243898036beacca2e7b7') + '832d858c373a180f5e1ac407049ce652') if [ "$CARCH" != "mips64el" ]; then # don't use the Loongson-specific patches on non-mips64el arches. unset source[${#source[@]}-1] diff --git a/kernels/linux-libre-rt/config.i686 b/kernels/linux-libre-rt/config.i686 index 8b98c58a5..80fc256ef 100644 --- a/kernels/linux-libre-rt/config.i686 +++ b/kernels/linux-libre-rt/config.i686 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 3.10.9 Kernel Configuration +# Linux/x86 3.10.4 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -674,12 +674,10 @@ CONFIG_I82365=m CONFIG_TCIC=m CONFIG_PCMCIA_PROBE=y CONFIG_PCCARD_NONSTATIC=y -CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI=m CONFIG_HOTPLUG_PCI_COMPAQ=m # CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set CONFIG_HOTPLUG_PCI_IBM=m -CONFIG_HOTPLUG_PCI_ACPI=y -CONFIG_HOTPLUG_PCI_ACPI_IBM=m CONFIG_HOTPLUG_PCI_CPCI=y CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m @@ -758,8 +756,8 @@ CONFIG_INET_XFRM_MODE_TRANSPORT=m CONFIG_INET_XFRM_MODE_TUNNEL=m CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y -CONFIG_INET_DIAG=m -CONFIG_INET_TCP_DIAG=m +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y CONFIG_INET_UDP_DIAG=m CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m @@ -1630,7 +1628,7 @@ CONFIG_AD525X_DPOT_I2C=m # CONFIG_AD525X_DPOT_SPI is not set # CONFIG_DUMMY_IRQ is not set # CONFIG_IBM_ASM is not set -# CONFIG_HWLAT_DETECTOR is not set +CONFIG_HWLAT_DETECTOR=m CONFIG_PHANTOM=m CONFIG_INTEL_MID_PTI=m CONFIG_SGI_IOC4=m diff --git a/kernels/linux-libre-rt/config.x86_64 b/kernels/linux-libre-rt/config.x86_64 index ffa3a2ca0..d12fc66ab 100644 --- a/kernels/linux-libre-rt/config.x86_64 +++ b/kernels/linux-libre-rt/config.x86_64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 3.10.5-1 Kernel Configuration +# Linux/x86 3.10.10 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -163,7 +163,7 @@ CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y CONFIG_BLK_CGROUP=y # CONFIG_DEBUG_BLK_CGROUP is not set -CONFIG_CHECKPOINT_RESTORE=y +# CONFIG_CHECKPOINT_RESTORE is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y @@ -646,9 +646,7 @@ CONFIG_YENTA_TOSHIBA=y CONFIG_PD6729=m CONFIG_I82092=m CONFIG_PCCARD_NONSTATIC=y -CONFIG_HOTPLUG_PCI=y -CONFIG_HOTPLUG_PCI_ACPI=y -CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI=m CONFIG_HOTPLUG_PCI_CPCI=y CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m @@ -735,8 +733,8 @@ CONFIG_INET_XFRM_MODE_TRANSPORT=m CONFIG_INET_XFRM_MODE_TUNNEL=m CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y -CONFIG_INET_DIAG=m -CONFIG_INET_TCP_DIAG=m +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y CONFIG_INET_UDP_DIAG=m CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m @@ -1901,7 +1899,6 @@ CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m CONFIG_MD_MULTIPATH=m CONFIG_MD_FAULTY=m -# CONFIG_BCACHE is not set CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set CONFIG_DM_BUFIO=m @@ -5679,7 +5676,6 @@ CONFIG_PANIC_ON_OOPS_VALUE=0 # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y -CONFIG_TRACE_IRQFLAGS=y CONFIG_STACKTRACE=y CONFIG_DEBUG_BUGVERBOSE=y CONFIG_DEBUG_MEMORY_INIT=y @@ -5718,10 +5714,8 @@ CONFIG_TRACING_SUPPORT=y CONFIG_FTRACE=y CONFIG_FUNCTION_TRACER=y CONFIG_FUNCTION_GRAPH_TRACER=y -CONFIG_IRQSOFF_TRACER=y -CONFIG_INTERRUPT_OFF_HIST=y -CONFIG_PREEMPT_TRACER=y -CONFIG_PREEMPT_OFF_HIST=y +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_PREEMPT_TRACER is not set CONFIG_SCHED_TRACER=y CONFIG_WAKEUP_LATENCY_HIST=y CONFIG_MISSED_TIMER_OFFSETS_HIST=y diff --git a/libre/calibre-libre/PKGBUILD b/libre/calibre-libre/PKGBUILD index f1eab5401..ce9cfa040 100644 --- a/libre/calibre-libre/PKGBUILD +++ b/libre/calibre-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 98047 2013-10-04 15:29:48Z jelle $ +# $Id: PKGBUILD 98485 2013-10-11 18:19:46Z jelle $ # Maintainer: jelle van der Waa <jelle@vdwaa.nl> # Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com> # Contributor: Giovanni Scafora <giovanni@archlinux.org> @@ -9,8 +9,8 @@ _pkgname=calibre pkgname=calibre-libre -pkgver=1.5 -pkgrel=2 +pkgver=1.6 +pkgrel=1 pkgdesc="Ebook management application, with unar support" arch=('i686' 'x86_64' 'mips64el') url="http://calibre-ebook.com/" @@ -27,13 +27,14 @@ replaces=$_pkgname conflicts=$_pkgname provides=$_pkgname=$pkgver install=calibre.install -source=('http://download.calibre-ebook.com/1.5.0/calibre-1.5.0.tar.xz' +source=('http://download.calibre-ebook.com/1.6.0/calibre-1.6.0.tar.xz' 'desktop_integration.patch' 'calibre-mount-helper') -md5sums=('adb8543044f81f93d6faef372710bcb5' +md5sums=('d4fc03a2bec211324897cbb916c6eb89' '8353d1878c5a498b3e49eddef473605f' '675cd87d41342119827ef706055491e7') + prepare(){ cd "${srcdir}/${_pkgname}" #rm -rf src/{cherrypy,pyPdf} diff --git a/libre/cgminer-libre/PKGBUILD b/libre/cgminer-libre/PKGBUILD index 2d081f8e3..52019ab59 100644 --- a/libre/cgminer-libre/PKGBUILD +++ b/libre/cgminer-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 97769 2013-09-29 14:35:16Z fyan $ +# $Id: PKGBUILD 98455 2013-10-11 07:59:42Z fyan $ # Maintainer: Felix Yan <felixonmars@gmail.com> # Contributor: monson <holymonson@gmail.com> # Contributor: Thomas Dziedzic < gostrc at gmail > @@ -7,7 +7,7 @@ _pkgname=cgminer pkgname=cgminer-libre -pkgver=3.5.0 +pkgver=3.5.1 pkgrel=1 pkgdesc="Multi-threaded multi-pool GPU, FPGA and ASIC miner for bitcoin and derivative coins, without nonfree OpenCL recommendation" url='http://forum.bitcoin.org/index.php?topic=28402.0' @@ -54,6 +54,8 @@ build() { --enable-modminer \ --enable-ztex \ --enable-avalon \ + --enable-klondike \ + --enable-bitfury \ --disable-adl # For license issues make @@ -73,6 +75,6 @@ package() { install -Dm644 $_pkgname.conf "$pkgdir"/etc/$_pkgname.conf } -sha512sums=('21dbf036012e331676e6dfd85501f04f10e1f0ae7f4fce3bffd3ffe4ccd8c9544b0166f0024cba00177edbe6b70c4d02803ca05af33a2612a5be7bb5a8ec11fc' +sha512sums=('c8fe532b1086e3f2beb69b7f5e75e8ad9aab137c0db1a920de8e222ea2a4bf62ef608bec4b85cdf0f76162c53e5999677e326bb0b567abe26dd14eca52e28bdf' '99c38bc395848f9712ce172343d31f5c60f5d8ac1cfe2f48df8f3ec6c488fc275763a79c5ef36b99f32faa465b5a65284b38e8a63ef9b144075ee13971313b41' '3317b60c6b1f14c47d8ee636113ef40a4023ab14054129de80a37947b381fd2b647a7053f4e1bb639efa225a514e862fa531908714c34040dda2d6221dde7f5f') diff --git a/libre/cups-filters-libre/PKGBUILD b/libre/cups-filters-libre/PKGBUILD index b8e9e825e..20fcf5bf3 100644 --- a/libre/cups-filters-libre/PKGBUILD +++ b/libre/cups-filters-libre/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 194325 2013-09-13 11:45:16Z andyrtr $ +# $Id: PKGBUILD 196334 2013-10-11 15:48:49Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> pkgname=cups-filters-libre _pkgname=cups-filters -pkgver=1.0.38 +pkgver=1.0.40 pkgrel=1 pkgdesc="OpenPrinting CUPS Filters, without foomatic-db-nonfree recommendation" arch=('i686' 'x86_64' 'mips64el') @@ -18,7 +18,7 @@ backup=(etc/fonts/conf.d/99pdftoopvp.conf etc/cups/cups-browsed.conf) options=(!libtool) source=(http://www.openprinting.org/download/cups-filters/$_pkgname-$pkgver.tar.gz) -md5sums=('610da4c62141d294bf456ca8725324dd') +md5sums=('50936e556a2787a85cb14dd859e8f410') replaces=("${_pkgname}") conflicts=("${_pkgname}") provides=("${_pkgname}=${pkgver}") @@ -50,4 +50,7 @@ package() { # add upstream systemd support file install -Dm644 utils/cups-browsed.service ${pkgdir}/usr/lib/systemd/system/cups-browsed.service sed -i "s|/usr/sbin/cups-browsed|/usr/bin/cups-browsed|" ${pkgdir}/usr/lib/systemd/system/cups-browsed.service + + # use lp group from cups pkg FS#36769 + chgrp -R lp ${pkgdir}/etc/cups } diff --git a/libre/liferea-libre/PKGBUILD b/libre/liferea-libre/PKGBUILD index 1de6c3a1f..8e715be0f 100644 --- a/libre/liferea-libre/PKGBUILD +++ b/libre/liferea-libre/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 193917 2013-09-06 04:31:29Z eric $ +# $Id: PKGBUILD 196228 2013-10-08 23:20:06Z eric $ # Maintainer: Eric Bélanger <eric@archlinux.org> # Contributor (Parabola): bitlord # Contributor (Parabola): André Silva <emulatorman@lavabit.com> _pkgname=liferea pkgname=liferea-libre -pkgver=1.10.2 +pkgver=1.10.3 pkgrel=1 pkgdesc="A desktop news aggregator for online news feeds and weblogs, without nonfree suggestions" arch=('i686' 'x86_64' 'mips64el') @@ -26,7 +26,7 @@ options=('!libtool' '!emptydirs') install=liferea.install source=(http://downloads.sourceforge.net/sourceforge/liferea/liferea-${pkgver}.tar.bz2 remove-non-free-suggestions.patch) -sha1sums=('24d533af7dcd985d3cc8b2589fc3443c17b5acd7' +sha1sums=('70ea247cd84274cd6a144f63772d97af4e6b5ebb' '855de60c91b5fee71c7ec88dd04b7d24a02dc0d1') build() { diff --git a/libre/lirc-libre/PKGBUILD b/libre/lirc-libre/PKGBUILD index 374a7662b..8b896d031 100644 --- a/libre/lirc-libre/PKGBUILD +++ b/libre/lirc-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 195936 2013-10-05 19:51:37Z tpowa $ +# $Id: PKGBUILD 196212 2013-10-08 14:19:09Z tpowa $ # Maintainer: Paul Mattal <paul@archlinux.org> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> @@ -6,7 +6,7 @@ _pkgbase=lirc pkgbase=lirc-libre pkgname=('lirc-libre' 'lirc-utils-libre') pkgver=0.9.0 -pkgrel=62 +pkgrel=63 epoch=1 _extramodules=extramodules-3.11-LIBRE arch=('i686' 'x86_64' 'mips64el') @@ -22,7 +22,9 @@ source=(http://prdownloads.sourceforge.net/${_pkgbase}/${_pkgbase}-${pkgver}.tar kernel-2.6.39.patch linux-3.8.patch lirc.logrotate - lirc.service lircm.service irexec.service + lirc.service + lircm.service + irexec.service lirc.tmpfiles) build() { @@ -34,6 +36,12 @@ build() { patch -Np1 -i "${srcdir}/kernel-2.6.39.patch" patch -Np1 -i "${srcdir}/linux-3.8.patch" + # use fixed instead of Courier w/xmode2, should be more prevalent on linux boxen + sed -i -e 's|char.*font1_name.*Courier.*$|char font1_name[]="-misc-fixed-*-r-*-*-12-*-*-*-*-*-iso8859-1";|g' tools/xmode2.c + + # use /dev/lirc0 by default instead of /dev/lirc + sed -i -e 's|#define DEV_LIRC "lirc"|#define DEV_LIRC "lirc0"|' config.h.in + sed -i '/AC_PATH_XTRA/d' configure.ac sed -e 's/@X_CFLAGS@//g' \ -e 's/@X_LIBS@//g' \ @@ -108,7 +116,7 @@ md5sums=('b232aef26f23fe33ea8305d276637086' '087a7d102e1c96bf1179f38db2b0b237' '9ee196bd03ea44af5a752fb0cc6ca96a' '3deb02604b37811d41816e9b4385fcc3' - '1c7ceace42da44f41e5a42b4dd3b3d76' - '121283a6de274e52ed86522aecd0f6e5' + 'a9ab637e7207472e61e55a2fa75dc555' + '1847b9997685bc3ad2cf11bea4590a92' '07131d117fcfe9dcd50c453c3a5e9531' 'febf25c154a7d36f01159e84f26c2d9a') diff --git a/libre/lirc-libre/lirc.service b/libre/lirc-libre/lirc.service index 2123348fd..a797d1661 100644 --- a/libre/lirc-libre/lirc.service +++ b/libre/lirc-libre/lirc.service @@ -1,11 +1,12 @@ [Unit] Description=Linux Infrared Remote Control +After=network.target [Service] -ExecStartPre=/usr/bin/ln -sf /run/lirc/lircd /dev/lircd -ExecStart=/usr/bin/lircd --pidfile=/run/lirc/lircd.pid Type=forking PIDFile=/run/lirc/lircd.pid +ExecStart=/usr/sbin/lircd --driver=default --device=/dev/lirc0 [Install] WantedBy=multi-user.target + diff --git a/libre/lirc-libre/lircm.service b/libre/lirc-libre/lircm.service index eedcf5d8f..c0b5e36b7 100644 --- a/libre/lirc-libre/lircm.service +++ b/libre/lirc-libre/lircm.service @@ -1,11 +1,12 @@ [Unit] Description=LIRC Mouse -After=lirc.service -Wants=lirc.service +Requires=lirc.service +After=network.target lirc.service [Service] -ExecStart=/usr/bin/lircmd -u Type=forking +ExecStart=/usr/sbin/lircmd [Install] WantedBy=multi-user.target + diff --git a/libre/mesa-libcl/PKGBUILD b/libre/mesa-libcl/PKGBUILD index 828e2bdb9..bf77c087d 100644 --- a/libre/mesa-libcl/PKGBUILD +++ b/libre/mesa-libcl/PKGBUILD @@ -4,8 +4,8 @@ pkgbase=mesa _pkgname=libcl pkgname=$pkgbase-$_pkgname _pkgflag=libre -pkgver=9.2.0 -pkgrel=2 +pkgver=9.2.1 +pkgrel=1 pkgdesc='Mesa 3-D OpenCL library' url=http://${pkgbase}3d.sourceforge.net license=(MIT Khronos LGPL) @@ -28,7 +28,7 @@ conflicts=($_pkgname-$_pkgflag $_pkgname opencl-nvidia opencl-nvidia-304xx) replaces=($_pkgname-$_pkgflag $_pkgname opencl-nvidia opencl-nvidia-304xx) options=(!libtool) source=ftp://ftp.freedesktop.org/pub/$pkgbase/${pkgver%.0}/${pkgbase^}Lib-$pkgver.tar.bz2 -sha512sums=26c4b41b7e1d5284b87e2997a14424c1ee0713e11fd9dd65932987832e43b96986ed5e88c06fad4616fc912ffb8e17a2314b282cbf38a2640d76c39724965910 +sha512sums=1dbc59b348618dde85e00b318fa5bbc58c29c3f56f8f77260569f155e5e787e56a2b5efff6b0e8cafedc915ccb465c547a10501f39e3d20a57c4e654968de62e build() { cd $srcdir/${pkgbase^}-$pkgver diff --git a/nonprism/empathy-nonprism/PKGBUILD b/nonprism/empathy-nonprism/PKGBUILD index 50c3fa399..b528dd888 100644 --- a/nonprism/empathy-nonprism/PKGBUILD +++ b/nonprism/empathy-nonprism/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 194415 2013-09-16 09:02:51Z jgc $ +# $Id: PKGBUILD 195042 2013-09-24 18:47:37Z heftig $ # Maintainer: Ionut Biru <ibiru@archlinux.org> _pkgname=empathy pkgname=empathy-nonprism -pkgver=3.8.4 +pkgver=3.10.0 pkgrel=1 pkgdesc="A GNOME instant messaging client using the Telepathy framework, without telepathy-haze recommendation" arch=(i686 x86_64) url="http://live.gnome.org/Empathy" license=(GPL2) -depends=(clutter-gst clutter-gtk folks gcr iso-codes libcanberra libpulse webkitgtk3 telepathy-farstream telepathy-glib telepathy-logger telepathy-mission-control) +depends=(clutter-gst clutter-gtk folks gcr iso-codes libcanberra libpulse webkitgtk telepathy-farstream telepathy-glib telepathy-logger telepathy-mission-control geoclue2 geocode-glib cheese libchamplain) makedepends=(intltool itstool docbook-xsl python2) optdepends=('telepathy-gabble: XMPP/Jabber support' 'telepathy-idle: IRC support' @@ -21,8 +21,8 @@ install=empathy.install replaces=("$_pkgname" 'empathy-coherence') conflicts=$_pkgname provides=$_pkgname=$pkgver -source=(http://ftp.gnome.org/pub/GNOME/sources/$_pkgname/${pkgver:0:3}/$_pkgname-$pkgver.tar.xz) -sha256sums=('cbc4934ce838e3d697616b5c36b070d2fc4fc57f84fd654c2f2cb2b8b650f5c9') +source=(http://ftp.gnome.org/pub/GNOME/sources/$_pkgname/${pkgver%.*}/$_pkgname-$pkgver.tar.xz) +sha256sums=('5580bdba9faec0518b3328d5dc23f03dc0cf25ccf6c14902f306838c23d5918f') build() { cd $_pkgname-$pkgver diff --git a/nonprism/eog-plugins-nonprism/PKGBUILD b/nonprism/eog-plugins-nonprism/PKGBUILD index 010f3eb7b..7c889280b 100644 --- a/nonprism/eog-plugins-nonprism/PKGBUILD +++ b/nonprism/eog-plugins-nonprism/PKGBUILD @@ -1,11 +1,11 @@ -# $Id$ +# $Id: PKGBUILD 194995 2013-09-24 13:10:42Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> _pkgname=eog-plugins pkgname=eog-plugins-nonprism -pkgver=3.8.1 -pkgrel=2 +pkgver=3.10.0 +pkgrel=1 pkgdesc="Plugins for Eye of Gnome, without libgdata support" arch=('i686' 'x86_64') url="http://www.gnome.org/" @@ -18,7 +18,7 @@ replaces=$_pkgname install=eog-plugins.install options=('!libtool') source=(http://download.gnome.org/sources/$_pkgname/${pkgver%.*}/$_pkgname-$pkgver.tar.xz) -sha256sums=('5cf8dab5b6622b9e712da4094185112cc84baa96f2775cc76bf654b1c443cfb9') +sha256sums=('0e6699c45181264e87f34a6eb03deeadfd5d73e35995772b7afc803e8218906d') build() { cd $_pkgname-$pkgver diff --git a/nonprism/evolution-data-server-nonprism/PKGBUILD b/nonprism/evolution-data-server-nonprism/PKGBUILD index 96caee984..df988e12b 100644 --- a/nonprism/evolution-data-server-nonprism/PKGBUILD +++ b/nonprism/evolution-data-server-nonprism/PKGBUILD @@ -1,12 +1,12 @@ _pkgname=evolution-data-server pkgname=evolution-data-server-nonprism -pkgver=3.8.5 +pkgver=3.10.0 pkgrel=1 -pkgdesc="Centralized access to appointments and contacts without libgdata support" +pkgdesc="Centralized access to appointments and contacts, without libgdata support" arch=(i686 x86_64) -depends=(nss krb5 libical db libxml2 libsoup gtk3 libsecret gcr) -makedepends=(intltool gperf gobject-introspection vala python2 gnome-common) +depends=(gnome-online-accounts nss krb5 libgweather libical db gcr) +makedepends=(intltool gperf gobject-introspection vala python2) options=('!libtool') install=$_pkgname.install url="http://www.gnome.org" @@ -15,21 +15,17 @@ replaces=("$_pkgname" 'evolution-data-server-coherence') conflicts=$_pkgname provides=$_pkgname=$pkgver source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver%.*}/$_pkgname-$pkgver.tar.xz) -sha256sums=('73c4ecfed65651cc72966b90081d7b72f9b42573585bc89797efea65ccfdbd2a') - +sha256sums=('1c47a0e138e9a5ed630d6e3ab30761e74e5f26ed7bbc31debfe76c2bac058b27') build() { cd "$_pkgname-$pkgver" - autoreconf -fi ./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var --with-openldap=yes \ --libexecdir=/usr/lib/evolution-data-server \ --with-krb5=/usr --with-libdb=/usr \ --without-libgdata \ - --disable-goa \ --disable-google \ - --disable-weather \ - --enable-vala-bindings --disable-uoa PYTHON=python2 + --enable-vala-bindings --disable-uoa sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool make } diff --git a/nonprism/gnome-online-accounts-nonprism/PKGBUILD b/nonprism/gnome-online-accounts-nonprism/PKGBUILD index d91e396f5..39bb599d2 100644 --- a/nonprism/gnome-online-accounts-nonprism/PKGBUILD +++ b/nonprism/gnome-online-accounts-nonprism/PKGBUILD @@ -1,36 +1,39 @@ -# $Id: PKGBUILD 193763 2013-08-30 13:15:23Z heftig $ +# $Id: PKGBUILD 195045 2013-09-24 18:59:12Z heftig $ # Maintainer: Ionut Biru <ibiru@archlinux.org> # Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> _pkgname=gnome-online-accounts pkgname=gnome-online-accounts-nonprism -pkgver=3.8.3 +pkgver=3.10.0 pkgrel=1 pkgdesc="GNOME service to access online accounts, without support for unsafe and dangerous for privacy protocols" arch=(i686 x86_64 mips64el) url="http://www.gnome.org" license=('GPL') -depends=('webkitgtk3' 'json-glib' 'libnotify' 'rest' 'hicolor-icon-theme' 'libsecret') +depends=('webkitgtk' 'json-glib' 'libnotify' 'rest' 'hicolor-icon-theme' 'libsecret' 'telepathy-glib') makedepends=('intltool' 'libxslt' 'gobject-introspection' 'docbook-xsl') provides=("$_pkgname=$pkgver") conflicts=$_pkgname replaces=($_pkgname $pkgname-coherence) options=(!libtool) install=$_pkgname.install -source=(http://download.gnome.org/sources/$_pkgname/${pkgver:0:3}/$_pkgname-$pkgver.tar.xz) -sha256sums=('9e5e55c5097b8d7c32c0dfb7d94448795c627723b133e8edd0b846adde63a44b') - +source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver:0:4}/$_pkgname-$pkgver.tar.xz) +sha256sums=('bba85366632cf5ce777b6889eab505d98d7593c37f7859a312dc57dde05a0feb') + build() { cd $_pkgname-$pkgver - ./configure --prefix=/usr --libexec=/usr/lib/gnome-online-accounts \ + ./configure --prefix=/usr --libexecdir=/usr/lib/$_pkgname \ + --disable-exchange \ --disable-google \ - --enable-owncloud \ --disable-facebook \ - --disable-windows-live \ - --disable-exchange \ --disable-flickr \ --enable-imap-smtp \ - --disable-kerberos + --disable-kerberos \ + --enable-owncloud \ + --enable-telepathy \ + --disable-twitter \ + --disable-windows-live \ + --disable-yahoo make } diff --git a/nonprism/pidgin-nonprism/PKGBUILD b/nonprism/pidgin-nonprism/PKGBUILD index ccf2a9af6..50bf3d05d 100644 --- a/nonprism/pidgin-nonprism/PKGBUILD +++ b/nonprism/pidgin-nonprism/PKGBUILD @@ -20,19 +20,12 @@ source=(http://downloads.sourceforge.net/$_pkgname/$_pkgname-$pkgver.tar.bz2 pidgin-2.10.7-link-libirc-to-libsasl2.patch nonprism.patch) sha256sums=('eba32994eca20d1cf24a4261b059b2de71a1ec2dd0926e904074b0db49f7f192' '063723d5dc5726c43137b4b383c9d07c2c008391f6a626faaf6cedd31a2f1e8f' - '54c185493f7139768e316b989a5d23aa9d46662bf69026a92efbf69ad7d00973') + 'f7acfb852cdecfed16e8b116546b643cad1c44d28b56f28ff5485f92af68e9e2') prepare() { cd "$srcdir/$_pkgname-$pkgver" - msg 'remove nonfree services' - patch -Np1 -i $srcdir/nonprism.patch - #rm -vrf libpurple/protocols/{gg,jabber/google,msn,mxit,myspace,novell,oscar,yahoo} - #rm -v pidgin/pixmaps/protocols/16/{aim,facebook,gadu-gadu,google-talk,icq,msn,mxit,myspace,novell,yahoo}.png - #rm -v pidgin/pixmaps/protocols/16/scalable/{aim,gadu-gadu,icq,msn,novell,yahoo}.svg - #rm -v pidgin/pixmaps/protocols/22/{aim,facebook,gadu-gadu,google-talk,icq,msn,mxit,myspace,novell,yahoo}.png - #rm -v pidgin/pixmaps/protocols/22/scalable/{aim,gadu-gadu,icq,msn,novell,yahoo}.svg - #rm -v pidgin/pixmaps/protocols/48/{aim,facebook,gadu-gadu,icq,msn,mxit,myspace,novell,yahoo}.png - #rm -v pidgin/pixmaps/protocols/scalable/{aim,gadu-gadu,google-talk,icq,msn,mxit,novell,yahoo}.svg + msg 'remove Google Talk and Facebook protocols' + patch -Np1 -i "$srcdir/nonprism.patch" msg 'remove wrong OS term' sed -i 's|on Linux|on GNU/Linux|' libpurple/valgrind.h sed -i 's|On Linux|On GNU/Linux|' libpurple/connection.h @@ -59,12 +52,13 @@ build() { --disable-doxygen \ --enable-nm \ --with-python=/usr/bin/python2 \ - --with-system-ssl-certs=/etc/ssl/certs + --with-system-ssl-certs=/etc/ssl/certs \ + --with-dynamic-prpls=bonjour,irc,jabber,silc,simple,zephyr make } package_pidgin-nonprism(){ - pkgdesc="Multi-protocol instant messaging client" + pkgdesc="Multi-protocol instant messaging client, without support for unsafe and dangerous for privacy protocols" depends=('libpurple' 'startup-notification' 'gtkspell' 'libxss' 'libsm' 'hicolor-icon-theme') optdepends=('aspell: for spelling correction') @@ -87,10 +81,22 @@ package_pidgin-nonprism(){ install -Dm644 pidgin.desktop "$pkgdir"/usr/share/applications/pidgin.desktop rm "$pkgdir/usr/share/man/man1/finch.1" + + msg "Removing PRISM images" + rm -v "$pkgdir"/usr/share/pixmaps/pidgin/emblems/{16/aol-client.png,scalable/aol-client.svg} + rm -v "$pkgdir"/usr/share/pixmaps/pidgin/emotes/default/msn{,-away,-busy,_online}.png + rm -v "$pkgdir"/usr/share/pixmaps/pidgin/protocols/{16,22}/google-talk.png + rm -v "$pkgdir"/usr/share/pixmaps/pidgin/protocols/{16,22,48}/{aim,facebook,gadu-gadu,icq,meanwhile,msn,mxit,myspace,novell,yahoo}.png + rm -v "$pkgdir"/usr/share/pixmaps/pidgin/protocols/scalable/{aim,gadu-gadu,google-talk,icq,meanwhile,msn,mxit,novell,yahoo}.svg + + msg "patch pidgin desktop" + sed -i "\|Comment\[|d + s|Supports AIM, Google Talk, Jabber/XMPP, MSN, Yahoo and more|Supports Jabber/XMPP and more| + " "$pkgdir"/usr/share/applications/pidgin.desktop } package_libpurple-nonprism(){ - pkgdesc="IM library extracted from Pidgin" + pkgdesc="IM library extracted from Pidgin, without support for unsafe and dangerous for privacy protocols" depends=('farstream-0.1' 'libsasl' 'libidn' 'dbus-glib' 'nss') optdepends=('avahi: Bonjour protocol support' 'ca-certificates: SSL CA certificates' @@ -108,7 +114,7 @@ package_libpurple-nonprism(){ } package_finch-nonprism(){ - pkgdesc="A ncurses-based messaging client" + pkgdesc="A ncurses-based messaging client, without support for unsafe and dangerous for privacy protocols" depends=("libpurple=$pkgver-$pkgrel" 'libx11' 'python2') provides=("${pkgname%-nonprism}=$pkgver") conflicts=${pkgname%-nonprism} diff --git a/nonprism/pidgin-nonprism/nonprism-b.patch b/nonprism/pidgin-nonprism/nonprism-b.patch deleted file mode 100644 index 8e64b73d5..000000000 --- a/nonprism/pidgin-nonprism/nonprism-b.patch +++ /dev/null @@ -1,5623 +0,0 @@ -diff -Nur pidgin-2.10.7/config.h.in pidgin-2.10.7-nonprism/config.h.in ---- pidgin-2.10.7/config.h.in 2013-02-11 07:17:16.000000000 -0200 -+++ pidgin-2.10.7-nonprism/config.h.in 2013-08-16 22:16:16.833531712 -0300 -@@ -151,9 +151,6 @@ - /* Define to 1 if you have the `db' library (-ldb). */ - #undef HAVE_LIBDB - --/* Define to 1 if you have libgadu. */ --#undef HAVE_LIBGADU -- - /* Define to 1 if you have the `nsl' library (-lnsl). */ - #undef HAVE_LIBNSL - -diff -Nur pidgin-2.10.7/configure pidgin-2.10.7-nonprism/configure ---- pidgin-2.10.7/configure 2013-02-11 07:17:26.000000000 -0200 -+++ pidgin-2.10.7-nonprism/configure 2013-08-27 16:47:16.890662082 -0300 -@@ -716,45 +716,23 @@ - STATIC_LINK_LIBS - STATIC_ZEPHYR_FALSE - STATIC_ZEPHYR_TRUE --STATIC_YAHOO_FALSE --STATIC_YAHOO_TRUE - STATIC_SIMPLE_FALSE - STATIC_SIMPLE_TRUE - STATIC_SILC_FALSE - STATIC_SILC_TRUE --STATIC_SAMETIME_FALSE --STATIC_SAMETIME_TRUE --STATIC_OSCAR_FALSE --STATIC_OSCAR_TRUE --STATIC_NOVELL_FALSE --STATIC_NOVELL_TRUE --STATIC_MXIT_FALSE --STATIC_MXIT_TRUE --STATIC_MYSPACE_FALSE --STATIC_MYSPACE_TRUE --STATIC_MSN_FALSE --STATIC_MSN_TRUE - STATIC_JABBER_FALSE - STATIC_JABBER_TRUE - STATIC_IRC_FALSE - STATIC_IRC_TRUE --STATIC_GG_FALSE --STATIC_GG_TRUE - STATIC_BONJOUR_FALSE - STATIC_BONJOUR_TRUE - STATIC_PRPLS - DISTRIB_FALSE - DISTRIB_TRUE --USE_INTERNAL_LIBGADU_FALSE --USE_INTERNAL_LIBGADU_TRUE --GADU_LIBS --GADU_CFLAGS - SILC_LIBS - SILC_CFLAGS - AVAHI_LIBS - AVAHI_CFLAGS --MEANWHILE_LIBS --MEANWHILE_CFLAGS - IDN_LIBS - IDN_CFLAGS - USE_VV_FALSE -@@ -1021,14 +999,11 @@ - enable_farstream - enable_vv - enable_idn --enable_meanwhile - enable_avahi - with_avahi_client_includes - with_avahi_client_libs - with_silc_includes - with_silc_libs --with_gadu_includes --with_gadu_libs - enable_distrib - with_static_prpls - with_dynamic_prpls -@@ -1100,14 +1075,10 @@ - FARSTREAM_LIBS - IDN_CFLAGS - IDN_LIBS --MEANWHILE_CFLAGS --MEANWHILE_LIBS - AVAHI_CFLAGS - AVAHI_LIBS - SILC_CFLAGS - SILC_LIBS --GADU_CFLAGS --GADU_LIBS - DBUS_CFLAGS - DBUS_LIBS - NETWORKMANAGER_CFLAGS -@@ -1773,8 +1744,6 @@ - --disable-farstream compile without farstream support - --disable-vv compile without voice and video support - --disable-idn compile without IDN support -- --disable-meanwhile compile without meanwhile (required for Sametime -- support) - --disable-avahi compile without avahi (required for Bonjour support) - - --disable-plugins compile without plugin support -@@ -1826,9 +1795,6 @@ - --with-silc-includes=DIR - compile the SILC plugin against includes in DIR - --with-silc-libs=DIR compile the SILC plugin against the SILC libs in DIR -- --with-gadu-includes=DIR -- compile the Gadu-Gadu plugin against includes in DIR -- --with-gadu-libs=DIR compile the Gadu-Gadu plugin against the libs in DIR - --with-static-prpls Link to certain protocols statically - --with-dynamic-prpls specify which protocols to build dynamically - --with-krb4=PREFIX compile Zephyr plugin with Kerberos 4 support -@@ -1905,17 +1871,11 @@ - linker flags for FARSTREAM, overriding pkg-config - IDN_CFLAGS C compiler flags for IDN, overriding pkg-config - IDN_LIBS linker flags for IDN, overriding pkg-config -- MEANWHILE_CFLAGS -- C compiler flags for MEANWHILE, overriding pkg-config -- MEANWHILE_LIBS -- linker flags for MEANWHILE, overriding pkg-config - AVAHI_CFLAGS - C compiler flags for AVAHI, overriding pkg-config - AVAHI_LIBS linker flags for AVAHI, overriding pkg-config - SILC_CFLAGS C compiler flags for SILC, overriding pkg-config - SILC_LIBS linker flags for SILC, overriding pkg-config -- GADU_CFLAGS C compiler flags for GADU, overriding pkg-config -- GADU_LIBS linker flags for GADU, overriding pkg-config - DBUS_CFLAGS C compiler flags for DBUS, overriding pkg-config - DBUS_LIBS linker flags for DBUS, overriding pkg-config - NETWORKMANAGER_CFLAGS -@@ -18487,105 +18447,6 @@ - fi - fi - --# Check whether --enable-meanwhile was given. --if test "${enable_meanwhile+set}" = set; then : -- enableval=$enable_meanwhile; enable_meanwhile="$enableval" --else -- enable_meanwhile="yes" --fi -- --if test "x$enable_meanwhile" = "xyes"; then -- --pkg_failed=no --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MEANWHILE" >&5 --$as_echo_n "checking for MEANWHILE... " >&6; } -- --if test -n "$MEANWHILE_CFLAGS"; then -- pkg_cv_MEANWHILE_CFLAGS="$MEANWHILE_CFLAGS" -- elif test -n "$PKG_CONFIG"; then -- if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"meanwhile >= 1.0.0 meanwhile < 2.0.0\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "meanwhile >= 1.0.0 meanwhile < 2.0.0") 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -- pkg_cv_MEANWHILE_CFLAGS=`$PKG_CONFIG --cflags "meanwhile >= 1.0.0 meanwhile < 2.0.0" 2>/dev/null` -- test "x$?" != "x0" && pkg_failed=yes --else -- pkg_failed=yes --fi -- else -- pkg_failed=untried --fi --if test -n "$MEANWHILE_LIBS"; then -- pkg_cv_MEANWHILE_LIBS="$MEANWHILE_LIBS" -- elif test -n "$PKG_CONFIG"; then -- if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"meanwhile >= 1.0.0 meanwhile < 2.0.0\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "meanwhile >= 1.0.0 meanwhile < 2.0.0") 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -- pkg_cv_MEANWHILE_LIBS=`$PKG_CONFIG --libs "meanwhile >= 1.0.0 meanwhile < 2.0.0" 2>/dev/null` -- test "x$?" != "x0" && pkg_failed=yes --else -- pkg_failed=yes --fi -- else -- pkg_failed=untried --fi -- -- -- --if test $pkg_failed = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- --if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -- _pkg_short_errors_supported=yes --else -- _pkg_short_errors_supported=no --fi -- if test $_pkg_short_errors_supported = yes; then -- MEANWHILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "meanwhile >= 1.0.0 meanwhile < 2.0.0" 2>&1` -- else -- MEANWHILE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "meanwhile >= 1.0.0 meanwhile < 2.0.0" 2>&1` -- fi -- # Put the nasty error message in config.log where it belongs -- echo "$MEANWHILE_PKG_ERRORS" >&5 -- -- -- have_meanwhile="no" -- if test "x$force_deps" = "xyes" ; then -- as_fn_error $? " --Meanwhile development headers not found. --Use --disable-meanwhile if you do not need meanwhile (Sametime) support. --" "$LINENO" 5 -- fi --elif test $pkg_failed = untried; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- -- have_meanwhile="no" -- if test "x$force_deps" = "xyes" ; then -- as_fn_error $? " --Meanwhile development headers not found. --Use --disable-meanwhile if you do not need meanwhile (Sametime) support. --" "$LINENO" 5 -- fi --else -- MEANWHILE_CFLAGS=$pkg_cv_MEANWHILE_CFLAGS -- MEANWHILE_LIBS=$pkg_cv_MEANWHILE_LIBS -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 --$as_echo "yes" >&6; } -- -- have_meanwhile="yes" -- --fi --fi -- -- -- - # Check whether --enable-avahi was given. - if test "${enable_avahi+set}" = set; then : - enableval=$enable_avahi; enable_avahi="$enableval" -@@ -19207,267 +19068,6 @@ - fi - - --# Check whether --with-gadu-includes was given. --if test "${with_gadu_includes+set}" = set; then : -- withval=$with_gadu_includes; ac_gadu_includes="$withval" --else -- ac_gadu_includes="no" --fi -- -- --# Check whether --with-gadu-libs was given. --if test "${with_gadu_libs+set}" = set; then : -- withval=$with_gadu_libs; ac_gadu_libs="$withval" --else -- ac_gadu_libs="no" --fi -- --GADU_CFLAGS="" --GADU_LIBS="" --if test -n "$with_gadu_includes" || test -n "$with_gadu_libs"; then -- gadu_manual_check="yes" --else -- gadu_manual_check="no" --fi --if test "x$gadu_manual_check" = "xno"; then -- --pkg_failed=no --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GADU" >&5 --$as_echo_n "checking for GADU... " >&6; } -- --if test -n "$GADU_CFLAGS"; then -- pkg_cv_GADU_CFLAGS="$GADU_CFLAGS" -- elif test -n "$PKG_CONFIG"; then -- if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgadu >= 1.11.0\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "libgadu >= 1.11.0") 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -- pkg_cv_GADU_CFLAGS=`$PKG_CONFIG --cflags "libgadu >= 1.11.0" 2>/dev/null` -- test "x$?" != "x0" && pkg_failed=yes --else -- pkg_failed=yes --fi -- else -- pkg_failed=untried --fi --if test -n "$GADU_LIBS"; then -- pkg_cv_GADU_LIBS="$GADU_LIBS" -- elif test -n "$PKG_CONFIG"; then -- if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgadu >= 1.11.0\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "libgadu >= 1.11.0") 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -- pkg_cv_GADU_LIBS=`$PKG_CONFIG --libs "libgadu >= 1.11.0" 2>/dev/null` -- test "x$?" != "x0" && pkg_failed=yes --else -- pkg_failed=yes --fi -- else -- pkg_failed=untried --fi -- -- -- --if test $pkg_failed = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- --if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -- _pkg_short_errors_supported=yes --else -- _pkg_short_errors_supported=no --fi -- if test $_pkg_short_errors_supported = yes; then -- GADU_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libgadu >= 1.11.0" 2>&1` -- else -- GADU_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libgadu >= 1.11.0" 2>&1` -- fi -- # Put the nasty error message in config.log where it belongs -- echo "$GADU_PKG_ERRORS" >&5 -- -- -- gadu_includes="no" -- --elif test $pkg_failed = untried; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- -- gadu_includes="no" -- --else -- GADU_CFLAGS=$pkg_cv_GADU_CFLAGS -- GADU_LIBS=$pkg_cv_GADU_LIBS -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 --$as_echo "yes" >&6; } -- -- gadu_includes="yes" -- gadu_libs="yes" -- --fi --else -- if test "$ac_gadu_includes" != "no"; then -- GADU_CFLAGS="-I$ac_gadu_includes" -- fi -- CPPFLAGS_save="$CPPFLAGS" -- CPPFLAGS="$CPPFLAGS $GADU_CFLAGS" -- ac_fn_c_check_header_mongrel "$LINENO" "libgadu.h" "ac_cv_header_libgadu_h" "$ac_includes_default" --if test "x$ac_cv_header_libgadu_h" = xyes; then : -- gadu_includes=yes --fi -- -- -- CPPFLAGS="$CPPFLAGS_save" -- -- if test "$ac_gadu_libs" != "no"; then -- GADU_LIBS="-L$ac_gadu_libs" -- fi -- GADU_LIBS="$GADU_LIBS -lgadu" -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gg_libgadu_version in -lgadu" >&5 --$as_echo_n "checking for gg_libgadu_version in -lgadu... " >&6; } --if ${ac_cv_lib_gadu_gg_libgadu_version+:} false; then : -- $as_echo_n "(cached) " >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lgadu $GADU_LIBS $LIBS" --cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ -- --/* Override any GCC internal prototype to avoid an error. -- Use char because int might match the return type of a GCC -- builtin and then its argument prototype would still apply. */ --#ifdef __cplusplus --extern "C" --#endif --char gg_libgadu_version (); --int --main () --{ --return gg_libgadu_version (); -- ; -- return 0; --} --_ACEOF --if ac_fn_c_try_link "$LINENO"; then : -- ac_cv_lib_gadu_gg_libgadu_version=yes --else -- ac_cv_lib_gadu_gg_libgadu_version=no --fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --LIBS=$ac_check_lib_save_LIBS --fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gadu_gg_libgadu_version" >&5 --$as_echo "$ac_cv_lib_gadu_gg_libgadu_version" >&6; } --if test "x$ac_cv_lib_gadu_gg_libgadu_version" = xyes; then : -- gadu_libs=yes --fi -- --fi --GADU_CFLAGS=`echo $GADU_CFLAGS |$sedpath 's/-Wall//'` -- --if test "x$gadu_libs" = "xyes"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgadu GPL compatibility" >&5 --$as_echo_n "checking for libgadu GPL compatibility... " >&6; } -- CPPFLAGS_save="$CPPFLAGS" -- CPPFLAGS="$CPPFLAGS $GADU_CFLAGS" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --#include <libgadu.h> --int --main () --{ -- --#if defined(__GG_LIBGADU_HAVE_OPENSSL) || defined(GG_CONFIG_HAVE_OPENSSL) --#error "libgadu is not compatible with the GPL when compiled with OpenSSL support." --#endif -- -- ; -- return 0; --} --_ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -- -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --#include <libgadu.h> --int --main () --{ -- --#if GG_DEFAULT_PROTOCOL_VERSION < 0x2e --#error "Your libgadu version is too old. libpurple requires 1.11.0 or higher." --#endif -- -- ; -- return 0; --} --_ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -- -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 --$as_echo "yes" >&6; } -- --$as_echo "#define HAVE_LIBGADU 1" >>confdefs.h -- -- --else -- -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- echo -- echo -- echo "Your supplied copy of libgadu is too old." -- echo "Install version 1.11.0 or newer." -- echo "Then rerun this ./configure" -- echo -- echo "Falling back to using our own copy of libgadu" -- echo -- GADU_LIBS="" -- GADU_CFLAGS="" -- gadu_libs=no -- --fi --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- --else -- -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- echo -- echo -- echo "libgadu is not compatible with the GPL when compiled with OpenSSL support." -- echo "To compile against system libgadu, please recompile libgadu using:" -- echo "./autogen.sh --disable-libgadu-openssl --disable-static --enable-shared" -- echo "Then rerun this ./configure" -- echo -- echo "Falling back to using our own copy of libgadu" -- echo -- GADU_LIBS="" -- GADU_CFLAGS="" -- gadu_libs=no -- --fi --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- CPPFLAGS="$CPPFLAGS_save" --fi -- -- if test "x$gadu_libs" != "xyes"; then -- USE_INTERNAL_LIBGADU_TRUE= -- USE_INTERNAL_LIBGADU_FALSE='#' --else -- USE_INTERNAL_LIBGADU_TRUE='#' -- USE_INTERNAL_LIBGADU_FALSE= --fi -- -- --if test "x$gadu_libs" = "x"; then -- gadu_libs=no --fi -- - - - -@@ -19500,10 +19100,7 @@ - fi - - if test "x$STATIC_PRPLS" = "xall" ; then -- STATIC_PRPLS="bonjour gg irc jabber msn myspace mxit novell oscar sametime silc simple yahoo zephyr" --fi --if test "x$have_meanwhile" != "xyes" ; then -- STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/sametime//'` -+ STATIC_PRPLS="bonjour irc jabber silc simple zephyr" - fi - if test "x$avahiincludes" != "xyes" -o "x$avahilibs" != "xyes"; then - STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/bonjour//'` -@@ -19519,46 +19116,22 @@ - extern_init= - load_proto= - for i in $STATIC_PRPLS ; do -- if test \( "x$i" = "xoscar" -o "x$i" = "xaim" -o "x$i" = "xicq" \) -a "x$static_oscar" != "xyes"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/oscar/liboscar.la" -- extern_init="$extern_init extern gboolean purple_init_aim_plugin();" -- extern_init="$extern_init extern gboolean purple_init_icq_plugin();" -- load_proto="$load_proto purple_init_aim_plugin();" -- load_proto="$load_proto purple_init_icq_plugin();" -- elif test "x$i" = "xyahoo"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/yahoo/libymsg.la" -- extern_init="$extern_init extern gboolean purple_init_yahoo_plugin();" -- extern_init="$extern_init extern gboolean purple_init_yahoojp_plugin();" -- load_proto="$load_proto purple_init_yahoo_plugin();" -- load_proto="$load_proto purple_init_yahoojp_plugin();" -+ if test "x$i" = "xsilc"; then -+ STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib${i}purple.la" -+ elif test "x$i" = "xsilc10"; then -+ STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/libsilcpurple.la" - else -- if test "x$i" = "xsilc"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib${i}purple.la" -- elif test "x$i" = "xsilc10"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/libsilcpurple.la" -- else -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib$i.la" -- fi -- extern_init="$extern_init extern gboolean purple_init_${i}_plugin();" -- load_proto="$load_proto purple_init_${i}_plugin();" -+ STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib$i.la" - fi -+ extern_init="$extern_init extern gboolean purple_init_${i}_plugin();" -+ load_proto="$load_proto purple_init_${i}_plugin();" - case $i in - bonjour) static_bonjour=yes ;; -- gg) static_gg=yes ;; - irc) static_irc=yes ;; - jabber) static_jabber=yes ;; -- msn) static_msn=yes ;; -- myspace) static_myspace=yes ;; -- mxit) static_mxit=yes ;; -- novell) static_novell=yes ;; -- oscar) static_oscar=yes ;; -- aim) static_oscar=yes ;; -- icq) static_oscar=yes ;; -- sametime) static_sametime=yes ;; - silc) static_silc=yes ;; - silc10) static_silc=yes ;; - simple) static_simple=yes ;; -- yahoo) static_yahoo=yes ;; - zephyr) static_zephyr=yes ;; - *) echo "Invalid static protocol $i!!" ; exit 1 ;; - esac -@@ -19571,14 +19144,6 @@ - STATIC_BONJOUR_FALSE= - fi - -- if test "x$static_gg" = "xyes"; then -- STATIC_GG_TRUE= -- STATIC_GG_FALSE='#' --else -- STATIC_GG_TRUE='#' -- STATIC_GG_FALSE= --fi -- - if test "x$static_irc" = "xyes"; then - STATIC_IRC_TRUE= - STATIC_IRC_FALSE='#' -@@ -19595,54 +19160,6 @@ - STATIC_JABBER_FALSE= - fi - -- if test "x$static_msn" = "xyes"; then -- STATIC_MSN_TRUE= -- STATIC_MSN_FALSE='#' --else -- STATIC_MSN_TRUE='#' -- STATIC_MSN_FALSE= --fi -- -- if test "x$static_myspace" = "xyes"; then -- STATIC_MYSPACE_TRUE= -- STATIC_MYSPACE_FALSE='#' --else -- STATIC_MYSPACE_TRUE='#' -- STATIC_MYSPACE_FALSE= --fi -- -- if test "x$static_mxit" = "xyes"; then -- STATIC_MXIT_TRUE= -- STATIC_MXIT_FALSE='#' --else -- STATIC_MXIT_TRUE='#' -- STATIC_MXIT_FALSE= --fi -- -- if test "x$static_novell" = "xyes"; then -- STATIC_NOVELL_TRUE= -- STATIC_NOVELL_FALSE='#' --else -- STATIC_NOVELL_TRUE='#' -- STATIC_NOVELL_FALSE= --fi -- -- if test "x$static_oscar" = "xyes"; then -- STATIC_OSCAR_TRUE= -- STATIC_OSCAR_FALSE='#' --else -- STATIC_OSCAR_TRUE='#' -- STATIC_OSCAR_FALSE= --fi -- -- if test "x$static_sametime" = "xyes" -a "x$have_meanwhile" = "xyes"; then -- STATIC_SAMETIME_TRUE= -- STATIC_SAMETIME_FALSE='#' --else -- STATIC_SAMETIME_TRUE='#' -- STATIC_SAMETIME_FALSE= --fi -- - if test "x$static_silc" = "xyes" -a "x$have_silc" = "xyes"; then - STATIC_SILC_TRUE= - STATIC_SILC_FALSE='#' -@@ -19659,14 +19176,6 @@ - STATIC_SIMPLE_FALSE= - fi - -- if test "x$static_yahoo" = "xyes"; then -- STATIC_YAHOO_TRUE= -- STATIC_YAHOO_FALSE='#' --else -- STATIC_YAHOO_TRUE='#' -- STATIC_YAHOO_FALSE= --fi -- - if test "x$static_zephyr" = "xyes"; then - STATIC_ZEPHYR_TRUE= - STATIC_ZEPHYR_FALSE='#' -@@ -19689,10 +19198,7 @@ - fi - - if test "x$DYNAMIC_PRPLS" = "xall" ; then -- DYNAMIC_PRPLS="bonjour gg irc jabber msn myspace mxit novell oscar sametime silc simple yahoo zephyr" --fi --if test "x$have_meanwhile" != "xyes"; then -- DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/sametime//'` -+ DYNAMIC_PRPLS="bonjour irc jabber silc simple zephyr" - fi - if test "x$avahiincludes" != "xyes" -o "x$avahilibs" != "xyes"; then - DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/bonjour//'` -@@ -19707,22 +19213,12 @@ - for i in $DYNAMIC_PRPLS ; do - case $i in - bonjour) dynamic_bonjour=yes ;; -- gg) dynamic_gg=yes ;; - irc) dynamic_irc=yes ;; - jabber) dynamic_jabber=yes ;; -- msn) dynamic_msn=yes ;; -- myspace) dynamic_myspace=yes ;; -- mxit) dynamic_mxit=yes ;; -- novell) dynamic_novell=yes ;; - null) dynamic_null=yes ;; -- oscar) dynamic_oscar=yes ;; -- aim) dynamic_oscar=yes ;; -- icq) dynamic_oscar=yes ;; -- sametime) dynamic_sametime=yes ;; - silc) dynamic_silc=yes ;; - silc10) dynamic_silc=yes ;; - simple) dynamic_simple=yes ;; -- yahoo) dynamic_yahoo=yes ;; - zephyr) dynamic_zephyr=yes ;; - *) echo "Invalid dynamic protocol $i!!" ; exit 1 ;; - esac -@@ -21001,7 +20497,7 @@ - fi - - --msg_ssl="None. MSN, Yahoo!, Novell Groupwise and Google Talk will not work without GnuTLS or NSS. OpenSSL is NOT usable!" -+msg_ssl="None." - looked_for_gnutls="no" - if test "x$enable_gnutls" != "xno"; then - enable_gnutls="no" -@@ -21871,19 +21367,17 @@ - as_fn_error $? " - Neither GnuTLS or NSS SSL development headers found. - Use --disable-nss --disable-gnutls if you do not need SSL support. --MSN, Yahoo!, Novell Groupwise and Google Talk will not work without GnuTLS or NSS. OpenSSL is NOT usable! -+ - " "$LINENO" 5 - elif test "x$looked_for_gnutls" = "xyes" -a "x$force_deps" = "xyes" ; then - as_fn_error $? " - GnuTLS SSL development headers not found. - Use --disable-gnutls if you do not need SSL support. --MSN, Yahoo!, Novell Groupwise and Google Talk will not work without SSL support. - " "$LINENO" 5 - elif test "x$looked_for_nss" = "xyes" -a "x$force_deps" = "xyes" ; then - as_fn_error $? " - NSS SSL development headers not found. - Use --disable-nss if you do not need SSL support. --MSN, Yahoo!, Novell Groupwise and Google Talk will not work without SSL support. - " "$LINENO" 5 - fi - -@@ -23176,7 +22670,7 @@ - fi - - --ac_config_files="$ac_config_files Makefile Doxyfile doc/Makefile doc/pidgin.1 doc/finch.1 m4macros/Makefile pidgin.apspec pidgin/Makefile pidgin/pidgin.pc pidgin/pidgin-uninstalled.pc pidgin/pidgin-2.pc pidgin/pidgin-2-uninstalled.pc pidgin/pixmaps/Makefile pidgin/pixmaps/emotes/default/24/Makefile pidgin/pixmaps/emotes/none/Makefile pidgin/pixmaps/emotes/small/16/Makefile pidgin/plugins/Makefile pidgin/plugins/cap/Makefile pidgin/plugins/disco/Makefile pidgin/plugins/gestures/Makefile pidgin/plugins/gevolution/Makefile pidgin/plugins/musicmessaging/Makefile pidgin/plugins/perl/Makefile pidgin/plugins/perl/common/Makefile.PL pidgin/plugins/ticker/Makefile libpurple/ciphers/Makefile libpurple/example/Makefile libpurple/gconf/Makefile libpurple/purple.pc libpurple/purple-uninstalled.pc libpurple/purple-2.pc libpurple/purple-2-uninstalled.pc libpurple/plugins/Makefile libpurple/plugins/mono/Makefile libpurple/plugins/mono/api/Makefile libpurple/plugins/mono/loader/Makefile libpurple/plugins/perl/Makefile libpurple/plugins/perl/common/Makefile.PL libpurple/plugins/ssl/Makefile libpurple/plugins/tcl/Makefile libpurple/Makefile libpurple/protocols/Makefile libpurple/protocols/bonjour/Makefile libpurple/protocols/gg/Makefile libpurple/protocols/irc/Makefile libpurple/protocols/jabber/Makefile libpurple/protocols/msn/Makefile libpurple/protocols/myspace/Makefile libpurple/protocols/mxit/Makefile libpurple/protocols/novell/Makefile libpurple/protocols/null/Makefile libpurple/protocols/oscar/Makefile libpurple/protocols/sametime/Makefile libpurple/protocols/silc/Makefile libpurple/protocols/silc10/Makefile libpurple/protocols/simple/Makefile libpurple/protocols/yahoo/Makefile libpurple/protocols/zephyr/Makefile libpurple/tests/Makefile libpurple/purple.h libpurple/version.h share/sounds/Makefile share/ca-certs/Makefile finch/finch.pc finch/Makefile finch/libgnt/Makefile finch/libgnt/gnt.pc finch/libgnt/wms/Makefile finch/plugins/Makefile po/Makefile.in pidgin.spec" -+ac_config_files="$ac_config_files Makefile Doxyfile doc/Makefile doc/pidgin.1 doc/finch.1 m4macros/Makefile pidgin.apspec pidgin/Makefile pidgin/pidgin.pc pidgin/pidgin-uninstalled.pc pidgin/pidgin-2.pc pidgin/pidgin-2-uninstalled.pc pidgin/pixmaps/Makefile pidgin/pixmaps/emotes/default/24/Makefile pidgin/pixmaps/emotes/none/Makefile pidgin/pixmaps/emotes/small/16/Makefile pidgin/plugins/Makefile pidgin/plugins/cap/Makefile pidgin/plugins/disco/Makefile pidgin/plugins/gestures/Makefile pidgin/plugins/gevolution/Makefile pidgin/plugins/musicmessaging/Makefile pidgin/plugins/perl/Makefile pidgin/plugins/perl/common/Makefile.PL pidgin/plugins/ticker/Makefile libpurple/ciphers/Makefile libpurple/example/Makefile libpurple/gconf/Makefile libpurple/purple.pc libpurple/purple-uninstalled.pc libpurple/purple-2.pc libpurple/purple-2-uninstalled.pc libpurple/plugins/Makefile libpurple/plugins/mono/Makefile libpurple/plugins/mono/api/Makefile libpurple/plugins/mono/loader/Makefile libpurple/plugins/perl/Makefile libpurple/plugins/perl/common/Makefile.PL libpurple/plugins/ssl/Makefile libpurple/plugins/tcl/Makefile libpurple/Makefile libpurple/protocols/Makefile libpurple/protocols/bonjour/Makefile libpurple/protocols/irc/Makefile libpurple/protocols/jabber/Makefile libpurple/protocols/null/Makefile libpurple/protocols/silc/Makefile libpurple/protocols/silc10/Makefile libpurple/protocols/simple/Makefile libpurple/protocols/zephyr/Makefile libpurple/tests/Makefile libpurple/purple.h libpurple/version.h share/sounds/Makefile share/ca-certs/Makefile finch/finch.pc finch/Makefile finch/libgnt/Makefile finch/libgnt/gnt.pc finch/libgnt/wms/Makefile finch/plugins/Makefile po/Makefile.in pidgin.spec" - - cat >confcache <<\_ACEOF - # This file is a shell script that caches the results of configure -@@ -23344,10 +22838,6 @@ - as_fn_error $? "conditional \"USE_VV\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi --if test -z "${USE_INTERNAL_LIBGADU_TRUE}" && test -z "${USE_INTERNAL_LIBGADU_FALSE}"; then -- as_fn_error $? "conditional \"USE_INTERNAL_LIBGADU\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi - if test -z "${DISTRIB_TRUE}" && test -z "${DISTRIB_FALSE}"; then - as_fn_error $? "conditional \"DISTRIB\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 -@@ -23356,10 +22846,6 @@ - as_fn_error $? "conditional \"STATIC_BONJOUR\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi --if test -z "${STATIC_GG_TRUE}" && test -z "${STATIC_GG_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_GG\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi - if test -z "${STATIC_IRC_TRUE}" && test -z "${STATIC_IRC_FALSE}"; then - as_fn_error $? "conditional \"STATIC_IRC\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 -@@ -23368,30 +22854,6 @@ - as_fn_error $? "conditional \"STATIC_JABBER\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi --if test -z "${STATIC_MSN_TRUE}" && test -z "${STATIC_MSN_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_MSN\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi --if test -z "${STATIC_MYSPACE_TRUE}" && test -z "${STATIC_MYSPACE_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_MYSPACE\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi --if test -z "${STATIC_MXIT_TRUE}" && test -z "${STATIC_MXIT_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_MXIT\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi --if test -z "${STATIC_NOVELL_TRUE}" && test -z "${STATIC_NOVELL_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_NOVELL\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi --if test -z "${STATIC_OSCAR_TRUE}" && test -z "${STATIC_OSCAR_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_OSCAR\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi --if test -z "${STATIC_SAMETIME_TRUE}" && test -z "${STATIC_SAMETIME_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_SAMETIME\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi - if test -z "${STATIC_SILC_TRUE}" && test -z "${STATIC_SILC_FALSE}"; then - as_fn_error $? "conditional \"STATIC_SILC\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 -@@ -23400,10 +22862,6 @@ - as_fn_error $? "conditional \"STATIC_SIMPLE\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi --if test -z "${STATIC_YAHOO_TRUE}" && test -z "${STATIC_YAHOO_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_YAHOO\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi - if test -z "${STATIC_ZEPHYR_TRUE}" && test -z "${STATIC_ZEPHYR_FALSE}"; then - as_fn_error $? "conditional \"STATIC_ZEPHYR\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 -@@ -24425,20 +23883,12 @@ - "libpurple/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/Makefile" ;; - "libpurple/protocols/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/Makefile" ;; - "libpurple/protocols/bonjour/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/bonjour/Makefile" ;; -- "libpurple/protocols/gg/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/gg/Makefile" ;; - "libpurple/protocols/irc/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/irc/Makefile" ;; - "libpurple/protocols/jabber/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/jabber/Makefile" ;; -- "libpurple/protocols/msn/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/msn/Makefile" ;; -- "libpurple/protocols/myspace/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/myspace/Makefile" ;; -- "libpurple/protocols/mxit/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/mxit/Makefile" ;; -- "libpurple/protocols/novell/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/novell/Makefile" ;; - "libpurple/protocols/null/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/null/Makefile" ;; -- "libpurple/protocols/oscar/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/oscar/Makefile" ;; -- "libpurple/protocols/sametime/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/sametime/Makefile" ;; - "libpurple/protocols/silc/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/silc/Makefile" ;; - "libpurple/protocols/silc10/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/silc10/Makefile" ;; - "libpurple/protocols/simple/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/simple/Makefile" ;; -- "libpurple/protocols/yahoo/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/yahoo/Makefile" ;; - "libpurple/protocols/zephyr/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/zephyr/Makefile" ;; - "libpurple/tests/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/tests/Makefile" ;; - "libpurple/purple.h") CONFIG_FILES="$CONFIG_FILES libpurple/purple.h" ;; -@@ -25863,7 +25313,6 @@ - echo Build with Cyrus SASL support. : $enable_cyrus_sasl - echo Use kerberos 4 with zephyr.... : $kerberos - echo Use external libzephyr........ : $zephyr --echo Use external libgadu.......... : $gadu_libs - echo Install pixmaps............... : $enable_pixmaps - echo Old tray icon compatibility... : $enable_traycompat - echo Install translations.......... : $enable_i18n -diff -Nur pidgin-2.10.7/configure.ac pidgin-2.10.7-nonprism/configure.ac ---- pidgin-2.10.7/configure.ac 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/configure.ac 2013-08-16 23:44:41.800496326 -0300 -@@ -854,28 +854,6 @@ - fi - - dnl ####################################################################### --dnl # Check for Meanwhile headers (for Sametime) --dnl ####################################################################### --AC_ARG_ENABLE(meanwhile, -- [AC_HELP_STRING([--disable-meanwhile], -- [compile without meanwhile (required for Sametime support)])], -- enable_meanwhile="$enableval", enable_meanwhile="yes") --if test "x$enable_meanwhile" = "xyes"; then -- PKG_CHECK_MODULES(MEANWHILE, [meanwhile >= 1.0.0 meanwhile < 2.0.0], [ -- have_meanwhile="yes" -- ], [ -- have_meanwhile="no" -- if test "x$force_deps" = "xyes" ; then -- AC_MSG_ERROR([ --Meanwhile development headers not found. --Use --disable-meanwhile if you do not need meanwhile (Sametime) support. --]) -- fi]) --fi --AC_SUBST(MEANWHILE_CFLAGS) --AC_SUBST(MEANWHILE_LIBS) -- --dnl ####################################################################### - dnl # Check for Native Avahi headers (for Bonjour) - dnl ####################################################################### - AC_ARG_ENABLE(avahi, -@@ -1020,100 +998,6 @@ - CPPFLAGS="$CPPFLAGS_save" - fi - --dnl ####################################################################### --dnl # Check for Gadu-Gadu client includes and libraries --dnl ####################################################################### --AC_ARG_WITH(gadu-includes, [AC_HELP_STRING([--with-gadu-includes=DIR], [compile the Gadu-Gadu plugin against includes in DIR])], [ac_gadu_includes="$withval"], [ac_gadu_includes="no"]) --AC_ARG_WITH(gadu-libs, [AC_HELP_STRING([--with-gadu-libs=DIR], [compile the Gadu-Gadu plugin against the libs in DIR])], [ac_gadu_libs="$withval"], [ac_gadu_libs="no"]) --GADU_CFLAGS="" --GADU_LIBS="" --if test -n "$with_gadu_includes" || test -n "$with_gadu_libs"; then -- gadu_manual_check="yes" --else -- gadu_manual_check="no" --fi --if test "x$gadu_manual_check" = "xno"; then -- PKG_CHECK_MODULES(GADU, [libgadu >= 1.11.0], [ -- gadu_includes="yes" -- gadu_libs="yes" -- ], [ -- gadu_includes="no" -- ]) --else -- if test "$ac_gadu_includes" != "no"; then -- GADU_CFLAGS="-I$ac_gadu_includes" -- fi -- CPPFLAGS_save="$CPPFLAGS" -- CPPFLAGS="$CPPFLAGS $GADU_CFLAGS" -- AC_CHECK_HEADER(libgadu.h, [gadu_includes=yes]) -- CPPFLAGS="$CPPFLAGS_save" -- -- if test "$ac_gadu_libs" != "no"; then -- GADU_LIBS="-L$ac_gadu_libs" -- fi -- GADU_LIBS="$GADU_LIBS -lgadu" -- AC_CHECK_LIB(gadu, gg_libgadu_version, [gadu_libs=yes], , $GADU_LIBS) --fi --GADU_CFLAGS=`echo $GADU_CFLAGS |$sedpath 's/-Wall//'` -- --if test "x$gadu_libs" = "xyes"; then -- AC_MSG_CHECKING(for libgadu GPL compatibility) -- CPPFLAGS_save="$CPPFLAGS" -- CPPFLAGS="$CPPFLAGS $GADU_CFLAGS" -- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libgadu.h>]], [[ --#if defined(__GG_LIBGADU_HAVE_OPENSSL) || defined(GG_CONFIG_HAVE_OPENSSL) --#error "libgadu is not compatible with the GPL when compiled with OpenSSL support." --#endif -- ]])], [ -- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libgadu.h>]], [[ --#if GG_DEFAULT_PROTOCOL_VERSION < 0x2e --#error "Your libgadu version is too old. libpurple requires 1.11.0 or higher." --#endif -- ]])], [ -- AC_MSG_RESULT(yes) -- AC_DEFINE([HAVE_LIBGADU], [1], -- [Define to 1 if you have libgadu.]) -- ], [ -- AC_MSG_RESULT(no) -- echo -- echo -- echo "Your supplied copy of libgadu is too old." -- echo "Install version 1.11.0 or newer." -- echo "Then rerun this ./configure" -- echo -- echo "Falling back to using our own copy of libgadu" -- echo -- GADU_LIBS="" -- GADU_CFLAGS="" -- gadu_libs=no -- ]) -- ], [ -- AC_MSG_RESULT(no) -- echo -- echo -- echo "libgadu is not compatible with the GPL when compiled with OpenSSL support." -- echo "To compile against system libgadu, please recompile libgadu using:" -- echo "./autogen.sh --disable-libgadu-openssl --disable-static --enable-shared" -- echo "Then rerun this ./configure" -- echo -- echo "Falling back to using our own copy of libgadu" -- echo -- GADU_LIBS="" -- GADU_CFLAGS="" -- gadu_libs=no -- ]) -- CPPFLAGS="$CPPFLAGS_save" --fi -- --AM_CONDITIONAL(USE_INTERNAL_LIBGADU, test "x$gadu_libs" != "xyes") -- --if test "x$gadu_libs" = "x"; then -- gadu_libs=no --fi -- --AC_SUBST(GADU_LIBS) --AC_SUBST(GADU_CFLAGS) -- - AC_ARG_ENABLE(distrib,,,enable_distrib=no) - AM_CONDITIONAL(DISTRIB, test "x$enable_distrib" = "xyes") - DYNAMIC_PRPLS=all -@@ -1123,10 +1007,7 @@ - fi - - if test "x$STATIC_PRPLS" = "xall" ; then -- STATIC_PRPLS="bonjour gg irc jabber msn myspace mxit novell oscar sametime silc simple yahoo zephyr" --fi --if test "x$have_meanwhile" != "xyes" ; then -- STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/sametime//'` -+ STATIC_PRPLS="bonjour irc jabber silc simple zephyr" - fi - if test "x$avahiincludes" != "xyes" -o "x$avahilibs" != "xyes"; then - STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/bonjour//'` -@@ -1143,64 +1024,31 @@ - load_proto= - for i in $STATIC_PRPLS ; do - dnl Ugly special case for "libsilcpurple.la": -- dnl ... and Ugly special case for multi-protocol oscar and yahoo -- if test \( "x$i" = "xoscar" -o "x$i" = "xaim" -o "x$i" = "xicq" \) -a "x$static_oscar" != "xyes"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/oscar/liboscar.la" -- extern_init="$extern_init extern gboolean purple_init_aim_plugin();" -- extern_init="$extern_init extern gboolean purple_init_icq_plugin();" -- load_proto="$load_proto purple_init_aim_plugin();" -- load_proto="$load_proto purple_init_icq_plugin();" -- elif test "x$i" = "xyahoo"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/yahoo/libymsg.la" -- extern_init="$extern_init extern gboolean purple_init_yahoo_plugin();" -- extern_init="$extern_init extern gboolean purple_init_yahoojp_plugin();" -- load_proto="$load_proto purple_init_yahoo_plugin();" -- load_proto="$load_proto purple_init_yahoojp_plugin();" -+ if test "x$i" = "xsilc"; then -+ STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib${i}purple.la" -+ elif test "x$i" = "xsilc10"; then -+ STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/libsilcpurple.la" - else -- if test "x$i" = "xsilc"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib${i}purple.la" -- elif test "x$i" = "xsilc10"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/libsilcpurple.la" -- else -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib$i.la" -- fi -- extern_init="$extern_init extern gboolean purple_init_${i}_plugin();" -- load_proto="$load_proto purple_init_${i}_plugin();" -+ STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib$i.la" - fi -+ extern_init="$extern_init extern gboolean purple_init_${i}_plugin();" -+ load_proto="$load_proto purple_init_${i}_plugin();" - case $i in - bonjour) static_bonjour=yes ;; -- gg) static_gg=yes ;; - irc) static_irc=yes ;; - jabber) static_jabber=yes ;; -- msn) static_msn=yes ;; -- myspace) static_myspace=yes ;; -- mxit) static_mxit=yes ;; -- novell) static_novell=yes ;; -- oscar) static_oscar=yes ;; -- aim) static_oscar=yes ;; -- icq) static_oscar=yes ;; -- sametime) static_sametime=yes ;; - silc) static_silc=yes ;; - silc10) static_silc=yes ;; - simple) static_simple=yes ;; -- yahoo) static_yahoo=yes ;; - zephyr) static_zephyr=yes ;; - *) echo "Invalid static protocol $i!!" ; exit 1 ;; - esac - done - AM_CONDITIONAL(STATIC_BONJOUR, test "x$static_bonjour" = "xyes") --AM_CONDITIONAL(STATIC_GG, test "x$static_gg" = "xyes") - AM_CONDITIONAL(STATIC_IRC, test "x$static_irc" = "xyes") - AM_CONDITIONAL(STATIC_JABBER, test "x$static_jabber" = "xyes") --AM_CONDITIONAL(STATIC_MSN, test "x$static_msn" = "xyes") --AM_CONDITIONAL(STATIC_MYSPACE, test "x$static_myspace" = "xyes") --AM_CONDITIONAL(STATIC_MXIT, test "x$static_mxit" = "xyes") --AM_CONDITIONAL(STATIC_NOVELL, test "x$static_novell" = "xyes") --AM_CONDITIONAL(STATIC_OSCAR, test "x$static_oscar" = "xyes") --AM_CONDITIONAL(STATIC_SAMETIME, test "x$static_sametime" = "xyes" -a "x$have_meanwhile" = "xyes") - AM_CONDITIONAL(STATIC_SILC, test "x$static_silc" = "xyes" -a "x$have_silc" = "xyes") - AM_CONDITIONAL(STATIC_SIMPLE, test "x$static_simple" = "xyes") --AM_CONDITIONAL(STATIC_YAHOO, test "x$static_yahoo" = "xyes") - AM_CONDITIONAL(STATIC_ZEPHYR, test "x$static_zephyr" = "xyes") - AC_SUBST(STATIC_LINK_LIBS) - AC_DEFINE_UNQUOTED(STATIC_PROTO_INIT, $extern_init static void static_proto_init(void) { $load_proto }, -@@ -1208,10 +1056,7 @@ - - AC_ARG_WITH(dynamic_prpls, [AC_HELP_STRING([--with-dynamic-prpls], [specify which protocols to build dynamically])], [DYNAMIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`]) - if test "x$DYNAMIC_PRPLS" = "xall" ; then -- DYNAMIC_PRPLS="bonjour gg irc jabber msn myspace mxit novell oscar sametime silc simple yahoo zephyr" --fi --if test "x$have_meanwhile" != "xyes"; then -- DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/sametime//'` -+ DYNAMIC_PRPLS="bonjour irc jabber silc simple zephyr" - fi - if test "x$avahiincludes" != "xyes" -o "x$avahilibs" != "xyes"; then - DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/bonjour//'` -@@ -1226,22 +1071,12 @@ - for i in $DYNAMIC_PRPLS ; do - case $i in - bonjour) dynamic_bonjour=yes ;; -- gg) dynamic_gg=yes ;; - irc) dynamic_irc=yes ;; - jabber) dynamic_jabber=yes ;; -- msn) dynamic_msn=yes ;; -- myspace) dynamic_myspace=yes ;; -- mxit) dynamic_mxit=yes ;; -- novell) dynamic_novell=yes ;; - null) dynamic_null=yes ;; -- oscar) dynamic_oscar=yes ;; -- aim) dynamic_oscar=yes ;; -- icq) dynamic_oscar=yes ;; -- sametime) dynamic_sametime=yes ;; - silc) dynamic_silc=yes ;; - silc10) dynamic_silc=yes ;; - simple) dynamic_simple=yes ;; -- yahoo) dynamic_yahoo=yes ;; - zephyr) dynamic_zephyr=yes ;; - *) echo "Invalid dynamic protocol $i!!" ; exit 1 ;; - esac -@@ -1713,7 +1548,7 @@ - [enable_nss="$enableval"], - [enable_nss="yes"]) - --msg_ssl="None. MSN, Yahoo!, Novell Groupwise and Google Talk will not work without GnuTLS or NSS. OpenSSL is NOT usable!" -+msg_ssl="None." - looked_for_gnutls="no" - dnl # - dnl # Check for GnuTLS if it's specified. -@@ -2124,19 +1959,16 @@ - AC_MSG_ERROR([ - Neither GnuTLS or NSS SSL development headers found. - Use --disable-nss --disable-gnutls if you do not need SSL support. --MSN, Yahoo!, Novell Groupwise and Google Talk will not work without GnuTLS or NSS. OpenSSL is NOT usable! - ]) - elif test "x$looked_for_gnutls" = "xyes" -a "x$force_deps" = "xyes" ; then - AC_MSG_ERROR([ - GnuTLS SSL development headers not found. - Use --disable-gnutls if you do not need SSL support. --MSN, Yahoo!, Novell Groupwise and Google Talk will not work without SSL support. - ]) - elif test "x$looked_for_nss" = "xyes" -a "x$force_deps" = "xyes" ; then - AC_MSG_ERROR([ - NSS SSL development headers not found. - Use --disable-nss if you do not need SSL support. --MSN, Yahoo!, Novell Groupwise and Google Talk will not work without SSL support. - ]) - fi - -@@ -2577,20 +2409,12 @@ - libpurple/Makefile - libpurple/protocols/Makefile - libpurple/protocols/bonjour/Makefile -- libpurple/protocols/gg/Makefile - libpurple/protocols/irc/Makefile - libpurple/protocols/jabber/Makefile -- libpurple/protocols/msn/Makefile -- libpurple/protocols/myspace/Makefile -- libpurple/protocols/mxit/Makefile -- libpurple/protocols/novell/Makefile - libpurple/protocols/null/Makefile -- libpurple/protocols/oscar/Makefile -- libpurple/protocols/sametime/Makefile - libpurple/protocols/silc/Makefile - libpurple/protocols/silc10/Makefile - libpurple/protocols/simple/Makefile -- libpurple/protocols/yahoo/Makefile - libpurple/protocols/zephyr/Makefile - libpurple/tests/Makefile - libpurple/purple.h -@@ -2635,7 +2459,6 @@ - echo Build with Cyrus SASL support. : $enable_cyrus_sasl - echo Use kerberos 4 with zephyr.... : $kerberos - echo Use external libzephyr........ : $zephyr --echo Use external libgadu.......... : $gadu_libs - echo Install pixmaps............... : $enable_pixmaps - echo Old tray icon compatibility... : $enable_traycompat - echo Install translations.......... : $enable_i18n -diff -Nur pidgin-2.10.7/doc/finch.1.in pidgin-2.10.7-nonprism/doc/finch.1.in ---- pidgin-2.10.7/doc/finch.1.in 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/doc/finch.1.in 2013-08-16 21:01:16.682280145 -0300 -@@ -30,11 +30,8 @@ - .SH DESCRIPTION - .PP - \fBfinch\fR is a console-based modular messaging client based on libpurple --which is capable of connecting to AIM, MSN, Yahoo!, XMPP, ICQ, IRC, SILC, --Novell GroupWise, Lotus Sametime, Zephyr, Gadu-Gadu, and QQ all at once. It has -+which is capable of connecting to XMPP, IRC, SILC and Zephyr all at once. It has - many common features found in other clients, as well as many unique features. --Finch is not endorsed by or affiliated with America Online, ICQ, Microsoft, or --Yahoo. - - .SH OPTIONS - The following options are provided by \fBfinch\fR using the standard GNU -diff -Nur pidgin-2.10.7/doc/funniest_home_convos.txt pidgin-2.10.7-nonprism/doc/funniest_home_convos.txt ---- pidgin-2.10.7/doc/funniest_home_convos.txt 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/doc/funniest_home_convos.txt 2013-08-16 23:08:16.148841464 -0300 -@@ -301,8 +301,6 @@ - --- - - 18:33:26 <NoName> hello there --18:34:03 <NoName> I just wanted to share some bevavior that I think its kinda of -- unsafe when using GAIM with yahoo messenges accounts - 18:34:43 <NoName> Whenever you transfer files between users, no receiving - confirmation is requested, the file gets transfered - automatically -diff -Nur pidgin-2.10.7/doc/pidgin.1.in pidgin-2.10.7-nonprism/doc/pidgin.1.in ---- pidgin-2.10.7/doc/pidgin.1.in 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/doc/pidgin.1.in 2013-08-16 21:00:30.964181946 -0300 -@@ -29,11 +29,8 @@ - .SH DESCRIPTION - .PP - \fBpidgin\fR is a graphical modular messaging client based on libpurple --which is capable of connecting to AIM, MSN, Yahoo!, XMPP, ICQ, IRC, SILC, --Novell GroupWise, Lotus Sametime, Zephyr, Gadu-Gadu, and QQ all at once. It has -+which is capable of connecting to XMPP, IRC, SILC and Zephyr all at once. It has - many common features found in other clients, as well as many unique features. --Pidgin is not endorsed by or affiliated with America Online, ICQ, Microsoft, or --Yahoo. - .PP - Pidgin can be extended by plugins written in multiple programming languages and - controlled through DBus or \fBpurple-remote\fR. -diff -Nur pidgin-2.10.7/libpurple/account.c pidgin-2.10.7-nonprism/libpurple/account.c ---- pidgin-2.10.7/libpurple/account.c 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/account.c 2013-08-16 23:31:48.026518940 -0300 -@@ -482,55 +482,6 @@ - /********************************************************************* - * Reading from disk * - *********************************************************************/ --static void --migrate_yahoo_japan(PurpleAccount *account) --{ -- /* detect a Yahoo! JAPAN account that existed prior to 2.6.0 and convert it -- * to use the new prpl-yahoojp. Also remove the account-specific settings -- * we no longer need */ -- -- if(purple_strequal(purple_account_get_protocol_id(account), "prpl-yahoo")) { -- if(purple_account_get_bool(account, "yahoojp", FALSE)) { -- const char *serverjp = purple_account_get_string(account, "serverjp", NULL); -- const char *xferjp_host = purple_account_get_string(account, "xferjp_host", NULL); -- -- g_return_if_fail(serverjp != NULL); -- g_return_if_fail(xferjp_host != NULL); -- -- purple_account_set_string(account, "server", serverjp); -- purple_account_set_string(account, "xfer_host", xferjp_host); -- -- purple_account_set_protocol_id(account, "prpl-yahoojp"); -- } -- -- /* these should always be nuked */ -- purple_account_remove_setting(account, "yahoojp"); -- purple_account_remove_setting(account, "serverjp"); -- purple_account_remove_setting(account, "xferjp_host"); -- -- } --} -- --static void --migrate_icq_server(PurpleAccount *account) --{ -- /* Migrate the login server setting for ICQ accounts. See -- * 'mtn log --last 1 --no-graph --from b6d7712e90b68610df3bd2d8cbaf46d94c8b3794' -- * for details on the change. */ -- -- if(purple_strequal(purple_account_get_protocol_id(account), "prpl-icq")) { -- const char *tmp = purple_account_get_string(account, "server", NULL); -- -- /* Non-secure server */ -- if(purple_strequal(tmp, "login.messaging.aol.com") || -- purple_strequal(tmp, "login.oscar.aol.com")) -- purple_account_set_string(account, "server", "login.icq.com"); -- -- /* Secure server */ -- if(purple_strequal(tmp, "slogin.oscar.aol.com")) -- purple_account_set_string(account, "server", "slogin.icq.com"); -- } --} - - static void - migrate_xmpp_encryption(PurpleAccount *account) -@@ -615,12 +566,6 @@ - g_free(data); - } - -- /* we do this here because we need access to account settings to determine -- * if we can/should migrate an old Yahoo! JAPAN account */ -- migrate_yahoo_japan(account); -- /* we do this here because we need access to account settings to determine -- * if we can/should migrate an ICQ account's server setting */ -- migrate_icq_server(account); - /* we do this here because we need to do it before the user views the - * Edit Account dialog. */ - migrate_xmpp_encryption(account); -@@ -874,7 +819,6 @@ - return NULL; - } - -- ret = purple_account_new(name, _purple_oscar_convert(name, protocol_id)); /* XXX: */ - g_free(name); - g_free(protocol_id); - -diff -Nur pidgin-2.10.7/libpurple/blist.c pidgin-2.10.7-nonprism/libpurple/blist.c ---- pidgin-2.10.7/libpurple/blist.c 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/blist.c 2013-08-16 22:53:19.640535242 -0300 -@@ -466,9 +466,7 @@ - - acct_name = xmlnode_get_attrib(bnode, "account"); - protocol = xmlnode_get_attrib(bnode, "protocol"); -- protocol = _purple_oscar_convert(acct_name, protocol); /* XXX: Remove */ - proto = xmlnode_get_attrib(bnode, "proto"); -- proto = _purple_oscar_convert(acct_name, proto); /* XXX: Remove */ - - if (!acct_name || (!proto && !protocol)) - return; -diff -Nur pidgin-2.10.7/libpurple/buddyicon.c pidgin-2.10.7-nonprism/libpurple/buddyicon.c ---- pidgin-2.10.7/libpurple/buddyicon.c 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/buddyicon.c 2013-08-16 23:28:49.244233493 -0300 -@@ -1099,18 +1099,6 @@ - { - PurpleAccount *account = purple_buddy_get_account((PurpleBuddy *)node); - const char *prpl_id = purple_account_get_protocol_id(account); -- -- if (g_str_equal(prpl_id, "prpl-yahoo") || g_str_equal(prpl_id, "prpl-yahoojp")) -- { -- int checksum = purple_blist_node_get_int(node, "icon_checksum"); -- if (checksum != 0) -- { -- char *checksum_str = g_strdup_printf("%i", checksum); -- purple_blist_node_remove_setting(node, "icon_checksum"); -- purple_blist_node_set_string(node, "icon_checksum", checksum_str); -- g_free(checksum_str); -- } -- } - } - } - } -diff -Nur pidgin-2.10.7/libpurple/ft.h pidgin-2.10.7-nonprism/libpurple/ft.h ---- pidgin-2.10.7/libpurple/ft.h 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/ft.h 2013-08-16 22:51:20.590085226 -0300 -@@ -470,8 +470,6 @@ - * can be used to jump backward in the file if the protocol detects - * that some bit of data needs to be resent or has been sent twice. - * -- * It's used for pausing and resuming an oscar file transfer. -- * - * @param xfer The file transfer. - * @param bytes_sent The new current position in the file. If we're - * sending a file then this is the byte that we will -diff -Nur pidgin-2.10.7/libpurple/gaim-compat.h pidgin-2.10.7-nonprism/libpurple/gaim-compat.h ---- pidgin-2.10.7/libpurple/gaim-compat.h 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/gaim-compat.h 2013-08-16 23:33:16.372629159 -0300 -@@ -2302,16 +2302,8 @@ - #define gaim_init_ssl_plugin purple_init_ssl_plugin - #define gaim_init_ssl_openssl_plugin purple_init_ssl_openssl_plugin - #define gaim_init_ssl_gnutls_plugin purple_init_ssl_gnutls_plugin --#define gaim_init_gg_plugin purple_init_gg_plugin - #define gaim_init_jabber_plugin purple_init_jabber_plugin --#define gaim_init_sametime_plugin purple_init_sametime_plugin --#define gaim_init_msn_plugin purple_init_msn_plugin --#define gaim_init_novell_plugin purple_init_novell_plugin --#define gaim_init_qq_plugin purple_init_qq_plugin - #define gaim_init_simple_plugin purple_init_simple_plugin --#define gaim_init_yahoo_plugin purple_init_yahoo_plugin - #define gaim_init_zephyr_plugin purple_init_zephyr_plugin --#define gaim_init_aim_plugin purple_init_aim_plugin --#define gaim_init_icq_plugin purple_init_icq_plugin - - #endif /* _GAIM_COMPAT_H_ */ -diff -Nur pidgin-2.10.7/libpurple/internal.h pidgin-2.10.7-nonprism/libpurple/internal.h ---- pidgin-2.10.7/libpurple/internal.h 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/internal.h 2013-08-17 00:24:37.244172407 -0300 -@@ -43,7 +43,7 @@ - * - * The Singular/Plural/Number ngettext dummy definition below was - * taken from an email to the texinfo mailing list by Manuel Guerrero. -- * Thank you Manuel, and thank you Alex's good friend Google. -+ * Thank you Manuel. - */ - #ifdef ENABLE_NLS - # include <locale.h> -diff -Nur pidgin-2.10.7/libpurple/media/backend-fs2.c pidgin-2.10.7-nonprism/libpurple/media/backend-fs2.c ---- pidgin-2.10.7/libpurple/media/backend-fs2.c 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/media/backend-fs2.c 2013-08-17 00:23:19.488440821 -0300 -@@ -1661,18 +1661,6 @@ - g_object_set(G_OBJECT(session->session), - "no-rtcp-timeout", 0, NULL); - -- /* -- * Hack to make x264 work with Gmail video. -- */ -- if (is_nice && !strcmp(sess_id, "google-video")) { -- FsElementAddedNotifier *notifier = -- fs_element_added_notifier_new(); -- g_signal_connect(G_OBJECT(notifier), "element-added", -- G_CALLBACK(gst_element_added_cb), NULL); -- fs_element_added_notifier_add(notifier, -- GST_BIN(priv->conference)); -- } -- - session->id = g_strdup(sess_id); - session->backend = self; - session->type = type; -diff -Nur pidgin-2.10.7/libpurple/plugins/psychic.c pidgin-2.10.7-nonprism/libpurple/plugins/psychic.c ---- pidgin-2.10.7/libpurple/plugins/psychic.c 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/plugins/psychic.c 2013-08-27 21:18:22.251908751 -0300 -@@ -20,8 +20,7 @@ - #define PLUGIN_NAME N_("Psychic Mode") - #define PLUGIN_SUMMARY N_("Psychic mode for incoming conversation") - #define PLUGIN_DESC N_("Causes conversation windows to appear as other" \ -- " users begin to message you. This works for" \ -- " AIM, ICQ, XMPP, Sametime, and Yahoo!") -+ " users begin to message you. This works for XMPP") - #define PLUGIN_AUTHOR "Christopher O'Brien <siege@preoccupied.net>" - - -diff -Nur pidgin-2.10.7/libpurple/pounce.c pidgin-2.10.7-nonprism/libpurple/pounce.c ---- pidgin-2.10.7/libpurple/pounce.c 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/pounce.c 2013-08-16 23:02:20.671021669 -0300 -@@ -409,7 +409,6 @@ - g_free(data->account_name); - data->account_name = g_strdup(buffer); - tmp = data->protocol_id; -- data->protocol_id = g_strdup(_purple_oscar_convert(buffer, tmp)); - g_free(tmp); - } - else if (purple_strequal(element_name, "pouncee")) { -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/auth_cyrus.c pidgin-2.10.7-nonprism/libpurple/protocols/jabber/auth_cyrus.c ---- pidgin-2.10.7/libpurple/protocols/jabber/auth_cyrus.c 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/auth_cyrus.c 2013-08-17 00:14:13.334946817 -0300 -@@ -320,7 +320,7 @@ - xmlnode_set_namespace(auth, NS_XMPP_SASL); - xmlnode_set_attrib(auth, "mechanism", js->current_mech); - -- xmlnode_set_attrib(auth, "xmlns:ga", "http://www.google.com/talk/protocol/auth"); -+ xmlnode_set_attrib(auth, "xmlns:ga", ""); - xmlnode_set_attrib(auth, "ga:client-uses-full-bind-result", "true"); - - if (clientout) { -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/auth_plain.c pidgin-2.10.7-nonprism/libpurple/protocols/jabber/auth_plain.c ---- pidgin-2.10.7/libpurple/protocols/jabber/auth_plain.c 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/auth_plain.c 2013-08-17 00:19:44.801822370 -0300 -@@ -40,7 +40,7 @@ - auth = xmlnode_new("auth"); - xmlnode_set_namespace(auth, NS_XMPP_SASL); - -- xmlnode_set_attrib(auth, "xmlns:ga", "http://www.google.com/talk/protocol/auth"); -+ xmlnode_set_attrib(auth, "xmlns:ga", ""); - xmlnode_set_attrib(auth, "ga:client-uses-full-bind-result", "true"); - - response = g_string_new(""); -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/buddy.c pidgin-2.10.7-nonprism/libpurple/protocols/jabber/buddy.c ---- pidgin-2.10.7/libpurple/protocols/jabber/buddy.c 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/buddy.c 2013-08-17 00:22:49.080836449 -0300 -@@ -38,7 +38,6 @@ - #include "xdata.h" - #include "pep.h" - #include "adhoccommands.h" --#include "google/google.h" - - typedef struct { - long idle_seconds; -@@ -945,17 +944,7 @@ - - /* Republish our vcard if the photo is different than the server's */ - if (js->initial_avatar_hash && !purple_strequal(vcard_hash, js->initial_avatar_hash)) { -- /* -- * Google Talk has developed the behavior that it will not accept -- * a vcard set in the first 10 seconds (or so) of the connection; -- * it returns an error (namespaces trimmed): -- * <error code="500" type="wait"><internal-server-error/></error>. -- */ -- if (js->googletalk) -- js->vcard_timer = purple_timeout_add_seconds(10, set_own_vcard_cb, -- js); -- else -- jabber_set_info(js->gc, purple_account_get_user_info(account)); -+ jabber_set_info(js->gc, purple_account_get_user_info(account)); - } else if (vcard_hash) { - /* A photo is in the vCard. Advertise its hash */ - js->avatar_hash = vcard_hash; -@@ -1861,13 +1850,6 @@ - NULL, NULL); - m = g_list_append(m, act); - } -- -- if (js->googletalk) { -- act = purple_menu_action_new(_("Initiate _Chat"), -- PURPLE_CALLBACK(google_buddy_node_chat), -- NULL, NULL); -- m = g_list_append(m, act); -- } - - /* - * This if-condition implements parts of XEP-0100: Gateway Interaction -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/disco.c pidgin-2.10.7-nonprism/libpurple/protocols/jabber/disco.c ---- pidgin-2.10.7/libpurple/protocols/jabber/disco.c 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/disco.c 2013-08-27 22:49:34.275219711 -0300 -@@ -30,9 +30,6 @@ - #include "adhoccommands.h" - #include "buddy.h" - #include "disco.h" --#include "google/google.h" --#include "google/gmail.h" --#include "google/jingleinfo.h" - #include "iq.h" - #include "jabber.h" - #include "jingle/jingle.h" -@@ -142,44 +139,6 @@ - xmlnode_set_attrib(feature, "var", feat->namespace); - } - } --#ifdef USE_VV -- } else if (g_str_equal(node, CAPS0115_NODE "#" "voice-v1")) { -- /* -- * HUGE HACK! We advertise this ext (see jabber_presence_create_js -- * where we add <c/> to the <presence/>) for the Google Talk -- * clients that don't actually check disco#info features. -- * -- * This specific feature is redundant but is what -- * node='http://mail.google.com/xmpp/client/caps', ver='1.1' -- * advertises as 'voice-v1'. -- */ -- xmlnode *feature = xmlnode_new_child(query, "feature"); -- xmlnode_set_attrib(feature, "var", NS_GOOGLE_VOICE); -- } else if (g_str_equal(node, CAPS0115_NODE "#" "video-v1")) { -- /* -- * HUGE HACK! We advertise this ext (see jabber_presence_create_js -- * where we add <c/> to the <presence/>) for the Google Talk -- * clients that don't actually check disco#info features. -- * -- * This specific feature is redundant but is what -- * node='http://mail.google.com/xmpp/client/caps', ver='1.1' -- * advertises as 'video-v1'. -- */ -- xmlnode *feature = xmlnode_new_child(query, "feature"); -- xmlnode_set_attrib(feature, "var", NS_GOOGLE_VIDEO); -- } else if (g_str_equal(node, CAPS0115_NODE "#" "camera-v1")) { -- /* -- * HUGE HACK! We advertise this ext (see jabber_presence_create_js -- * where we add <c/> to the <presence/>) for the Google Talk -- * clients that don't actually check disco#info features. -- * -- * This specific feature is redundant but is what -- * node='http://mail.google.com/xmpp/client/caps', ver='1.1' -- * advertises as 'camera-v1'. -- */ -- xmlnode *feature = xmlnode_new_child(query, "feature"); -- xmlnode_set_attrib(feature, "var", NS_GOOGLE_CAMERA); --#endif - } else { - xmlnode *error, *inf; - -@@ -419,7 +378,7 @@ - - } - --/* should probably share this code with google.c, or maybe from 2.7.0 -+/* maybe from 2.7.0 - introduce an abstracted hostname -> IP function in dns.c */ - static void - jabber_disco_stun_lookup_cb(GSList *hosts, gpointer data, -@@ -538,16 +497,7 @@ - - g_free(js->server_name); - js->server_name = g_strdup(name); -- if (!strcmp(name, "Google Talk")) { -- purple_debug_info("jabber", "Google Talk!\n"); -- js->googletalk = TRUE; -- -- /* autodiscover stun and relays */ -- if (purple_network_get_stun_ip() == NULL || -- purple_strequal(purple_network_get_stun_ip(), "")) { -- jabber_google_send_jingle_info(js); -- } -- } else if (purple_network_get_stun_ip() == NULL || -+ if (purple_network_get_stun_ip() == NULL || - purple_strequal(purple_network_get_stun_ip(), "")) { - js->srv_query_data = - purple_srv_resolve_account( -@@ -565,12 +515,7 @@ - if (!var) - continue; - -- if (!strcmp(NS_GOOGLE_MAIL_NOTIFY, var)) { -- js->server_caps |= JABBER_CAP_GMAIL_NOTIFY; -- jabber_gmail_init(js); -- } else if (!strcmp(NS_GOOGLE_ROSTER, var)) { -- js->server_caps |= JABBER_CAP_GOOGLE_ROSTER; -- } else if (!strcmp("http://jabber.org/protocol/commands", var)) { -+ if (!strcmp("http://jabber.org/protocol/commands", var)) { - js->server_caps |= JABBER_CAP_ADHOC; - } else if (!strcmp(NS_SIMPLE_BLOCKING, var)) { - js->server_caps |= JABBER_CAP_BLOCKING; -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/iq.c pidgin-2.10.7-nonprism/libpurple/protocols/jabber/iq.c ---- pidgin-2.10.7/libpurple/protocols/jabber/iq.c 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/iq.c 2013-08-17 00:19:05.943958296 -0300 -@@ -28,10 +28,6 @@ - - #include "buddy.h" - #include "disco.h" --#include "google/gmail.h" --#include "google/google.h" --#include "google/jingleinfo.h" --#include "google/google_session.h" - #include "iq.h" - #include "jingle/jingle.h" - #include "oob.h" -@@ -461,13 +457,7 @@ - signal_iq_handlers = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); - - jabber_iq_register_handler("jingle", JINGLE, jingle_parse); -- jabber_iq_register_handler("mailbox", NS_GOOGLE_MAIL_NOTIFY, -- jabber_gmail_poke); -- jabber_iq_register_handler("new-mail", NS_GOOGLE_MAIL_NOTIFY, -- jabber_gmail_poke); - jabber_iq_register_handler("ping", NS_PING, jabber_ping_parse); -- jabber_iq_register_handler("query", NS_GOOGLE_JINGLE_INFO, -- jabber_google_handle_jingle_info); - jabber_iq_register_handler("query", NS_BYTESTREAMS, - jabber_bytestreams_parse); - jabber_iq_register_handler("query", NS_DISCO_INFO, jabber_disco_info_parse); -@@ -481,8 +471,6 @@ - jabber_iq_register_handler("query", "jabber:iq:version", - jabber_iq_version_parse); - #ifdef USE_VV -- jabber_iq_register_handler("session", NS_GOOGLE_SESSION, -- jabber_google_session_parse); - #endif - jabber_iq_register_handler("block", NS_SIMPLE_BLOCKING, jabber_blocklist_parse_push); - jabber_iq_register_handler("unblock", NS_SIMPLE_BLOCKING, jabber_blocklist_parse_push); -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/jabber.c pidgin-2.10.7-nonprism/libpurple/protocols/jabber/jabber.c ---- pidgin-2.10.7/libpurple/protocols/jabber/jabber.c 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/jabber.c 2013-08-27 23:23:55.191865468 -0300 -@@ -51,9 +51,6 @@ - #include "chat.h" - #include "data.h" - #include "disco.h" --#include "google/google.h" --#include "google/google_roster.h" --#include "google/google_session.h" - #include "ibb.h" - #include "iq.h" - #include "jutil.h" -@@ -1003,9 +1000,6 @@ - js->stun_ip = NULL; - js->stun_port = 0; - js->stun_query = NULL; -- js->google_relay_token = NULL; -- js->google_relay_host = NULL; -- js->google_relay_requests = NULL; - - /* if we are idle, set idle-ness on the stream (this could happen if we get - disconnected and the reconnects while being idle. I don't think it makes -@@ -1679,8 +1673,6 @@ - } - g_free(js->server_name); - g_free(js->certificate_CN); -- g_free(js->gmail_last_time); -- g_free(js->gmail_last_tid); - g_free(js->old_msg); - g_free(js->old_avatarhash); - g_free(js->old_artist); -@@ -1709,21 +1701,6 @@ - js->stun_query = NULL; - } - -- /* remove Google relay-related stuff */ -- g_free(js->google_relay_token); -- g_free(js->google_relay_host); -- if (js->google_relay_requests) { -- while (js->google_relay_requests) { -- PurpleUtilFetchUrlData *url_data = -- (PurpleUtilFetchUrlData *) js->google_relay_requests->data; -- purple_util_fetch_url_cancel(url_data); -- g_free(url_data); -- js->google_relay_requests = -- g_list_delete_link(js->google_relay_requests, -- js->google_relay_requests); -- } -- } -- - g_free(js); - - gc->proto_data = NULL; -@@ -1916,12 +1893,6 @@ - if (js == NULL) - return; - -- if (js->server_caps & JABBER_CAP_GOOGLE_ROSTER) -- { -- jabber_google_roster_add_deny(js, who); -- return; -- } -- - if (!(js->server_caps & JABBER_CAP_BLOCKING)) - { - purple_notify_error(NULL, _("Server doesn't support blocking"), -@@ -1952,12 +1923,6 @@ - if (js == NULL) - return; - -- if (js->server_caps & JABBER_CAP_GOOGLE_ROSTER) -- { -- jabber_google_roster_rem_deny(js, who); -- return; -- } -- - if (!(js->server_caps & JABBER_CAP_BLOCKING)) - return; - -@@ -3310,13 +3275,7 @@ - jbr = jabber_buddy_find_resource(jb, resource); - g_free(resource); - -- if (type & PURPLE_MEDIA_AUDIO && -- !jabber_resource_has_capability(jbr, -- JINGLE_APP_RTP_SUPPORT_AUDIO) && -- jabber_resource_has_capability(jbr, NS_GOOGLE_VOICE)) -- return jabber_google_session_initiate(js, who, type); -- else -- return jingle_rtp_initiate_media(js, who, type); -+ return jingle_rtp_initiate_media(js, who, type); - } - - jb = jabber_buddy_find(js, who, FALSE); -@@ -3500,11 +3459,6 @@ - caps |= PURPLE_MEDIA_CAPS_MODIFY_SESSION | - PURPLE_MEDIA_CAPS_CHANGE_DIRECTION; - } -- if (jabber_resource_has_capability(jbr, NS_GOOGLE_VOICE)) { -- caps |= PURPLE_MEDIA_CAPS_AUDIO; -- if (jabber_resource_has_capability(jbr, NS_GOOGLE_VIDEO)) -- caps |= PURPLE_MEDIA_CAPS_AUDIO_VIDEO; -- } - - total |= caps; - } -@@ -3869,10 +3823,6 @@ - jabber_add_feature(JINGLE, 0); - - #ifdef USE_VV -- jabber_add_feature(NS_GOOGLE_PROTOCOL_SESSION, jabber_audio_enabled); -- jabber_add_feature(NS_GOOGLE_VOICE, jabber_audio_enabled); -- jabber_add_feature(NS_GOOGLE_VIDEO, jabber_video_enabled); -- jabber_add_feature(NS_GOOGLE_CAMERA, jabber_video_enabled); - jabber_add_feature(JINGLE_APP_RTP, 0); - jabber_add_feature(JINGLE_APP_RTP_SUPPORT_AUDIO, jabber_audio_enabled); - jabber_add_feature(JINGLE_APP_RTP_SUPPORT_VIDEO, jabber_video_enabled); -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/jabber.h pidgin-2.10.7-nonprism/libpurple/protocols/jabber/jabber.h ---- pidgin-2.10.7/libpurple/protocols/jabber/jabber.h 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/jabber.h 2013-08-17 00:10:38.778345348 -0300 -@@ -36,12 +36,6 @@ - JABBER_CAP_IQ_SEARCH = 1 << 7, - JABBER_CAP_IQ_REGISTER = 1 << 8, - -- /* Google Talk extensions: -- * http://code.google.com/apis/talk/jep_extensions/extensions.html -- */ -- JABBER_CAP_GMAIL_NOTIFY = 1 << 9, -- JABBER_CAP_GOOGLE_ROSTER = 1 << 10, -- - JABBER_CAP_PING = 1 << 11, - JABBER_CAP_ADHOC = 1 << 12, - JABBER_CAP_BLOCKING = 1 << 13, -@@ -195,12 +189,8 @@ - gboolean reinit; - - JabberCapabilities server_caps; -- gboolean googletalk; - char *server_name; - -- char *gmail_last_time; -- char *gmail_last_tid; -- - char *serverFQDN; - - #ifdef HAVE_CYRUS_SASL -@@ -276,12 +266,6 @@ - gchar *stun_ip; - int stun_port; - PurpleDnsQueryData *stun_query; -- -- /* stuff for Google's relay handling */ -- gchar *google_relay_token; -- gchar *google_relay_host; -- GList *google_relay_requests; /* the HTTP requests to get */ -- /* relay info */ - }; - - typedef gboolean (JabberFeatureEnabled)(JabberStream *js, const gchar *namespace); -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/jingle/jingle.c pidgin-2.10.7-nonprism/libpurple/protocols/jabber/jingle/jingle.c ---- pidgin-2.10.7/libpurple/protocols/jabber/jingle/jingle.c 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/jingle/jingle.c 2013-08-17 00:17:51.991679891 -0300 -@@ -486,13 +486,11 @@ - - if (has_account_stun) { - purple_debug_info("jabber", -- "setting param stun-ip for stream using Google auto-config: %s\n", - js->stun_ip); - params[next_index].name = "stun-ip"; - g_value_init(¶ms[next_index].value, G_TYPE_STRING); - g_value_set_string(¶ms[next_index].value, js->stun_ip); - purple_debug_info("jabber", -- "setting param stun-port for stream using Google auto-config: %d\n", - js->stun_port); - next_index++; - params[next_index].name = "stun-port"; -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/jingle/jingle.h pidgin-2.10.7-nonprism/libpurple/protocols/jabber/jingle/jingle.h ---- pidgin-2.10.7/libpurple/protocols/jabber/jingle/jingle.h 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/jingle/jingle.h 2013-08-27 23:02:43.456476444 -0300 -@@ -79,8 +79,7 @@ - void jingle_terminate_sessions(JabberStream *js); - - #ifdef USE_VV --/* create a GParam array given autoconfigured STUN (and later perhaps TURN). -- if google_talk is TRUE, set compatability mode to GOOGLE_TALK */ -+/* create a GParam array given autoconfigured STUN (and later perhaps TURN).*/ - GParameter *jingle_get_params(JabberStream *js, const gchar *relay_ip, - guint relay_udp, guint relay_tcp, guint relay_ssltcp, - const gchar *relay_username, const gchar *relay_password, guint *num_params); -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/libxmpp.c pidgin-2.10.7-nonprism/libpurple/protocols/jabber/libxmpp.c ---- pidgin-2.10.7/libpurple/protocols/jabber/libxmpp.c 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/libxmpp.c 2013-08-17 00:13:06.222881329 -0300 -@@ -41,7 +41,6 @@ - #include "si.h" - #include "message.h" - #include "presence.h" --#include "google/google.h" - #include "pep.h" - #include "usermood.h" - #include "usertune.h" -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/Makefile.am pidgin-2.10.7-nonprism/libpurple/protocols/jabber/Makefile.am ---- pidgin-2.10.7/libpurple/protocols/jabber/Makefile.am 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/Makefile.am 2013-08-17 00:18:17.592468560 -0300 -@@ -27,20 +27,6 @@ - data.h \ - disco.c \ - disco.h \ -- google/gmail.c \ -- google/gmail.h \ -- google/google.c \ -- google/google.h \ -- google/google_presence.c \ -- google/google_presence.h \ -- google/google_roster.c \ -- google/google_roster.h \ -- google/google_session.c \ -- google/google_session.h \ -- google/jingleinfo.c \ -- google/jingleinfo.h \ -- google/relay.c \ -- google/relay.h \ - ibb.c \ - ibb.h \ - iq.c \ -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/Makefile.in pidgin-2.10.7-nonprism/libpurple/protocols/jabber/Makefile.in ---- pidgin-2.10.7/libpurple/protocols/jabber/Makefile.in 2013-02-11 07:17:20.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/Makefile.in 2013-08-17 00:12:44.605549467 -0300 -@@ -104,12 +104,7 @@ - auth.h auth_digest_md5.c auth_digest_md5.h auth_plain.c \ - auth_scram.c auth_scram.h buddy.c buddy.h bosh.c bosh.h caps.c \ - caps.h chat.c chat.h data.c data.h disco.c disco.h \ -- google/gmail.c google/gmail.h google/google.c google/google.h \ -- google/google_presence.c google/google_presence.h \ -- google/google_roster.c google/google_roster.h \ -- google/google_session.c google/google_session.h \ -- google/jingleinfo.c google/jingleinfo.h google/relay.c \ -- google/relay.h ibb.c ibb.h iq.c iq.h jabber.c jabber.h \ -+ ibb.c ibb.h iq.c iq.h jabber.c jabber.h \ - jingle/jingle.c jingle/jingle.h jingle/content.c \ - jingle/content.h jingle/iceudp.c jingle/iceudp.h \ - jingle/rawudp.c jingle/rawudp.h jingle/rtp.c jingle/rtp.h \ -@@ -126,9 +121,7 @@ - libjabber_la-auth_scram.lo libjabber_la-buddy.lo \ - libjabber_la-bosh.lo libjabber_la-caps.lo libjabber_la-chat.lo \ - libjabber_la-data.lo libjabber_la-disco.lo \ -- libjabber_la-gmail.lo libjabber_la-google.lo \ -- libjabber_la-google_presence.lo libjabber_la-google_roster.lo \ -- libjabber_la-google_session.lo libjabber_la-jingleinfo.lo \ -+ libjabber_la-jingleinfo.lo \ - libjabber_la-relay.lo libjabber_la-ibb.lo libjabber_la-iq.lo \ - libjabber_la-jabber.lo libjabber_la-jingle.lo \ - libjabber_la-content.lo libjabber_la-iceudp.lo \ -@@ -244,8 +237,6 @@ - FARSTREAM_CFLAGS = @FARSTREAM_CFLAGS@ - FARSTREAM_LIBS = @FARSTREAM_LIBS@ - FGREP = @FGREP@ --GADU_CFLAGS = @GADU_CFLAGS@ --GADU_LIBS = @GADU_LIBS@ - GCONFTOOL = @GCONFTOOL@ - GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ - GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -@@ -307,8 +298,6 @@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MANIFEST_TOOL = @MANIFEST_TOOL@ --MEANWHILE_CFLAGS = @MEANWHILE_CFLAGS@ --MEANWHILE_LIBS = @MEANWHILE_LIBS@ - MKDIR_P = @MKDIR_P@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MONO_CFLAGS = @MONO_CFLAGS@ -@@ -457,13 +446,8 @@ - JABBERSOURCES = adhoccommands.c adhoccommands.h auth.c auth.h \ - auth_digest_md5.c auth_digest_md5.h auth_plain.c auth_scram.c \ - auth_scram.h buddy.c buddy.h bosh.c bosh.h caps.c caps.h \ -- chat.c chat.h data.c data.h disco.c disco.h google/gmail.c \ -- google/gmail.h google/google.c google/google.h \ -- google/google_presence.c google/google_presence.h \ -- google/google_roster.c google/google_roster.h \ -- google/google_session.c google/google_session.h \ -- google/jingleinfo.c google/jingleinfo.h google/relay.c \ -- google/relay.h ibb.c ibb.h iq.c iq.h jabber.c jabber.h \ -+ chat.c chat.h data.c data.h disco.c disco.h \ -+ ibb.c ibb.h iq.c iq.h jabber.c jabber.h \ - jingle/jingle.c jingle/jingle.h jingle/content.c \ - jingle/content.h jingle/iceudp.c jingle/iceudp.h \ - jingle/rawudp.c jingle/rawudp.h jingle/rtp.c jingle/rtp.h \ -@@ -600,11 +584,6 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjabber_la-content.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjabber_la-data.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjabber_la-disco.Plo@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjabber_la-gmail.Plo@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjabber_la-google.Plo@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjabber_la-google_presence.Plo@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjabber_la-google_roster.Plo@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjabber_la-google_session.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjabber_la-ibb.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjabber_la-iceudp.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjabber_la-iq.Plo@am__quote@ -@@ -731,55 +710,6 @@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -c -o libjabber_la-disco.lo `test -f 'disco.c' || echo '$(srcdir)/'`disco.c - --libjabber_la-gmail.lo: google/gmail.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -MT libjabber_la-gmail.lo -MD -MP -MF $(DEPDIR)/libjabber_la-gmail.Tpo -c -o libjabber_la-gmail.lo `test -f 'google/gmail.c' || echo '$(srcdir)/'`google/gmail.c --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjabber_la-gmail.Tpo $(DEPDIR)/libjabber_la-gmail.Plo --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='google/gmail.c' object='libjabber_la-gmail.lo' libtool=yes @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -c -o libjabber_la-gmail.lo `test -f 'google/gmail.c' || echo '$(srcdir)/'`google/gmail.c -- --libjabber_la-google.lo: google/google.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -MT libjabber_la-google.lo -MD -MP -MF $(DEPDIR)/libjabber_la-google.Tpo -c -o libjabber_la-google.lo `test -f 'google/google.c' || echo '$(srcdir)/'`google/google.c --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjabber_la-google.Tpo $(DEPDIR)/libjabber_la-google.Plo --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='google/google.c' object='libjabber_la-google.lo' libtool=yes @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -c -o libjabber_la-google.lo `test -f 'google/google.c' || echo '$(srcdir)/'`google/google.c -- --libjabber_la-google_presence.lo: google/google_presence.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -MT libjabber_la-google_presence.lo -MD -MP -MF $(DEPDIR)/libjabber_la-google_presence.Tpo -c -o libjabber_la-google_presence.lo `test -f 'google/google_presence.c' || echo '$(srcdir)/'`google/google_presence.c --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjabber_la-google_presence.Tpo $(DEPDIR)/libjabber_la-google_presence.Plo --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='google/google_presence.c' object='libjabber_la-google_presence.lo' libtool=yes @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -c -o libjabber_la-google_presence.lo `test -f 'google/google_presence.c' || echo '$(srcdir)/'`google/google_presence.c -- --libjabber_la-google_roster.lo: google/google_roster.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -MT libjabber_la-google_roster.lo -MD -MP -MF $(DEPDIR)/libjabber_la-google_roster.Tpo -c -o libjabber_la-google_roster.lo `test -f 'google/google_roster.c' || echo '$(srcdir)/'`google/google_roster.c --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjabber_la-google_roster.Tpo $(DEPDIR)/libjabber_la-google_roster.Plo --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='google/google_roster.c' object='libjabber_la-google_roster.lo' libtool=yes @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -c -o libjabber_la-google_roster.lo `test -f 'google/google_roster.c' || echo '$(srcdir)/'`google/google_roster.c -- --libjabber_la-google_session.lo: google/google_session.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -MT libjabber_la-google_session.lo -MD -MP -MF $(DEPDIR)/libjabber_la-google_session.Tpo -c -o libjabber_la-google_session.lo `test -f 'google/google_session.c' || echo '$(srcdir)/'`google/google_session.c --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjabber_la-google_session.Tpo $(DEPDIR)/libjabber_la-google_session.Plo --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='google/google_session.c' object='libjabber_la-google_session.lo' libtool=yes @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -c -o libjabber_la-google_session.lo `test -f 'google/google_session.c' || echo '$(srcdir)/'`google/google_session.c -- --libjabber_la-jingleinfo.lo: google/jingleinfo.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -MT libjabber_la-jingleinfo.lo -MD -MP -MF $(DEPDIR)/libjabber_la-jingleinfo.Tpo -c -o libjabber_la-jingleinfo.lo `test -f 'google/jingleinfo.c' || echo '$(srcdir)/'`google/jingleinfo.c --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjabber_la-jingleinfo.Tpo $(DEPDIR)/libjabber_la-jingleinfo.Plo --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='google/jingleinfo.c' object='libjabber_la-jingleinfo.lo' libtool=yes @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -c -o libjabber_la-jingleinfo.lo `test -f 'google/jingleinfo.c' || echo '$(srcdir)/'`google/jingleinfo.c -- --libjabber_la-relay.lo: google/relay.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -MT libjabber_la-relay.lo -MD -MP -MF $(DEPDIR)/libjabber_la-relay.Tpo -c -o libjabber_la-relay.lo `test -f 'google/relay.c' || echo '$(srcdir)/'`google/relay.c --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjabber_la-relay.Tpo $(DEPDIR)/libjabber_la-relay.Plo --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='google/relay.c' object='libjabber_la-relay.lo' libtool=yes @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -c -o libjabber_la-relay.lo `test -f 'google/relay.c' || echo '$(srcdir)/'`google/relay.c -- - libjabber_la-ibb.lo: ibb.c - @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjabber_la_CFLAGS) $(CFLAGS) -MT libjabber_la-ibb.lo -MD -MP -MF $(DEPDIR)/libjabber_la-ibb.Tpo -c -o libjabber_la-ibb.lo `test -f 'ibb.c' || echo '$(srcdir)/'`ibb.c - @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libjabber_la-ibb.Tpo $(DEPDIR)/libjabber_la-ibb.Plo -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/message.c pidgin-2.10.7-nonprism/libpurple/protocols/jabber/message.c ---- pidgin-2.10.7/libpurple/protocols/jabber/message.c 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/message.c 2013-08-17 00:20:08.115874207 -0300 -@@ -30,7 +30,6 @@ - #include "buddy.h" - #include "chat.h" - #include "data.h" --#include "google/google.h" - #include "message.h" - #include "xmlnode.h" - #include "pep.h" -@@ -151,11 +150,6 @@ - jbr->thread_id = g_strdup(jbr->thread_id); - } - -- if (jm->js->googletalk && jm->xhtml == NULL) { -- char *tmp = jm->body; -- jm->body = jabber_google_format_to_html(jm->body); -- g_free(tmp); -- } - serv_got_im(gc, jm->from, jm->xhtml ? jm->xhtml : jm->body, 0, jm->sent); - } - -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/namespaces.h pidgin-2.10.7-nonprism/libpurple/protocols/jabber/namespaces.h ---- pidgin-2.10.7/libpurple/protocols/jabber/namespaces.h 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/namespaces.h 2013-08-17 00:11:17.449534779 -0300 -@@ -95,18 +95,4 @@ - /* XEP-0264 File Transfer Thumbnails (Thumbs) */ - #define NS_THUMBS "urn:xmpp:thumbs:0" - --/* Google extensions */ --#define NS_GOOGLE_CAMERA "http://www.google.com/xmpp/protocol/camera/v1" --#define NS_GOOGLE_VIDEO "http://www.google.com/xmpp/protocol/video/v1" --#define NS_GOOGLE_VOICE "http://www.google.com/xmpp/protocol/voice/v1" --#define NS_GOOGLE_JINGLE_INFO "google:jingleinfo" -- --#define NS_GOOGLE_MAIL_NOTIFY "google:mail:notify" --#define NS_GOOGLE_ROSTER "google:roster" -- --#define NS_GOOGLE_PROTOCOL_SESSION "http://www.google.com/xmpp/protocol/session" --#define NS_GOOGLE_SESSION "http://www.google.com/session" --#define NS_GOOGLE_SESSION_PHONE "http://www.google.com/session/phone" --#define NS_GOOGLE_SESSION_VIDEO "http://www.google.com/session/video" -- - #endif /* PURPLE_JABBER_NAMESPACES_H_ */ -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/presence.c pidgin-2.10.7-nonprism/libpurple/protocols/jabber/presence.c ---- pidgin-2.10.7/libpurple/protocols/jabber/presence.c 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/presence.c 2013-08-17 00:16:58.436696950 -0300 -@@ -34,8 +34,6 @@ - - #include "buddy.h" - #include "chat.h" --#include "google/google.h" --#include "google/google_presence.h" - #include "presence.h" - #include "iq.h" - #include "jutil.h" -@@ -208,9 +206,6 @@ - /* changing the buzz state has to trigger a re-broadcasting of the presence for caps */ - - tune = purple_presence_get_status(p, "tune"); -- if (js->googletalk && !stripped && purple_status_is_active(tune)) { -- stripped = jabber_google_presence_outgoing(tune); -- } - - #define CHANGED(a,b) ((!a && b) || (a && a[0] == '\0' && b && b[0] != '\0') || \ - (a && !b) || (a && a[0] != '\0' && b && b[0] == '\0') || (a && b && strcmp(a,b))) -@@ -361,11 +356,6 @@ - #ifdef USE_VV - /* - * MASSIVE HUGE DISGUSTING HACK -- * This is a huge hack. As far as I can tell, Google Talk's gmail client -- * doesn't bother to check the actual features we advertise; they -- * just assume that if we specify a 'voice-v1' ext (ignoring that -- * these are to be assigned no semantic value), we support receiving voice -- * calls. - * - * Ditto for 'video-v1'. - */ -@@ -883,7 +873,6 @@ - - jbr = jabber_buddy_find_resource(presence->jb, NULL); - if (jbr) { -- jabber_google_presence_incoming(js, buddy_name, jbr); - purple_prpl_got_user_status(account, buddy_name, - jabber_buddy_state_get_status_id(jbr->state), - "priority", jbr->priority, -diff -Nur pidgin-2.10.7/libpurple/protocols/jabber/roster.c pidgin-2.10.7-nonprism/libpurple/protocols/jabber/roster.c ---- pidgin-2.10.7/libpurple/protocols/jabber/roster.c 2013-02-11 07:16:52.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/jabber/roster.c 2013-08-17 00:09:16.245807467 -0300 -@@ -27,8 +27,6 @@ - - #include "buddy.h" - #include "chat.h" --#include "google/google.h" --#include "google/google_roster.h" - #include "presence.h" - #include "roster.h" - #include "iq.h" -@@ -83,11 +81,6 @@ - iq = jabber_iq_new_query(js, JABBER_IQ_GET, "jabber:iq:roster"); - query = xmlnode_get_child(iq->node, "query"); - -- if (js->server_caps & JABBER_CAP_GOOGLE_ROSTER) { -- xmlnode_set_attrib(query, "xmlns:gr", NS_GOOGLE_ROSTER); -- xmlnode_set_attrib(query, "gr:ext", "2"); -- } -- - jabber_iq_set_callback(iq, roster_request_cb, NULL); - jabber_iq_send(iq); - } -@@ -244,10 +237,6 @@ - } else { - GSList *groups = NULL; - -- if (js->server_caps & JABBER_CAP_GOOGLE_ROSTER) -- if (!jabber_google_roster_incoming(js, item)) -- continue; -- - for(group = xmlnode_get_child(item, "group"); group; group = xmlnode_get_next_twin(group)) { - char *group_name = xmlnode_get_data(group); - -@@ -349,11 +338,6 @@ - - g_slist_free(groups); - -- if (js->server_caps & JABBER_CAP_GOOGLE_ROSTER) { -- jabber_google_roster_outgoing(js, query, item); -- xmlnode_set_attrib(query, "xmlns:gr", NS_GOOGLE_ROSTER); -- xmlnode_set_attrib(query, "gr:ext", "2"); -- } - jabber_iq_send(iq); - } - -diff -Nur pidgin-2.10.7/libpurple/protocols/Makefile.am pidgin-2.10.7-nonprism/libpurple/protocols/Makefile.am ---- pidgin-2.10.7/libpurple/protocols/Makefile.am 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/Makefile.am 2013-08-16 22:37:55.011207011 -0300 -@@ -1,5 +1,5 @@ - EXTRA_DIST = Makefile.mingw - --DIST_SUBDIRS = bonjour gg irc jabber msn myspace mxit novell null oscar sametime silc silc10 simple yahoo zephyr -+DIST_SUBDIRS = bonjour irc jabber null silc silc10 simple zephyr - - SUBDIRS = $(DYNAMIC_PRPLS) $(STATIC_PRPLS) -diff -Nur pidgin-2.10.7/libpurple/protocols/Makefile.in pidgin-2.10.7-nonprism/libpurple/protocols/Makefile.in ---- pidgin-2.10.7/libpurple/protocols/Makefile.in 2013-02-11 07:17:19.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/Makefile.in 2013-08-16 23:50:36.651423353 -0300 -@@ -160,8 +160,6 @@ - FARSTREAM_CFLAGS = @FARSTREAM_CFLAGS@ - FARSTREAM_LIBS = @FARSTREAM_LIBS@ - FGREP = @FGREP@ --GADU_CFLAGS = @GADU_CFLAGS@ --GADU_LIBS = @GADU_LIBS@ - GCONFTOOL = @GCONFTOOL@ - GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ - GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -@@ -223,8 +221,6 @@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MANIFEST_TOOL = @MANIFEST_TOOL@ --MEANWHILE_CFLAGS = @MEANWHILE_CFLAGS@ --MEANWHILE_LIBS = @MEANWHILE_LIBS@ - MKDIR_P = @MKDIR_P@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MONO_CFLAGS = @MONO_CFLAGS@ -@@ -365,7 +361,7 @@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - EXTRA_DIST = Makefile.mingw --DIST_SUBDIRS = bonjour gg irc jabber msn myspace mxit novell null oscar sametime silc silc10 simple yahoo zephyr -+DIST_SUBDIRS = bonjour irc jabber null silc silc10 simple zephyr - SUBDIRS = $(DYNAMIC_PRPLS) $(STATIC_PRPLS) - all: all-recursive - -diff -Nur pidgin-2.10.7/libpurple/prpl.h pidgin-2.10.7-nonprism/libpurple/prpl.h ---- pidgin-2.10.7/libpurple/prpl.h 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/prpl.h 2013-08-16 22:29:46.145754932 -0300 -@@ -161,15 +161,11 @@ - - /** - * Notify on new mail. -- * -- * MSN and Yahoo notify you when you have new mail. - */ - OPT_PROTO_MAIL_CHECK = 0x00000020, - - /** - * Images in IMs. -- * -- * Oscar lets you send images in direct IMs. - */ - OPT_PROTO_IM_IMAGE = 0x00000040, - -@@ -184,16 +180,13 @@ - /** - * Allows font size to be specified in sane point size - * -- * Probably just XMPP and Y!M -+ * Probably just XMPP - */ - OPT_PROTO_USE_POINTSIZE = 0x00000100, - - /** - * Set the Register button active even when the username has not - * been specified. -- * -- * Gadu-Gadu doesn't need a username to register new account (because -- * usernames are assigned by the server). - */ - OPT_PROTO_REGISTER_NOSCREENNAME = 0x00000200, - -@@ -467,9 +460,7 @@ - void (*convo_closed)(PurpleConnection *, const char *who); - - /** -- * Convert the username @a who to its canonical form. (For example, -- * AIM treats "fOo BaR" and "foobar" as the same user; this function -- * should return the same normalized string for both of those.) -+ * Convert the username @a who to its canonical form. - */ - const char *(*normalize)(const PurpleAccount *, const char *who); - -@@ -923,7 +914,7 @@ - * @param who Whose attention to request. - * @param type_code An index into the prpl's attention_types list determining the type - * of the attention request command to send. 0 if prpl only defines one -- * (for example, Yahoo and MSN), but some protocols define more (MySpaceIM). -+ * , but some protocols define more. - * - * Note that you can't send arbitrary PurpleAttentionType's, because there is - * only a fixed set of attention commands. -diff -Nur pidgin-2.10.7/libpurple/purple-url-handler pidgin-2.10.7-nonprism/libpurple/purple-url-handler ---- pidgin-2.10.7/libpurple/purple-url-handler 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/purple-url-handler 2013-08-16 21:16:42.951304560 -0300 -@@ -117,70 +117,6 @@ - def addbuddy(account, screenname, group="", alias=""): - cpurple.PurpleBlistRequestAddBuddy(account, screenname, group, alias) - -- --def aim(uri): -- protocol = "prpl-aim" -- match = re.match(r"^aim:([^?]*)(\?(.*))", uri) -- if not match: -- print "Invalid aim URI: %s" % uri -- return -- -- command = urllib.unquote_plus(match.group(1)) -- paramstring = match.group(3) -- params = {} -- if paramstring: -- for param in paramstring.split("&"): -- key, value = extendlist(param.split("=", 1), 2, "") -- params[key] = urllib.unquote_plus(value) -- accountname = params.get("account", "") -- screenname = params.get("screenname", "") -- -- account = findaccount(protocol, accountname) -- -- if command.lower() == "goim": -- goim(account, screenname, params.get("message")) -- elif command.lower() == "gochat": -- gochat(account, params) -- elif command.lower() == "addbuddy": -- addbuddy(account, screenname, params.get("group", "")) -- --def gg(uri): -- protocol = "prpl-gg" -- match = re.match(r"^gg:(.*)", uri) -- if not match: -- print "Invalid gg URI: %s" % uri -- return -- -- screenname = urllib.unquote_plus(match.group(1)) -- account = findaccount(protocol) -- goim(account, screenname) -- --def icq(uri): -- protocol = "prpl-icq" -- match = re.match(r"^icq:([^?]*)(\?(.*))", uri) -- if not match: -- print "Invalid icq URI: %s" % uri -- return -- -- command = urllib.unquote_plus(match.group(1)) -- paramstring = match.group(3) -- params = {} -- if paramstring: -- for param in paramstring.split("&"): -- key, value = extendlist(param.split("=", 1), 2, "") -- params[key] = urllib.unquote_plus(value) -- accountname = params.get("account", "") -- screenname = params.get("screenname", "") -- -- account = findaccount(protocol, accountname) -- -- if command.lower() == "goim": -- goim(account, screenname, params.get("message")) -- elif command.lower() == "gochat": -- gochat(account, params) -- elif command.lower() == "addbuddy": -- addbuddy(account, screenname, params.get("group", "")) -- - def irc(uri): - protocol = "prpl-irc" - match = re.match(r"^irc:(//([^/]*))?/?([^?]*)(\?(.*))?", uri) -@@ -221,34 +157,6 @@ - channel = "#" + channel - gochat(account, {"server": server, "channel": channel, "password": params.get("key", "")}, params.get("msg")) - --def msnim(uri): -- protocol = "prpl-msn" -- match = re.match(r"^msnim:([^?]*)(\?(.*))", uri) -- if not match: -- print "Invalid msnim URI: %s" % uri -- return -- -- command = urllib.unquote_plus(match.group(1)) -- paramstring = match.group(3) -- params = {} -- if paramstring: -- for param in paramstring.split("&"): -- key, value = extendlist(param.split("=", 1), 2, "") -- params[key] = urllib.unquote_plus(value) -- screenname = params.get("contact", "") -- -- account = findaccount(protocol) -- -- if command.lower() == "chat": -- goim(account, screenname) -- elif command.lower() == "add": -- addbuddy(account, screenname) -- --def myim(uri): -- protocol = "prpl-myspace" -- print "TODO: send uri: ", uri -- assert False, "Not implemented" -- - def sip(uri): - protocol = "prpl-simple" - match = re.match(r"^sip:(.*)", uri) -@@ -300,57 +208,6 @@ - else: - goim(account, screenname) - --def gtalk(uri): -- protocol = "prpl-jabber" -- match = re.match(r"^gtalk:([^?]*)(\?(.*))", uri) -- if not match: -- print "Invalid gtalk URI: %s" % uri -- return -- -- command = urllib.unquote_plus(match.group(1)) -- paramstring = match.group(3) -- params = {} -- if paramstring: -- for param in paramstring.split("&"): -- key, value = extendlist(param.split("=", 1), 2, "") -- params[key] = urllib.unquote_plus(value) -- accountname = params.get("from_jid", "") -- jid = params.get("jid", "") -- -- account = findaccount(protocol, accountname) -- -- if command.lower() == "chat": -- goim(account, jid) -- elif command.lower() == "call": -- # XXX V&V prompt to establish call -- goim(account, jid) -- --def ymsgr(uri): -- protocol = "prpl-yahoo" -- match = re.match(r"^ymsgr:([^?]*)(\?([^&]*)(&(.*))?)", uri) -- if not match: -- print "Invalid ymsgr URI: %s" % uri -- return -- -- command = urllib.unquote_plus(match.group(1)) -- screenname = urllib.unquote_plus(match.group(3)) -- paramstring = match.group(5) -- params = {} -- if paramstring: -- for param in paramstring.split("&"): -- key, value = extendlist(param.split("=", 1), 2, "") -- params[key] = urllib.unquote_plus(value) -- -- account = findaccount(protocol) -- -- if command.lower() == "sendim": -- goim(account, screenname, params.get("m")) -- elif command.lower() == "chat": -- gochat(account, {"room": screenname}) -- elif command.lower() == "addfriend": -- addbuddy(account, screenname) -- -- - def main(argv=sys.argv): - if len(argv) != 2 or argv[1] == "--help" or argv[1] == "-h": - print "Usage: %s URI" % argv[0] -diff -Nur pidgin-2.10.7/libpurple/savedstatuses.c pidgin-2.10.7-nonprism/libpurple/savedstatuses.c ---- pidgin-2.10.7/libpurple/savedstatuses.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/savedstatuses.c 2013-08-16 22:52:44.582754543 -0300 -@@ -387,7 +387,6 @@ - const char *protocol; - acct_name = xmlnode_get_data(node); - protocol = xmlnode_get_attrib(node, "protocol"); -- protocol = _purple_oscar_convert(acct_name, protocol); /* XXX: Remove */ - if ((acct_name != NULL) && (protocol != NULL)) - ret->account = purple_accounts_find(acct_name, protocol); - g_free(acct_name); -diff -Nur pidgin-2.10.7/libpurple/server.h pidgin-2.10.7-nonprism/libpurple/server.h ---- pidgin-2.10.7/libpurple/server.h 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/server.h 2013-08-16 23:30:04.149920853 -0300 -@@ -69,7 +69,7 @@ - * @param who Whose attention to request. - * @param type_code An index into the prpl's attention_types list determining the type - * of the attention request command to send. 0 if prpl only defines one -- * (for example, Yahoo and MSN), but some protocols define more (MySpaceIM). -+ * , but some protocols define more. - * - * Note that you can't send arbitrary PurpleAttentionType's, because there is - * only a fixed set of attention commands. -diff -Nur pidgin-2.10.7/libpurple/status.h pidgin-2.10.7-nonprism/libpurple/status.h ---- pidgin-2.10.7/libpurple/status.h 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/status.h 2013-08-16 22:52:22.542054119 -0300 -@@ -43,8 +43,7 @@ - * one of your AIM buddies has set himself as "away." You have a - * PurpleBuddy node for this person in your buddy list. Purple wants - * to mark this buddy as "away," so it creates a new PurpleStatus. -- * The PurpleStatus has its PurpleStatusType set to the "away" state -- * for the oscar PRPL. The PurpleStatus also contains the buddy's -+ * The PurpleStatus also contains the buddy's - * away message. PurpleStatuses are sometimes saved, depending on - * the context. The current PurpleStatuses associated with each of - * your accounts are saved so that the next time you start Purple, -diff -Nur pidgin-2.10.7/libpurple/tests/check_libpurple.c pidgin-2.10.7-nonprism/libpurple/tests/check_libpurple.c ---- pidgin-2.10.7/libpurple/tests/check_libpurple.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/tests/check_libpurple.c 2013-08-16 22:55:33.731462302 -0300 -@@ -88,8 +88,6 @@ - srunner_add_suite(sr, jabber_digest_md5_suite()); - srunner_add_suite(sr, jabber_jutil_suite()); - srunner_add_suite(sr, jabber_scram_suite()); -- srunner_add_suite(sr, oscar_util_suite()); -- srunner_add_suite(sr, yahoo_util_suite()); - srunner_add_suite(sr, util_suite()); - srunner_add_suite(sr, xmlnode_suite()); - -diff -Nur pidgin-2.10.7/libpurple/tests/Makefile.am pidgin-2.10.7-nonprism/libpurple/tests/Makefile.am ---- pidgin-2.10.7/libpurple/tests/Makefile.am 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/tests/Makefile.am 2013-08-16 22:56:03.189064778 -0300 -@@ -14,8 +14,6 @@ - test_jabber_digest_md5.c \ - test_jabber_jutil.c \ - test_jabber_scram.c \ -- test_oscar_util.c \ -- test_yahoo_util.c \ - test_util.c \ - test_xmlnode.c \ - $(top_builddir)/libpurple/util.h -@@ -31,8 +29,6 @@ - - check_libpurple_LDADD=\ - $(top_builddir)/libpurple/protocols/jabber/libjabber.la \ -- $(top_builddir)/libpurple/protocols/oscar/liboscar.la \ -- $(top_builddir)/libpurple/protocols/yahoo/libymsg.la \ - $(top_builddir)/libpurple/libpurple.la \ - @CHECK_LIBS@ \ - $(GLIB_LIBS) -diff -Nur pidgin-2.10.7/libpurple/tests/Makefile.in pidgin-2.10.7-nonprism/libpurple/tests/Makefile.in ---- pidgin-2.10.7/libpurple/tests/Makefile.in 2013-02-11 07:17:23.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/tests/Makefile.in 2013-08-16 23:53:20.713146759 -0300 -@@ -65,8 +65,8 @@ - CONFIG_CLEAN_VPATH_FILES = - am__check_libpurple_SOURCES_DIST = check_libpurple.c tests.h \ - test_cipher.c test_jabber_caps.c test_jabber_digest_md5.c \ -- test_jabber_jutil.c test_jabber_scram.c test_oscar_util.c \ -- test_yahoo_util.c test_util.c test_xmlnode.c \ -+ test_jabber_jutil.c test_jabber_scram.c \ -+ test_util.c test_xmlnode.c \ - $(top_builddir)/libpurple/util.h - @HAVE_CHECK_TRUE@am_check_libpurple_OBJECTS = \ - @HAVE_CHECK_TRUE@ check_libpurple-check_libpurple.$(OBJEXT) \ -@@ -75,15 +75,11 @@ - @HAVE_CHECK_TRUE@ check_libpurple-test_jabber_digest_md5.$(OBJEXT) \ - @HAVE_CHECK_TRUE@ check_libpurple-test_jabber_jutil.$(OBJEXT) \ - @HAVE_CHECK_TRUE@ check_libpurple-test_jabber_scram.$(OBJEXT) \ --@HAVE_CHECK_TRUE@ check_libpurple-test_oscar_util.$(OBJEXT) \ --@HAVE_CHECK_TRUE@ check_libpurple-test_yahoo_util.$(OBJEXT) \ - @HAVE_CHECK_TRUE@ check_libpurple-test_util.$(OBJEXT) \ - @HAVE_CHECK_TRUE@ check_libpurple-test_xmlnode.$(OBJEXT) - check_libpurple_OBJECTS = $(am_check_libpurple_OBJECTS) - am__DEPENDENCIES_1 = - @HAVE_CHECK_TRUE@check_libpurple_DEPENDENCIES = $(top_builddir)/libpurple/protocols/jabber/libjabber.la \ --@HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/protocols/oscar/liboscar.la \ --@HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/protocols/yahoo/libymsg.la \ - @HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/libpurple.la \ - @HAVE_CHECK_TRUE@ $(am__DEPENDENCIES_1) - AM_V_lt = $(am__v_lt_@AM_V@) -@@ -177,8 +173,6 @@ - FARSTREAM_CFLAGS = @FARSTREAM_CFLAGS@ - FARSTREAM_LIBS = @FARSTREAM_LIBS@ - FGREP = @FGREP@ --GADU_CFLAGS = @GADU_CFLAGS@ --GADU_LIBS = @GADU_LIBS@ - GCONFTOOL = @GCONFTOOL@ - GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ - GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -@@ -240,8 +234,6 @@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MANIFEST_TOOL = @MANIFEST_TOOL@ --MEANWHILE_CFLAGS = @MEANWHILE_CFLAGS@ --MEANWHILE_LIBS = @MEANWHILE_LIBS@ - MKDIR_P = @MKDIR_P@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MONO_CFLAGS = @MONO_CFLAGS@ -@@ -389,8 +381,6 @@ - @HAVE_CHECK_TRUE@ test_jabber_digest_md5.c \ - @HAVE_CHECK_TRUE@ test_jabber_jutil.c \ - @HAVE_CHECK_TRUE@ test_jabber_scram.c \ --@HAVE_CHECK_TRUE@ test_oscar_util.c \ --@HAVE_CHECK_TRUE@ test_yahoo_util.c \ - @HAVE_CHECK_TRUE@ test_util.c \ - @HAVE_CHECK_TRUE@ test_xmlnode.c \ - @HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/util.h -@@ -406,8 +396,6 @@ - - @HAVE_CHECK_TRUE@check_libpurple_LDADD = \ - @HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/protocols/jabber/libjabber.la \ --@HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/protocols/oscar/liboscar.la \ --@HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/protocols/yahoo/libymsg.la \ - @HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/libpurple.la \ - @HAVE_CHECK_TRUE@ @CHECK_LIBS@ \ - @HAVE_CHECK_TRUE@ $(GLIB_LIBS) -@@ -471,10 +459,8 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_jabber_digest_md5.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_jabber_jutil.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_jabber_scram.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_oscar_util.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_util.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_xmlnode.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_yahoo_util.Po@am__quote@ - - .c.o: - @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@@ -581,34 +567,6 @@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -c -o check_libpurple-test_jabber_scram.obj `if test -f 'test_jabber_scram.c'; then $(CYGPATH_W) 'test_jabber_scram.c'; else $(CYGPATH_W) '$(srcdir)/test_jabber_scram.c'; fi` - --check_libpurple-test_oscar_util.o: test_oscar_util.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -MT check_libpurple-test_oscar_util.o -MD -MP -MF $(DEPDIR)/check_libpurple-test_oscar_util.Tpo -c -o check_libpurple-test_oscar_util.o `test -f 'test_oscar_util.c' || echo '$(srcdir)/'`test_oscar_util.c --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/check_libpurple-test_oscar_util.Tpo $(DEPDIR)/check_libpurple-test_oscar_util.Po --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test_oscar_util.c' object='check_libpurple-test_oscar_util.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -c -o check_libpurple-test_oscar_util.o `test -f 'test_oscar_util.c' || echo '$(srcdir)/'`test_oscar_util.c -- --check_libpurple-test_oscar_util.obj: test_oscar_util.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -MT check_libpurple-test_oscar_util.obj -MD -MP -MF $(DEPDIR)/check_libpurple-test_oscar_util.Tpo -c -o check_libpurple-test_oscar_util.obj `if test -f 'test_oscar_util.c'; then $(CYGPATH_W) 'test_oscar_util.c'; else $(CYGPATH_W) '$(srcdir)/test_oscar_util.c'; fi` --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/check_libpurple-test_oscar_util.Tpo $(DEPDIR)/check_libpurple-test_oscar_util.Po --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test_oscar_util.c' object='check_libpurple-test_oscar_util.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -c -o check_libpurple-test_oscar_util.obj `if test -f 'test_oscar_util.c'; then $(CYGPATH_W) 'test_oscar_util.c'; else $(CYGPATH_W) '$(srcdir)/test_oscar_util.c'; fi` -- --check_libpurple-test_yahoo_util.o: test_yahoo_util.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -MT check_libpurple-test_yahoo_util.o -MD -MP -MF $(DEPDIR)/check_libpurple-test_yahoo_util.Tpo -c -o check_libpurple-test_yahoo_util.o `test -f 'test_yahoo_util.c' || echo '$(srcdir)/'`test_yahoo_util.c --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/check_libpurple-test_yahoo_util.Tpo $(DEPDIR)/check_libpurple-test_yahoo_util.Po --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test_yahoo_util.c' object='check_libpurple-test_yahoo_util.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -c -o check_libpurple-test_yahoo_util.o `test -f 'test_yahoo_util.c' || echo '$(srcdir)/'`test_yahoo_util.c -- --check_libpurple-test_yahoo_util.obj: test_yahoo_util.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -MT check_libpurple-test_yahoo_util.obj -MD -MP -MF $(DEPDIR)/check_libpurple-test_yahoo_util.Tpo -c -o check_libpurple-test_yahoo_util.obj `if test -f 'test_yahoo_util.c'; then $(CYGPATH_W) 'test_yahoo_util.c'; else $(CYGPATH_W) '$(srcdir)/test_yahoo_util.c'; fi` --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/check_libpurple-test_yahoo_util.Tpo $(DEPDIR)/check_libpurple-test_yahoo_util.Po --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test_yahoo_util.c' object='check_libpurple-test_yahoo_util.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -c -o check_libpurple-test_yahoo_util.obj `if test -f 'test_yahoo_util.c'; then $(CYGPATH_W) 'test_yahoo_util.c'; else $(CYGPATH_W) '$(srcdir)/test_yahoo_util.c'; fi` -- - check_libpurple-test_util.o: test_util.c - @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -MT check_libpurple-test_util.o -MD -MP -MF $(DEPDIR)/check_libpurple-test_util.Tpo -c -o check_libpurple-test_util.o `test -f 'test_util.c' || echo '$(srcdir)/'`test_util.c - @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/check_libpurple-test_util.Tpo $(DEPDIR)/check_libpurple-test_util.Po -diff -Nur pidgin-2.10.7/libpurple/tests/test_jabber_caps.c pidgin-2.10.7-nonprism/libpurple/tests/test_jabber_caps.c ---- pidgin-2.10.7/libpurple/tests/test_jabber_caps.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/tests/test_jabber_caps.c 2013-08-17 00:25:08.235128437 -0300 -@@ -33,7 +33,7 @@ - START_TEST(test_calculate_caps) - { - assert_caps_calculate_match("sha1", "GNjxthSckUNvAIoCCJFttjl6VL8=", -- "<query xmlns='http://jabber.org/protocol/disco#info' node='http://tkabber.jabber.ru/#GNjxthSckUNvAIoCCJFttjl6VL8='><identity category='client' type='pc' name='Tkabber'/><x xmlns='jabber:x:data' type='result'><field var='FORM_TYPE' type='hidden'><value>urn:xmpp:dataforms:softwareinfo</value></field><field var='software'><value>Tkabber</value></field><field var='software_version'><value> ( 8.5.5 )</value></field><field var='os'><value>ATmega640-16AU</value></field><field var='os_version'><value/></field></x><feature var='games:board'/><feature var='google:mail:notify'/><feature var='http://jabber.org/protocol/activity'/><feature var='http://jabber.org/protocol/bytestreams'/><feature var='http://jabber.org/protocol/chatstates'/><feature var='http://jabber.org/protocol/commands'/><feature var='http://jabber.org/protocol/commands'/><feature var='http://jabber.org/protocol/disco#info'/><feature var='http://jabber.org/protocol/disco#items'/><feature var='http://jabber.org/protocol/feature-neg'/><feature var='http://jabber.org/protocol/geoloc'/><feature var='http://jabber.org/protocol/ibb'/><feature var='http://jabber.org/protocol/iqibb'/><feature var='http://jabber.org/protocol/mood'/><feature var='http://jabber.org/protocol/muc'/><feature var='http://jabber.org/protocol/mute#ancestor'/><feature var='http://jabber.org/protocol/mute#editor'/><feature var='http://jabber.org/protocol/rosterx'/><feature var='http://jabber.org/protocol/si'/><feature var='http://jabber.org/protocol/si/profile/file-transfer'/><feature var='http://jabber.org/protocol/tune'/><feature var='jabber:iq:avatar'/><feature var='jabber:iq:browse'/><feature var='jabber:iq:dtcp'/><feature var='jabber:iq:filexfer'/><feature var='jabber:iq:ibb'/><feature var='jabber:iq:inband'/><feature var='jabber:iq:jidlink'/><feature var='jabber:iq:last'/><feature var='jabber:iq:oob'/><feature var='jabber:iq:privacy'/><feature var='jabber:iq:time'/><feature var='jabber:iq:version'/><feature var='jabber:x:data'/><feature var='jabber:x:event'/><feature var='jabber:x:oob'/><feature var='urn:xmpp:ping'/><feature var='urn:xmpp:receipts'/><feature var='urn:xmpp:time'/></query>"); -+ "<query xmlns='http://jabber.org/protocol/disco#info' node='http://tkabber.jabber.ru/#GNjxthSckUNvAIoCCJFttjl6VL8='><identity category='client' type='pc' name='Tkabber'/><x xmlns='jabber:x:data' type='result'><field var='FORM_TYPE' type='hidden'><value>urn:xmpp:dataforms:softwareinfo</value></field><field var='software'><value>Tkabber</value></field><field var='software_version'><value> ( 8.5.5 )</value></field><field var='os'><value>ATmega640-16AU</value></field><field var='os_version'><value/></field></x><feature var='games:board'/><feature var='http://jabber.org/protocol/activity'/><feature var='http://jabber.org/protocol/bytestreams'/><feature var='http://jabber.org/protocol/chatstates'/><feature var='http://jabber.org/protocol/commands'/><feature var='http://jabber.org/protocol/commands'/><feature var='http://jabber.org/protocol/disco#info'/><feature var='http://jabber.org/protocol/disco#items'/><feature var='http://jabber.org/protocol/feature-neg'/><feature var='http://jabber.org/protocol/geoloc'/><feature var='http://jabber.org/protocol/ibb'/><feature var='http://jabber.org/protocol/iqibb'/><feature var='http://jabber.org/protocol/mood'/><feature var='http://jabber.org/protocol/muc'/><feature var='http://jabber.org/protocol/mute#ancestor'/><feature var='http://jabber.org/protocol/mute#editor'/><feature var='http://jabber.org/protocol/rosterx'/><feature var='http://jabber.org/protocol/si'/><feature var='http://jabber.org/protocol/si/profile/file-transfer'/><feature var='http://jabber.org/protocol/tune'/><feature var='jabber:iq:avatar'/><feature var='jabber:iq:browse'/><feature var='jabber:iq:dtcp'/><feature var='jabber:iq:filexfer'/><feature var='jabber:iq:ibb'/><feature var='jabber:iq:inband'/><feature var='jabber:iq:jidlink'/><feature var='jabber:iq:last'/><feature var='jabber:iq:oob'/><feature var='jabber:iq:privacy'/><feature var='jabber:iq:time'/><feature var='jabber:iq:version'/><feature var='jabber:x:data'/><feature var='jabber:x:event'/><feature var='jabber:x:oob'/><feature var='urn:xmpp:ping'/><feature var='urn:xmpp:receipts'/><feature var='urn:xmpp:time'/></query>"); - } - END_TEST - -diff -Nur pidgin-2.10.7/libpurple/tests/test_jabber_jutil.c pidgin-2.10.7-nonprism/libpurple/tests/test_jabber_jutil.c ---- pidgin-2.10.7/libpurple/tests/test_jabber_jutil.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/tests/test_jabber_jutil.c 2013-08-27 22:53:21.524229291 -0300 -@@ -99,19 +99,19 @@ - - START_TEST(test_jabber_id_new) - { -- assert_valid_jid("gmail.com"); -- assert_valid_jid("gmail.com/Test"); -- assert_valid_jid("gmail.com/Test@"); -- assert_valid_jid("gmail.com/@"); -- assert_valid_jid("gmail.com/Test@alkjaweflkj"); -- assert_valid_jid("mark.doliner@gmail.com"); -- assert_valid_jid("mark.doliner@gmail.com/Test12345"); -- assert_valid_jid("mark.doliner@gmail.com/Test@12345"); -- assert_valid_jid("mark.doliner@gmail.com/Te/st@12@//345"); -+ assert_valid_jid("mail.com"); -+ assert_valid_jid("mail.com/Test"); -+ assert_valid_jid("mail.com/Test@"); -+ assert_valid_jid("mail.com/@"); -+ assert_valid_jid("mail.com/Test@alkjaweflkj"); -+ assert_valid_jid("mark.doliner@mail.com"); -+ assert_valid_jid("mark.doliner@mail.com/Test12345"); -+ assert_valid_jid("mark.doliner@mail.com/Test@12345"); -+ assert_valid_jid("mark.doliner@mail.com/Te/st@12@//345"); - assert_valid_jid("わいど@conference.jabber.org"); - assert_valid_jid("まりるーむ@conference.jabber.org"); -- assert_valid_jid("mark.doliner@gmail.com/まりるーむ"); -- assert_valid_jid("mark.doliner@gmail/stuff.org"); -+ assert_valid_jid("mark.doliner@mail.com/まりるーむ"); -+ assert_valid_jid("mark.doliner@mail/stuff.org"); - assert_valid_jid("stuart@nödåtXäYZ.se"); - assert_valid_jid("stuart@nödåtXäYZ.se/まりるーむ"); - assert_valid_jid("mark.doliner@わいど.org"); -@@ -123,17 +123,17 @@ - assert_valid_jid("pa=ul@10.0.42.230"); - assert_valid_jid("pa,ul@10.0.42.230"); - -- assert_invalid_jid("@gmail.com"); -- assert_invalid_jid("@@gmail.com"); -- assert_invalid_jid("mark.doliner@@gmail.com/Test12345"); -- assert_invalid_jid("mark@doliner@gmail.com/Test12345"); -- assert_invalid_jid("@gmail.com/Test@12345"); -+ assert_invalid_jid("@mail.com"); -+ assert_invalid_jid("@@mail.com"); -+ assert_invalid_jid("mark.doliner@@mail.com/Test12345"); -+ assert_invalid_jid("mark@doliner@mail.com/Test12345"); -+ assert_invalid_jid("@mail.com/Test@12345"); - assert_invalid_jid("/Test@12345"); - assert_invalid_jid("mark.doliner@"); - assert_invalid_jid("mark.doliner/"); -- assert_invalid_jid("mark.doliner@gmail_stuff.org"); -- assert_invalid_jid("mark.doliner@gmail[stuff.org"); -- assert_invalid_jid("mark.doliner@gmail\\stuff.org"); -+ assert_invalid_jid("mark.doliner@mail_stuff.org"); -+ assert_invalid_jid("mark.doliner@mail[stuff.org"); -+ assert_invalid_jid("mark.doliner@mail\\stuff.org"); - assert_invalid_jid("paul@[::1]124"); - assert_invalid_jid("paul@2[::1]124/as"); - assert_invalid_jid("paul@まつ.おおかみ/\x01"); -diff -Nur pidgin-2.10.7/libpurple/tests/tests.h pidgin-2.10.7-nonprism/libpurple/tests/tests.h ---- pidgin-2.10.7/libpurple/tests/tests.h 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/tests/tests.h 2013-08-16 22:56:18.999567027 -0300 -@@ -13,8 +13,6 @@ - Suite * jabber_digest_md5_suite(void); - Suite * jabber_jutil_suite(void); - Suite * jabber_scram_suite(void); --Suite * oscar_util_suite(void); --Suite * yahoo_util_suite(void); - Suite * util_suite(void); - Suite * xmlnode_suite(void); - -diff -Nur pidgin-2.10.7/libpurple/util.c pidgin-2.10.7-nonprism/libpurple/util.c ---- pidgin-2.10.7/libpurple/util.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/util.c 2013-08-16 23:29:38.062434329 -0300 -@@ -3451,8 +3451,7 @@ - * is set to TRUE if this URL is https, otherwise it is set to - * FALSE. But that change will break the API. - * -- * This is important for Yahoo! web messenger login. They now -- * force https login, and if you access the web messenger login -+ * They now force https login, and if you access the web messenger login - * page via http then it redirects you to the https version, but - * purple_util_fetch_url() ignores the "https" and attempts to - * fetch the URL via http again, which gets redirected again. -@@ -4943,18 +4942,6 @@ - return buf; - } - --const char *_purple_oscar_convert(const char *act, const char *protocol) --{ -- if (act && purple_strequal(protocol, "prpl-oscar")) { -- int i; -- for (i = 0; act[i] != '\0'; i++) -- if (!isdigit(act[i])) -- return "prpl-aim"; -- return "prpl-icq"; -- } -- return protocol; --} -- - void purple_restore_default_signal_handlers(void) - { - #ifndef _WIN32 -diff -Nur pidgin-2.10.7/libpurple/util.h pidgin-2.10.7-nonprism/libpurple/util.h ---- pidgin-2.10.7/libpurple/util.h 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/util.h 2013-08-16 23:31:12.535403448 -0300 -@@ -456,8 +456,7 @@ - /** - * Extracts a field of data from HTML. - * -- * This is a scary function. See protocols/msn/msn.c and -- * protocols/yahoo/yahoo_profile.c for example usage. -+ * This is a scary function. - * - * @param str The string to parse. - * @param len The size of str. -@@ -1450,16 +1449,6 @@ - const char *purple_escape_filename(const char *str); - - /** -- * This is added temporarily to assist the split of oscar into aim and icq. -- * This should not be used by plugins. -- * -- * @deprecated This function should not be used in new code and should be -- * removed in 3.0.0. The aim/icq prpl split happened a long -- * time ago, and we don't need to keep migrating old data. -- */ --const char *_purple_oscar_convert(const char *act, const char *protocol); -- --/** - * Restore default signal handlers for signals which might reasonably have - * handlers. This should be called by a fork()'d child process, since child processes - * inherit the handlers of the parent. -diff -Nur pidgin-2.10.7/pidgin/gtkaccount.c pidgin-2.10.7-nonprism/pidgin/gtkaccount.c ---- pidgin-2.10.7/pidgin/gtkaccount.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkaccount.c 2013-08-27 22:45:35.495576079 -0300 -@@ -563,16 +563,11 @@ - if (value == NULL) - value = purple_account_user_split_get_default_value(split); - -- /* Google Talk default domain hackery! */ - menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu)); - item = gtk_menu_get_active(GTK_MENU(menu)); -- if (value == NULL && g_object_get_data(G_OBJECT(item), "fakegoogle") && -+ if (value == NULL && g_object_get_data(G_OBJECT(item), "") && - !strcmp(purple_account_user_split_get_text(split), _("Domain"))) -- value = "gmail.com"; -- -- if (value == NULL && g_object_get_data(G_OBJECT(item), "fakefacebook") && -- !strcmp(purple_account_user_split_get_text(split), _("Domain"))) -- value = "chat.facebook.com"; -+ value = ""; - - if (value != NULL) - gtk_entry_set_text(GTK_ENTRY(entry), value); -@@ -925,10 +920,6 @@ - model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER); - opt_entry->widget = combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(model)); - -- if (g_object_get_data(G_OBJECT(item), "fakefacebook") && -- !strcmp(opt_entry->setting, "connection_security")) -- str_value = "opportunistic_tls"; -- - /* Loop through list of PurpleKeyValuePair items */ - for (node = list; node != NULL; node = node->next) { - if (node->data != NULL) { -diff -Nur pidgin-2.10.7/pidgin/gtkblist.c pidgin-2.10.7-nonprism/pidgin/gtkblist.c ---- pidgin-2.10.7/pidgin/gtkblist.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkblist.c 2013-08-16 23:10:16.549286879 -0300 -@@ -2126,10 +2126,6 @@ - char *temp_vcard; - char *s, *c; - char *alias = NULL; -- GList *aims = NULL; -- GList *icqs = NULL; -- GList *yahoos = NULL; -- GList *msns = NULL; - GList *jabbers = NULL; - - s = temp_vcard = g_strdup(vcard); -@@ -2168,24 +2164,14 @@ - /* We only want to worry about a few fields here. */ - if (!strcmp(field, "FN")) - alias = g_strdup(value); -- else if (!strcmp(field, "X-AIM") || !strcmp(field, "X-ICQ") || -- !strcmp(field, "X-YAHOO") || !strcmp(field, "X-MSN") || -- !strcmp(field, "X-JABBER")) -+ else if (!strcmp(field, "X-JABBER")) - { - char **values = g_strsplit(value, ":", 0); - char **im; - - for (im = values; *im != NULL; im++) - { -- if (!strcmp(field, "X-AIM")) -- aims = g_list_append(aims, g_strdup(*im)); -- else if (!strcmp(field, "X-ICQ")) -- icqs = g_list_append(icqs, g_strdup(*im)); -- else if (!strcmp(field, "X-YAHOO")) -- yahoos = g_list_append(yahoos, g_strdup(*im)); -- else if (!strcmp(field, "X-MSN")) -- msns = g_list_append(msns, g_strdup(*im)); -- else if (!strcmp(field, "X-JABBER")) -+ if (!strcmp(field, "X-JABBER")) - jabbers = g_list_append(jabbers, g_strdup(*im)); - } - -@@ -2195,18 +2181,13 @@ - - g_free(temp_vcard); - -- if (aims == NULL && icqs == NULL && yahoos == NULL && -- msns == NULL && jabbers == NULL) -+ if (jabbers == NULL) - { - g_free(alias); - - return FALSE; - } - -- add_buddies_from_vcard("prpl-aim", group, aims, alias); -- add_buddies_from_vcard("prpl-icq", group, icqs, alias); -- add_buddies_from_vcard("prpl-yahoo", group, yahoos, alias); -- add_buddies_from_vcard("prpl-msn", group, msns, alias); - add_buddies_from_vcard("prpl-jabber", group, jabbers, alias); - - g_free(alias); -diff -Nur pidgin-2.10.7/pidgin/gtkdialogs.c pidgin-2.10.7-nonprism/pidgin/gtkdialogs.c ---- pidgin-2.10.7/pidgin/gtkdialogs.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkdialogs.c 2013-08-16 21:37:21.863154130 -0300 -@@ -615,16 +615,6 @@ - #endif - #endif - --#if defined(_WIN32) || defined(USE_INTERNAL_LIBGADU) -- g_string_append(str, " <b>Gadu-Gadu library (libgadu):</b> Internal<br/>"); --#else --#ifdef HAVE_LIBGADU -- g_string_append(str, " <b>Gadu-Gadu library (libgadu):</b> Enabled<br/>"); --#else -- g_string_append(str, " <b>Gadu-Gadu library (libgadu):</b> Disabled<br/>"); --#endif --#endif -- - #ifdef USE_GTKSPELL - g_string_append(str, " <b>GtkSpell:</b> Enabled<br/>"); - #else -diff -Nur pidgin-2.10.7/pidgin/gtkimhtml.c pidgin-2.10.7-nonprism/pidgin/gtkimhtml.c ---- pidgin-2.10.7/pidgin/gtkimhtml.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkimhtml.c 2013-08-16 22:59:51.862994429 -0300 -@@ -2440,7 +2440,6 @@ - static gboolean smooth_scroll_cb(gpointer data); - - /* -- <KingAnt> marv: The two IM image functions in oscar are purple_odc_send_im and purple_odc_incoming - - - [19:58] <Robot101> marv: images go into the imgstore, a refcounted... well.. hash. :) -diff -Nur pidgin-2.10.7/pidgin/gtknotify.c pidgin-2.10.7-nonprism/pidgin/gtknotify.c ---- pidgin-2.10.7/pidgin/gtknotify.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtknotify.c 2013-08-27 23:37:23.037593200 -0300 -@@ -1263,10 +1263,6 @@ - command = g_strdup_printf("xdg-open %s", escaped); - g_free(tmp); - } -- else if (purple_running_osx() == TRUE) -- { -- command = g_strdup_printf("open %s", escaped); -- } - else if (!strcmp(web_browser, "epiphany") || - !strcmp(web_browser, "galeon")) - { -@@ -1289,30 +1285,31 @@ - { - command = g_strdup_printf("kfmclient openURL %s", escaped); - /* -- * Does Konqueror have options to open in new tab -+ * Does Konqueror-libre have options to open in new tab - * and/or current window? - */ - } -- else if (!strcmp(web_browser, "mozilla") || -- !strcmp(web_browser, "mozilla-firebird") || -- !strcmp(web_browser, "firefox") || -- !strcmp(web_browser, "seamonkey")) -+ else if (!strcmp(web_browser, "iceweasel") || -+ !strcmp(web_browser, "icecat") || -+ !strcmp(web_browser, "iceape")) - { - char *args = ""; - - command = g_strdup_printf("%s %s", web_browser, escaped); - - /* -- * Firefox 0.9 and higher require a "-a firefox" option when -+ * Iceweasel-libre 0.9 and higher require a "-a iceweasel" option when - * using -remote commands. This breaks older versions of - * mozilla. So we include this other handly little string -- * when calling firefox. If the API for remote calls changes -- * any more in firefox then firefox should probably be split -+ * when calling iceweasel. If the API for remote calls changes -+ * any more in iceweasel then iceweasel should probably be split - * apart from mozilla-firebird and mozilla... but this is good - * for now. - */ -- if (!strcmp(web_browser, "firefox")) -- args = "-a firefox"; -+ if (!strcmp(web_browser, "iceweasel")) -+ args = "-a iceweasel"; -+ else if (!strcmp(web_browser, "icecat")) -+ args = "-a icecat"; - - if (place == PIDGIN_BROWSER_NEW_WINDOW) - remote_command = g_strdup_printf("%s %s -remote " -@@ -1327,58 +1324,12 @@ - "openURL(%s)", - web_browser, args, escaped); - } -- else if (!strcmp(web_browser, "netscape")) -- { -- command = g_strdup_printf("netscape %s", escaped); -- -- if (place == PIDGIN_BROWSER_NEW_WINDOW) -- { -- remote_command = g_strdup_printf("netscape -remote " -- "openURL(%s,new-window)", -- escaped); -- } -- else if (place == PIDGIN_BROWSER_CURRENT) -- { -- remote_command = g_strdup_printf("netscape -remote " -- "openURL(%s)", escaped); -- } -- } -- else if (!strcmp(web_browser, "opera")) -- { -- if (place == PIDGIN_BROWSER_NEW_WINDOW) -- command = g_strdup_printf("opera -newwindow %s", escaped); -- else if (place == PIDGIN_BROWSER_NEW_TAB) -- command = g_strdup_printf("opera -newpage %s", escaped); -- else if (place == PIDGIN_BROWSER_CURRENT) -- { -- remote_command = g_strdup_printf("opera -remote " -- "openURL(%s)", escaped); -- command = g_strdup_printf("opera %s", escaped); -- } -- else -- command = g_strdup_printf("opera %s", escaped); -- -- } -- else if (!strcmp(web_browser, "google-chrome")) -- { -- /* Google Chrome doesn't have command-line arguments that control the -- * opening of links from external calls. This is controlled solely from -- * a preference within Google Chrome. */ -- command = g_strdup_printf("google-chrome %s", escaped); -- } -- else if (!strcmp(web_browser, "chrome")) -- { -- /* Chromium doesn't have command-line arguments that control the -- * opening of links from external calls. This is controlled solely from -- * a preference within Chromium. */ -- command = g_strdup_printf("chrome %s", escaped); -- } -- else if (!strcmp(web_browser, "chromium-browser")) -+ else if (!strcmp(web_browser, "chromium")) - { -- /* Chromium doesn't have command-line arguments that control the -+ /* Chromium-libre doesn't have command-line arguments that control the - * opening of links from external calls. This is controlled solely from -- * a preference within Chromium. */ -- command = g_strdup_printf("chromium-browser %s", escaped); -+ * a preference within Chromium-libre. */ -+ command = g_strdup_printf("chromium %s", escaped); - } - else if (!strcmp(web_browser, "custom")) - { -diff -Nur pidgin-2.10.7/pidgin/gtkprefs.c pidgin-2.10.7-nonprism/pidgin/gtkprefs.c ---- pidgin-2.10.7/pidgin/gtkprefs.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkprefs.c 2013-08-27 22:55:58.523782666 -0300 -@@ -1851,24 +1851,15 @@ - - /* Sorted reverse alphabetically */ - static const struct browser possible_browsers[] = { -- {N_("Seamonkey"), "seamonkey"}, -- {N_("Opera"), "opera"}, -- {N_("Netscape"), "netscape"}, -- {N_("Mozilla"), "mozilla"}, -- {N_("Konqueror"), "kfmclient"}, -- {N_("Google Chrome"), "google-chrome"}, -- /* Do not move the line below. Code below expects gnome-open to be in -- * this list immediately after xdg-open! */ -+ {N_("Iceape-libre"), "iceape"}, -+ {N_("Konqueror-libre"), "kfmclient"}, - {N_("Desktop Default"), "xdg-open"}, - {N_("GNOME Default"), "gnome-open"}, -- {N_("Galeon"), "galeon"}, -- {N_("Firefox"), "firefox"}, -- {N_("Firebird"), "mozilla-firebird"}, -- {N_("Epiphany"), "epiphany"}, -- /* Translators: please do not translate "chromium-browser" here! */ -- {N_("Chromium (chromium-browser)"), "chromium-browser"}, -- /* Translators: please do not translate "chrome" here! */ -- {N_("Chromium (chrome)"), "chrome"} -+ {N_("Iceweasel-libre"), "iceweasel"}, -+ {N_("Icecat"), "icecat"}, -+ {N_("Epiphany-libre"), "epiphany"}, -+ /* Translators: please do not translate "chromium" here! */ -+ {N_("Chromium-libre (chromium)"), "chromium"}, - }; - static const int num_possible_browsers = G_N_ELEMENTS(possible_browsers); - -diff -Nur pidgin-2.10.7/pidgin/gtkutils.c pidgin-2.10.7-nonprism/pidgin/gtkutils.c ---- pidgin-2.10.7/pidgin/gtkutils.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkutils.c 2013-08-16 19:59:22.633298587 -0300 -@@ -677,7 +677,6 @@ - GdkPixbuf *pixbuf = NULL; - GtkSizeGroup *sg; - GList *p; -- const char *gtalk_name = NULL, *facebook_name = NULL; - int i; - - aop_menu = g_malloc0(sizeof(AopMenu)); -@@ -686,55 +685,12 @@ - gtk_widget_show(aop_menu->menu); - sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); - -- if (purple_find_prpl("prpl-jabber")) { -- gtalk_name = _("Google Talk"); -- facebook_name = _("Facebook (XMPP)"); -- } -- - for (p = purple_plugins_get_protocols(), i = 0; - p != NULL; - p = p->next, i++) { - - plugin = (PurplePlugin *)p->data; - -- if (gtalk_name && strcmp(gtalk_name, plugin->info->name) < 0) { -- char *filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", -- "16", "google-talk.png", NULL); -- GtkWidget *item; -- -- pixbuf = pidgin_pixbuf_new_from_file(filename); -- g_free(filename); -- -- gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu), -- item = aop_menu_item_new(sg, pixbuf, gtalk_name, "prpl-jabber", "protocol")); -- g_object_set_data(G_OBJECT(item), "fakegoogle", GINT_TO_POINTER(1)); -- -- if (pixbuf) -- g_object_unref(pixbuf); -- -- gtalk_name = NULL; -- i++; -- } -- -- if (facebook_name && strcmp(facebook_name, plugin->info->name) < 0) { -- char *filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", -- "16", "facebook.png", NULL); -- GtkWidget *item; -- -- pixbuf = pidgin_pixbuf_new_from_file(filename); -- g_free(filename); -- -- gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu), -- item = aop_menu_item_new(sg, pixbuf, facebook_name, "prpl-jabber", "protocol")); -- g_object_set_data(G_OBJECT(item), "fakefacebook", GINT_TO_POINTER(1)); -- -- if (pixbuf) -- g_object_unref(pixbuf); -- -- facebook_name = NULL; -- i++; -- } -- - pixbuf = pidgin_create_prpl_icon_from_prpl(plugin, PIDGIN_PRPL_ICON_SMALL, NULL); - - gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu), -diff -Nur pidgin-2.10.7/pidgin/gtkwhiteboard.c pidgin-2.10.7-nonprism/pidgin/gtkwhiteboard.c ---- pidgin-2.10.7/pidgin/gtkwhiteboard.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkwhiteboard.c 2013-08-16 23:25:21.614375960 -0300 -@@ -339,13 +339,10 @@ - */ - /* XXXX because otherwise gettext will see this string, even though it's - * in an #if 0 block. Remove the XXXX if you want to use this code. -- * But, it really shouldn't be a Yahoo-specific string. ;) */ -+ */ - purple_conv_im_write(PURPLE_CONV_IM(conv), "", XXXX_("Sent Doodle request."), - PURPLE_MESSAGE_NICK | PURPLE_MESSAGE_RECV, time(NULL)); - -- yahoo_doodle_command_send_request(gc, to); -- yahoo_doodle_command_send_ready(gc, to); -- - /* Insert this 'session' in the list. At this point, it's only a requested - * session. - */ -@@ -554,15 +551,13 @@ - if(event->button == 1 && pixmap != NULL) - { - /* If the brush was never moved, express two sets of two deltas That's a -- * 'point,' but not for Yahoo! -+ * 'point,' - */ - /* if((event->x == LastX) && (event->y == LastY)) */ - if(MotionCount == 0) - { - int index; - -- /* For Yahoo!, a (0 0) indicates the end of drawing */ -- /* FIXME: Yahoo Doodle specific! */ - for(index = 0; index < 2; index++) - { - draw_list = g_list_append(draw_list, 0); -diff -Nur pidgin-2.10.7/pidgin/gtkwhiteboard.h pidgin-2.10.7-nonprism/pidgin/gtkwhiteboard.h ---- pidgin-2.10.7/pidgin/gtkwhiteboard.h 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkwhiteboard.h 2013-08-27 23:28:41.018759351 -0300 -@@ -37,8 +37,7 @@ - #define BRUSH_STATE_DOWN 1 - #define BRUSH_STATE_MOTION 2 - --/* XXX: This seems duplicated with the Yahoo! Doodle prpl code. -- * XXX: How should they work together? */ -+/* XXX: How should they work together? */ - #define PALETTE_NUM_COLORS 7 - - /** -diff -Nur pidgin-2.10.7/pidgin/Makefile.am pidgin-2.10.7-nonprism/pidgin/Makefile.am ---- pidgin-2.10.7/pidgin/Makefile.am 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/Makefile.am 2013-08-16 21:03:34.936610745 -0300 -@@ -160,10 +160,6 @@ - $(GTK_LIBS) \ - $(top_builddir)/libpurple/libpurple.la - --if USE_INTERNAL_LIBGADU --INTGG_CFLAGS = -DUSE_INTERNAL_LIBGADU --endif -- - AM_CPPFLAGS = \ - -DDATADIR=\"$(datadir)\" \ - -DLIBDIR=\"$(libdir)/pidgin/\" \ -@@ -179,6 +175,5 @@ - $(GTK_CFLAGS) \ - $(DBUS_CFLAGS) \ - $(GTKSPELL_CFLAGS) \ -- $(LIBXML_CFLAGS) \ -- $(INTGG_CFLAGS) -+ $(LIBXML_CFLAGS) - endif # ENABLE_GTK -diff -Nur pidgin-2.10.7/pidgin/Makefile.in pidgin-2.10.7-nonprism/pidgin/Makefile.in ---- pidgin-2.10.7/pidgin/Makefile.in 2013-02-11 07:17:23.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/Makefile.in 2013-08-16 23:56:44.729405978 -0300 -@@ -286,8 +286,6 @@ - FARSTREAM_CFLAGS = @FARSTREAM_CFLAGS@ - FARSTREAM_LIBS = @FARSTREAM_LIBS@ - FGREP = @FGREP@ --GADU_CFLAGS = @GADU_CFLAGS@ --GADU_LIBS = @GADU_LIBS@ - GCONFTOOL = @GCONFTOOL@ - GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ - GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -@@ -349,8 +347,6 @@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MANIFEST_TOOL = @MANIFEST_TOOL@ --MEANWHILE_CFLAGS = @MEANWHILE_CFLAGS@ --MEANWHILE_LIBS = @MEANWHILE_LIBS@ - MKDIR_P = @MKDIR_P@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MONO_CFLAGS = @MONO_CFLAGS@ -@@ -645,7 +641,6 @@ - @ENABLE_GTK_TRUE@ $(GTK_LIBS) \ - @ENABLE_GTK_TRUE@ $(top_builddir)/libpurple/libpurple.la - --@ENABLE_GTK_TRUE@@USE_INTERNAL_LIBGADU_TRUE@INTGG_CFLAGS = -DUSE_INTERNAL_LIBGADU - @ENABLE_GTK_TRUE@AM_CPPFLAGS = \ - @ENABLE_GTK_TRUE@ -DDATADIR=\"$(datadir)\" \ - @ENABLE_GTK_TRUE@ -DLIBDIR=\"$(libdir)/pidgin/\" \ -diff -Nur pidgin-2.10.7/pidgin/pixmaps/emotes/default/24/default.theme.in pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/default/24/default.theme.in ---- pidgin-2.10.7/pidgin/pixmaps/emotes/default/24/default.theme.in 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/default/24/default.theme.in 2013-08-16 23:13:41.759061988 -0300 -@@ -28,8 +28,7 @@ - - - [XMPP] --# Following XEP-0038 + GTalk + our default set, in default set order --# The GTalk strings come from ticket #3307. -+# Following XEP-0038 + our default set, in default set order - happy.png :) :-) =) - excited.png :-D :-d :D :d =D =d - sad.png :-( :( -@@ -47,7 +46,7 @@ - foot-in-mouth.png :-! - shout.png >:o >:O - --# Following XEP-0038 + GTalk -+# Following XEP-0038 - angry.png >:-( >:( X-( x-( - good.png :yes: - bad.png :no: -@@ -75,515 +74,3 @@ - ! skywalker.png C:-) c:-) C:) c:) - ! monkey.png :-(|) :(|) 8-|) - ! cyclops.png O-) o-) -- -- --# Following AIM 6.1 --[AIM] --happy.png :-) :) --wink.png ;-) ;) --sad.png :-( :( --tongue.png :P :p :-P :-p --shocked.png =-O --kiss.png :-* --shout.png >:o --excited.png :-D :D --moneymouth.png :-$ --foot-in-mouth.png :-! --embarrassed.png :-[ --angel.png O:-) --thinking.png :-\\ :-/ --crying.png :'( --shut-mouth.png :-X --glasses-cool.png 8-) --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# Following Windows Live Messenger 8.1 --[MSN] --happy.png :) :-) --excited.png :D :d :-D :-d --wink.png ;) ;-) --shocked.png :-O :-o :O :o --tongue.png :-P :P :-p :p --glasses-cool.png (H) (h) --angry.png :@ :-@ --embarrassed.png :$ :-$ --confused.png :S :s :-S :-s --sad.png :( :-( --crying.png :'( --neutral.png :| :-| --devil.png (6) --angel.png (A) (a) --in_love.png (L) (l) --love-over.png (U) (u) --msn.png (M) (m) --cat.png (@) --dog.png (&) --moon.png (S) --star.png (*) --film.png (~) --musical-note.png (8) --mail.png (E) (e) --rose.png (F) (f) --rose-dead.png (W) (w) --clock.png (O) (o) --kiss.png (K) (k) --present.png (G) (g) --cake.png (^) --camera.png (P) (p) --lamp.png (I) (i) --coffee.png (C) (c) --phone.png (T) (t) --hug-left.png ({) --hug-right.png (}) --beer.png (B) (b) --drink.png (D) (d) --boy.png (Z) (z) --girl.png (X) (x) --good.png (Y) (y) --bad.png (N) (n) --vampire.png :[ :-[ --goat.png (nah) --sun.png (#) --rainbow.png (R) (r) --quiet.png :-# --teeth.png 8o| --glasses-nerdy.png 8-| --sarcastic.png ^o) --secret.png :-* --sick.png +o( --snail.png (sn) --turtle.png (tu) --plate.png (pl) --bowl.png (||) --pizza.png (pi) --soccerball.png (so) --car.png (au) --airplane.png (ap) --umbrella.png (um) --island.png (ip) --computer.png (co) --mobile.png (mp) --brb.png (brb) --rain.png (st) --highfive.png (h5) --coins.png (mo) --sheep.png (bah) --dont-know.png :^) --thinking.png *-) --thunder.png (li) --party.png <:o) --eyeroll.png 8-) --sleepy.png |-) --bunny.png ('.') --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- --# Hidden MSN emotes --cigarette.png (ci) (CI) --handcuffs.png (%) --console.png (xx) (XX) --fingers-crossed.png (yn) (YN) -- -- --# Following QQ 2006 --[QQ] --shocked.png /:O /jy /surprised --curl-lip.png /:~ /pz /curl_lip --desire.png /:* /se /desire --dazed.png /:| /dazed --party.png /8-) /dy /revel --crying.png /:< /ll /cry --bashful.png /:$ /hx /bashful --shut-mouth.png /:X /bz /shut_mouth --sleeping.png /:Z /shui /sleep --weep.png /:'( /dk /weep --embarrassed.png /:-| /gg /embarassed --pissed-off.png /:@ /fn /pissed_off --act-up.png /:P /tp /act_up --excited.png /:D /cy /toothy_smile --happy.png /:) /wx /small_smile --sad.png /:( /ng /sad --glasses-cool.png /:+ /kuk /cool --doctor.png /:# /feid /SARS --silly.png /:Q /zk /crazy --sick.png /:T /tu /vomit --snicker.png /;p /tx /titter --cute.png /;-D /ka /cute --disdain.png /;d /by /disdain --arrogant.png /;o /am /arrogant --starving.png /:g /jie /starving --sleepy.png /|-) /kun /sleepy --terror.png /:! /jk /terror --hot.png /:L /sweat --smirk.png /:> /hanx /smirk --soldier.png /:; /db /soldier --struggle.png /;f /fendou /struggle --curse.png /:-S /zhm /curse --question.png /? /yiw /question --quiet.png /;x /xu /shh --hypnotized.png /;@ /yun /dizzy --excruciating.png /:8 /zhem /excrutiating --freaked-out.png /;! /shuai /freaked_out --skeleton.png /!!! /kl /skeleton --hammer.png /xx /qiao /hammer --bye.png /bye /zj /bye --go-away.png /go /shan /go --afraid.png /shake /fad /shake --amorous.png /love /aiq /love --jump.png /jump /tiao /jump --search.png /find /zhao /search --lashes.png /& /mm /beautiful_eyebrows --pig.png /pig /zt /pig --cat.png /cat /mm /cat --dog.png /dog /xg /dog --hug-left.png /hug /yb /hug --coins.png /$ /qianc /money --lamp.png /! /dp /lightbulb --bowl.png /cup /bei /cup --cake.png /cake /dg /cake --thunder.png /li /shd /lightning --bomb.png /bome /zhd /bomb --knife.png /kn /dao /knife --soccerball.png /footb /zq /soccer --musical-note.png /music /yy /music --poop.png /shit /bb /shit --coffee.png /coffee /kf /coffee --hungry.png /eat /fan /eat --pill.png /pill /yw /pill --rose.png /rose /mg /rose --wilt.png /fade /dx /wilt --kiss.png /kiss /wen /kiss --in_love.png /heart /xin /heart --love-over.png /break /xs /broken_heart --meeting.png /meeting /hy /meeting --present.png /gift /lw /gift --phone.png /phone /dh /phone --clock.png /time /sj /time --mail.png /email /yj /email --tv.png /TV /ds /TV --sun.png /sun /ty /sun --moon.png /moon /yl /moon --good.png /strong /qiang /thumbs_up --bad.png /weak /ruo /thumbs_down --handshake.png /share /ws /handshake --victory.png /v /shl /victory --beauty.png /<J> /mn /beauty --qq.png /<QQ> /qz /qq --blowkiss.png /<L> /fw /blow_kiss --angry.png /<O> /oh /angry --liquor.png /<B> /bj /baijiu --can.png /<U> /qsh /soda --watermelon.png /<W> /xigua /watermelon --rain.png /<!!> /xy /rain --cloudy.png /<~> /duoy /cloudy --snowman.png /<Z> /xr /snowman --star.png /<*> /xixing /star --girl.png /<00> /nv /woman --boy.png /<11> /nan /man --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# Following ICQ 6.0 --[ICQ] --happy.png :-) :) --neutral.png :-$ --sad.png :-( :( --shocked.png =-O --wink.png ;-) ;) --tongue.png :-P :P :-p :p --music.png [:-} --laugh.png *JOKINGLY* --sleeping.png *TIRED* --crying.png :'( :'-( --sick.png :-! --kissed.png *KISSED* --stop.png *STOP* --kiss.png :-{} :-* --kissing.png *KISSING* --victory.png *YAHOO* --silly.png %) --embarrassed.png :-[ --devil.png ]:-> --angel.png O:-) --rose.png @}->-- --shut-mouth.png :-X :X :-x :x --bomb.png @= --thinking.png :-\\ :-/ --good.png *THUMBS\ UP* --shout.png >:o >:O :-@ --beer.png *DRINK* --excited.png :-D :D --glasses-cool.png 8-) --amorous.png *IN\ LOVE* --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# Following Yahoo! Messenger 8.1 --[Yahoo] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --hypnotized.png @-) --on-the-phone.png :)] --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --glasses-nerdy.png :-B :-b --quiet.png :-$ --drool.png =P~ =p~ --lying.png :^O :^o --call-me.png :-c --wink.png ;) ;-) --embarrassed.png :"> --mean.png :-> :> --laugh.png :)) :-)) --bye.png =; --arrogant.png [-( --thinking.png :-? --waiting.png :-w :-W --at-wits-end.png ~x( ~X( --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --clown.png :o) :O) --doh.png #-o #-O --weep.png :-< --go-away.png :-h --lashes.png ;;) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --silly.png 8-} --clap.png =D> =d> --mad-tongue.png >:P >:p --time-out.png :-t :-T --hug-left.png >:D< >:d< --love-over.png =(( --hot.png #:-S #:-s --rotfl.png =)) :-j :-J --loser.png L-) l-) --party.png <:-P <:-p --nervous.png :-SS :-Ss :-sS :-ss --cowboy.png <):) --desire.png 8-> --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- --# Hidden Yahoo emotes --alien.png =:) >-) --beat-up.png b-( B-( --chicken.png ~:> --coffee.png ~o) ~O) --cow.png 3:-O 3:-o --dance.png \\:D/ \\:d/ --rose.png @};- --dont-know.png :-L :-l --skeleton.png 8-X 8-x --lamp.png *-:) --monkey.png :(|) --coins.png $-) --peace.png :)>- --pig.png :@) --pray.png [-o< [-O< --pumpkin.png (~~) --shame.png [-X [-x --flag.png **== --clover.png %%- --musical-note.png :-" --giggle.png ;)) --worship.png ^:)^ --star.png (*) --waving.png >:/ --talktohand.png :-@ -- --# Only available after activating the Yahoo! Fighter IMVironment --male-fighter1.png o-> O-> --male-fighter2.png o=> O=> --female-fighter.png o-+ O-+ --yin-yang.png (%) -- --# Following Yahoo! Messenger 8.1 --[Yahoo JAPAN] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --hypnotized.png @-) --on-the-phone.png :)] --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --glasses-nerdy.png :-B :-b --quiet.png :-$ --drool.png =P~ =p~ --lying.png :^O :^o --call-me.png :-c --wink.png ;) ;-) --embarrassed.png :"> --mean.png :-> :> --laugh.png :)) :-)) --bye.png =; --arrogant.png [-( --thinking.png :-? --waiting.png :-w :-W --at-wits-end.png ~x( ~X( --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --clown.png :o) :O) --doh.png #-o #-O --weep.png :-< --go-away.png :-h --lashes.png ;;) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --silly.png 8-} --clap.png =D> =d> --mad-tongue.png >:P >:p --time-out.png :-t :-T --hug-left.png >:D< >:d< --love-over.png =(( --hot.png #:-S #:-s --rotfl.png =)) :-j :-J --loser.png L-) l-) --party.png <:-P <:-p --nervous.png :-SS :-Ss :-sS :-ss --cowboy.png <):) --desire.png 8-> --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) -- --# Hidden Yahoo emotes --alien.png =:) >-) --beat-up.png b-( B-( --chicken.png ~:> --coffee.png ~o) ~O) --cow.png 3:-O 3:-o --dance.png \\:D/ \\:d/ --rose.png @};- --dont-know.png :-L :-l --skeleton.png 8-X 8-x --lamp.png *-:) --monkey.png :(|) --coins.png $-) --peace.png :)>- --pig.png :@) --pray.png [-o< [-O< --pumpkin.png (~~) --shame.png [-X [-x --flag.png **== --clover.png %%- --musical-note.png :-" --giggle.png ;)) --worship.png ^:)^ --star.png (*) --waving.png >:/ --talktohand.png :-@ -- --# Only available after activating the Yahoo! Fighter IMVironment --male-fighter1.png o-> O-> --male-fighter2.png o=> O=> --female-fighter.png o-+ O-+ --yin-yang.png (%) -- -- --# Following MySpaceIM Beta 1.0.697.0 --[MySpaceIM] --excited.png :D :-D --devil.png }:) --confused.png :Z --glasses-nerdy.png B) --bulgy-eyes.png %) --freaked-out.png :E --happy.png :) :-) --amorous.png :X --laugh.png :)) --mohawk.png -: --mad-tongue.png X( --messed.png X) --glasses-nerdy.png Q) --doh.png :G --pirate.png P) --shocked.png :O --sidefrown.png :{ --sinister.png :B --smirk.png :, --neutral.png :| --tongue.png :P :p --pissed-off.png B| --wink.png ;-) ;) --sad.png :[ --kiss.png :x --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# MXit standard emoticons --[MXit] --happy.png :-) :) --sad.png :-( :( --wink.png ;-) ;) --excited.png :-D :D :-> :> --neutral.png :-| :| --shocked.png :-O :O --tongue.png :-P :P --embarrassed.png :-$ :$ --glasses-cool.png 8-) --in_love.png (H) --rose.png (F) --### Added in v3.0 --boy.png (m) --girl.png (f) --star.png (*) --chilli.png (c) --kiss.png (x) --lamp.png (i) --pissed-off.png :e :-e --shut-mouth.png :-x :x --thunder.png (z) --coffee.png (U) --mrgreen.png (G) --### Added in v5.0 --sick.png :o( --excruciating.png :-{ :{ --amorous.png :-} :} --eyeroll.png 8-o 8o --crying.png :'( --thinking.png :-? :? --drool.png :-~ :~ --sleeping.png :-z :z --lying.png :L) --glasses-nerdy.png 8-| 8| --pirate.png P-) --### Added in v5.9.7 --bored.png :-[ :[ --cold.png :-< :< --confused.png :-, :, --hungry.png :-C :C --stressed.png :-s :s -diff -Nur pidgin-2.10.7/pidgin/pixmaps/emotes/default/24/theme pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/default/24/theme ---- pidgin-2.10.7/pidgin/pixmaps/emotes/default/24/theme 2013-02-11 07:17:58.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/default/24/theme 2013-08-16 23:15:55.929941297 -0300 -@@ -28,8 +28,7 @@ - - - [XMPP] --# Following XEP-0038 + GTalk + our default set, in default set order --# The GTalk strings come from ticket #3307. -+# Following XEP-0038 + our default set, in default set order - happy.png :) :-) =) - excited.png :-D :-d :D :d =D =d - sad.png :-( :( -@@ -47,7 +46,7 @@ - foot-in-mouth.png :-! - shout.png >:o >:O - --# Following XEP-0038 + GTalk -+# Following XEP-0038 - angry.png >:-( >:( X-( x-( - good.png :yes: - bad.png :no: -@@ -75,515 +74,3 @@ - ! skywalker.png C:-) c:-) C:) c:) - ! monkey.png :-(|) :(|) 8-|) - ! cyclops.png O-) o-) -- -- --# Following AIM 6.1 --[AIM] --happy.png :-) :) --wink.png ;-) ;) --sad.png :-( :( --tongue.png :P :p :-P :-p --shocked.png =-O --kiss.png :-* --shout.png >:o --excited.png :-D :D --moneymouth.png :-$ --foot-in-mouth.png :-! --embarrassed.png :-[ --angel.png O:-) --thinking.png :-\\ :-/ --crying.png :'( --shut-mouth.png :-X --glasses-cool.png 8-) --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# Following Windows Live Messenger 8.1 --[MSN] --happy.png :) :-) --excited.png :D :d :-D :-d --wink.png ;) ;-) --shocked.png :-O :-o :O :o --tongue.png :-P :P :-p :p --glasses-cool.png (H) (h) --angry.png :@ :-@ --embarrassed.png :$ :-$ --confused.png :S :s :-S :-s --sad.png :( :-( --crying.png :'( --neutral.png :| :-| --devil.png (6) --angel.png (A) (a) --in_love.png (L) (l) --love-over.png (U) (u) --msn.png (M) (m) --cat.png (@) --dog.png (&) --moon.png (S) --star.png (*) --film.png (~) --musical-note.png (8) --mail.png (E) (e) --rose.png (F) (f) --rose-dead.png (W) (w) --clock.png (O) (o) --kiss.png (K) (k) --present.png (G) (g) --cake.png (^) --camera.png (P) (p) --lamp.png (I) (i) --coffee.png (C) (c) --phone.png (T) (t) --hug-left.png ({) --hug-right.png (}) --beer.png (B) (b) --drink.png (D) (d) --boy.png (Z) (z) --girl.png (X) (x) --good.png (Y) (y) --bad.png (N) (n) --vampire.png :[ :-[ --goat.png (nah) --sun.png (#) --rainbow.png (R) (r) --quiet.png :-# --teeth.png 8o| --glasses-nerdy.png 8-| --sarcastic.png ^o) --secret.png :-* --sick.png +o( --snail.png (sn) --turtle.png (tu) --plate.png (pl) --bowl.png (||) --pizza.png (pi) --soccerball.png (so) --car.png (au) --airplane.png (ap) --umbrella.png (um) --island.png (ip) --computer.png (co) --mobile.png (mp) --brb.png (brb) --rain.png (st) --highfive.png (h5) --coins.png (mo) --sheep.png (bah) --dont-know.png :^) --thinking.png *-) --thunder.png (li) --party.png <:o) --eyeroll.png 8-) --sleepy.png |-) --bunny.png ('.') --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- --# Hidden MSN emotes --cigarette.png (ci) (CI) --handcuffs.png (%) --console.png (xx) (XX) --fingers-crossed.png (yn) (YN) -- -- --# Following QQ 2006 --[QQ] --shocked.png /:O /jy /surprised --curl-lip.png /:~ /pz /curl_lip --desire.png /:* /se /desire --dazed.png /:| /dazed --party.png /8-) /dy /revel --crying.png /:< /ll /cry --bashful.png /:$ /hx /bashful --shut-mouth.png /:X /bz /shut_mouth --sleeping.png /:Z /shui /sleep --weep.png /:'( /dk /weep --embarrassed.png /:-| /gg /embarassed --pissed-off.png /:@ /fn /pissed_off --act-up.png /:P /tp /act_up --excited.png /:D /cy /toothy_smile --happy.png /:) /wx /small_smile --sad.png /:( /ng /sad --glasses-cool.png /:+ /kuk /cool --doctor.png /:# /feid /SARS --silly.png /:Q /zk /crazy --sick.png /:T /tu /vomit --snicker.png /;p /tx /titter --cute.png /;-D /ka /cute --disdain.png /;d /by /disdain --arrogant.png /;o /am /arrogant --starving.png /:g /jie /starving --sleepy.png /|-) /kun /sleepy --terror.png /:! /jk /terror --hot.png /:L /sweat --smirk.png /:> /hanx /smirk --soldier.png /:; /db /soldier --struggle.png /;f /fendou /struggle --curse.png /:-S /zhm /curse --question.png /? /yiw /question --quiet.png /;x /xu /shh --hypnotized.png /;@ /yun /dizzy --excruciating.png /:8 /zhem /excrutiating --freaked-out.png /;! /shuai /freaked_out --skeleton.png /!!! /kl /skeleton --hammer.png /xx /qiao /hammer --bye.png /bye /zj /bye --go-away.png /go /shan /go --afraid.png /shake /fad /shake --amorous.png /love /aiq /love --jump.png /jump /tiao /jump --search.png /find /zhao /search --lashes.png /& /mm /beautiful_eyebrows --pig.png /pig /zt /pig --cat.png /cat /mm /cat --dog.png /dog /xg /dog --hug-left.png /hug /yb /hug --coins.png /$ /qianc /money --lamp.png /! /dp /lightbulb --bowl.png /cup /bei /cup --cake.png /cake /dg /cake --thunder.png /li /shd /lightning --bomb.png /bome /zhd /bomb --knife.png /kn /dao /knife --soccerball.png /footb /zq /soccer --musical-note.png /music /yy /music --poop.png /shit /bb /shit --coffee.png /coffee /kf /coffee --hungry.png /eat /fan /eat --pill.png /pill /yw /pill --rose.png /rose /mg /rose --wilt.png /fade /dx /wilt --kiss.png /kiss /wen /kiss --in_love.png /heart /xin /heart --love-over.png /break /xs /broken_heart --meeting.png /meeting /hy /meeting --present.png /gift /lw /gift --phone.png /phone /dh /phone --clock.png /time /sj /time --mail.png /email /yj /email --tv.png /TV /ds /TV --sun.png /sun /ty /sun --moon.png /moon /yl /moon --good.png /strong /qiang /thumbs_up --bad.png /weak /ruo /thumbs_down --handshake.png /share /ws /handshake --victory.png /v /shl /victory --beauty.png /<J> /mn /beauty --qq.png /<QQ> /qz /qq --blowkiss.png /<L> /fw /blow_kiss --angry.png /<O> /oh /angry --liquor.png /<B> /bj /baijiu --can.png /<U> /qsh /soda --watermelon.png /<W> /xigua /watermelon --rain.png /<!!> /xy /rain --cloudy.png /<~> /duoy /cloudy --snowman.png /<Z> /xr /snowman --star.png /<*> /xixing /star --girl.png /<00> /nv /woman --boy.png /<11> /nan /man --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# Following ICQ 6.0 --[ICQ] --happy.png :-) :) --neutral.png :-$ --sad.png :-( :( --shocked.png =-O --wink.png ;-) ;) --tongue.png :-P :P :-p :p --music.png [:-} --laugh.png *JOKINGLY* --sleeping.png *TIRED* --crying.png :'( :'-( --sick.png :-! --kissed.png *KISSED* --stop.png *STOP* --kiss.png :-{} :-* --kissing.png *KISSING* --victory.png *YAHOO* --silly.png %) --embarrassed.png :-[ --devil.png ]:-> --angel.png O:-) --rose.png @}->-- --shut-mouth.png :-X :X :-x :x --bomb.png @= --thinking.png :-\\ :-/ --good.png *THUMBS\ UP* --shout.png >:o >:O :-@ --beer.png *DRINK* --excited.png :-D :D --glasses-cool.png 8-) --amorous.png *IN\ LOVE* --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# Following Yahoo! Messenger 8.1 --[Yahoo] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --hypnotized.png @-) --on-the-phone.png :)] --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --glasses-nerdy.png :-B :-b --quiet.png :-$ --drool.png =P~ =p~ --lying.png :^O :^o --call-me.png :-c --wink.png ;) ;-) --embarrassed.png :"> --mean.png :-> :> --laugh.png :)) :-)) --bye.png =; --arrogant.png [-( --thinking.png :-? --waiting.png :-w :-W --at-wits-end.png ~x( ~X( --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --clown.png :o) :O) --doh.png #-o #-O --weep.png :-< --go-away.png :-h --lashes.png ;;) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --silly.png 8-} --clap.png =D> =d> --mad-tongue.png >:P >:p --time-out.png :-t :-T --hug-left.png >:D< >:d< --love-over.png =(( --hot.png #:-S #:-s --rotfl.png =)) :-j :-J --loser.png L-) l-) --party.png <:-P <:-p --nervous.png :-SS :-Ss :-sS :-ss --cowboy.png <):) --desire.png 8-> --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- --# Hidden Yahoo emotes --alien.png =:) >-) --beat-up.png b-( B-( --chicken.png ~:> --coffee.png ~o) ~O) --cow.png 3:-O 3:-o --dance.png \\:D/ \\:d/ --rose.png @};- --dont-know.png :-L :-l --skeleton.png 8-X 8-x --lamp.png *-:) --monkey.png :(|) --coins.png $-) --peace.png :)>- --pig.png :@) --pray.png [-o< [-O< --pumpkin.png (~~) --shame.png [-X [-x --flag.png **== --clover.png %%- --musical-note.png :-" --giggle.png ;)) --worship.png ^:)^ --star.png (*) --waving.png >:/ --talktohand.png :-@ -- --# Only available after activating the Yahoo! Fighter IMVironment --male-fighter1.png o-> O-> --male-fighter2.png o=> O=> --female-fighter.png o-+ O-+ --yin-yang.png (%) -- --# Following Yahoo! Messenger 8.1 --[Yahoo JAPAN] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --hypnotized.png @-) --on-the-phone.png :)] --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --glasses-nerdy.png :-B :-b --quiet.png :-$ --drool.png =P~ =p~ --lying.png :^O :^o --call-me.png :-c --wink.png ;) ;-) --embarrassed.png :"> --mean.png :-> :> --laugh.png :)) :-)) --bye.png =; --arrogant.png [-( --thinking.png :-? --waiting.png :-w :-W --at-wits-end.png ~x( ~X( --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --clown.png :o) :O) --doh.png #-o #-O --weep.png :-< --go-away.png :-h --lashes.png ;;) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --silly.png 8-} --clap.png =D> =d> --mad-tongue.png >:P >:p --time-out.png :-t :-T --hug-left.png >:D< >:d< --love-over.png =(( --hot.png #:-S #:-s --rotfl.png =)) :-j :-J --loser.png L-) l-) --party.png <:-P <:-p --nervous.png :-SS :-Ss :-sS :-ss --cowboy.png <):) --desire.png 8-> --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) -- --# Hidden Yahoo emotes --alien.png =:) >-) --beat-up.png b-( B-( --chicken.png ~:> --coffee.png ~o) ~O) --cow.png 3:-O 3:-o --dance.png \\:D/ \\:d/ --rose.png @};- --dont-know.png :-L :-l --skeleton.png 8-X 8-x --lamp.png *-:) --monkey.png :(|) --coins.png $-) --peace.png :)>- --pig.png :@) --pray.png [-o< [-O< --pumpkin.png (~~) --shame.png [-X [-x --flag.png **== --clover.png %%- --musical-note.png :-" --giggle.png ;)) --worship.png ^:)^ --star.png (*) --waving.png >:/ --talktohand.png :-@ -- --# Only available after activating the Yahoo! Fighter IMVironment --male-fighter1.png o-> O-> --male-fighter2.png o=> O=> --female-fighter.png o-+ O-+ --yin-yang.png (%) -- -- --# Following MySpaceIM Beta 1.0.697.0 --[MySpaceIM] --excited.png :D :-D --devil.png }:) --confused.png :Z --glasses-nerdy.png B) --bulgy-eyes.png %) --freaked-out.png :E --happy.png :) :-) --amorous.png :X --laugh.png :)) --mohawk.png -: --mad-tongue.png X( --messed.png X) --glasses-nerdy.png Q) --doh.png :G --pirate.png P) --shocked.png :O --sidefrown.png :{ --sinister.png :B --smirk.png :, --neutral.png :| --tongue.png :P :p --pissed-off.png B| --wink.png ;-) ;) --sad.png :[ --kiss.png :x --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# MXit standard emoticons --[MXit] --happy.png :-) :) --sad.png :-( :( --wink.png ;-) ;) --excited.png :-D :D :-> :> --neutral.png :-| :| --shocked.png :-O :O --tongue.png :-P :P --embarrassed.png :-$ :$ --glasses-cool.png 8-) --in_love.png (H) --rose.png (F) --### Added in v3.0 --boy.png (m) --girl.png (f) --star.png (*) --chilli.png (c) --kiss.png (x) --lamp.png (i) --pissed-off.png :e :-e --shut-mouth.png :-x :x --thunder.png (z) --coffee.png (U) --mrgreen.png (G) --### Added in v5.0 --sick.png :o( --excruciating.png :-{ :{ --amorous.png :-} :} --eyeroll.png 8-o 8o --crying.png :'( --thinking.png :-? :? --drool.png :-~ :~ --sleeping.png :-z :z --lying.png :L) --glasses-nerdy.png 8-| 8| --pirate.png P-) --### Added in v5.9.7 --bored.png :-[ :[ --cold.png :-< :< --confused.png :-, :, --hungry.png :-C :C --stressed.png :-s :s -diff -Nur pidgin-2.10.7/pidgin/pixmaps/emotes/small/16/small.theme.in pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/small/16/small.theme.in ---- pidgin-2.10.7/pidgin/pixmaps/emotes/small/16/small.theme.in 2013-02-11 07:16:54.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/small/16/small.theme.in 2013-08-16 23:19:01.815778718 -0300 -@@ -22,8 +22,7 @@ - - - [XMPP] --# Following XEP-0038 + GTalk + our default set, in default set order --# The GTalk strings come from ticket #3307. -+# Following XEP-0038 + our default set, in default set order - happy.png :) :-) =) - excited.png :-D :-d :D :d =D =d - sad.png :-( :( -@@ -38,7 +37,7 @@ - angel.png O:-) o:-) - shut-mouth.png :-X - --# Following XEP-0038 + GTalk -+# Following XEP-0038 - angry.png >:-( >:( X-( x-( - rose.png @->-- :rose: - phone.png :telephone: -@@ -53,269 +52,3 @@ - neutral.png :| :-| - - # Hidden icons from the default set. -- -- --# Following AIM 6.1 --[AIM] --happy.png :-) :) --wink.png ;-) ;) --sad.png :-( :( --tongue.png :P :p :-P :-p --shocked.png =-O --kiss.png :-* --excited.png :-D :D --embarrassed.png :-[ --angel.png O:-) --thinking.png :-\\ :-/ --crying.png :'( --shut-mouth.png :-X --glasses-cool.png 8-) -- -- --# Following Windows Live Messenger 8.1 --[MSN] --happy.png :) :-) --excited.png :D :d :-D :-d --wink.png ;) ;-) --shocked.png :-O :-o :O :o --tongue.png :-P :P :-p :p --glasses-cool.png (H) (h) --angry.png :@ :-@ --embarrassed.png :$ :-$ --confused.png :S :s :-S :-s --sad.png :( :-( --crying.png :'( --neutral.png :| :-| --devil.png (6) --angel.png (A) (a) --in_love.png (L) (l) --star.png (*) --musical-note.png (8) --rose.png (F) (f) --kiss.png (K) (k) --camera.png (P) (p) --lamp.png (I) (i) --coffee.png (C) (c) --phone.png (T) (t) --hug-left.png ({) --hug-right.png (}) --beer.png (B) (b) --boy.png (Z) (z) --girl.png (X) (x) --sarcastic.png ^o) --sick.png +o( --plate.png (pl) --mobile.png (mp) --dont-know.png :^) --thinking.png *-) --thunder.png (li) --party.png <:o) --eyeroll.png 8-) --sleepy.png |-) -- --# Hidden MSN emotes --cigarette.png (ci) (CI) --console.png (xx) (XX) -- -- --# Following QQ 2006 --[QQ] --shocked.png /:O /jy /surprised --party.png /8-) /dy /revel --crying.png /:< /ll /cry --shut-mouth.png /:X /bz /shut_mouth --sleeping.png /:Z /shui /sleep --embarrassed.png /:-| /gg /embarassed --pissed-off.png /:@ /fn /pissed_off --excited.png /:D /cy /toothy_smile --happy.png /:) /wx /small_smile --sad.png /:( /ng /sad --glasses-cool.png /:+ /kuk /cool --sick.png /:T /tu /vomit --sleepy.png /|-) /kun /sleepy --hot.png /:L /sweat --question.png /? /yiw /question --excruciating.png /:8 /zhem /excrutiating --afraid.png /shake /fad /shake --amorous.png /love /aiq /love --search.png /find /zhao /search --hug-left.png /hug /yb /hug --lamp.png /! /dp /lightbulb --thunder.png /li /shd /lightning --musical-note.png /music /yy /music --coffee.png /coffee /kf /coffee --hungry.png /eat /fan /eat --rose.png /rose /mg /rose --kiss.png /kiss /wen /kiss --in_love.png /heart /xin /heart --meeting.png /meeting /hy /meeting --phone.png /phone /dh /phone --tv.png /TV /ds /TV --angry.png /<O> /oh /angry --girl.png /<00> /nv /woman --boy.png /<11> /nan /man -- -- --# Following ICQ 6.0 --[ICQ] --happy.png :-) :) --neutral.png :-$ --sad.png :-( :( --shocked.png =-O --wink.png ;-) ;) --tongue.png :-P :P :-p :p --music.png [:-} --sleeping.png *TIRED* --crying.png :'( :'-( --sick.png :-! --kiss.png :-{} :-* --embarrassed.png :-[ --devil.png ]:-> --angel.png O:-) --rose.png @}->-- --shut-mouth.png :-X :X :-x :x --thinking.png :-\\ :-/ --beer.png *DRINK* --excited.png :-D :D --glasses-cool.png 8-) --amorous.png *IN\ LOVE* -- -- --# Following Yahoo! Messenger 8.1 --[Yahoo] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --drool.png =P~ =p~ --lying.png :^O :^o --wink.png ;) ;-) --embarrassed.png :"> --mean.png :-> :> --thinking.png :-? --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --hug-left.png >:D< >:d< --hot.png #:-S #:-s --party.png <:-P <:-p --nervous.png :-SS :-Ss :-sS :-ss -- --# Hidden Yahoo emotes --coffee.png ~o) ~O) --rose.png @};- --dont-know.png :-L :-l --lamp.png *-:) --shame.png [-X [-x --musical-note.png :-" --star.png (*) -- --# Following Yahoo! Messenger 8.1 --[Yahoo JAPAN] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --wink.png ;) ;-) --thinking.png :-? --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --hug-left.png >:D< >:d< --party.png <:-P <:-p -- --# Hidden Yahoo emotes --coffee.png ~o) ~O) --rose.png @};- --dont-know.png :-L :-l --lamp.png *-:) --shame.png [-X [-x --musical-note.png :-" --star.png (*) -- -- --# Following MySpaceIM Beta 1.0.697.0 --[MySpaceIM] --excited.png :D :-D --devil.png }:) --confused.png :Z --happy.png :) :-) --amorous.png :X --pirate.png P) --shocked.png :O --neutral.png :| --tongue.png :P :p --pissed-off.png B| --wink.png ;-) ;) --sad.png :[ --kiss.png :x -- --# MXit standard emoticons --[MXit] --happy.png :-) :) --sad.png :-( :( --wink.png ;-) ;) --excited.png :-D :D :-> :> --neutral.png :-| :| --shocked.png :-O :O --tongue.png :-P :P --embarrassed.png :-$ :$ --glasses-cool.png 8-) --in_love.png (H) --rose.png (F) --### Added in v3.0 --boy.png (m) --girl.png (f) --star.png (*) --chilli.png (c) --kiss.png (x) --lamp.png (i) --pissed-off.png :e :-e --shut-mouth.png :-x :x --thunder.png (z) --coffee.png (U) --mrgreen.png (G) --### Added in v5.0 --sick.png :o( --excruciating.png :-{ :{ --amorous.png :-} :} --eyeroll.png 8-o 8o --crying.png :'( --thinking.png :-? :? --drool.png :-~ :~ --sleeping.png :-z :z --lying.png :L) --glasses-nerdy.png 8-| 8| --pirate.png P-) --### Added in v5.9.7 --bored.png :-[ :[ --cold.png :-< :< --confused.png :-, :, --hungry.png :-C :C --stressed.png :-s :s -diff -Nur pidgin-2.10.7/pidgin/pixmaps/emotes/small/16/theme pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/small/16/theme ---- pidgin-2.10.7/pidgin/pixmaps/emotes/small/16/theme 2013-02-11 07:17:58.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/small/16/theme 2013-08-16 23:17:03.828740061 -0300 -@@ -22,8 +22,7 @@ - - - [XMPP] --# Following XEP-0038 + GTalk + our default set, in default set order --# The GTalk strings come from ticket #3307. -+# Following XEP-0038 + our default set, in default set order - happy.png :) :-) =) - excited.png :-D :-d :D :d =D =d - sad.png :-( :( -@@ -38,7 +37,7 @@ - angel.png O:-) o:-) - shut-mouth.png :-X - --# Following XEP-0038 + GTalk -+# Following XEP-0038 - angry.png >:-( >:( X-( x-( - rose.png @->-- :rose: - phone.png :telephone: -@@ -53,269 +52,3 @@ - neutral.png :| :-| - - # Hidden icons from the default set. -- -- --# Following AIM 6.1 --[AIM] --happy.png :-) :) --wink.png ;-) ;) --sad.png :-( :( --tongue.png :P :p :-P :-p --shocked.png =-O --kiss.png :-* --excited.png :-D :D --embarrassed.png :-[ --angel.png O:-) --thinking.png :-\\ :-/ --crying.png :'( --shut-mouth.png :-X --glasses-cool.png 8-) -- -- --# Following Windows Live Messenger 8.1 --[MSN] --happy.png :) :-) --excited.png :D :d :-D :-d --wink.png ;) ;-) --shocked.png :-O :-o :O :o --tongue.png :-P :P :-p :p --glasses-cool.png (H) (h) --angry.png :@ :-@ --embarrassed.png :$ :-$ --confused.png :S :s :-S :-s --sad.png :( :-( --crying.png :'( --neutral.png :| :-| --devil.png (6) --angel.png (A) (a) --in_love.png (L) (l) --star.png (*) --musical-note.png (8) --rose.png (F) (f) --kiss.png (K) (k) --camera.png (P) (p) --lamp.png (I) (i) --coffee.png (C) (c) --phone.png (T) (t) --hug-left.png ({) --hug-right.png (}) --beer.png (B) (b) --boy.png (Z) (z) --girl.png (X) (x) --sarcastic.png ^o) --sick.png +o( --plate.png (pl) --mobile.png (mp) --dont-know.png :^) --thinking.png *-) --thunder.png (li) --party.png <:o) --eyeroll.png 8-) --sleepy.png |-) -- --# Hidden MSN emotes --cigarette.png (ci) (CI) --console.png (xx) (XX) -- -- --# Following QQ 2006 --[QQ] --shocked.png /:O /jy /surprised --party.png /8-) /dy /revel --crying.png /:< /ll /cry --shut-mouth.png /:X /bz /shut_mouth --sleeping.png /:Z /shui /sleep --embarrassed.png /:-| /gg /embarassed --pissed-off.png /:@ /fn /pissed_off --excited.png /:D /cy /toothy_smile --happy.png /:) /wx /small_smile --sad.png /:( /ng /sad --glasses-cool.png /:+ /kuk /cool --sick.png /:T /tu /vomit --sleepy.png /|-) /kun /sleepy --hot.png /:L /sweat --question.png /? /yiw /question --excruciating.png /:8 /zhem /excrutiating --afraid.png /shake /fad /shake --amorous.png /love /aiq /love --search.png /find /zhao /search --hug-left.png /hug /yb /hug --lamp.png /! /dp /lightbulb --thunder.png /li /shd /lightning --musical-note.png /music /yy /music --coffee.png /coffee /kf /coffee --hungry.png /eat /fan /eat --rose.png /rose /mg /rose --kiss.png /kiss /wen /kiss --in_love.png /heart /xin /heart --meeting.png /meeting /hy /meeting --phone.png /phone /dh /phone --tv.png /TV /ds /TV --angry.png /<O> /oh /angry --girl.png /<00> /nv /woman --boy.png /<11> /nan /man -- -- --# Following ICQ 6.0 --[ICQ] --happy.png :-) :) --neutral.png :-$ --sad.png :-( :( --shocked.png =-O --wink.png ;-) ;) --tongue.png :-P :P :-p :p --music.png [:-} --sleeping.png *TIRED* --crying.png :'( :'-( --sick.png :-! --kiss.png :-{} :-* --embarrassed.png :-[ --devil.png ]:-> --angel.png O:-) --rose.png @}->-- --shut-mouth.png :-X :X :-x :x --thinking.png :-\\ :-/ --beer.png *DRINK* --excited.png :-D :D --glasses-cool.png 8-) --amorous.png *IN\ LOVE* -- -- --# Following Yahoo! Messenger 8.1 --[Yahoo] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --drool.png =P~ =p~ --lying.png :^O :^o --wink.png ;) ;-) --embarrassed.png :"> --mean.png :-> :> --thinking.png :-? --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --hug-left.png >:D< >:d< --hot.png #:-S #:-s --party.png <:-P <:-p --nervous.png :-SS :-Ss :-sS :-ss -- --# Hidden Yahoo emotes --coffee.png ~o) ~O) --rose.png @};- --dont-know.png :-L :-l --lamp.png *-:) --shame.png [-X [-x --musical-note.png :-" --star.png (*) -- --# Following Yahoo! Messenger 8.1 --[Yahoo JAPAN] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --wink.png ;) ;-) --thinking.png :-? --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --hug-left.png >:D< >:d< --party.png <:-P <:-p -- --# Hidden Yahoo emotes --coffee.png ~o) ~O) --rose.png @};- --dont-know.png :-L :-l --lamp.png *-:) --shame.png [-X [-x --musical-note.png :-" --star.png (*) -- -- --# Following MySpaceIM Beta 1.0.697.0 --[MySpaceIM] --excited.png :D :-D --devil.png }:) --confused.png :Z --happy.png :) :-) --amorous.png :X --pirate.png P) --shocked.png :O --neutral.png :| --tongue.png :P :p --pissed-off.png B| --wink.png ;-) ;) --sad.png :[ --kiss.png :x -- --# MXit standard emoticons --[MXit] --happy.png :-) :) --sad.png :-( :( --wink.png ;-) ;) --excited.png :-D :D :-> :> --neutral.png :-| :| --shocked.png :-O :O --tongue.png :-P :P --embarrassed.png :-$ :$ --glasses-cool.png 8-) --in_love.png (H) --rose.png (F) --### Added in v3.0 --boy.png (m) --girl.png (f) --star.png (*) --chilli.png (c) --kiss.png (x) --lamp.png (i) --pissed-off.png :e :-e --shut-mouth.png :-x :x --thunder.png (z) --coffee.png (U) --mrgreen.png (G) --### Added in v5.0 --sick.png :o( --excruciating.png :-{ :{ --amorous.png :-} :} --eyeroll.png 8-o 8o --crying.png :'( --thinking.png :-? :? --drool.png :-~ :~ --sleeping.png :-z :z --lying.png :L) --glasses-nerdy.png 8-| 8| --pirate.png P-) --### Added in v5.9.7 --bored.png :-[ :[ --cold.png :-< :< --confused.png :-, :, --hungry.png :-C :C --stressed.png :-s :s -diff -Nur pidgin-2.10.7/pidgin/pixmaps/Makefile.am pidgin-2.10.7-nonprism/pidgin/pixmaps/Makefile.am ---- pidgin-2.10.7/pidgin/pixmaps/Makefile.am 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/pixmaps/Makefile.am 2013-08-17 00:00:17.335924146 -0300 -@@ -204,37 +204,19 @@ - emotes/small/16/scalable/pidgin-emotes.svg - - PROTOCOLS_16_SCALABLE = \ -- protocols/16/scalable/aim.svg \ - protocols/16/scalable/bonjour.svg \ -- protocols/16/scalable/gadu-gadu.svg \ -- protocols/16/scalable/novell.svg \ -- protocols/16/scalable/icq.svg \ - protocols/16/scalable/irc.svg \ - protocols/16/scalable/jabber.svg \ -- protocols/16/scalable/meanwhile.svg \ -- protocols/16/scalable/msn.svg \ - protocols/16/scalable/silc.svg \ - protocols/16/scalable/simple.svg \ -- protocols/16/scalable/yahoo.svg \ - protocols/16/scalable/zephyr.svg - - PROTOCOLS_16 = \ -- protocols/16/aim.png \ - protocols/16/bonjour.png \ -- protocols/16/facebook.png \ -- protocols/16/gadu-gadu.png \ -- protocols/16/google-talk.png \ -- protocols/16/novell.png \ -- protocols/16/icq.png \ - protocols/16/irc.png \ - protocols/16/jabber.png \ -- protocols/16/meanwhile.png \ -- protocols/16/msn.png \ -- protocols/16/mxit.png \ -- protocols/16/myspace.png \ - protocols/16/silc.png \ - protocols/16/simple.png \ -- protocols/16/yahoo.png \ - protocols/16/zephyr.png - - ICONS_16_SCALABLE = \ -@@ -259,72 +241,35 @@ - ICONS_SCALABLE = icons/hicolor/scalable/apps/pidgin.svg - - PROTOCOLS_22_SCALABLE = \ -- protocols/22/scalable/aim.svg \ - protocols/22/scalable/bonjour.svg \ -- protocols/22/scalable/gadu-gadu.svg \ -- protocols/22/scalable/novell.svg \ -- protocols/22/scalable/icq.svg \ - protocols/22/scalable/irc.svg \ - protocols/22/scalable/jabber.svg \ -- protocols/22/scalable/meanwhile.svg \ -- protocols/22/scalable/msn.svg \ - protocols/22/scalable/silc.svg \ - protocols/22/scalable/simple.svg \ -- protocols/22/scalable/yahoo.svg \ - protocols/22/scalable/zephyr.svg - - PROTOCOLS_22 = \ -- protocols/22/aim.png \ - protocols/22/bonjour.png \ -- protocols/22/facebook.png \ -- protocols/22/gadu-gadu.png \ -- protocols/22/google-talk.png \ -- protocols/22/novell.png \ -- protocols/22/icq.png \ - protocols/22/irc.png \ - protocols/22/jabber.png \ -- protocols/22/meanwhile.png \ -- protocols/22/msn.png \ -- protocols/22/mxit.png \ -- protocols/22/myspace.png \ - protocols/22/silc.png \ - protocols/22/simple.png \ -- protocols/22/yahoo.png \ - protocols/22/zephyr.png - - PROTOCOLS_48 = \ -- protocols/48/aim.png \ - protocols/48/bonjour.png \ -- protocols/48/facebook.png \ -- protocols/48/gadu-gadu.png \ -- protocols/48/novell.png \ -- protocols/48/icq.png \ - protocols/48/irc.png \ - protocols/48/jabber.png \ -- protocols/48/meanwhile.png \ -- protocols/48/msn.png \ -- protocols/48/mxit.png \ -- protocols/48/myspace.png \ - protocols/48/silc.png \ - protocols/48/simple.png \ -- protocols/48/yahoo.png \ - protocols/48/zephyr.png - - PROTOCOLS_SCALABLE = \ -- protocols/scalable/aim.svg \ - protocols/scalable/bonjour.svg \ -- protocols/scalable/gadu-gadu.svg \ -- protocols/scalable/google-talk.svg \ -- protocols/scalable/novell.svg \ -- protocols/scalable/icq.svg \ - protocols/scalable/irc.svg \ - protocols/scalable/jabber.svg \ -- protocols/scalable/meanwhile.svg \ -- protocols/scalable/msn.svg \ -- protocols/scalable/mxit.svg \ - protocols/scalable/silc.svg \ - protocols/scalable/simple.svg \ -- protocols/scalable/yahoo.svg \ - protocols/scalable/zephyr.svg - - STATUS_11 = \ -diff -Nur pidgin-2.10.7/pidgin/pixmaps/Makefile.in pidgin-2.10.7-nonprism/pidgin/pixmaps/Makefile.in ---- pidgin-2.10.7/pidgin/pixmaps/Makefile.in 2013-02-11 07:17:23.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/pixmaps/Makefile.in 2013-08-16 23:59:52.918508551 -0300 -@@ -240,40 +240,19 @@ - emblems/scalable/male.svg emblems/scalable/not-authorized.svg \ - emblems/scalable/secure.svg emblems/scalable/unavailable.svg \ - emblems/scalable/video.svg emblems/scalable/voice.svg \ -- protocols/16/aim.png protocols/16/bonjour.png \ -- protocols/16/facebook.png protocols/16/gadu-gadu.png \ -- protocols/16/google-talk.png protocols/16/novell.png \ -- protocols/16/icq.png protocols/16/irc.png \ -- protocols/16/jabber.png protocols/16/meanwhile.png \ -- protocols/16/msn.png protocols/16/mxit.png \ -- protocols/16/myspace.png protocols/16/silc.png \ -- protocols/16/simple.png protocols/16/yahoo.png \ -- protocols/16/zephyr.png protocols/22/aim.png \ -- protocols/22/bonjour.png protocols/22/facebook.png \ -- protocols/22/gadu-gadu.png protocols/22/google-talk.png \ -- protocols/22/novell.png protocols/22/icq.png \ -- protocols/22/irc.png protocols/22/jabber.png \ -- protocols/22/meanwhile.png protocols/22/msn.png \ -- protocols/22/mxit.png protocols/22/myspace.png \ -- protocols/22/silc.png protocols/22/simple.png \ -- protocols/22/yahoo.png protocols/22/zephyr.png \ -- protocols/48/aim.png protocols/48/bonjour.png \ -- protocols/48/facebook.png protocols/48/gadu-gadu.png \ -- protocols/48/novell.png protocols/48/icq.png \ -- protocols/48/irc.png protocols/48/jabber.png \ -- protocols/48/meanwhile.png protocols/48/msn.png \ -- protocols/48/mxit.png protocols/48/myspace.png \ -- protocols/48/silc.png protocols/48/simple.png \ -- protocols/48/yahoo.png protocols/48/zephyr.png \ -- protocols/scalable/aim.svg protocols/scalable/bonjour.svg \ -- protocols/scalable/gadu-gadu.svg \ -- protocols/scalable/google-talk.svg \ -- protocols/scalable/novell.svg protocols/scalable/icq.svg \ -- protocols/scalable/irc.svg protocols/scalable/jabber.svg \ -- protocols/scalable/meanwhile.svg protocols/scalable/msn.svg \ -- protocols/scalable/mxit.svg protocols/scalable/silc.svg \ -- protocols/scalable/simple.svg protocols/scalable/yahoo.svg \ -- protocols/scalable/zephyr.svg status/11/available.png \ -+ protocols/16/bonjour.png protocols/16/irc.png \ -+ protocols/16/jabber.png protocols/16/silc.png \ -+ protocols/16/simple.png protocols/16/zephyr.png \ -+ protocols/22/bonjour.png protocols/22/irc.png \ -+ protocols/22/jabber.png protocols/22/silc.png \ -+ protocols/22/simple.png protocols/22/zephyr.png \ -+ protocols/48/bonjour.png protocols/48/irc.png \ -+ protocols/48/jabber.png protocols/48/silc.png \ -+ protocols/48/simple.png protocols/48/zephyr.png \ -+ protocols/scalable/bonjour.svg protocols/scalable/irc.svg \ -+ protocols/scalable/jabber.svg protocols/scalable/silc.svg \ -+ protocols/scalable/simple.svg protocols/scalable/zephyr.svg \ -+ status/11/available.png \ - status/11/away.png status/11/busy.png status/11/chat.png \ - status/11/extended-away.png status/11/invisible.png \ - status/11/log-in.png status/11/log-out.png \ -@@ -443,8 +422,6 @@ - FARSTREAM_CFLAGS = @FARSTREAM_CFLAGS@ - FARSTREAM_LIBS = @FARSTREAM_LIBS@ - FGREP = @FGREP@ --GADU_CFLAGS = @GADU_CFLAGS@ --GADU_LIBS = @GADU_LIBS@ - GCONFTOOL = @GCONFTOOL@ - GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ - GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -@@ -506,8 +483,6 @@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MANIFEST_TOOL = @MANIFEST_TOOL@ --MEANWHILE_CFLAGS = @MEANWHILE_CFLAGS@ --MEANWHILE_LIBS = @MEANWHILE_LIBS@ - MKDIR_P = @MKDIR_P@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MONO_CFLAGS = @MONO_CFLAGS@ -@@ -850,37 +825,19 @@ - @INSTALL_PIXMAPS_TRUE@ emotes/small/16/scalable/pidgin-emotes.svg - - @INSTALL_PIXMAPS_TRUE@PROTOCOLS_16_SCALABLE = \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/aim.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/bonjour.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/gadu-gadu.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/novell.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/icq.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/irc.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/jabber.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/meanwhile.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/msn.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/silc.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/simple.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/yahoo.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/zephyr.svg - - @INSTALL_PIXMAPS_TRUE@PROTOCOLS_16 = \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/aim.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/bonjour.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/facebook.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/gadu-gadu.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/google-talk.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/novell.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/icq.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/irc.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/jabber.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/meanwhile.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/msn.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/mxit.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/myspace.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/silc.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/simple.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/yahoo.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/zephyr.png - - @INSTALL_PIXMAPS_TRUE@ICONS_16_SCALABLE = \ -@@ -899,72 +856,35 @@ - @INSTALL_PIXMAPS_TRUE@ICONS_48 = icons/hicolor/48x48/apps/pidgin.png - @INSTALL_PIXMAPS_TRUE@ICONS_SCALABLE = icons/hicolor/scalable/apps/pidgin.svg - @INSTALL_PIXMAPS_TRUE@PROTOCOLS_22_SCALABLE = \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/aim.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/bonjour.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/gadu-gadu.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/novell.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/icq.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/irc.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/jabber.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/meanwhile.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/msn.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/silc.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/simple.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/yahoo.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/zephyr.svg - - @INSTALL_PIXMAPS_TRUE@PROTOCOLS_22 = \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/aim.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/bonjour.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/facebook.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/gadu-gadu.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/google-talk.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/novell.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/icq.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/irc.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/jabber.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/meanwhile.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/msn.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/mxit.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/myspace.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/silc.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/simple.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/yahoo.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/zephyr.png - - @INSTALL_PIXMAPS_TRUE@PROTOCOLS_48 = \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/aim.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/48/bonjour.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/facebook.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/gadu-gadu.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/novell.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/icq.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/48/irc.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/48/jabber.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/meanwhile.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/msn.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/mxit.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/myspace.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/48/silc.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/48/simple.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/yahoo.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/48/zephyr.png - - @INSTALL_PIXMAPS_TRUE@PROTOCOLS_SCALABLE = \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/aim.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/scalable/bonjour.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/gadu-gadu.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/google-talk.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/novell.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/icq.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/scalable/irc.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/scalable/jabber.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/meanwhile.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/msn.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/mxit.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/scalable/silc.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/scalable/simple.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/yahoo.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/scalable/zephyr.svg - - @INSTALL_PIXMAPS_TRUE@STATUS_11 = \ -diff -Nur pidgin-2.10.7/pidgin/plugins/disco/xmppdisco.c pidgin-2.10.7-nonprism/pidgin/plugins/disco/xmppdisco.c ---- pidgin-2.10.7/pidgin/plugins/disco/xmppdisco.c 2013-02-11 07:16:54.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/plugins/disco/xmppdisco.c 2013-08-16 23:39:46.921427463 -0300 -@@ -250,9 +250,6 @@ - const char *from; - const char *to; - } disco_type_mappings[] = { -- { "gadu-gadu", "gadu-gadu" }, /* the prpl is prpl-gg, but list_icon returns "gadu-gadu" */ -- { "sametime", "meanwhile" }, -- { "myspaceim", "myspace" }, - { "xmpp", "jabber" }, /* prpl-jabber (mentioned in case the prpl is renamed so this line will match) */ - { NULL, NULL } - }; -diff -Nur pidgin-2.10.7/pidgin/plugins/gevolution/add_buddy_dialog.c pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/add_buddy_dialog.c ---- pidgin-2.10.7/pidgin/plugins/gevolution/add_buddy_dialog.c 2013-02-11 07:16:54.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/add_buddy_dialog.c 2013-08-16 21:26:56.293625899 -0300 -@@ -288,21 +288,13 @@ - { - EContact *contact = E_CONTACT(c->data); - const char *name; -- GList *aims, *jabbers, *yahoos, *msns, *icqs, *novells, *ggs; -+ GList *jabbers; - - name = e_contact_get_const(contact, E_CONTACT_FULL_NAME); - -- aims = e_contact_get(contact, E_CONTACT_IM_AIM); - jabbers = e_contact_get(contact, E_CONTACT_IM_JABBER); -- yahoos = e_contact_get(contact, E_CONTACT_IM_YAHOO); -- msns = e_contact_get(contact, E_CONTACT_IM_MSN); -- icqs = e_contact_get(contact, E_CONTACT_IM_ICQ); -- novells = e_contact_get(contact, E_CONTACT_IM_GROUPWISE); -- ggs = e_contact_get(contact, E_CONTACT_IM_GADUGADU); -- -- if (aims == NULL && jabbers == NULL && yahoos == NULL && -- msns == NULL && icqs == NULL && novells == NULL && -- ggs == NULL) -+ -+ if (jabbers == NULL) - { - GtkTreeIter iter; - -@@ -315,13 +307,7 @@ - } - else - { -- add_ims(dialog, contact, name, aims, "prpl-aim"); - add_ims(dialog, contact, name, jabbers, "prpl-jabber"); -- add_ims(dialog, contact, name, yahoos, "prpl-yahoo"); -- add_ims(dialog, contact, name, msns, "prpl-msn"); -- add_ims(dialog, contact, name, icqs, "prpl-icq"); -- add_ims(dialog, contact, name, novells, "prpl-novell"); -- add_ims(dialog, contact, name, ggs, "prpl-gg"); - } - } - -@@ -367,7 +353,7 @@ - { - EContact *contact = E_CONTACT(l->data); - const char *name; -- GList *aims, *jabbers, *yahoos, *msns, *icqs, *novells, *ggs; -+ GList *jabbers; - - name = e_contact_get_const(contact, E_CONTACT_FULL_NAME); - -@@ -377,17 +363,9 @@ - continue; - } - -- aims = e_contact_get(contact, E_CONTACT_IM_AIM); - jabbers = e_contact_get(contact, E_CONTACT_IM_JABBER); -- yahoos = e_contact_get(contact, E_CONTACT_IM_YAHOO); -- msns = e_contact_get(contact, E_CONTACT_IM_MSN); -- icqs = e_contact_get(contact, E_CONTACT_IM_ICQ); -- novells = e_contact_get(contact, E_CONTACT_IM_GROUPWISE); -- ggs = e_contact_get(contact, E_CONTACT_IM_GADUGADU); -- -- if (aims == NULL && jabbers == NULL && yahoos == NULL && -- msns == NULL && icqs == NULL && novells == NULL && -- ggs == NULL) -+ -+ if (jabbers == NULL) - { - GtkTreeIter iter; - -@@ -400,13 +378,7 @@ - } - else - { -- add_ims(dialog, contact, name, aims, "prpl-aim"); - add_ims(dialog, contact, name, jabbers, "prpl-jabber"); -- add_ims(dialog, contact, name, yahoos, "prpl-yahoo"); -- add_ims(dialog, contact, name, msns, "prpl-msn"); -- add_ims(dialog, contact, name, icqs, "prpl-icq"); -- add_ims(dialog, contact, name, novells, "prpl-novell"); -- add_ims(dialog, contact, name, ggs, "prpl-gg"); - } - } - } -diff -Nur pidgin-2.10.7/pidgin/plugins/gevolution/gevolution.c pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/gevolution.c ---- pidgin-2.10.7/pidgin/plugins/gevolution/gevolution.c 2013-02-11 07:16:54.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/gevolution.c 2013-08-16 21:14:05.483056049 -0300 -@@ -119,13 +119,7 @@ - - name = e_contact_get_const(contact, E_CONTACT_FULL_NAME); - -- update_ims_from_contact(contact, name, "prpl-aim", E_CONTACT_IM_AIM); - update_ims_from_contact(contact, name, "prpl-jabber", E_CONTACT_IM_JABBER); -- update_ims_from_contact(contact, name, "prpl-yahoo", E_CONTACT_IM_YAHOO); -- update_ims_from_contact(contact, name, "prpl-msn", E_CONTACT_IM_MSN); -- update_ims_from_contact(contact, name, "prpl-icq", E_CONTACT_IM_ICQ); -- update_ims_from_contact(contact, name, "prpl-novell", E_CONTACT_IM_GROUPWISE); -- update_ims_from_contact(contact, name, "prpl-gg", E_CONTACT_IM_GADUGADU); - } - - static void -diff -Nur pidgin-2.10.7/pidgin/plugins/gevolution/gevo-util.c pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/gevo-util.c ---- pidgin-2.10.7/pidgin/plugins/gevolution/gevo-util.c 2013-02-11 07:16:54.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/gevo-util.c 2013-08-16 23:20:45.692374640 -0300 -@@ -99,20 +99,8 @@ - - protocol_id = purple_account_get_protocol_id(account); - -- if (!strcmp(protocol_id, "prpl-aim")) -- protocol_field = E_CONTACT_IM_AIM; -- else if (!strcmp(protocol_id, "prpl-icq")) -- protocol_field = E_CONTACT_IM_ICQ; -- else if (!strcmp(protocol_id, "prpl-msn")) -- protocol_field = E_CONTACT_IM_MSN; -- else if (!strcmp(protocol_id, "prpl-yahoo")) -- protocol_field = E_CONTACT_IM_YAHOO; -- else if (!strcmp(protocol_id, "prpl-jabber")) -+ if (!strcmp(protocol_id, "prpl-jabber")) - protocol_field = E_CONTACT_IM_JABBER; -- else if (!strcmp(protocol_id, "prpl-novell")) -- protocol_field = E_CONTACT_IM_GROUPWISE; -- else if (!strcmp(protocol_id, "prpl-gg")) -- protocol_field = E_CONTACT_IM_GADUGADU; - - return protocol_field; - } -@@ -169,18 +157,6 @@ - { - PurpleAccount *account = purple_buddy_get_account(buddy); - const char *prpl_id = purple_account_get_protocol_id(account); -- -- if (!strcmp(prpl_id, "prpl-msn")) -- { -- mail = g_strdup(purple_normalize(account, -- purple_buddy_get_name(buddy))); -- } -- else if (!strcmp(prpl_id, "prpl-yahoo")) -- { -- mail = g_strdup_printf("%s@yahoo.com", -- purple_normalize(account, -- purple_buddy_get_name(buddy))); -- } - } - - return mail; -diff -Nur pidgin-2.10.7/pidgin/plugins/gevolution/new_person_dialog.c pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/new_person_dialog.c ---- pidgin-2.10.7/pidgin/plugins/gevolution/new_person_dialog.c 2013-02-11 07:16:54.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/new_person_dialog.c 2013-08-16 21:23:26.207116339 -0300 -@@ -141,20 +141,8 @@ - if (*email) - e_contact_set(contact, E_CONTACT_EMAIL_1, (gpointer)email); - -- if (!strcmp(im_service, "prpl-aim")) -- field = E_CONTACT_IM_AIM; -- else if (!strcmp(im_service, "prpl-icq")) -- field = E_CONTACT_IM_ICQ; -- else if (!strcmp(im_service, "prpl-yahoo")) -- field = E_CONTACT_IM_YAHOO; -- else if (!strcmp(im_service, "prpl-jabber")) -+ if (!strcmp(im_service, "prpl-jabber")) - field = E_CONTACT_IM_JABBER; -- else if (!strcmp(im_service, "prpl-msn")) -- field = E_CONTACT_IM_MSN; -- else if (!strcmp(im_service, "prpl-novell")) -- field = E_CONTACT_IM_GROUPWISE; -- else if (!strcmp(im_service, "prpl-gg")) -- field = E_CONTACT_IM_GADUGADU; - - if (field > 0) - { -diff -Nur pidgin-2.10.7/pidgin.apspec.in pidgin-2.10.7-nonprism/pidgin.apspec.in ---- pidgin-2.10.7/pidgin.apspec.in 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin.apspec.in 2013-08-16 20:53:14.523862926 -0300 -@@ -14,17 +14,13 @@ - - [Description] - Pidgin allows you to talk to anyone using a variety of messaging protocols, --including AIM (Oscar and TOC), ICQ, IRC, Yahoo!, MSN Messenger, XMPP, --Gadu-Gadu, and Zephyr. These protocols are implemented using a -+including IRC, XMPP and Zephyr. These protocols are implemented using a - modular, easy to use design. To use a protocol, just add an account using the - account editor. - - Pidgin supports many common features of other clients, as well as many unique - features, such as perl scripting, TCL scripting and C plugins. - --Pidgin is NOT affiliated with or endorsed by America Online, Inc., Microsoft --Corporation, Yahoo! Inc., or ICQ Inc. -- - [BuildPrepare] - APBUILD_STATIC="Xss startup-notification-1" prepareBuild --enable-nss --enable-gnutls --enable-binreloc --disable-perl --disable-tcl --disable-gtktest --disable-glibtest --disable-vv --disable-fortify - #APBUILD_STATIC="Xss startup-notification-1" prepareBuild --enable-nss --enable-gnutls --enable-binreloc --disable-perl --disable-tcl --disable-vv -diff -Nur pidgin-2.10.7/pidgin.desktop.in pidgin-2.10.7-nonprism/pidgin.desktop.in ---- pidgin-2.10.7/pidgin.desktop.in 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin.desktop.in 2013-08-16 23:07:34.874212867 -0300 -@@ -1,7 +1,7 @@ - [Desktop Entry] - _Name=Pidgin Internet Messenger - _GenericName=Internet Messenger --_Comment=Chat over IM. Supports AIM, Google Talk, Jabber/XMPP, MSN, Yahoo and more -+_Comment=Chat over IM. Supports IRC, Jabber/XMPP and more - Exec=pidgin - Icon=pidgin - StartupNotify=true -diff -Nur pidgin-2.10.7/pidgin.spec pidgin-2.10.7-nonprism/pidgin.spec ---- pidgin-2.10.7/pidgin.spec 2013-02-11 07:17:59.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin.spec 2013-08-17 00:03:18.474815955 -0300 -@@ -34,7 +34,6 @@ - %{!?_without_startupnotification:BuildRequires: startup-notification-devel} - %{?_with_avahi:BuildRequires: avahi-glib-devel} - %{!?_without_gtkspell:BuildRequires: gtkspell-devel} --%{?_with_meanwhile:BuildRequires: meanwhile-devel} - %{?_with_mono:BuildRequires: mono-devel} - %{?_with_sasl:BuildRequires: cyrus-sasl-devel >= 2} - %{!?_without_silc:BuildRequires: /usr/include/silc/silcclient.h} -@@ -105,7 +104,6 @@ - Group: Applications/Internet - Obsoletes: gaim-silc - Obsoletes: gaim-tcl --Obsoletes: gaim-gadugadu - Obsoletes: pidgin-tcl < 2.0.0 - Obsoletes: pidgin-silc < 2.0.0 - Obsoletes: libpurple-perl < %{version} -@@ -131,13 +129,6 @@ - Requires: libpurple >= %{apiver} - %endif - --%if 0%{?_with_meanwhile:1} --%package -n libpurple-meanwhile --Summary: Lotus Sametime plugin for Pidgin using the Meanwhile library --Group: Applications/Internet --Requires: libpurple >= %{apiver} --%endif -- - %if 0%{?_with_mono:1} - %package -n libpurple-mono - Summary: Mono .NET plugin support for Pidgin -@@ -161,18 +152,14 @@ - - %description - Pidgin allows you to talk to anyone using a variety of messaging --protocols including AIM, MSN, Yahoo!, XMPP, Bonjour, Gadu-Gadu, --ICQ, IRC, Novell Groupwise, QQ, Lotus Sametime, SILC, Simple and --Zephyr. These protocols are implemented using a modular, easy to -+protocols including XMPP, Bonjour, IRC, SILC, Simple and Zephyr. -+These protocols are implemented using a modular, easy to - use design. To use a protocol, just add an account using the - account editor. - - Pidgin supports many common features of other clients, as well as many - unique features, such as perl scripting, TCL scripting and C plugins. - --Pidgin is not affiliated with or endorsed by America Online, Inc., --Microsoft Corporation, Yahoo! Inc., or ICQ Inc. -- - %description devel - The pidgin-devel package contains the header files, developer - documentation, and libraries required for development of Pidgin scripts -@@ -182,9 +169,8 @@ - libpurple contains the core IM support for IM clients such as Pidgin - and Finch. - --libpurple supports a variety of messaging protocols including AIM, MSN, --Yahoo!, XMPP, Bonjour, Gadu-Gadu, ICQ, IRC, Novell Groupwise, QQ, --Lotus Sametime, SILC, Simple and Zephyr. -+libpurple supports a variety of messaging protocols including XMPP, -+Bonjour, IRC, SILC, Simple and Zephyr. - - %description -n libpurple-devel - The libpurple-devel package contains the header files, developer -@@ -196,11 +182,6 @@ - Bonjour plugin for Pidgin. - %endif - --%if 0%{?_with_meanwhile:1} --%description -n libpurple-meanwhile --Lotus Sametime plugin for Pidgin using the Meanwhile library. --%endif -- - %if 0%{?_with_mono:1} - %description -n libpurple-mono - Mono plugin loader for Pidgin. This package will allow you to write or -@@ -236,7 +217,6 @@ - %{!?_with_vv:--disable-vv} \ - %{!?_with_dbus:--disable-dbus} \ - %{!?_with_avahi:--disable-avahi} \ -- %{!?_with_meanwhile:--disable-meanwhile} \ - %{?_without_gstreamer:--disable-gstreamer} \ - %{?_without_gtkspell:--disable-gtkspell} \ - %{?_without_nm:--disable-nm} \ -@@ -258,9 +238,7 @@ - rm -f $RPM_BUILD_ROOT%{_libdir}/gnt/*.la - rm -f $RPM_BUILD_ROOT%{_libdir}/pidgin/*.la - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/*.la --rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/liboscar.so - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libjabber.so --rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libymsg.so - rm -f $RPM_BUILD_ROOT%{_libdir}/*.la - rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod - find $RPM_BUILD_ROOT -type f -name '*.a' -exec rm -f {} ';' -@@ -271,10 +249,6 @@ - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libbonjour.so - %endif - --%if 0%{!?_with_meanwhile:1} --rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libsametime.so --%endif -- - %if 0%{!?_with_mono:1} - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/mono.so - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/*.dll -@@ -299,7 +273,6 @@ - find $RPM_BUILD_ROOT%{_libdir}/purple-2 -xtype f -print | \ - sed "s@^$RPM_BUILD_ROOT@@g" | \ - grep -v /libbonjour.so | \ -- grep -v /libsametime.so | \ - grep -v /mono.so | \ - grep -v ".dll$" > %{name}-%{version}-purpleplugins - -@@ -435,13 +408,6 @@ - %{_libdir}/purple-2/libbonjour.* - %endif - --%if 0%{?_with_meanwhile:1} --%files -n libpurple-meanwhile --%defattr(-, root, root) -- --%{_libdir}/purple-2/libsametime.* --%endif -- - %if 0%{?_with_mono:1} - %files -n libpurple-mono - %defattr(-, root, root) -@@ -492,9 +458,6 @@ - * Sat Jul 11 2009 Stu Tomlinson <stu@nosnilmot.com> - - Update to reflect changes in perl module installation directories - --* Mon May 19 2008 Stu Tomlinson <stu@nosnilmot.com> --- Fix building without meanwhile support -- - * Fri May 16 2008 Stu Tomlinson <stu@nosnilmot.com> - - Add "--without nm" support to build without NetworkManager - -@@ -586,8 +549,6 @@ - - Update to reflect renaming to pidgin/libpurple - - * Sun Oct 1 2006 Stu Tomlinson <stu@nosnilmot.com> --- We can build with internal gadu gadu again, so bring it back into the -- main package - - Deal with gconf schame uninstallation on package upgrade and removal - - * Sun Aug 20 2006 Stu Tomlinson <stu@nosnilmot.com> -@@ -606,19 +567,14 @@ - - Source RPM uses tar.bz2 now to save space - - Update BuildRequires for new intltool dependencies - - Add a --with perlmakehack option to allow builds to succeed on RH9 --- Add a --with gadugadu to build (separate) gaim-gadugadu package - - * Sat Dec 17 2005 Stu Tomlinson <stu@nosnilmot.com> - - Add support for beta versions so the subsequent releases are seen as newer - by RPM --- Split of sametime support to gaim-meanwhile - - Use make DESTDIR=... instead of overloading prefix etc. when installing - - Default build to include cyrus-sasl support in Jabber - - Add --with dbus to build with DBUS support - --* Sun Dec 04 2005 Christopher O'Brien <siege@preoccupied.net> --- Added obsoletes gaim-meanwhile -- - * Sun Oct 30 2005 Stu Tomlinson <stu@nosnilmot.com> - - Add separate gaim-bonjour package if built with --with-howl - - Add separate gaim-mono package if built with --with-mono -diff -Nur pidgin-2.10.7/pidgin.spec.in pidgin-2.10.7-nonprism/pidgin.spec.in ---- pidgin-2.10.7/pidgin.spec.in 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin.spec.in 2013-08-17 00:07:12.251996234 -0300 -@@ -34,7 +34,6 @@ - %{!?_without_startupnotification:BuildRequires: startup-notification-devel} - %{?_with_avahi:BuildRequires: avahi-glib-devel} - %{!?_without_gtkspell:BuildRequires: gtkspell-devel} --%{?_with_meanwhile:BuildRequires: meanwhile-devel} - %{?_with_mono:BuildRequires: mono-devel} - %{?_with_sasl:BuildRequires: cyrus-sasl-devel >= 2} - %{!?_without_silc:BuildRequires: /usr/include/silc/silcclient.h} -@@ -105,7 +104,6 @@ - Group: Applications/Internet - Obsoletes: gaim-silc - Obsoletes: gaim-tcl --Obsoletes: gaim-gadugadu - Obsoletes: pidgin-tcl < 2.0.0 - Obsoletes: pidgin-silc < 2.0.0 - Obsoletes: libpurple-perl < %{version} -@@ -131,13 +129,6 @@ - Requires: libpurple >= %{apiver} - %endif - --%if 0%{?_with_meanwhile:1} --%package -n libpurple-meanwhile --Summary: Lotus Sametime plugin for Pidgin using the Meanwhile library --Group: Applications/Internet --Requires: libpurple >= %{apiver} --%endif -- - %if 0%{?_with_mono:1} - %package -n libpurple-mono - Summary: Mono .NET plugin support for Pidgin -@@ -161,18 +152,14 @@ - - %description - Pidgin allows you to talk to anyone using a variety of messaging --protocols including AIM, MSN, Yahoo!, XMPP, Bonjour, Gadu-Gadu, --ICQ, IRC, Novell Groupwise, QQ, Lotus Sametime, SILC, Simple and --Zephyr. These protocols are implemented using a modular, easy to -+protocols including XMPP, Bonjour, IRC, SILC, Simple and Zephyr. -+These protocols are implemented using a modular, easy to - use design. To use a protocol, just add an account using the - account editor. - - Pidgin supports many common features of other clients, as well as many - unique features, such as perl scripting, TCL scripting and C plugins. - --Pidgin is not affiliated with or endorsed by America Online, Inc., --Microsoft Corporation, Yahoo! Inc., or ICQ Inc. -- - %description devel - The pidgin-devel package contains the header files, developer - documentation, and libraries required for development of Pidgin scripts -@@ -182,9 +169,8 @@ - libpurple contains the core IM support for IM clients such as Pidgin - and Finch. - --libpurple supports a variety of messaging protocols including AIM, MSN, --Yahoo!, XMPP, Bonjour, Gadu-Gadu, ICQ, IRC, Novell Groupwise, QQ, --Lotus Sametime, SILC, Simple and Zephyr. -+libpurple supports a variety of messaging protocols including XMPP, -+Bonjour, IRC, SILC, Simple and Zephyr. - - %description -n libpurple-devel - The libpurple-devel package contains the header files, developer -@@ -196,11 +182,6 @@ - Bonjour plugin for Pidgin. - %endif - --%if 0%{?_with_meanwhile:1} --%description -n libpurple-meanwhile --Lotus Sametime plugin for Pidgin using the Meanwhile library. --%endif -- - %if 0%{?_with_mono:1} - %description -n libpurple-mono - Mono plugin loader for Pidgin. This package will allow you to write or -@@ -236,7 +217,6 @@ - %{!?_with_vv:--disable-vv} \ - %{!?_with_dbus:--disable-dbus} \ - %{!?_with_avahi:--disable-avahi} \ -- %{!?_with_meanwhile:--disable-meanwhile} \ - %{?_without_gstreamer:--disable-gstreamer} \ - %{?_without_gtkspell:--disable-gtkspell} \ - %{?_without_nm:--disable-nm} \ -@@ -258,9 +238,7 @@ - rm -f $RPM_BUILD_ROOT%{_libdir}/gnt/*.la - rm -f $RPM_BUILD_ROOT%{_libdir}/pidgin/*.la - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/*.la --rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/liboscar.so - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libjabber.so --rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libymsg.so - rm -f $RPM_BUILD_ROOT%{_libdir}/*.la - rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod - find $RPM_BUILD_ROOT -type f -name '*.a' -exec rm -f {} ';' -@@ -271,10 +249,6 @@ - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libbonjour.so - %endif - --%if 0%{!?_with_meanwhile:1} --rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libsametime.so --%endif -- - %if 0%{!?_with_mono:1} - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/mono.so - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/*.dll -@@ -299,7 +273,6 @@ - find $RPM_BUILD_ROOT%{_libdir}/purple-2 -xtype f -print | \ - sed "s@^$RPM_BUILD_ROOT@@g" | \ - grep -v /libbonjour.so | \ -- grep -v /libsametime.so | \ - grep -v /mono.so | \ - grep -v ".dll$" > %{name}-%{version}-purpleplugins - -@@ -435,13 +408,6 @@ - %{_libdir}/purple-2/libbonjour.* - %endif - --%if 0%{?_with_meanwhile:1} --%files -n libpurple-meanwhile --%defattr(-, root, root) -- --%{_libdir}/purple-2/libsametime.* --%endif -- - %if 0%{?_with_mono:1} - %files -n libpurple-mono - %defattr(-, root, root) -@@ -492,9 +458,6 @@ - * Sat Jul 11 2009 Stu Tomlinson <stu@nosnilmot.com> - - Update to reflect changes in perl module installation directories - --* Mon May 19 2008 Stu Tomlinson <stu@nosnilmot.com> --- Fix building without meanwhile support -- - * Fri May 16 2008 Stu Tomlinson <stu@nosnilmot.com> - - Add "--without nm" support to build without NetworkManager - -@@ -586,8 +549,6 @@ - - Update to reflect renaming to pidgin/libpurple - - * Sun Oct 1 2006 Stu Tomlinson <stu@nosnilmot.com> --- We can build with internal gadu gadu again, so bring it back into the -- main package - - Deal with gconf schame uninstallation on package upgrade and removal - - * Sun Aug 20 2006 Stu Tomlinson <stu@nosnilmot.com> -@@ -606,19 +567,14 @@ - - Source RPM uses tar.bz2 now to save space - - Update BuildRequires for new intltool dependencies - - Add a --with perlmakehack option to allow builds to succeed on RH9 --- Add a --with gadugadu to build (separate) gaim-gadugadu package - - * Sat Dec 17 2005 Stu Tomlinson <stu@nosnilmot.com> - - Add support for beta versions so the subsequent releases are seen as newer - by RPM --- Split of sametime support to gaim-meanwhile - - Use make DESTDIR=... instead of overloading prefix etc. when installing - - Default build to include cyrus-sasl support in Jabber - - Add --with dbus to build with DBUS support - --* Sun Dec 04 2005 Christopher O'Brien <siege@preoccupied.net> --- Added obsoletes gaim-meanwhile -- - * Sun Oct 30 2005 Stu Tomlinson <stu@nosnilmot.com> - - Add separate gaim-bonjour package if built with --with-howl - - Add separate gaim-mono package if built with --with-mono diff --git a/nonprism/pidgin-nonprism/nonprism.patch b/nonprism/pidgin-nonprism/nonprism.patch index 485bef3c8..88140268e 100644 --- a/nonprism/pidgin-nonprism/nonprism.patch +++ b/nonprism/pidgin-nonprism/nonprism.patch @@ -1,2256 +1,6 @@ -diff -Nur pidgin-2.10.7/config.h.in pidgin-2.10.7-nonprism/config.h.in ---- pidgin-2.10.7/config.h.in 2013-02-11 07:17:16.000000000 -0200 -+++ pidgin-2.10.7-nonprism/config.h.in 2013-08-16 22:16:16.833531712 -0300 -@@ -151,9 +151,6 @@ - /* Define to 1 if you have the `db' library (-ldb). */ - #undef HAVE_LIBDB - --/* Define to 1 if you have libgadu. */ --#undef HAVE_LIBGADU -- - /* Define to 1 if you have the `nsl' library (-lnsl). */ - #undef HAVE_LIBNSL - -diff -Nur pidgin-2.10.7/configure pidgin-2.10.7-nonprism/configure ---- pidgin-2.10.7/configure 2013-02-11 07:17:26.000000000 -0200 -+++ pidgin-2.10.7-nonprism/configure 2013-08-27 16:47:16.890662082 -0300 -@@ -716,45 +716,23 @@ - STATIC_LINK_LIBS - STATIC_ZEPHYR_FALSE - STATIC_ZEPHYR_TRUE --STATIC_YAHOO_FALSE --STATIC_YAHOO_TRUE - STATIC_SIMPLE_FALSE - STATIC_SIMPLE_TRUE - STATIC_SILC_FALSE - STATIC_SILC_TRUE --STATIC_SAMETIME_FALSE --STATIC_SAMETIME_TRUE --STATIC_OSCAR_FALSE --STATIC_OSCAR_TRUE --STATIC_NOVELL_FALSE --STATIC_NOVELL_TRUE --STATIC_MXIT_FALSE --STATIC_MXIT_TRUE --STATIC_MYSPACE_FALSE --STATIC_MYSPACE_TRUE --STATIC_MSN_FALSE --STATIC_MSN_TRUE - STATIC_JABBER_FALSE - STATIC_JABBER_TRUE - STATIC_IRC_FALSE - STATIC_IRC_TRUE --STATIC_GG_FALSE --STATIC_GG_TRUE - STATIC_BONJOUR_FALSE - STATIC_BONJOUR_TRUE - STATIC_PRPLS - DISTRIB_FALSE - DISTRIB_TRUE --USE_INTERNAL_LIBGADU_FALSE --USE_INTERNAL_LIBGADU_TRUE --GADU_LIBS --GADU_CFLAGS - SILC_LIBS - SILC_CFLAGS - AVAHI_LIBS - AVAHI_CFLAGS --MEANWHILE_LIBS --MEANWHILE_CFLAGS - IDN_LIBS - IDN_CFLAGS - USE_VV_FALSE -@@ -1021,14 +999,11 @@ - enable_farstream - enable_vv - enable_idn --enable_meanwhile - enable_avahi - with_avahi_client_includes - with_avahi_client_libs - with_silc_includes - with_silc_libs --with_gadu_includes --with_gadu_libs - enable_distrib - with_static_prpls - with_dynamic_prpls -@@ -1100,14 +1075,10 @@ - FARSTREAM_LIBS - IDN_CFLAGS - IDN_LIBS --MEANWHILE_CFLAGS --MEANWHILE_LIBS - AVAHI_CFLAGS - AVAHI_LIBS - SILC_CFLAGS - SILC_LIBS --GADU_CFLAGS --GADU_LIBS - DBUS_CFLAGS - DBUS_LIBS - NETWORKMANAGER_CFLAGS -@@ -1773,8 +1744,6 @@ - --disable-farstream compile without farstream support - --disable-vv compile without voice and video support - --disable-idn compile without IDN support -- --disable-meanwhile compile without meanwhile (required for Sametime -- support) - --disable-avahi compile without avahi (required for Bonjour support) - - --disable-plugins compile without plugin support -@@ -1826,9 +1795,6 @@ - --with-silc-includes=DIR - compile the SILC plugin against includes in DIR - --with-silc-libs=DIR compile the SILC plugin against the SILC libs in DIR -- --with-gadu-includes=DIR -- compile the Gadu-Gadu plugin against includes in DIR -- --with-gadu-libs=DIR compile the Gadu-Gadu plugin against the libs in DIR - --with-static-prpls Link to certain protocols statically - --with-dynamic-prpls specify which protocols to build dynamically - --with-krb4=PREFIX compile Zephyr plugin with Kerberos 4 support -@@ -1905,17 +1871,11 @@ - linker flags for FARSTREAM, overriding pkg-config - IDN_CFLAGS C compiler flags for IDN, overriding pkg-config - IDN_LIBS linker flags for IDN, overriding pkg-config -- MEANWHILE_CFLAGS -- C compiler flags for MEANWHILE, overriding pkg-config -- MEANWHILE_LIBS -- linker flags for MEANWHILE, overriding pkg-config - AVAHI_CFLAGS - C compiler flags for AVAHI, overriding pkg-config - AVAHI_LIBS linker flags for AVAHI, overriding pkg-config - SILC_CFLAGS C compiler flags for SILC, overriding pkg-config - SILC_LIBS linker flags for SILC, overriding pkg-config -- GADU_CFLAGS C compiler flags for GADU, overriding pkg-config -- GADU_LIBS linker flags for GADU, overriding pkg-config - DBUS_CFLAGS C compiler flags for DBUS, overriding pkg-config - DBUS_LIBS linker flags for DBUS, overriding pkg-config - NETWORKMANAGER_CFLAGS -@@ -18487,105 +18447,6 @@ - fi - fi - --# Check whether --enable-meanwhile was given. --if test "${enable_meanwhile+set}" = set; then : -- enableval=$enable_meanwhile; enable_meanwhile="$enableval" --else -- enable_meanwhile="yes" --fi -- --if test "x$enable_meanwhile" = "xyes"; then -- --pkg_failed=no --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MEANWHILE" >&5 --$as_echo_n "checking for MEANWHILE... " >&6; } -- --if test -n "$MEANWHILE_CFLAGS"; then -- pkg_cv_MEANWHILE_CFLAGS="$MEANWHILE_CFLAGS" -- elif test -n "$PKG_CONFIG"; then -- if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"meanwhile >= 1.0.0 meanwhile < 2.0.0\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "meanwhile >= 1.0.0 meanwhile < 2.0.0") 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -- pkg_cv_MEANWHILE_CFLAGS=`$PKG_CONFIG --cflags "meanwhile >= 1.0.0 meanwhile < 2.0.0" 2>/dev/null` -- test "x$?" != "x0" && pkg_failed=yes --else -- pkg_failed=yes --fi -- else -- pkg_failed=untried --fi --if test -n "$MEANWHILE_LIBS"; then -- pkg_cv_MEANWHILE_LIBS="$MEANWHILE_LIBS" -- elif test -n "$PKG_CONFIG"; then -- if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"meanwhile >= 1.0.0 meanwhile < 2.0.0\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "meanwhile >= 1.0.0 meanwhile < 2.0.0") 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -- pkg_cv_MEANWHILE_LIBS=`$PKG_CONFIG --libs "meanwhile >= 1.0.0 meanwhile < 2.0.0" 2>/dev/null` -- test "x$?" != "x0" && pkg_failed=yes --else -- pkg_failed=yes --fi -- else -- pkg_failed=untried --fi -- -- -- --if test $pkg_failed = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- --if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -- _pkg_short_errors_supported=yes --else -- _pkg_short_errors_supported=no --fi -- if test $_pkg_short_errors_supported = yes; then -- MEANWHILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "meanwhile >= 1.0.0 meanwhile < 2.0.0" 2>&1` -- else -- MEANWHILE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "meanwhile >= 1.0.0 meanwhile < 2.0.0" 2>&1` -- fi -- # Put the nasty error message in config.log where it belongs -- echo "$MEANWHILE_PKG_ERRORS" >&5 -- -- -- have_meanwhile="no" -- if test "x$force_deps" = "xyes" ; then -- as_fn_error $? " --Meanwhile development headers not found. --Use --disable-meanwhile if you do not need meanwhile (Sametime) support. --" "$LINENO" 5 -- fi --elif test $pkg_failed = untried; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- -- have_meanwhile="no" -- if test "x$force_deps" = "xyes" ; then -- as_fn_error $? " --Meanwhile development headers not found. --Use --disable-meanwhile if you do not need meanwhile (Sametime) support. --" "$LINENO" 5 -- fi --else -- MEANWHILE_CFLAGS=$pkg_cv_MEANWHILE_CFLAGS -- MEANWHILE_LIBS=$pkg_cv_MEANWHILE_LIBS -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 --$as_echo "yes" >&6; } -- -- have_meanwhile="yes" -- --fi --fi -- -- -- - # Check whether --enable-avahi was given. - if test "${enable_avahi+set}" = set; then : - enableval=$enable_avahi; enable_avahi="$enableval" -@@ -19207,267 +19068,6 @@ - fi - - --# Check whether --with-gadu-includes was given. --if test "${with_gadu_includes+set}" = set; then : -- withval=$with_gadu_includes; ac_gadu_includes="$withval" --else -- ac_gadu_includes="no" --fi -- -- --# Check whether --with-gadu-libs was given. --if test "${with_gadu_libs+set}" = set; then : -- withval=$with_gadu_libs; ac_gadu_libs="$withval" --else -- ac_gadu_libs="no" --fi -- --GADU_CFLAGS="" --GADU_LIBS="" --if test -n "$with_gadu_includes" || test -n "$with_gadu_libs"; then -- gadu_manual_check="yes" --else -- gadu_manual_check="no" --fi --if test "x$gadu_manual_check" = "xno"; then -- --pkg_failed=no --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GADU" >&5 --$as_echo_n "checking for GADU... " >&6; } -- --if test -n "$GADU_CFLAGS"; then -- pkg_cv_GADU_CFLAGS="$GADU_CFLAGS" -- elif test -n "$PKG_CONFIG"; then -- if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgadu >= 1.11.0\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "libgadu >= 1.11.0") 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -- pkg_cv_GADU_CFLAGS=`$PKG_CONFIG --cflags "libgadu >= 1.11.0" 2>/dev/null` -- test "x$?" != "x0" && pkg_failed=yes --else -- pkg_failed=yes --fi -- else -- pkg_failed=untried --fi --if test -n "$GADU_LIBS"; then -- pkg_cv_GADU_LIBS="$GADU_LIBS" -- elif test -n "$PKG_CONFIG"; then -- if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgadu >= 1.11.0\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "libgadu >= 1.11.0") 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -- pkg_cv_GADU_LIBS=`$PKG_CONFIG --libs "libgadu >= 1.11.0" 2>/dev/null` -- test "x$?" != "x0" && pkg_failed=yes --else -- pkg_failed=yes --fi -- else -- pkg_failed=untried --fi -- -- -- --if test $pkg_failed = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- --if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -- _pkg_short_errors_supported=yes --else -- _pkg_short_errors_supported=no --fi -- if test $_pkg_short_errors_supported = yes; then -- GADU_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libgadu >= 1.11.0" 2>&1` -- else -- GADU_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libgadu >= 1.11.0" 2>&1` -- fi -- # Put the nasty error message in config.log where it belongs -- echo "$GADU_PKG_ERRORS" >&5 -- -- -- gadu_includes="no" -- --elif test $pkg_failed = untried; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- -- gadu_includes="no" -- --else -- GADU_CFLAGS=$pkg_cv_GADU_CFLAGS -- GADU_LIBS=$pkg_cv_GADU_LIBS -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 --$as_echo "yes" >&6; } -- -- gadu_includes="yes" -- gadu_libs="yes" -- --fi --else -- if test "$ac_gadu_includes" != "no"; then -- GADU_CFLAGS="-I$ac_gadu_includes" -- fi -- CPPFLAGS_save="$CPPFLAGS" -- CPPFLAGS="$CPPFLAGS $GADU_CFLAGS" -- ac_fn_c_check_header_mongrel "$LINENO" "libgadu.h" "ac_cv_header_libgadu_h" "$ac_includes_default" --if test "x$ac_cv_header_libgadu_h" = xyes; then : -- gadu_includes=yes --fi -- -- -- CPPFLAGS="$CPPFLAGS_save" -- -- if test "$ac_gadu_libs" != "no"; then -- GADU_LIBS="-L$ac_gadu_libs" -- fi -- GADU_LIBS="$GADU_LIBS -lgadu" -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gg_libgadu_version in -lgadu" >&5 --$as_echo_n "checking for gg_libgadu_version in -lgadu... " >&6; } --if ${ac_cv_lib_gadu_gg_libgadu_version+:} false; then : -- $as_echo_n "(cached) " >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lgadu $GADU_LIBS $LIBS" --cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ -- --/* Override any GCC internal prototype to avoid an error. -- Use char because int might match the return type of a GCC -- builtin and then its argument prototype would still apply. */ --#ifdef __cplusplus --extern "C" --#endif --char gg_libgadu_version (); --int --main () --{ --return gg_libgadu_version (); -- ; -- return 0; --} --_ACEOF --if ac_fn_c_try_link "$LINENO"; then : -- ac_cv_lib_gadu_gg_libgadu_version=yes --else -- ac_cv_lib_gadu_gg_libgadu_version=no --fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --LIBS=$ac_check_lib_save_LIBS --fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gadu_gg_libgadu_version" >&5 --$as_echo "$ac_cv_lib_gadu_gg_libgadu_version" >&6; } --if test "x$ac_cv_lib_gadu_gg_libgadu_version" = xyes; then : -- gadu_libs=yes --fi -- --fi --GADU_CFLAGS=`echo $GADU_CFLAGS |$sedpath 's/-Wall//'` -- --if test "x$gadu_libs" = "xyes"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgadu GPL compatibility" >&5 --$as_echo_n "checking for libgadu GPL compatibility... " >&6; } -- CPPFLAGS_save="$CPPFLAGS" -- CPPFLAGS="$CPPFLAGS $GADU_CFLAGS" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --#include <libgadu.h> --int --main () --{ -- --#if defined(__GG_LIBGADU_HAVE_OPENSSL) || defined(GG_CONFIG_HAVE_OPENSSL) --#error "libgadu is not compatible with the GPL when compiled with OpenSSL support." --#endif -- -- ; -- return 0; --} --_ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -- -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --#include <libgadu.h> --int --main () --{ -- --#if GG_DEFAULT_PROTOCOL_VERSION < 0x2e --#error "Your libgadu version is too old. libpurple requires 1.11.0 or higher." --#endif -- -- ; -- return 0; --} --_ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -- -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 --$as_echo "yes" >&6; } -- --$as_echo "#define HAVE_LIBGADU 1" >>confdefs.h -- -- --else -- -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- echo -- echo -- echo "Your supplied copy of libgadu is too old." -- echo "Install version 1.11.0 or newer." -- echo "Then rerun this ./configure" -- echo -- echo "Falling back to using our own copy of libgadu" -- echo -- GADU_LIBS="" -- GADU_CFLAGS="" -- gadu_libs=no -- --fi --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- --else -- -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- echo -- echo -- echo "libgadu is not compatible with the GPL when compiled with OpenSSL support." -- echo "To compile against system libgadu, please recompile libgadu using:" -- echo "./autogen.sh --disable-libgadu-openssl --disable-static --enable-shared" -- echo "Then rerun this ./configure" -- echo -- echo "Falling back to using our own copy of libgadu" -- echo -- GADU_LIBS="" -- GADU_CFLAGS="" -- gadu_libs=no -- --fi --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- CPPFLAGS="$CPPFLAGS_save" --fi -- -- if test "x$gadu_libs" != "xyes"; then -- USE_INTERNAL_LIBGADU_TRUE= -- USE_INTERNAL_LIBGADU_FALSE='#' --else -- USE_INTERNAL_LIBGADU_TRUE='#' -- USE_INTERNAL_LIBGADU_FALSE= --fi -- -- --if test "x$gadu_libs" = "x"; then -- gadu_libs=no --fi -- - - - -@@ -19500,10 +19100,7 @@ - fi - - if test "x$STATIC_PRPLS" = "xall" ; then -- STATIC_PRPLS="bonjour gg irc jabber msn myspace mxit novell oscar sametime silc simple yahoo zephyr" --fi --if test "x$have_meanwhile" != "xyes" ; then -- STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/sametime//'` -+ STATIC_PRPLS="bonjour irc jabber silc simple zephyr" - fi - if test "x$avahiincludes" != "xyes" -o "x$avahilibs" != "xyes"; then - STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/bonjour//'` -@@ -19519,46 +19116,22 @@ - extern_init= - load_proto= - for i in $STATIC_PRPLS ; do -- if test \( "x$i" = "xoscar" -o "x$i" = "xaim" -o "x$i" = "xicq" \) -a "x$static_oscar" != "xyes"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/oscar/liboscar.la" -- extern_init="$extern_init extern gboolean purple_init_aim_plugin();" -- extern_init="$extern_init extern gboolean purple_init_icq_plugin();" -- load_proto="$load_proto purple_init_aim_plugin();" -- load_proto="$load_proto purple_init_icq_plugin();" -- elif test "x$i" = "xyahoo"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/yahoo/libymsg.la" -- extern_init="$extern_init extern gboolean purple_init_yahoo_plugin();" -- extern_init="$extern_init extern gboolean purple_init_yahoojp_plugin();" -- load_proto="$load_proto purple_init_yahoo_plugin();" -- load_proto="$load_proto purple_init_yahoojp_plugin();" -+ if test "x$i" = "xsilc"; then -+ STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib${i}purple.la" -+ elif test "x$i" = "xsilc10"; then -+ STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/libsilcpurple.la" - else -- if test "x$i" = "xsilc"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib${i}purple.la" -- elif test "x$i" = "xsilc10"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/libsilcpurple.la" -- else -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib$i.la" -- fi -- extern_init="$extern_init extern gboolean purple_init_${i}_plugin();" -- load_proto="$load_proto purple_init_${i}_plugin();" -+ STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib$i.la" - fi -+ extern_init="$extern_init extern gboolean purple_init_${i}_plugin();" -+ load_proto="$load_proto purple_init_${i}_plugin();" - case $i in - bonjour) static_bonjour=yes ;; -- gg) static_gg=yes ;; - irc) static_irc=yes ;; - jabber) static_jabber=yes ;; -- msn) static_msn=yes ;; -- myspace) static_myspace=yes ;; -- mxit) static_mxit=yes ;; -- novell) static_novell=yes ;; -- oscar) static_oscar=yes ;; -- aim) static_oscar=yes ;; -- icq) static_oscar=yes ;; -- sametime) static_sametime=yes ;; - silc) static_silc=yes ;; - silc10) static_silc=yes ;; - simple) static_simple=yes ;; -- yahoo) static_yahoo=yes ;; - zephyr) static_zephyr=yes ;; - *) echo "Invalid static protocol $i!!" ; exit 1 ;; - esac -@@ -19571,14 +19144,6 @@ - STATIC_BONJOUR_FALSE= - fi - -- if test "x$static_gg" = "xyes"; then -- STATIC_GG_TRUE= -- STATIC_GG_FALSE='#' --else -- STATIC_GG_TRUE='#' -- STATIC_GG_FALSE= --fi -- - if test "x$static_irc" = "xyes"; then - STATIC_IRC_TRUE= - STATIC_IRC_FALSE='#' -@@ -19595,54 +19160,6 @@ - STATIC_JABBER_FALSE= - fi - -- if test "x$static_msn" = "xyes"; then -- STATIC_MSN_TRUE= -- STATIC_MSN_FALSE='#' --else -- STATIC_MSN_TRUE='#' -- STATIC_MSN_FALSE= --fi -- -- if test "x$static_myspace" = "xyes"; then -- STATIC_MYSPACE_TRUE= -- STATIC_MYSPACE_FALSE='#' --else -- STATIC_MYSPACE_TRUE='#' -- STATIC_MYSPACE_FALSE= --fi -- -- if test "x$static_mxit" = "xyes"; then -- STATIC_MXIT_TRUE= -- STATIC_MXIT_FALSE='#' --else -- STATIC_MXIT_TRUE='#' -- STATIC_MXIT_FALSE= --fi -- -- if test "x$static_novell" = "xyes"; then -- STATIC_NOVELL_TRUE= -- STATIC_NOVELL_FALSE='#' --else -- STATIC_NOVELL_TRUE='#' -- STATIC_NOVELL_FALSE= --fi -- -- if test "x$static_oscar" = "xyes"; then -- STATIC_OSCAR_TRUE= -- STATIC_OSCAR_FALSE='#' --else -- STATIC_OSCAR_TRUE='#' -- STATIC_OSCAR_FALSE= --fi -- -- if test "x$static_sametime" = "xyes" -a "x$have_meanwhile" = "xyes"; then -- STATIC_SAMETIME_TRUE= -- STATIC_SAMETIME_FALSE='#' --else -- STATIC_SAMETIME_TRUE='#' -- STATIC_SAMETIME_FALSE= --fi -- - if test "x$static_silc" = "xyes" -a "x$have_silc" = "xyes"; then - STATIC_SILC_TRUE= - STATIC_SILC_FALSE='#' -@@ -19659,14 +19176,6 @@ - STATIC_SIMPLE_FALSE= - fi - -- if test "x$static_yahoo" = "xyes"; then -- STATIC_YAHOO_TRUE= -- STATIC_YAHOO_FALSE='#' --else -- STATIC_YAHOO_TRUE='#' -- STATIC_YAHOO_FALSE= --fi -- - if test "x$static_zephyr" = "xyes"; then - STATIC_ZEPHYR_TRUE= - STATIC_ZEPHYR_FALSE='#' -@@ -19689,10 +19198,7 @@ - fi - - if test "x$DYNAMIC_PRPLS" = "xall" ; then -- DYNAMIC_PRPLS="bonjour gg irc jabber msn myspace mxit novell oscar sametime silc simple yahoo zephyr" --fi --if test "x$have_meanwhile" != "xyes"; then -- DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/sametime//'` -+ DYNAMIC_PRPLS="bonjour irc jabber silc simple zephyr" - fi - if test "x$avahiincludes" != "xyes" -o "x$avahilibs" != "xyes"; then - DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/bonjour//'` -@@ -19707,22 +19213,12 @@ - for i in $DYNAMIC_PRPLS ; do - case $i in - bonjour) dynamic_bonjour=yes ;; -- gg) dynamic_gg=yes ;; - irc) dynamic_irc=yes ;; - jabber) dynamic_jabber=yes ;; -- msn) dynamic_msn=yes ;; -- myspace) dynamic_myspace=yes ;; -- mxit) dynamic_mxit=yes ;; -- novell) dynamic_novell=yes ;; - null) dynamic_null=yes ;; -- oscar) dynamic_oscar=yes ;; -- aim) dynamic_oscar=yes ;; -- icq) dynamic_oscar=yes ;; -- sametime) dynamic_sametime=yes ;; - silc) dynamic_silc=yes ;; - silc10) dynamic_silc=yes ;; - simple) dynamic_simple=yes ;; -- yahoo) dynamic_yahoo=yes ;; - zephyr) dynamic_zephyr=yes ;; - *) echo "Invalid dynamic protocol $i!!" ; exit 1 ;; - esac -@@ -21001,7 +20497,7 @@ - fi - - --msg_ssl="None. MSN, Yahoo!, Novell Groupwise and Google Talk will not work without GnuTLS or NSS. OpenSSL is NOT usable!" -+msg_ssl="None." - looked_for_gnutls="no" - if test "x$enable_gnutls" != "xno"; then - enable_gnutls="no" -@@ -21871,19 +21367,17 @@ - as_fn_error $? " - Neither GnuTLS or NSS SSL development headers found. - Use --disable-nss --disable-gnutls if you do not need SSL support. --MSN, Yahoo!, Novell Groupwise and Google Talk will not work without GnuTLS or NSS. OpenSSL is NOT usable! -+ - " "$LINENO" 5 - elif test "x$looked_for_gnutls" = "xyes" -a "x$force_deps" = "xyes" ; then - as_fn_error $? " - GnuTLS SSL development headers not found. - Use --disable-gnutls if you do not need SSL support. --MSN, Yahoo!, Novell Groupwise and Google Talk will not work without SSL support. - " "$LINENO" 5 - elif test "x$looked_for_nss" = "xyes" -a "x$force_deps" = "xyes" ; then - as_fn_error $? " - NSS SSL development headers not found. - Use --disable-nss if you do not need SSL support. --MSN, Yahoo!, Novell Groupwise and Google Talk will not work without SSL support. - " "$LINENO" 5 - fi - -@@ -23176,7 +22670,7 @@ - fi - - --ac_config_files="$ac_config_files Makefile Doxyfile doc/Makefile doc/pidgin.1 doc/finch.1 m4macros/Makefile pidgin.apspec pidgin/Makefile pidgin/pidgin.pc pidgin/pidgin-uninstalled.pc pidgin/pidgin-2.pc pidgin/pidgin-2-uninstalled.pc pidgin/pixmaps/Makefile pidgin/pixmaps/emotes/default/24/Makefile pidgin/pixmaps/emotes/none/Makefile pidgin/pixmaps/emotes/small/16/Makefile pidgin/plugins/Makefile pidgin/plugins/cap/Makefile pidgin/plugins/disco/Makefile pidgin/plugins/gestures/Makefile pidgin/plugins/gevolution/Makefile pidgin/plugins/musicmessaging/Makefile pidgin/plugins/perl/Makefile pidgin/plugins/perl/common/Makefile.PL pidgin/plugins/ticker/Makefile libpurple/ciphers/Makefile libpurple/example/Makefile libpurple/gconf/Makefile libpurple/purple.pc libpurple/purple-uninstalled.pc libpurple/purple-2.pc libpurple/purple-2-uninstalled.pc libpurple/plugins/Makefile libpurple/plugins/mono/Makefile libpurple/plugins/mono/api/Makefile libpurple/plugins/mono/loader/Makefile libpurple/plugins/perl/Makefile libpurple/plugins/perl/common/Makefile.PL libpurple/plugins/ssl/Makefile libpurple/plugins/tcl/Makefile libpurple/Makefile libpurple/protocols/Makefile libpurple/protocols/bonjour/Makefile libpurple/protocols/gg/Makefile libpurple/protocols/irc/Makefile libpurple/protocols/jabber/Makefile libpurple/protocols/msn/Makefile libpurple/protocols/myspace/Makefile libpurple/protocols/mxit/Makefile libpurple/protocols/novell/Makefile libpurple/protocols/null/Makefile libpurple/protocols/oscar/Makefile libpurple/protocols/sametime/Makefile libpurple/protocols/silc/Makefile libpurple/protocols/silc10/Makefile libpurple/protocols/simple/Makefile libpurple/protocols/yahoo/Makefile libpurple/protocols/zephyr/Makefile libpurple/tests/Makefile libpurple/purple.h libpurple/version.h share/sounds/Makefile share/ca-certs/Makefile finch/finch.pc finch/Makefile finch/libgnt/Makefile finch/libgnt/gnt.pc finch/libgnt/wms/Makefile finch/plugins/Makefile po/Makefile.in pidgin.spec" -+ac_config_files="$ac_config_files Makefile Doxyfile doc/Makefile doc/pidgin.1 doc/finch.1 m4macros/Makefile pidgin.apspec pidgin/Makefile pidgin/pidgin.pc pidgin/pidgin-uninstalled.pc pidgin/pidgin-2.pc pidgin/pidgin-2-uninstalled.pc pidgin/pixmaps/Makefile pidgin/pixmaps/emotes/default/24/Makefile pidgin/pixmaps/emotes/none/Makefile pidgin/pixmaps/emotes/small/16/Makefile pidgin/plugins/Makefile pidgin/plugins/cap/Makefile pidgin/plugins/disco/Makefile pidgin/plugins/gestures/Makefile pidgin/plugins/gevolution/Makefile pidgin/plugins/musicmessaging/Makefile pidgin/plugins/perl/Makefile pidgin/plugins/perl/common/Makefile.PL pidgin/plugins/ticker/Makefile libpurple/ciphers/Makefile libpurple/example/Makefile libpurple/gconf/Makefile libpurple/purple.pc libpurple/purple-uninstalled.pc libpurple/purple-2.pc libpurple/purple-2-uninstalled.pc libpurple/plugins/Makefile libpurple/plugins/mono/Makefile libpurple/plugins/mono/api/Makefile libpurple/plugins/mono/loader/Makefile libpurple/plugins/perl/Makefile libpurple/plugins/perl/common/Makefile.PL libpurple/plugins/ssl/Makefile libpurple/plugins/tcl/Makefile libpurple/Makefile libpurple/protocols/Makefile libpurple/protocols/bonjour/Makefile libpurple/protocols/irc/Makefile libpurple/protocols/jabber/Makefile libpurple/protocols/null/Makefile libpurple/protocols/silc/Makefile libpurple/protocols/silc10/Makefile libpurple/protocols/simple/Makefile libpurple/protocols/zephyr/Makefile libpurple/tests/Makefile libpurple/purple.h libpurple/version.h share/sounds/Makefile share/ca-certs/Makefile finch/finch.pc finch/Makefile finch/libgnt/Makefile finch/libgnt/gnt.pc finch/libgnt/wms/Makefile finch/plugins/Makefile po/Makefile.in pidgin.spec" - - cat >confcache <<\_ACEOF - # This file is a shell script that caches the results of configure -@@ -23344,10 +22838,6 @@ - as_fn_error $? "conditional \"USE_VV\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi --if test -z "${USE_INTERNAL_LIBGADU_TRUE}" && test -z "${USE_INTERNAL_LIBGADU_FALSE}"; then -- as_fn_error $? "conditional \"USE_INTERNAL_LIBGADU\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi - if test -z "${DISTRIB_TRUE}" && test -z "${DISTRIB_FALSE}"; then - as_fn_error $? "conditional \"DISTRIB\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 -@@ -23356,10 +22846,6 @@ - as_fn_error $? "conditional \"STATIC_BONJOUR\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi --if test -z "${STATIC_GG_TRUE}" && test -z "${STATIC_GG_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_GG\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi - if test -z "${STATIC_IRC_TRUE}" && test -z "${STATIC_IRC_FALSE}"; then - as_fn_error $? "conditional \"STATIC_IRC\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 -@@ -23368,30 +22854,6 @@ - as_fn_error $? "conditional \"STATIC_JABBER\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi --if test -z "${STATIC_MSN_TRUE}" && test -z "${STATIC_MSN_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_MSN\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi --if test -z "${STATIC_MYSPACE_TRUE}" && test -z "${STATIC_MYSPACE_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_MYSPACE\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi --if test -z "${STATIC_MXIT_TRUE}" && test -z "${STATIC_MXIT_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_MXIT\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi --if test -z "${STATIC_NOVELL_TRUE}" && test -z "${STATIC_NOVELL_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_NOVELL\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi --if test -z "${STATIC_OSCAR_TRUE}" && test -z "${STATIC_OSCAR_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_OSCAR\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi --if test -z "${STATIC_SAMETIME_TRUE}" && test -z "${STATIC_SAMETIME_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_SAMETIME\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi - if test -z "${STATIC_SILC_TRUE}" && test -z "${STATIC_SILC_FALSE}"; then - as_fn_error $? "conditional \"STATIC_SILC\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 -@@ -23400,10 +22862,6 @@ - as_fn_error $? "conditional \"STATIC_SIMPLE\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi --if test -z "${STATIC_YAHOO_TRUE}" && test -z "${STATIC_YAHOO_FALSE}"; then -- as_fn_error $? "conditional \"STATIC_YAHOO\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi - if test -z "${STATIC_ZEPHYR_TRUE}" && test -z "${STATIC_ZEPHYR_FALSE}"; then - as_fn_error $? "conditional \"STATIC_ZEPHYR\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 -@@ -24425,20 +23883,12 @@ - "libpurple/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/Makefile" ;; - "libpurple/protocols/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/Makefile" ;; - "libpurple/protocols/bonjour/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/bonjour/Makefile" ;; -- "libpurple/protocols/gg/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/gg/Makefile" ;; - "libpurple/protocols/irc/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/irc/Makefile" ;; - "libpurple/protocols/jabber/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/jabber/Makefile" ;; -- "libpurple/protocols/msn/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/msn/Makefile" ;; -- "libpurple/protocols/myspace/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/myspace/Makefile" ;; -- "libpurple/protocols/mxit/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/mxit/Makefile" ;; -- "libpurple/protocols/novell/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/novell/Makefile" ;; - "libpurple/protocols/null/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/null/Makefile" ;; -- "libpurple/protocols/oscar/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/oscar/Makefile" ;; -- "libpurple/protocols/sametime/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/sametime/Makefile" ;; - "libpurple/protocols/silc/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/silc/Makefile" ;; - "libpurple/protocols/silc10/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/silc10/Makefile" ;; - "libpurple/protocols/simple/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/simple/Makefile" ;; -- "libpurple/protocols/yahoo/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/yahoo/Makefile" ;; - "libpurple/protocols/zephyr/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/protocols/zephyr/Makefile" ;; - "libpurple/tests/Makefile") CONFIG_FILES="$CONFIG_FILES libpurple/tests/Makefile" ;; - "libpurple/purple.h") CONFIG_FILES="$CONFIG_FILES libpurple/purple.h" ;; -@@ -25863,7 +25313,6 @@ - echo Build with Cyrus SASL support. : $enable_cyrus_sasl - echo Use kerberos 4 with zephyr.... : $kerberos - echo Use external libzephyr........ : $zephyr --echo Use external libgadu.......... : $gadu_libs - echo Install pixmaps............... : $enable_pixmaps - echo Old tray icon compatibility... : $enable_traycompat - echo Install translations.......... : $enable_i18n -diff -Nur pidgin-2.10.7/configure.ac pidgin-2.10.7-nonprism/configure.ac ---- pidgin-2.10.7/configure.ac 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/configure.ac 2013-08-16 23:44:41.800496326 -0300 -@@ -854,28 +854,6 @@ - fi - - dnl ####################################################################### --dnl # Check for Meanwhile headers (for Sametime) --dnl ####################################################################### --AC_ARG_ENABLE(meanwhile, -- [AC_HELP_STRING([--disable-meanwhile], -- [compile without meanwhile (required for Sametime support)])], -- enable_meanwhile="$enableval", enable_meanwhile="yes") --if test "x$enable_meanwhile" = "xyes"; then -- PKG_CHECK_MODULES(MEANWHILE, [meanwhile >= 1.0.0 meanwhile < 2.0.0], [ -- have_meanwhile="yes" -- ], [ -- have_meanwhile="no" -- if test "x$force_deps" = "xyes" ; then -- AC_MSG_ERROR([ --Meanwhile development headers not found. --Use --disable-meanwhile if you do not need meanwhile (Sametime) support. --]) -- fi]) --fi --AC_SUBST(MEANWHILE_CFLAGS) --AC_SUBST(MEANWHILE_LIBS) -- --dnl ####################################################################### - dnl # Check for Native Avahi headers (for Bonjour) - dnl ####################################################################### - AC_ARG_ENABLE(avahi, -@@ -1020,100 +998,6 @@ - CPPFLAGS="$CPPFLAGS_save" - fi - --dnl ####################################################################### --dnl # Check for Gadu-Gadu client includes and libraries --dnl ####################################################################### --AC_ARG_WITH(gadu-includes, [AC_HELP_STRING([--with-gadu-includes=DIR], [compile the Gadu-Gadu plugin against includes in DIR])], [ac_gadu_includes="$withval"], [ac_gadu_includes="no"]) --AC_ARG_WITH(gadu-libs, [AC_HELP_STRING([--with-gadu-libs=DIR], [compile the Gadu-Gadu plugin against the libs in DIR])], [ac_gadu_libs="$withval"], [ac_gadu_libs="no"]) --GADU_CFLAGS="" --GADU_LIBS="" --if test -n "$with_gadu_includes" || test -n "$with_gadu_libs"; then -- gadu_manual_check="yes" --else -- gadu_manual_check="no" --fi --if test "x$gadu_manual_check" = "xno"; then -- PKG_CHECK_MODULES(GADU, [libgadu >= 1.11.0], [ -- gadu_includes="yes" -- gadu_libs="yes" -- ], [ -- gadu_includes="no" -- ]) --else -- if test "$ac_gadu_includes" != "no"; then -- GADU_CFLAGS="-I$ac_gadu_includes" -- fi -- CPPFLAGS_save="$CPPFLAGS" -- CPPFLAGS="$CPPFLAGS $GADU_CFLAGS" -- AC_CHECK_HEADER(libgadu.h, [gadu_includes=yes]) -- CPPFLAGS="$CPPFLAGS_save" -- -- if test "$ac_gadu_libs" != "no"; then -- GADU_LIBS="-L$ac_gadu_libs" -- fi -- GADU_LIBS="$GADU_LIBS -lgadu" -- AC_CHECK_LIB(gadu, gg_libgadu_version, [gadu_libs=yes], , $GADU_LIBS) --fi --GADU_CFLAGS=`echo $GADU_CFLAGS |$sedpath 's/-Wall//'` -- --if test "x$gadu_libs" = "xyes"; then -- AC_MSG_CHECKING(for libgadu GPL compatibility) -- CPPFLAGS_save="$CPPFLAGS" -- CPPFLAGS="$CPPFLAGS $GADU_CFLAGS" -- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libgadu.h>]], [[ --#if defined(__GG_LIBGADU_HAVE_OPENSSL) || defined(GG_CONFIG_HAVE_OPENSSL) --#error "libgadu is not compatible with the GPL when compiled with OpenSSL support." --#endif -- ]])], [ -- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libgadu.h>]], [[ --#if GG_DEFAULT_PROTOCOL_VERSION < 0x2e --#error "Your libgadu version is too old. libpurple requires 1.11.0 or higher." --#endif -- ]])], [ -- AC_MSG_RESULT(yes) -- AC_DEFINE([HAVE_LIBGADU], [1], -- [Define to 1 if you have libgadu.]) -- ], [ -- AC_MSG_RESULT(no) -- echo -- echo -- echo "Your supplied copy of libgadu is too old." -- echo "Install version 1.11.0 or newer." -- echo "Then rerun this ./configure" -- echo -- echo "Falling back to using our own copy of libgadu" -- echo -- GADU_LIBS="" -- GADU_CFLAGS="" -- gadu_libs=no -- ]) -- ], [ -- AC_MSG_RESULT(no) -- echo -- echo -- echo "libgadu is not compatible with the GPL when compiled with OpenSSL support." -- echo "To compile against system libgadu, please recompile libgadu using:" -- echo "./autogen.sh --disable-libgadu-openssl --disable-static --enable-shared" -- echo "Then rerun this ./configure" -- echo -- echo "Falling back to using our own copy of libgadu" -- echo -- GADU_LIBS="" -- GADU_CFLAGS="" -- gadu_libs=no -- ]) -- CPPFLAGS="$CPPFLAGS_save" --fi -- --AM_CONDITIONAL(USE_INTERNAL_LIBGADU, test "x$gadu_libs" != "xyes") -- --if test "x$gadu_libs" = "x"; then -- gadu_libs=no --fi -- --AC_SUBST(GADU_LIBS) --AC_SUBST(GADU_CFLAGS) -- - AC_ARG_ENABLE(distrib,,,enable_distrib=no) - AM_CONDITIONAL(DISTRIB, test "x$enable_distrib" = "xyes") - DYNAMIC_PRPLS=all -@@ -1123,10 +1007,7 @@ - fi - - if test "x$STATIC_PRPLS" = "xall" ; then -- STATIC_PRPLS="bonjour gg irc jabber msn myspace mxit novell oscar sametime silc simple yahoo zephyr" --fi --if test "x$have_meanwhile" != "xyes" ; then -- STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/sametime//'` -+ STATIC_PRPLS="bonjour irc jabber silc simple zephyr" - fi - if test "x$avahiincludes" != "xyes" -o "x$avahilibs" != "xyes"; then - STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/bonjour//'` -@@ -1143,64 +1024,31 @@ - load_proto= - for i in $STATIC_PRPLS ; do - dnl Ugly special case for "libsilcpurple.la": -- dnl ... and Ugly special case for multi-protocol oscar and yahoo -- if test \( "x$i" = "xoscar" -o "x$i" = "xaim" -o "x$i" = "xicq" \) -a "x$static_oscar" != "xyes"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/oscar/liboscar.la" -- extern_init="$extern_init extern gboolean purple_init_aim_plugin();" -- extern_init="$extern_init extern gboolean purple_init_icq_plugin();" -- load_proto="$load_proto purple_init_aim_plugin();" -- load_proto="$load_proto purple_init_icq_plugin();" -- elif test "x$i" = "xyahoo"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/yahoo/libymsg.la" -- extern_init="$extern_init extern gboolean purple_init_yahoo_plugin();" -- extern_init="$extern_init extern gboolean purple_init_yahoojp_plugin();" -- load_proto="$load_proto purple_init_yahoo_plugin();" -- load_proto="$load_proto purple_init_yahoojp_plugin();" -+ if test "x$i" = "xsilc"; then -+ STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib${i}purple.la" -+ elif test "x$i" = "xsilc10"; then -+ STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/libsilcpurple.la" - else -- if test "x$i" = "xsilc"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib${i}purple.la" -- elif test "x$i" = "xsilc10"; then -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/libsilcpurple.la" -- else -- STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib$i.la" -- fi -- extern_init="$extern_init extern gboolean purple_init_${i}_plugin();" -- load_proto="$load_proto purple_init_${i}_plugin();" -+ STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib$i.la" - fi -+ extern_init="$extern_init extern gboolean purple_init_${i}_plugin();" -+ load_proto="$load_proto purple_init_${i}_plugin();" - case $i in - bonjour) static_bonjour=yes ;; -- gg) static_gg=yes ;; - irc) static_irc=yes ;; - jabber) static_jabber=yes ;; -- msn) static_msn=yes ;; -- myspace) static_myspace=yes ;; -- mxit) static_mxit=yes ;; -- novell) static_novell=yes ;; -- oscar) static_oscar=yes ;; -- aim) static_oscar=yes ;; -- icq) static_oscar=yes ;; -- sametime) static_sametime=yes ;; - silc) static_silc=yes ;; - silc10) static_silc=yes ;; - simple) static_simple=yes ;; -- yahoo) static_yahoo=yes ;; - zephyr) static_zephyr=yes ;; - *) echo "Invalid static protocol $i!!" ; exit 1 ;; - esac - done - AM_CONDITIONAL(STATIC_BONJOUR, test "x$static_bonjour" = "xyes") --AM_CONDITIONAL(STATIC_GG, test "x$static_gg" = "xyes") - AM_CONDITIONAL(STATIC_IRC, test "x$static_irc" = "xyes") - AM_CONDITIONAL(STATIC_JABBER, test "x$static_jabber" = "xyes") --AM_CONDITIONAL(STATIC_MSN, test "x$static_msn" = "xyes") --AM_CONDITIONAL(STATIC_MYSPACE, test "x$static_myspace" = "xyes") --AM_CONDITIONAL(STATIC_MXIT, test "x$static_mxit" = "xyes") --AM_CONDITIONAL(STATIC_NOVELL, test "x$static_novell" = "xyes") --AM_CONDITIONAL(STATIC_OSCAR, test "x$static_oscar" = "xyes") --AM_CONDITIONAL(STATIC_SAMETIME, test "x$static_sametime" = "xyes" -a "x$have_meanwhile" = "xyes") - AM_CONDITIONAL(STATIC_SILC, test "x$static_silc" = "xyes" -a "x$have_silc" = "xyes") - AM_CONDITIONAL(STATIC_SIMPLE, test "x$static_simple" = "xyes") --AM_CONDITIONAL(STATIC_YAHOO, test "x$static_yahoo" = "xyes") - AM_CONDITIONAL(STATIC_ZEPHYR, test "x$static_zephyr" = "xyes") - AC_SUBST(STATIC_LINK_LIBS) - AC_DEFINE_UNQUOTED(STATIC_PROTO_INIT, $extern_init static void static_proto_init(void) { $load_proto }, -@@ -1208,10 +1056,7 @@ - - AC_ARG_WITH(dynamic_prpls, [AC_HELP_STRING([--with-dynamic-prpls], [specify which protocols to build dynamically])], [DYNAMIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`]) - if test "x$DYNAMIC_PRPLS" = "xall" ; then -- DYNAMIC_PRPLS="bonjour gg irc jabber msn myspace mxit novell oscar sametime silc simple yahoo zephyr" --fi --if test "x$have_meanwhile" != "xyes"; then -- DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/sametime//'` -+ DYNAMIC_PRPLS="bonjour irc jabber silc simple zephyr" - fi - if test "x$avahiincludes" != "xyes" -o "x$avahilibs" != "xyes"; then - DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/bonjour//'` -@@ -1226,22 +1071,12 @@ - for i in $DYNAMIC_PRPLS ; do - case $i in - bonjour) dynamic_bonjour=yes ;; -- gg) dynamic_gg=yes ;; - irc) dynamic_irc=yes ;; - jabber) dynamic_jabber=yes ;; -- msn) dynamic_msn=yes ;; -- myspace) dynamic_myspace=yes ;; -- mxit) dynamic_mxit=yes ;; -- novell) dynamic_novell=yes ;; - null) dynamic_null=yes ;; -- oscar) dynamic_oscar=yes ;; -- aim) dynamic_oscar=yes ;; -- icq) dynamic_oscar=yes ;; -- sametime) dynamic_sametime=yes ;; - silc) dynamic_silc=yes ;; - silc10) dynamic_silc=yes ;; - simple) dynamic_simple=yes ;; -- yahoo) dynamic_yahoo=yes ;; - zephyr) dynamic_zephyr=yes ;; - *) echo "Invalid dynamic protocol $i!!" ; exit 1 ;; - esac -@@ -1713,7 +1548,7 @@ - [enable_nss="$enableval"], - [enable_nss="yes"]) - --msg_ssl="None. MSN, Yahoo!, Novell Groupwise and Google Talk will not work without GnuTLS or NSS. OpenSSL is NOT usable!" -+msg_ssl="None." - looked_for_gnutls="no" - dnl # - dnl # Check for GnuTLS if it's specified. -@@ -2124,19 +1959,16 @@ - AC_MSG_ERROR([ - Neither GnuTLS or NSS SSL development headers found. - Use --disable-nss --disable-gnutls if you do not need SSL support. --MSN, Yahoo!, Novell Groupwise and Google Talk will not work without GnuTLS or NSS. OpenSSL is NOT usable! - ]) - elif test "x$looked_for_gnutls" = "xyes" -a "x$force_deps" = "xyes" ; then - AC_MSG_ERROR([ - GnuTLS SSL development headers not found. - Use --disable-gnutls if you do not need SSL support. --MSN, Yahoo!, Novell Groupwise and Google Talk will not work without SSL support. - ]) - elif test "x$looked_for_nss" = "xyes" -a "x$force_deps" = "xyes" ; then - AC_MSG_ERROR([ - NSS SSL development headers not found. - Use --disable-nss if you do not need SSL support. --MSN, Yahoo!, Novell Groupwise and Google Talk will not work without SSL support. - ]) - fi - -@@ -2577,20 +2409,12 @@ - libpurple/Makefile - libpurple/protocols/Makefile - libpurple/protocols/bonjour/Makefile -- libpurple/protocols/gg/Makefile - libpurple/protocols/irc/Makefile - libpurple/protocols/jabber/Makefile -- libpurple/protocols/msn/Makefile -- libpurple/protocols/myspace/Makefile -- libpurple/protocols/mxit/Makefile -- libpurple/protocols/novell/Makefile - libpurple/protocols/null/Makefile -- libpurple/protocols/oscar/Makefile -- libpurple/protocols/sametime/Makefile - libpurple/protocols/silc/Makefile - libpurple/protocols/silc10/Makefile - libpurple/protocols/simple/Makefile -- libpurple/protocols/yahoo/Makefile - libpurple/protocols/zephyr/Makefile - libpurple/tests/Makefile - libpurple/purple.h -@@ -2635,7 +2459,6 @@ - echo Build with Cyrus SASL support. : $enable_cyrus_sasl - echo Use kerberos 4 with zephyr.... : $kerberos - echo Use external libzephyr........ : $zephyr --echo Use external libgadu.......... : $gadu_libs - echo Install pixmaps............... : $enable_pixmaps - echo Old tray icon compatibility... : $enable_traycompat - echo Install translations.......... : $enable_i18n -diff -Nur pidgin-2.10.7/doc/finch.1.in pidgin-2.10.7-nonprism/doc/finch.1.in ---- pidgin-2.10.7/doc/finch.1.in 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/doc/finch.1.in 2013-08-16 21:01:16.682280145 -0300 -@@ -30,11 +30,8 @@ - .SH DESCRIPTION - .PP - \fBfinch\fR is a console-based modular messaging client based on libpurple --which is capable of connecting to AIM, MSN, Yahoo!, XMPP, ICQ, IRC, SILC, --Novell GroupWise, Lotus Sametime, Zephyr, Gadu-Gadu, and QQ all at once. It has -+which is capable of connecting to XMPP, IRC, SILC and Zephyr all at once. It has - many common features found in other clients, as well as many unique features. --Finch is not endorsed by or affiliated with America Online, ICQ, Microsoft, or --Yahoo. - - .SH OPTIONS - The following options are provided by \fBfinch\fR using the standard GNU -diff -Nur pidgin-2.10.7/doc/funniest_home_convos.txt pidgin-2.10.7-nonprism/doc/funniest_home_convos.txt ---- pidgin-2.10.7/doc/funniest_home_convos.txt 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/doc/funniest_home_convos.txt 2013-08-16 23:08:16.148841464 -0300 -@@ -301,8 +301,6 @@ - --- - - 18:33:26 <NoName> hello there --18:34:03 <NoName> I just wanted to share some bevavior that I think its kinda of -- unsafe when using GAIM with yahoo messenges accounts - 18:34:43 <NoName> Whenever you transfer files between users, no receiving - confirmation is requested, the file gets transfered - automatically -diff -Nur pidgin-2.10.7/doc/pidgin.1.in pidgin-2.10.7-nonprism/doc/pidgin.1.in ---- pidgin-2.10.7/doc/pidgin.1.in 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/doc/pidgin.1.in 2013-08-16 21:00:30.964181946 -0300 -@@ -29,11 +29,8 @@ - .SH DESCRIPTION - .PP - \fBpidgin\fR is a graphical modular messaging client based on libpurple --which is capable of connecting to AIM, MSN, Yahoo!, XMPP, ICQ, IRC, SILC, --Novell GroupWise, Lotus Sametime, Zephyr, Gadu-Gadu, and QQ all at once. It has -+which is capable of connecting to XMPP, IRC, SILC and Zephyr all at once. It has - many common features found in other clients, as well as many unique features. --Pidgin is not endorsed by or affiliated with America Online, ICQ, Microsoft, or --Yahoo. - .PP - Pidgin can be extended by plugins written in multiple programming languages and - controlled through DBus or \fBpurple-remote\fR. -diff -Nur pidgin-2.10.7/libpurple/account.c pidgin-2.10.7-nonprism/libpurple/account.c ---- pidgin-2.10.7/libpurple/account.c 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/account.c 2013-08-16 23:31:48.026518940 -0300 -@@ -482,55 +482,6 @@ - /********************************************************************* - * Reading from disk * - *********************************************************************/ --static void --migrate_yahoo_japan(PurpleAccount *account) --{ -- /* detect a Yahoo! JAPAN account that existed prior to 2.6.0 and convert it -- * to use the new prpl-yahoojp. Also remove the account-specific settings -- * we no longer need */ -- -- if(purple_strequal(purple_account_get_protocol_id(account), "prpl-yahoo")) { -- if(purple_account_get_bool(account, "yahoojp", FALSE)) { -- const char *serverjp = purple_account_get_string(account, "serverjp", NULL); -- const char *xferjp_host = purple_account_get_string(account, "xferjp_host", NULL); -- -- g_return_if_fail(serverjp != NULL); -- g_return_if_fail(xferjp_host != NULL); -- -- purple_account_set_string(account, "server", serverjp); -- purple_account_set_string(account, "xfer_host", xferjp_host); -- -- purple_account_set_protocol_id(account, "prpl-yahoojp"); -- } -- -- /* these should always be nuked */ -- purple_account_remove_setting(account, "yahoojp"); -- purple_account_remove_setting(account, "serverjp"); -- purple_account_remove_setting(account, "xferjp_host"); -- -- } --} -- --static void --migrate_icq_server(PurpleAccount *account) --{ -- /* Migrate the login server setting for ICQ accounts. See -- * 'mtn log --last 1 --no-graph --from b6d7712e90b68610df3bd2d8cbaf46d94c8b3794' -- * for details on the change. */ -- -- if(purple_strequal(purple_account_get_protocol_id(account), "prpl-icq")) { -- const char *tmp = purple_account_get_string(account, "server", NULL); -- -- /* Non-secure server */ -- if(purple_strequal(tmp, "login.messaging.aol.com") || -- purple_strequal(tmp, "login.oscar.aol.com")) -- purple_account_set_string(account, "server", "login.icq.com"); -- -- /* Secure server */ -- if(purple_strequal(tmp, "slogin.oscar.aol.com")) -- purple_account_set_string(account, "server", "slogin.icq.com"); -- } --} - - static void - migrate_xmpp_encryption(PurpleAccount *account) -@@ -615,12 +566,6 @@ - g_free(data); - } - -- /* we do this here because we need access to account settings to determine -- * if we can/should migrate an old Yahoo! JAPAN account */ -- migrate_yahoo_japan(account); -- /* we do this here because we need access to account settings to determine -- * if we can/should migrate an ICQ account's server setting */ -- migrate_icq_server(account); - /* we do this here because we need to do it before the user views the - * Edit Account dialog. */ - migrate_xmpp_encryption(account); -@@ -874,7 +819,6 @@ - return NULL; - } - -- ret = purple_account_new(name, _purple_oscar_convert(name, protocol_id)); /* XXX: */ - g_free(name); - g_free(protocol_id); - -diff -Nur pidgin-2.10.7/libpurple/blist.c pidgin-2.10.7-nonprism/libpurple/blist.c ---- pidgin-2.10.7/libpurple/blist.c 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/blist.c 2013-08-16 22:53:19.640535242 -0300 -@@ -466,9 +466,7 @@ - - acct_name = xmlnode_get_attrib(bnode, "account"); - protocol = xmlnode_get_attrib(bnode, "protocol"); -- protocol = _purple_oscar_convert(acct_name, protocol); /* XXX: Remove */ - proto = xmlnode_get_attrib(bnode, "proto"); -- proto = _purple_oscar_convert(acct_name, proto); /* XXX: Remove */ - - if (!acct_name || (!proto && !protocol)) - return; -diff -Nur pidgin-2.10.7/libpurple/buddyicon.c pidgin-2.10.7-nonprism/libpurple/buddyicon.c ---- pidgin-2.10.7/libpurple/buddyicon.c 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/buddyicon.c 2013-08-16 23:28:49.244233493 -0300 -@@ -1099,18 +1099,6 @@ - { - PurpleAccount *account = purple_buddy_get_account((PurpleBuddy *)node); - const char *prpl_id = purple_account_get_protocol_id(account); -- -- if (g_str_equal(prpl_id, "prpl-yahoo") || g_str_equal(prpl_id, "prpl-yahoojp")) -- { -- int checksum = purple_blist_node_get_int(node, "icon_checksum"); -- if (checksum != 0) -- { -- char *checksum_str = g_strdup_printf("%i", checksum); -- purple_blist_node_remove_setting(node, "icon_checksum"); -- purple_blist_node_set_string(node, "icon_checksum", checksum_str); -- g_free(checksum_str); -- } -- } - } - } - } -diff -Nur pidgin-2.10.7/libpurple/ft.h pidgin-2.10.7-nonprism/libpurple/ft.h ---- pidgin-2.10.7/libpurple/ft.h 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/ft.h 2013-08-16 22:51:20.590085226 -0300 -@@ -470,8 +470,6 @@ - * can be used to jump backward in the file if the protocol detects - * that some bit of data needs to be resent or has been sent twice. - * -- * It's used for pausing and resuming an oscar file transfer. -- * - * @param xfer The file transfer. - * @param bytes_sent The new current position in the file. If we're - * sending a file then this is the byte that we will -diff -Nur pidgin-2.10.7/libpurple/gaim-compat.h pidgin-2.10.7-nonprism/libpurple/gaim-compat.h ---- pidgin-2.10.7/libpurple/gaim-compat.h 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/gaim-compat.h 2013-08-16 23:33:16.372629159 -0300 -@@ -2302,16 +2302,8 @@ - #define gaim_init_ssl_plugin purple_init_ssl_plugin - #define gaim_init_ssl_openssl_plugin purple_init_ssl_openssl_plugin - #define gaim_init_ssl_gnutls_plugin purple_init_ssl_gnutls_plugin --#define gaim_init_gg_plugin purple_init_gg_plugin - #define gaim_init_jabber_plugin purple_init_jabber_plugin --#define gaim_init_sametime_plugin purple_init_sametime_plugin --#define gaim_init_msn_plugin purple_init_msn_plugin --#define gaim_init_novell_plugin purple_init_novell_plugin --#define gaim_init_qq_plugin purple_init_qq_plugin - #define gaim_init_simple_plugin purple_init_simple_plugin --#define gaim_init_yahoo_plugin purple_init_yahoo_plugin - #define gaim_init_zephyr_plugin purple_init_zephyr_plugin --#define gaim_init_aim_plugin purple_init_aim_plugin --#define gaim_init_icq_plugin purple_init_icq_plugin - - #endif /* _GAIM_COMPAT_H_ */ -diff -Nur pidgin-2.10.7/libpurple/internal.h pidgin-2.10.7-nonprism/libpurple/internal.h ---- pidgin-2.10.7/libpurple/internal.h 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/internal.h 2013-08-17 00:24:37.244172407 -0300 -@@ -43,7 +43,7 @@ - * - * The Singular/Plural/Number ngettext dummy definition below was - * taken from an email to the texinfo mailing list by Manuel Guerrero. -- * Thank you Manuel, and thank you Alex's good friend Google. -+ * Thank you Manuel. - */ - #ifdef ENABLE_NLS - # include <locale.h> -diff -Nur pidgin-2.10.7/libpurple/media/backend-fs2.c pidgin-2.10.7-nonprism/libpurple/media/backend-fs2.c ---- pidgin-2.10.7/libpurple/media/backend-fs2.c 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/media/backend-fs2.c 2013-08-17 00:23:19.488440821 -0300 -@@ -1661,18 +1661,6 @@ - g_object_set(G_OBJECT(session->session), - "no-rtcp-timeout", 0, NULL); - -- /* -- * Hack to make x264 work with Gmail video. -- */ -- if (is_nice && !strcmp(sess_id, "google-video")) { -- FsElementAddedNotifier *notifier = -- fs_element_added_notifier_new(); -- g_signal_connect(G_OBJECT(notifier), "element-added", -- G_CALLBACK(gst_element_added_cb), NULL); -- fs_element_added_notifier_add(notifier, -- GST_BIN(priv->conference)); -- } -- - session->id = g_strdup(sess_id); - session->backend = self; - session->type = type; -diff -Nur pidgin-2.10.7/libpurple/plugins/psychic.c pidgin-2.10.7-nonprism/libpurple/plugins/psychic.c ---- pidgin-2.10.7/libpurple/plugins/psychic.c 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/plugins/psychic.c 2013-08-27 21:18:22.251908751 -0300 -@@ -20,8 +20,7 @@ - #define PLUGIN_NAME N_("Psychic Mode") - #define PLUGIN_SUMMARY N_("Psychic mode for incoming conversation") - #define PLUGIN_DESC N_("Causes conversation windows to appear as other" \ -- " users begin to message you. This works for" \ -- " AIM, ICQ, XMPP, Sametime, and Yahoo!") -+ " users begin to message you. This works for XMPP") - #define PLUGIN_AUTHOR "Christopher O'Brien <siege@preoccupied.net>" - - -diff -Nur pidgin-2.10.7/libpurple/pounce.c pidgin-2.10.7-nonprism/libpurple/pounce.c ---- pidgin-2.10.7/libpurple/pounce.c 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/pounce.c 2013-08-16 23:02:20.671021669 -0300 -@@ -409,7 +409,6 @@ - g_free(data->account_name); - data->account_name = g_strdup(buffer); - tmp = data->protocol_id; -- data->protocol_id = g_strdup(_purple_oscar_convert(buffer, tmp)); - g_free(tmp); - } - else if (purple_strequal(element_name, "pouncee")) { -diff -Nur pidgin-2.10.7/libpurple/protocols/Makefile.am pidgin-2.10.7-nonprism/libpurple/protocols/Makefile.am ---- pidgin-2.10.7/libpurple/protocols/Makefile.am 2013-02-11 07:16:51.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/Makefile.am 2013-08-16 22:37:55.011207011 -0300 -@@ -1,5 +1,5 @@ - EXTRA_DIST = Makefile.mingw - --DIST_SUBDIRS = bonjour gg irc jabber msn myspace mxit novell null oscar sametime silc silc10 simple yahoo zephyr -+DIST_SUBDIRS = bonjour irc jabber null silc silc10 simple zephyr - - SUBDIRS = $(DYNAMIC_PRPLS) $(STATIC_PRPLS) -diff -Nur pidgin-2.10.7/libpurple/protocols/Makefile.in pidgin-2.10.7-nonprism/libpurple/protocols/Makefile.in ---- pidgin-2.10.7/libpurple/protocols/Makefile.in 2013-02-11 07:17:19.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/protocols/Makefile.in 2013-08-16 23:50:36.651423353 -0300 -@@ -160,8 +160,6 @@ - FARSTREAM_CFLAGS = @FARSTREAM_CFLAGS@ - FARSTREAM_LIBS = @FARSTREAM_LIBS@ - FGREP = @FGREP@ --GADU_CFLAGS = @GADU_CFLAGS@ --GADU_LIBS = @GADU_LIBS@ - GCONFTOOL = @GCONFTOOL@ - GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ - GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -@@ -223,8 +221,6 @@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MANIFEST_TOOL = @MANIFEST_TOOL@ --MEANWHILE_CFLAGS = @MEANWHILE_CFLAGS@ --MEANWHILE_LIBS = @MEANWHILE_LIBS@ - MKDIR_P = @MKDIR_P@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MONO_CFLAGS = @MONO_CFLAGS@ -@@ -365,7 +361,7 @@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - EXTRA_DIST = Makefile.mingw --DIST_SUBDIRS = bonjour gg irc jabber msn myspace mxit novell null oscar sametime silc silc10 simple yahoo zephyr -+DIST_SUBDIRS = bonjour irc jabber null silc silc10 simple zephyr - SUBDIRS = $(DYNAMIC_PRPLS) $(STATIC_PRPLS) - all: all-recursive - -diff -Nur pidgin-2.10.7/libpurple/prpl.h pidgin-2.10.7-nonprism/libpurple/prpl.h ---- pidgin-2.10.7/libpurple/prpl.h 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/prpl.h 2013-08-16 22:29:46.145754932 -0300 -@@ -161,15 +161,11 @@ - - /** - * Notify on new mail. -- * -- * MSN and Yahoo notify you when you have new mail. - */ - OPT_PROTO_MAIL_CHECK = 0x00000020, - - /** - * Images in IMs. -- * -- * Oscar lets you send images in direct IMs. - */ - OPT_PROTO_IM_IMAGE = 0x00000040, - -@@ -184,16 +180,13 @@ - /** - * Allows font size to be specified in sane point size - * -- * Probably just XMPP and Y!M -+ * Probably just XMPP - */ - OPT_PROTO_USE_POINTSIZE = 0x00000100, - - /** - * Set the Register button active even when the username has not - * been specified. -- * -- * Gadu-Gadu doesn't need a username to register new account (because -- * usernames are assigned by the server). - */ - OPT_PROTO_REGISTER_NOSCREENNAME = 0x00000200, - -@@ -467,9 +460,7 @@ - void (*convo_closed)(PurpleConnection *, const char *who); - - /** -- * Convert the username @a who to its canonical form. (For example, -- * AIM treats "fOo BaR" and "foobar" as the same user; this function -- * should return the same normalized string for both of those.) -+ * Convert the username @a who to its canonical form. - */ - const char *(*normalize)(const PurpleAccount *, const char *who); - -@@ -923,7 +914,7 @@ - * @param who Whose attention to request. - * @param type_code An index into the prpl's attention_types list determining the type - * of the attention request command to send. 0 if prpl only defines one -- * (for example, Yahoo and MSN), but some protocols define more (MySpaceIM). -+ * , but some protocols define more. - * - * Note that you can't send arbitrary PurpleAttentionType's, because there is - * only a fixed set of attention commands. -diff -Nur pidgin-2.10.7/libpurple/purple-url-handler pidgin-2.10.7-nonprism/libpurple/purple-url-handler ---- pidgin-2.10.7/libpurple/purple-url-handler 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/purple-url-handler 2013-08-16 21:16:42.951304560 -0300 -@@ -117,70 +117,6 @@ - def addbuddy(account, screenname, group="", alias=""): - cpurple.PurpleBlistRequestAddBuddy(account, screenname, group, alias) - -- --def aim(uri): -- protocol = "prpl-aim" -- match = re.match(r"^aim:([^?]*)(\?(.*))", uri) -- if not match: -- print "Invalid aim URI: %s" % uri -- return -- -- command = urllib.unquote_plus(match.group(1)) -- paramstring = match.group(3) -- params = {} -- if paramstring: -- for param in paramstring.split("&"): -- key, value = extendlist(param.split("=", 1), 2, "") -- params[key] = urllib.unquote_plus(value) -- accountname = params.get("account", "") -- screenname = params.get("screenname", "") -- -- account = findaccount(protocol, accountname) -- -- if command.lower() == "goim": -- goim(account, screenname, params.get("message")) -- elif command.lower() == "gochat": -- gochat(account, params) -- elif command.lower() == "addbuddy": -- addbuddy(account, screenname, params.get("group", "")) -- --def gg(uri): -- protocol = "prpl-gg" -- match = re.match(r"^gg:(.*)", uri) -- if not match: -- print "Invalid gg URI: %s" % uri -- return -- -- screenname = urllib.unquote_plus(match.group(1)) -- account = findaccount(protocol) -- goim(account, screenname) -- --def icq(uri): -- protocol = "prpl-icq" -- match = re.match(r"^icq:([^?]*)(\?(.*))", uri) -- if not match: -- print "Invalid icq URI: %s" % uri -- return -- -- command = urllib.unquote_plus(match.group(1)) -- paramstring = match.group(3) -- params = {} -- if paramstring: -- for param in paramstring.split("&"): -- key, value = extendlist(param.split("=", 1), 2, "") -- params[key] = urllib.unquote_plus(value) -- accountname = params.get("account", "") -- screenname = params.get("screenname", "") -- -- account = findaccount(protocol, accountname) -- -- if command.lower() == "goim": -- goim(account, screenname, params.get("message")) -- elif command.lower() == "gochat": -- gochat(account, params) -- elif command.lower() == "addbuddy": -- addbuddy(account, screenname, params.get("group", "")) -- - def irc(uri): - protocol = "prpl-irc" - match = re.match(r"^irc:(//([^/]*))?/?([^?]*)(\?(.*))?", uri) -@@ -221,34 +157,6 @@ - channel = "#" + channel - gochat(account, {"server": server, "channel": channel, "password": params.get("key", "")}, params.get("msg")) - --def msnim(uri): -- protocol = "prpl-msn" -- match = re.match(r"^msnim:([^?]*)(\?(.*))", uri) -- if not match: -- print "Invalid msnim URI: %s" % uri -- return -- -- command = urllib.unquote_plus(match.group(1)) -- paramstring = match.group(3) -- params = {} -- if paramstring: -- for param in paramstring.split("&"): -- key, value = extendlist(param.split("=", 1), 2, "") -- params[key] = urllib.unquote_plus(value) -- screenname = params.get("contact", "") -- -- account = findaccount(protocol) -- -- if command.lower() == "chat": -- goim(account, screenname) -- elif command.lower() == "add": -- addbuddy(account, screenname) -- --def myim(uri): -- protocol = "prpl-myspace" -- print "TODO: send uri: ", uri -- assert False, "Not implemented" -- - def sip(uri): - protocol = "prpl-simple" - match = re.match(r"^sip:(.*)", uri) -@@ -300,57 +208,6 @@ - else: - goim(account, screenname) - --def gtalk(uri): -- protocol = "prpl-jabber" -- match = re.match(r"^gtalk:([^?]*)(\?(.*))", uri) -- if not match: -- print "Invalid gtalk URI: %s" % uri -- return -- -- command = urllib.unquote_plus(match.group(1)) -- paramstring = match.group(3) -- params = {} -- if paramstring: -- for param in paramstring.split("&"): -- key, value = extendlist(param.split("=", 1), 2, "") -- params[key] = urllib.unquote_plus(value) -- accountname = params.get("from_jid", "") -- jid = params.get("jid", "") -- -- account = findaccount(protocol, accountname) -- -- if command.lower() == "chat": -- goim(account, jid) -- elif command.lower() == "call": -- # XXX V&V prompt to establish call -- goim(account, jid) -- --def ymsgr(uri): -- protocol = "prpl-yahoo" -- match = re.match(r"^ymsgr:([^?]*)(\?([^&]*)(&(.*))?)", uri) -- if not match: -- print "Invalid ymsgr URI: %s" % uri -- return -- -- command = urllib.unquote_plus(match.group(1)) -- screenname = urllib.unquote_plus(match.group(3)) -- paramstring = match.group(5) -- params = {} -- if paramstring: -- for param in paramstring.split("&"): -- key, value = extendlist(param.split("=", 1), 2, "") -- params[key] = urllib.unquote_plus(value) -- -- account = findaccount(protocol) -- -- if command.lower() == "sendim": -- goim(account, screenname, params.get("m")) -- elif command.lower() == "chat": -- gochat(account, {"room": screenname}) -- elif command.lower() == "addfriend": -- addbuddy(account, screenname) -- -- - def main(argv=sys.argv): - if len(argv) != 2 or argv[1] == "--help" or argv[1] == "-h": - print "Usage: %s URI" % argv[0] -diff -Nur pidgin-2.10.7/libpurple/savedstatuses.c pidgin-2.10.7-nonprism/libpurple/savedstatuses.c ---- pidgin-2.10.7/libpurple/savedstatuses.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/savedstatuses.c 2013-08-16 22:52:44.582754543 -0300 -@@ -387,7 +387,6 @@ - const char *protocol; - acct_name = xmlnode_get_data(node); - protocol = xmlnode_get_attrib(node, "protocol"); -- protocol = _purple_oscar_convert(acct_name, protocol); /* XXX: Remove */ - if ((acct_name != NULL) && (protocol != NULL)) - ret->account = purple_accounts_find(acct_name, protocol); - g_free(acct_name); -diff -Nur pidgin-2.10.7/libpurple/server.h pidgin-2.10.7-nonprism/libpurple/server.h ---- pidgin-2.10.7/libpurple/server.h 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/server.h 2013-08-16 23:30:04.149920853 -0300 -@@ -69,7 +69,7 @@ - * @param who Whose attention to request. - * @param type_code An index into the prpl's attention_types list determining the type - * of the attention request command to send. 0 if prpl only defines one -- * (for example, Yahoo and MSN), but some protocols define more (MySpaceIM). -+ * , but some protocols define more. - * - * Note that you can't send arbitrary PurpleAttentionType's, because there is - * only a fixed set of attention commands. -diff -Nur pidgin-2.10.7/libpurple/status.h pidgin-2.10.7-nonprism/libpurple/status.h ---- pidgin-2.10.7/libpurple/status.h 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/status.h 2013-08-16 22:52:22.542054119 -0300 -@@ -43,8 +43,7 @@ - * one of your AIM buddies has set himself as "away." You have a - * PurpleBuddy node for this person in your buddy list. Purple wants - * to mark this buddy as "away," so it creates a new PurpleStatus. -- * The PurpleStatus has its PurpleStatusType set to the "away" state -- * for the oscar PRPL. The PurpleStatus also contains the buddy's -+ * The PurpleStatus also contains the buddy's - * away message. PurpleStatuses are sometimes saved, depending on - * the context. The current PurpleStatuses associated with each of - * your accounts are saved so that the next time you start Purple, -diff -Nur pidgin-2.10.7/libpurple/tests/check_libpurple.c pidgin-2.10.7-nonprism/libpurple/tests/check_libpurple.c ---- pidgin-2.10.7/libpurple/tests/check_libpurple.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/tests/check_libpurple.c 2013-08-16 22:55:33.731462302 -0300 -@@ -88,8 +88,6 @@ - srunner_add_suite(sr, jabber_digest_md5_suite()); - srunner_add_suite(sr, jabber_jutil_suite()); - srunner_add_suite(sr, jabber_scram_suite()); -- srunner_add_suite(sr, oscar_util_suite()); -- srunner_add_suite(sr, yahoo_util_suite()); - srunner_add_suite(sr, util_suite()); - srunner_add_suite(sr, xmlnode_suite()); - -diff -Nur pidgin-2.10.7/libpurple/tests/Makefile.am pidgin-2.10.7-nonprism/libpurple/tests/Makefile.am ---- pidgin-2.10.7/libpurple/tests/Makefile.am 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/tests/Makefile.am 2013-08-16 22:56:03.189064778 -0300 -@@ -14,8 +14,6 @@ - test_jabber_digest_md5.c \ - test_jabber_jutil.c \ - test_jabber_scram.c \ -- test_oscar_util.c \ -- test_yahoo_util.c \ - test_util.c \ - test_xmlnode.c \ - $(top_builddir)/libpurple/util.h -@@ -31,8 +29,6 @@ - - check_libpurple_LDADD=\ - $(top_builddir)/libpurple/protocols/jabber/libjabber.la \ -- $(top_builddir)/libpurple/protocols/oscar/liboscar.la \ -- $(top_builddir)/libpurple/protocols/yahoo/libymsg.la \ - $(top_builddir)/libpurple/libpurple.la \ - @CHECK_LIBS@ \ - $(GLIB_LIBS) -diff -Nur pidgin-2.10.7/libpurple/tests/Makefile.in pidgin-2.10.7-nonprism/libpurple/tests/Makefile.in ---- pidgin-2.10.7/libpurple/tests/Makefile.in 2013-02-11 07:17:23.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/tests/Makefile.in 2013-08-16 23:53:20.713146759 -0300 -@@ -65,8 +65,8 @@ - CONFIG_CLEAN_VPATH_FILES = - am__check_libpurple_SOURCES_DIST = check_libpurple.c tests.h \ - test_cipher.c test_jabber_caps.c test_jabber_digest_md5.c \ -- test_jabber_jutil.c test_jabber_scram.c test_oscar_util.c \ -- test_yahoo_util.c test_util.c test_xmlnode.c \ -+ test_jabber_jutil.c test_jabber_scram.c \ -+ test_util.c test_xmlnode.c \ - $(top_builddir)/libpurple/util.h - @HAVE_CHECK_TRUE@am_check_libpurple_OBJECTS = \ - @HAVE_CHECK_TRUE@ check_libpurple-check_libpurple.$(OBJEXT) \ -@@ -75,15 +75,11 @@ - @HAVE_CHECK_TRUE@ check_libpurple-test_jabber_digest_md5.$(OBJEXT) \ - @HAVE_CHECK_TRUE@ check_libpurple-test_jabber_jutil.$(OBJEXT) \ - @HAVE_CHECK_TRUE@ check_libpurple-test_jabber_scram.$(OBJEXT) \ --@HAVE_CHECK_TRUE@ check_libpurple-test_oscar_util.$(OBJEXT) \ --@HAVE_CHECK_TRUE@ check_libpurple-test_yahoo_util.$(OBJEXT) \ - @HAVE_CHECK_TRUE@ check_libpurple-test_util.$(OBJEXT) \ - @HAVE_CHECK_TRUE@ check_libpurple-test_xmlnode.$(OBJEXT) - check_libpurple_OBJECTS = $(am_check_libpurple_OBJECTS) - am__DEPENDENCIES_1 = - @HAVE_CHECK_TRUE@check_libpurple_DEPENDENCIES = $(top_builddir)/libpurple/protocols/jabber/libjabber.la \ --@HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/protocols/oscar/liboscar.la \ --@HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/protocols/yahoo/libymsg.la \ - @HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/libpurple.la \ - @HAVE_CHECK_TRUE@ $(am__DEPENDENCIES_1) - AM_V_lt = $(am__v_lt_@AM_V@) -@@ -177,8 +173,6 @@ - FARSTREAM_CFLAGS = @FARSTREAM_CFLAGS@ - FARSTREAM_LIBS = @FARSTREAM_LIBS@ - FGREP = @FGREP@ --GADU_CFLAGS = @GADU_CFLAGS@ --GADU_LIBS = @GADU_LIBS@ - GCONFTOOL = @GCONFTOOL@ - GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ - GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -@@ -240,8 +234,6 @@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MANIFEST_TOOL = @MANIFEST_TOOL@ --MEANWHILE_CFLAGS = @MEANWHILE_CFLAGS@ --MEANWHILE_LIBS = @MEANWHILE_LIBS@ - MKDIR_P = @MKDIR_P@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MONO_CFLAGS = @MONO_CFLAGS@ -@@ -389,8 +381,6 @@ - @HAVE_CHECK_TRUE@ test_jabber_digest_md5.c \ - @HAVE_CHECK_TRUE@ test_jabber_jutil.c \ - @HAVE_CHECK_TRUE@ test_jabber_scram.c \ --@HAVE_CHECK_TRUE@ test_oscar_util.c \ --@HAVE_CHECK_TRUE@ test_yahoo_util.c \ - @HAVE_CHECK_TRUE@ test_util.c \ - @HAVE_CHECK_TRUE@ test_xmlnode.c \ - @HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/util.h -@@ -406,8 +396,6 @@ - - @HAVE_CHECK_TRUE@check_libpurple_LDADD = \ - @HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/protocols/jabber/libjabber.la \ --@HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/protocols/oscar/liboscar.la \ --@HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/protocols/yahoo/libymsg.la \ - @HAVE_CHECK_TRUE@ $(top_builddir)/libpurple/libpurple.la \ - @HAVE_CHECK_TRUE@ @CHECK_LIBS@ \ - @HAVE_CHECK_TRUE@ $(GLIB_LIBS) -@@ -471,10 +459,8 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_jabber_digest_md5.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_jabber_jutil.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_jabber_scram.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_oscar_util.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_util.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_xmlnode.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libpurple-test_yahoo_util.Po@am__quote@ - - .c.o: - @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@@ -581,34 +567,6 @@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -c -o check_libpurple-test_jabber_scram.obj `if test -f 'test_jabber_scram.c'; then $(CYGPATH_W) 'test_jabber_scram.c'; else $(CYGPATH_W) '$(srcdir)/test_jabber_scram.c'; fi` - --check_libpurple-test_oscar_util.o: test_oscar_util.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -MT check_libpurple-test_oscar_util.o -MD -MP -MF $(DEPDIR)/check_libpurple-test_oscar_util.Tpo -c -o check_libpurple-test_oscar_util.o `test -f 'test_oscar_util.c' || echo '$(srcdir)/'`test_oscar_util.c --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/check_libpurple-test_oscar_util.Tpo $(DEPDIR)/check_libpurple-test_oscar_util.Po --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test_oscar_util.c' object='check_libpurple-test_oscar_util.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -c -o check_libpurple-test_oscar_util.o `test -f 'test_oscar_util.c' || echo '$(srcdir)/'`test_oscar_util.c -- --check_libpurple-test_oscar_util.obj: test_oscar_util.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -MT check_libpurple-test_oscar_util.obj -MD -MP -MF $(DEPDIR)/check_libpurple-test_oscar_util.Tpo -c -o check_libpurple-test_oscar_util.obj `if test -f 'test_oscar_util.c'; then $(CYGPATH_W) 'test_oscar_util.c'; else $(CYGPATH_W) '$(srcdir)/test_oscar_util.c'; fi` --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/check_libpurple-test_oscar_util.Tpo $(DEPDIR)/check_libpurple-test_oscar_util.Po --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test_oscar_util.c' object='check_libpurple-test_oscar_util.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -c -o check_libpurple-test_oscar_util.obj `if test -f 'test_oscar_util.c'; then $(CYGPATH_W) 'test_oscar_util.c'; else $(CYGPATH_W) '$(srcdir)/test_oscar_util.c'; fi` -- --check_libpurple-test_yahoo_util.o: test_yahoo_util.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -MT check_libpurple-test_yahoo_util.o -MD -MP -MF $(DEPDIR)/check_libpurple-test_yahoo_util.Tpo -c -o check_libpurple-test_yahoo_util.o `test -f 'test_yahoo_util.c' || echo '$(srcdir)/'`test_yahoo_util.c --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/check_libpurple-test_yahoo_util.Tpo $(DEPDIR)/check_libpurple-test_yahoo_util.Po --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test_yahoo_util.c' object='check_libpurple-test_yahoo_util.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -c -o check_libpurple-test_yahoo_util.o `test -f 'test_yahoo_util.c' || echo '$(srcdir)/'`test_yahoo_util.c -- --check_libpurple-test_yahoo_util.obj: test_yahoo_util.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -MT check_libpurple-test_yahoo_util.obj -MD -MP -MF $(DEPDIR)/check_libpurple-test_yahoo_util.Tpo -c -o check_libpurple-test_yahoo_util.obj `if test -f 'test_yahoo_util.c'; then $(CYGPATH_W) 'test_yahoo_util.c'; else $(CYGPATH_W) '$(srcdir)/test_yahoo_util.c'; fi` --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/check_libpurple-test_yahoo_util.Tpo $(DEPDIR)/check_libpurple-test_yahoo_util.Po --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test_yahoo_util.c' object='check_libpurple-test_yahoo_util.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -c -o check_libpurple-test_yahoo_util.obj `if test -f 'test_yahoo_util.c'; then $(CYGPATH_W) 'test_yahoo_util.c'; else $(CYGPATH_W) '$(srcdir)/test_yahoo_util.c'; fi` -- - check_libpurple-test_util.o: test_util.c - @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_libpurple_CFLAGS) $(CFLAGS) -MT check_libpurple-test_util.o -MD -MP -MF $(DEPDIR)/check_libpurple-test_util.Tpo -c -o check_libpurple-test_util.o `test -f 'test_util.c' || echo '$(srcdir)/'`test_util.c - @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/check_libpurple-test_util.Tpo $(DEPDIR)/check_libpurple-test_util.Po -diff -Nur pidgin-2.10.7/libpurple/tests/test_jabber_caps.c pidgin-2.10.7-nonprism/libpurple/tests/test_jabber_caps.c ---- pidgin-2.10.7/libpurple/tests/test_jabber_caps.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/tests/test_jabber_caps.c 2013-08-17 00:25:08.235128437 -0300 -@@ -33,7 +33,7 @@ - START_TEST(test_calculate_caps) - { - assert_caps_calculate_match("sha1", "GNjxthSckUNvAIoCCJFttjl6VL8=", -- "<query xmlns='http://jabber.org/protocol/disco#info' node='http://tkabber.jabber.ru/#GNjxthSckUNvAIoCCJFttjl6VL8='><identity category='client' type='pc' name='Tkabber'/><x xmlns='jabber:x:data' type='result'><field var='FORM_TYPE' type='hidden'><value>urn:xmpp:dataforms:softwareinfo</value></field><field var='software'><value>Tkabber</value></field><field var='software_version'><value> ( 8.5.5 )</value></field><field var='os'><value>ATmega640-16AU</value></field><field var='os_version'><value/></field></x><feature var='games:board'/><feature var='google:mail:notify'/><feature var='http://jabber.org/protocol/activity'/><feature var='http://jabber.org/protocol/bytestreams'/><feature var='http://jabber.org/protocol/chatstates'/><feature var='http://jabber.org/protocol/commands'/><feature var='http://jabber.org/protocol/commands'/><feature var='http://jabber.org/protocol/disco#info'/><feature var='http://jabber.org/protocol/disco#items'/><feature var='http://jabber.org/protocol/feature-neg'/><feature var='http://jabber.org/protocol/geoloc'/><feature var='http://jabber.org/protocol/ibb'/><feature var='http://jabber.org/protocol/iqibb'/><feature var='http://jabber.org/protocol/mood'/><feature var='http://jabber.org/protocol/muc'/><feature var='http://jabber.org/protocol/mute#ancestor'/><feature var='http://jabber.org/protocol/mute#editor'/><feature var='http://jabber.org/protocol/rosterx'/><feature var='http://jabber.org/protocol/si'/><feature var='http://jabber.org/protocol/si/profile/file-transfer'/><feature var='http://jabber.org/protocol/tune'/><feature var='jabber:iq:avatar'/><feature var='jabber:iq:browse'/><feature var='jabber:iq:dtcp'/><feature var='jabber:iq:filexfer'/><feature var='jabber:iq:ibb'/><feature var='jabber:iq:inband'/><feature var='jabber:iq:jidlink'/><feature var='jabber:iq:last'/><feature var='jabber:iq:oob'/><feature var='jabber:iq:privacy'/><feature var='jabber:iq:time'/><feature var='jabber:iq:version'/><feature var='jabber:x:data'/><feature var='jabber:x:event'/><feature var='jabber:x:oob'/><feature var='urn:xmpp:ping'/><feature var='urn:xmpp:receipts'/><feature var='urn:xmpp:time'/></query>"); -+ "<query xmlns='http://jabber.org/protocol/disco#info' node='http://tkabber.jabber.ru/#GNjxthSckUNvAIoCCJFttjl6VL8='><identity category='client' type='pc' name='Tkabber'/><x xmlns='jabber:x:data' type='result'><field var='FORM_TYPE' type='hidden'><value>urn:xmpp:dataforms:softwareinfo</value></field><field var='software'><value>Tkabber</value></field><field var='software_version'><value> ( 8.5.5 )</value></field><field var='os'><value>ATmega640-16AU</value></field><field var='os_version'><value/></field></x><feature var='games:board'/><feature var='http://jabber.org/protocol/activity'/><feature var='http://jabber.org/protocol/bytestreams'/><feature var='http://jabber.org/protocol/chatstates'/><feature var='http://jabber.org/protocol/commands'/><feature var='http://jabber.org/protocol/commands'/><feature var='http://jabber.org/protocol/disco#info'/><feature var='http://jabber.org/protocol/disco#items'/><feature var='http://jabber.org/protocol/feature-neg'/><feature var='http://jabber.org/protocol/geoloc'/><feature var='http://jabber.org/protocol/ibb'/><feature var='http://jabber.org/protocol/iqibb'/><feature var='http://jabber.org/protocol/mood'/><feature var='http://jabber.org/protocol/muc'/><feature var='http://jabber.org/protocol/mute#ancestor'/><feature var='http://jabber.org/protocol/mute#editor'/><feature var='http://jabber.org/protocol/rosterx'/><feature var='http://jabber.org/protocol/si'/><feature var='http://jabber.org/protocol/si/profile/file-transfer'/><feature var='http://jabber.org/protocol/tune'/><feature var='jabber:iq:avatar'/><feature var='jabber:iq:browse'/><feature var='jabber:iq:dtcp'/><feature var='jabber:iq:filexfer'/><feature var='jabber:iq:ibb'/><feature var='jabber:iq:inband'/><feature var='jabber:iq:jidlink'/><feature var='jabber:iq:last'/><feature var='jabber:iq:oob'/><feature var='jabber:iq:privacy'/><feature var='jabber:iq:time'/><feature var='jabber:iq:version'/><feature var='jabber:x:data'/><feature var='jabber:x:event'/><feature var='jabber:x:oob'/><feature var='urn:xmpp:ping'/><feature var='urn:xmpp:receipts'/><feature var='urn:xmpp:time'/></query>"); - } - END_TEST - -diff -Nur pidgin-2.10.7/libpurple/tests/test_jabber_jutil.c pidgin-2.10.7-nonprism/libpurple/tests/test_jabber_jutil.c ---- pidgin-2.10.7/libpurple/tests/test_jabber_jutil.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/tests/test_jabber_jutil.c 2013-08-27 22:53:21.524229291 -0300 -@@ -99,19 +99,19 @@ - - START_TEST(test_jabber_id_new) - { -- assert_valid_jid("gmail.com"); -- assert_valid_jid("gmail.com/Test"); -- assert_valid_jid("gmail.com/Test@"); -- assert_valid_jid("gmail.com/@"); -- assert_valid_jid("gmail.com/Test@alkjaweflkj"); -- assert_valid_jid("mark.doliner@gmail.com"); -- assert_valid_jid("mark.doliner@gmail.com/Test12345"); -- assert_valid_jid("mark.doliner@gmail.com/Test@12345"); -- assert_valid_jid("mark.doliner@gmail.com/Te/st@12@//345"); -+ assert_valid_jid("mail.com"); -+ assert_valid_jid("mail.com/Test"); -+ assert_valid_jid("mail.com/Test@"); -+ assert_valid_jid("mail.com/@"); -+ assert_valid_jid("mail.com/Test@alkjaweflkj"); -+ assert_valid_jid("mark.doliner@mail.com"); -+ assert_valid_jid("mark.doliner@mail.com/Test12345"); -+ assert_valid_jid("mark.doliner@mail.com/Test@12345"); -+ assert_valid_jid("mark.doliner@mail.com/Te/st@12@//345"); - assert_valid_jid("わいど@conference.jabber.org"); - assert_valid_jid("まりるーむ@conference.jabber.org"); -- assert_valid_jid("mark.doliner@gmail.com/まりるーむ"); -- assert_valid_jid("mark.doliner@gmail/stuff.org"); -+ assert_valid_jid("mark.doliner@mail.com/まりるーむ"); -+ assert_valid_jid("mark.doliner@mail/stuff.org"); - assert_valid_jid("stuart@nödåtXäYZ.se"); - assert_valid_jid("stuart@nödåtXäYZ.se/まりるーむ"); - assert_valid_jid("mark.doliner@わいど.org"); -@@ -123,17 +123,17 @@ - assert_valid_jid("pa=ul@10.0.42.230"); - assert_valid_jid("pa,ul@10.0.42.230"); - -- assert_invalid_jid("@gmail.com"); -- assert_invalid_jid("@@gmail.com"); -- assert_invalid_jid("mark.doliner@@gmail.com/Test12345"); -- assert_invalid_jid("mark@doliner@gmail.com/Test12345"); -- assert_invalid_jid("@gmail.com/Test@12345"); -+ assert_invalid_jid("@mail.com"); -+ assert_invalid_jid("@@mail.com"); -+ assert_invalid_jid("mark.doliner@@mail.com/Test12345"); -+ assert_invalid_jid("mark@doliner@mail.com/Test12345"); -+ assert_invalid_jid("@mail.com/Test@12345"); - assert_invalid_jid("/Test@12345"); - assert_invalid_jid("mark.doliner@"); - assert_invalid_jid("mark.doliner/"); -- assert_invalid_jid("mark.doliner@gmail_stuff.org"); -- assert_invalid_jid("mark.doliner@gmail[stuff.org"); -- assert_invalid_jid("mark.doliner@gmail\\stuff.org"); -+ assert_invalid_jid("mark.doliner@mail_stuff.org"); -+ assert_invalid_jid("mark.doliner@mail[stuff.org"); -+ assert_invalid_jid("mark.doliner@mail\\stuff.org"); - assert_invalid_jid("paul@[::1]124"); - assert_invalid_jid("paul@2[::1]124/as"); - assert_invalid_jid("paul@まつ.おおかみ/\x01"); -diff -Nur pidgin-2.10.7/libpurple/tests/tests.h pidgin-2.10.7-nonprism/libpurple/tests/tests.h ---- pidgin-2.10.7/libpurple/tests/tests.h 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/tests/tests.h 2013-08-16 22:56:18.999567027 -0300 -@@ -13,8 +13,6 @@ - Suite * jabber_digest_md5_suite(void); - Suite * jabber_jutil_suite(void); - Suite * jabber_scram_suite(void); --Suite * oscar_util_suite(void); --Suite * yahoo_util_suite(void); - Suite * util_suite(void); - Suite * xmlnode_suite(void); - -diff -Nur pidgin-2.10.7/libpurple/util.c pidgin-2.10.7-nonprism/libpurple/util.c ---- pidgin-2.10.7/libpurple/util.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/util.c 2013-08-16 23:29:38.062434329 -0300 -@@ -3451,8 +3451,7 @@ - * is set to TRUE if this URL is https, otherwise it is set to - * FALSE. But that change will break the API. - * -- * This is important for Yahoo! web messenger login. They now -- * force https login, and if you access the web messenger login -+ * They now force https login, and if you access the web messenger login - * page via http then it redirects you to the https version, but - * purple_util_fetch_url() ignores the "https" and attempts to - * fetch the URL via http again, which gets redirected again. -@@ -4943,18 +4942,6 @@ - return buf; - } - --const char *_purple_oscar_convert(const char *act, const char *protocol) --{ -- if (act && purple_strequal(protocol, "prpl-oscar")) { -- int i; -- for (i = 0; act[i] != '\0'; i++) -- if (!isdigit(act[i])) -- return "prpl-aim"; -- return "prpl-icq"; -- } -- return protocol; --} -- - void purple_restore_default_signal_handlers(void) - { - #ifndef _WIN32 -diff -Nur pidgin-2.10.7/libpurple/util.h pidgin-2.10.7-nonprism/libpurple/util.h ---- pidgin-2.10.7/libpurple/util.h 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/libpurple/util.h 2013-08-16 23:31:12.535403448 -0300 -@@ -456,8 +456,7 @@ - /** - * Extracts a field of data from HTML. - * -- * This is a scary function. See protocols/msn/msn.c and -- * protocols/yahoo/yahoo_profile.c for example usage. -+ * This is a scary function. - * - * @param str The string to parse. - * @param len The size of str. -@@ -1450,16 +1449,6 @@ - const char *purple_escape_filename(const char *str); - - /** -- * This is added temporarily to assist the split of oscar into aim and icq. -- * This should not be used by plugins. -- * -- * @deprecated This function should not be used in new code and should be -- * removed in 3.0.0. The aim/icq prpl split happened a long -- * time ago, and we don't need to keep migrating old data. -- */ --const char *_purple_oscar_convert(const char *act, const char *protocol); -- --/** - * Restore default signal handlers for signals which might reasonably have - * handlers. This should be called by a fork()'d child process, since child processes - * inherit the handlers of the parent. -diff -Nur pidgin-2.10.7/pidgin/gtkaccount.c pidgin-2.10.7-nonprism/pidgin/gtkaccount.c ---- pidgin-2.10.7/pidgin/gtkaccount.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkaccount.c 2013-08-27 22:45:35.495576079 -0300 -@@ -563,16 +563,11 @@ - if (value == NULL) - value = purple_account_user_split_get_default_value(split); - -- /* Google Talk default domain hackery! */ - menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu)); - item = gtk_menu_get_active(GTK_MENU(menu)); -- if (value == NULL && g_object_get_data(G_OBJECT(item), "fakegoogle") && -+ if (value == NULL && g_object_get_data(G_OBJECT(item), "") && - !strcmp(purple_account_user_split_get_text(split), _("Domain"))) -- value = "gmail.com"; -- -- if (value == NULL && g_object_get_data(G_OBJECT(item), "fakefacebook") && -- !strcmp(purple_account_user_split_get_text(split), _("Domain"))) -- value = "chat.facebook.com"; -+ value = ""; - - if (value != NULL) - gtk_entry_set_text(GTK_ENTRY(entry), value); -@@ -925,10 +920,6 @@ - model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER); - opt_entry->widget = combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(model)); - -- if (g_object_get_data(G_OBJECT(item), "fakefacebook") && -- !strcmp(opt_entry->setting, "connection_security")) -- str_value = "opportunistic_tls"; -- - /* Loop through list of PurpleKeyValuePair items */ - for (node = list; node != NULL; node = node->next) { - if (node->data != NULL) { -diff -Nur pidgin-2.10.7/pidgin/gtkblist.c pidgin-2.10.7-nonprism/pidgin/gtkblist.c ---- pidgin-2.10.7/pidgin/gtkblist.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkblist.c 2013-08-16 23:10:16.549286879 -0300 -@@ -2126,10 +2126,6 @@ - char *temp_vcard; - char *s, *c; - char *alias = NULL; -- GList *aims = NULL; -- GList *icqs = NULL; -- GList *yahoos = NULL; -- GList *msns = NULL; - GList *jabbers = NULL; - - s = temp_vcard = g_strdup(vcard); -@@ -2168,24 +2164,14 @@ - /* We only want to worry about a few fields here. */ - if (!strcmp(field, "FN")) - alias = g_strdup(value); -- else if (!strcmp(field, "X-AIM") || !strcmp(field, "X-ICQ") || -- !strcmp(field, "X-YAHOO") || !strcmp(field, "X-MSN") || -- !strcmp(field, "X-JABBER")) -+ else if (!strcmp(field, "X-JABBER")) - { - char **values = g_strsplit(value, ":", 0); - char **im; - - for (im = values; *im != NULL; im++) - { -- if (!strcmp(field, "X-AIM")) -- aims = g_list_append(aims, g_strdup(*im)); -- else if (!strcmp(field, "X-ICQ")) -- icqs = g_list_append(icqs, g_strdup(*im)); -- else if (!strcmp(field, "X-YAHOO")) -- yahoos = g_list_append(yahoos, g_strdup(*im)); -- else if (!strcmp(field, "X-MSN")) -- msns = g_list_append(msns, g_strdup(*im)); -- else if (!strcmp(field, "X-JABBER")) -+ if (!strcmp(field, "X-JABBER")) - jabbers = g_list_append(jabbers, g_strdup(*im)); - } - -@@ -2195,18 +2181,13 @@ - - g_free(temp_vcard); - -- if (aims == NULL && icqs == NULL && yahoos == NULL && -- msns == NULL && jabbers == NULL) -+ if (jabbers == NULL) - { - g_free(alias); - - return FALSE; - } - -- add_buddies_from_vcard("prpl-aim", group, aims, alias); -- add_buddies_from_vcard("prpl-icq", group, icqs, alias); -- add_buddies_from_vcard("prpl-yahoo", group, yahoos, alias); -- add_buddies_from_vcard("prpl-msn", group, msns, alias); - add_buddies_from_vcard("prpl-jabber", group, jabbers, alias); - - g_free(alias); -diff -Nur pidgin-2.10.7/pidgin/gtkdialogs.c pidgin-2.10.7-nonprism/pidgin/gtkdialogs.c ---- pidgin-2.10.7/pidgin/gtkdialogs.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkdialogs.c 2013-08-16 21:37:21.863154130 -0300 -@@ -615,16 +615,6 @@ - #endif - #endif - --#if defined(_WIN32) || defined(USE_INTERNAL_LIBGADU) -- g_string_append(str, " <b>Gadu-Gadu library (libgadu):</b> Internal<br/>"); --#else --#ifdef HAVE_LIBGADU -- g_string_append(str, " <b>Gadu-Gadu library (libgadu):</b> Enabled<br/>"); --#else -- g_string_append(str, " <b>Gadu-Gadu library (libgadu):</b> Disabled<br/>"); --#endif --#endif -- - #ifdef USE_GTKSPELL - g_string_append(str, " <b>GtkSpell:</b> Enabled<br/>"); - #else -diff -Nur pidgin-2.10.7/pidgin/gtkimhtml.c pidgin-2.10.7-nonprism/pidgin/gtkimhtml.c ---- pidgin-2.10.7/pidgin/gtkimhtml.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkimhtml.c 2013-08-16 22:59:51.862994429 -0300 -@@ -2440,7 +2440,6 @@ - static gboolean smooth_scroll_cb(gpointer data); - - /* -- <KingAnt> marv: The two IM image functions in oscar are purple_odc_send_im and purple_odc_incoming - - - [19:58] <Robot101> marv: images go into the imgstore, a refcounted... well.. hash. :) -diff -Nur pidgin-2.10.7/pidgin/gtknotify.c pidgin-2.10.7-nonprism/pidgin/gtknotify.c ---- pidgin-2.10.7/pidgin/gtknotify.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtknotify.c 2013-08-27 23:37:23.037593200 -0300 -@@ -1263,10 +1263,6 @@ - command = g_strdup_printf("xdg-open %s", escaped); - g_free(tmp); - } -- else if (purple_running_osx() == TRUE) -- { -- command = g_strdup_printf("open %s", escaped); -- } - else if (!strcmp(web_browser, "epiphany") || - !strcmp(web_browser, "galeon")) - { -@@ -1289,30 +1285,31 @@ - { - command = g_strdup_printf("kfmclient openURL %s", escaped); - /* -- * Does Konqueror have options to open in new tab -+ * Does Konqueror-libre have options to open in new tab - * and/or current window? - */ - } -- else if (!strcmp(web_browser, "mozilla") || -- !strcmp(web_browser, "mozilla-firebird") || -- !strcmp(web_browser, "firefox") || -- !strcmp(web_browser, "seamonkey")) -+ else if (!strcmp(web_browser, "iceweasel") || -+ !strcmp(web_browser, "icecat") || -+ !strcmp(web_browser, "iceape")) - { - char *args = ""; - - command = g_strdup_printf("%s %s", web_browser, escaped); - - /* -- * Firefox 0.9 and higher require a "-a firefox" option when -+ * Iceweasel-libre 0.9 and higher require a "-a iceweasel" option when - * using -remote commands. This breaks older versions of - * mozilla. So we include this other handly little string -- * when calling firefox. If the API for remote calls changes -- * any more in firefox then firefox should probably be split -+ * when calling iceweasel. If the API for remote calls changes -+ * any more in iceweasel then iceweasel should probably be split - * apart from mozilla-firebird and mozilla... but this is good - * for now. - */ -- if (!strcmp(web_browser, "firefox")) -- args = "-a firefox"; -+ if (!strcmp(web_browser, "iceweasel")) -+ args = "-a iceweasel"; -+ else if (!strcmp(web_browser, "icecat")) -+ args = "-a icecat"; - - if (place == PIDGIN_BROWSER_NEW_WINDOW) - remote_command = g_strdup_printf("%s %s -remote " -@@ -1327,58 +1324,12 @@ - "openURL(%s)", - web_browser, args, escaped); - } -- else if (!strcmp(web_browser, "netscape")) -- { -- command = g_strdup_printf("netscape %s", escaped); -- -- if (place == PIDGIN_BROWSER_NEW_WINDOW) -- { -- remote_command = g_strdup_printf("netscape -remote " -- "openURL(%s,new-window)", -- escaped); -- } -- else if (place == PIDGIN_BROWSER_CURRENT) -- { -- remote_command = g_strdup_printf("netscape -remote " -- "openURL(%s)", escaped); -- } -- } -- else if (!strcmp(web_browser, "opera")) -- { -- if (place == PIDGIN_BROWSER_NEW_WINDOW) -- command = g_strdup_printf("opera -newwindow %s", escaped); -- else if (place == PIDGIN_BROWSER_NEW_TAB) -- command = g_strdup_printf("opera -newpage %s", escaped); -- else if (place == PIDGIN_BROWSER_CURRENT) -- { -- remote_command = g_strdup_printf("opera -remote " -- "openURL(%s)", escaped); -- command = g_strdup_printf("opera %s", escaped); -- } -- else -- command = g_strdup_printf("opera %s", escaped); -- -- } -- else if (!strcmp(web_browser, "google-chrome")) -- { -- /* Google Chrome doesn't have command-line arguments that control the -- * opening of links from external calls. This is controlled solely from -- * a preference within Google Chrome. */ -- command = g_strdup_printf("google-chrome %s", escaped); -- } -- else if (!strcmp(web_browser, "chrome")) -- { -- /* Chromium doesn't have command-line arguments that control the -- * opening of links from external calls. This is controlled solely from -- * a preference within Chromium. */ -- command = g_strdup_printf("chrome %s", escaped); -- } -- else if (!strcmp(web_browser, "chromium-browser")) -+ else if (!strcmp(web_browser, "chromium")) - { -- /* Chromium doesn't have command-line arguments that control the -+ /* Chromium-libre doesn't have command-line arguments that control the - * opening of links from external calls. This is controlled solely from -- * a preference within Chromium. */ -- command = g_strdup_printf("chromium-browser %s", escaped); -+ * a preference within Chromium-libre. */ -+ command = g_strdup_printf("chromium %s", escaped); - } - else if (!strcmp(web_browser, "custom")) - { -diff -Nur pidgin-2.10.7/pidgin/gtkprefs.c pidgin-2.10.7-nonprism/pidgin/gtkprefs.c ---- pidgin-2.10.7/pidgin/gtkprefs.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkprefs.c 2013-08-27 22:55:58.523782666 -0300 -@@ -1851,24 +1851,15 @@ - - /* Sorted reverse alphabetically */ - static const struct browser possible_browsers[] = { -- {N_("Seamonkey"), "seamonkey"}, -- {N_("Opera"), "opera"}, -- {N_("Netscape"), "netscape"}, -- {N_("Mozilla"), "mozilla"}, -- {N_("Konqueror"), "kfmclient"}, -- {N_("Google Chrome"), "google-chrome"}, -- /* Do not move the line below. Code below expects gnome-open to be in -- * this list immediately after xdg-open! */ -+ {N_("Iceape-libre"), "iceape"}, -+ {N_("Konqueror-libre"), "kfmclient"}, - {N_("Desktop Default"), "xdg-open"}, - {N_("GNOME Default"), "gnome-open"}, -- {N_("Galeon"), "galeon"}, -- {N_("Firefox"), "firefox"}, -- {N_("Firebird"), "mozilla-firebird"}, -- {N_("Epiphany"), "epiphany"}, -- /* Translators: please do not translate "chromium-browser" here! */ -- {N_("Chromium (chromium-browser)"), "chromium-browser"}, -- /* Translators: please do not translate "chrome" here! */ -- {N_("Chromium (chrome)"), "chrome"} -+ {N_("Iceweasel-libre"), "iceweasel"}, -+ {N_("Icecat"), "icecat"}, -+ {N_("Epiphany-libre"), "epiphany"}, -+ /* Translators: please do not translate "chromium" here! */ -+ {N_("Chromium-libre (chromium)"), "chromium"}, - }; - static const int num_possible_browsers = G_N_ELEMENTS(possible_browsers); - diff -Nur pidgin-2.10.7/pidgin/gtkutils.c pidgin-2.10.7-nonprism/pidgin/gtkutils.c ---- pidgin-2.10.7/pidgin/gtkutils.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkutils.c 2013-08-16 19:59:22.633298587 -0300 +--- a/pidgin/gtkutils.c 2013-02-11 07:16:53.000000000 -0200 ++++ b/pidgin/gtkutils.c 2013-08-16 19:59:22.633298587 -0300 @@ -677,7 +677,6 @@ GdkPixbuf *pixbuf = NULL; GtkSizeGroup *sg; @@ -2315,2616 +65,3 @@ diff -Nur pidgin-2.10.7/pidgin/gtkutils.c pidgin-2.10.7-nonprism/pidgin/gtkutils pixbuf = pidgin_create_prpl_icon_from_prpl(plugin, PIDGIN_PRPL_ICON_SMALL, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu), -diff -Nur pidgin-2.10.7/pidgin/gtkwhiteboard.c pidgin-2.10.7-nonprism/pidgin/gtkwhiteboard.c ---- pidgin-2.10.7/pidgin/gtkwhiteboard.c 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkwhiteboard.c 2013-08-16 23:25:21.614375960 -0300 -@@ -339,13 +339,10 @@ - */ - /* XXXX because otherwise gettext will see this string, even though it's - * in an #if 0 block. Remove the XXXX if you want to use this code. -- * But, it really shouldn't be a Yahoo-specific string. ;) */ -+ */ - purple_conv_im_write(PURPLE_CONV_IM(conv), "", XXXX_("Sent Doodle request."), - PURPLE_MESSAGE_NICK | PURPLE_MESSAGE_RECV, time(NULL)); - -- yahoo_doodle_command_send_request(gc, to); -- yahoo_doodle_command_send_ready(gc, to); -- - /* Insert this 'session' in the list. At this point, it's only a requested - * session. - */ -@@ -554,15 +551,13 @@ - if(event->button == 1 && pixmap != NULL) - { - /* If the brush was never moved, express two sets of two deltas That's a -- * 'point,' but not for Yahoo! -+ * 'point,' - */ - /* if((event->x == LastX) && (event->y == LastY)) */ - if(MotionCount == 0) - { - int index; - -- /* For Yahoo!, a (0 0) indicates the end of drawing */ -- /* FIXME: Yahoo Doodle specific! */ - for(index = 0; index < 2; index++) - { - draw_list = g_list_append(draw_list, 0); -diff -Nur pidgin-2.10.7/pidgin/gtkwhiteboard.h pidgin-2.10.7-nonprism/pidgin/gtkwhiteboard.h ---- pidgin-2.10.7/pidgin/gtkwhiteboard.h 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/gtkwhiteboard.h 2013-08-27 23:28:41.018759351 -0300 -@@ -37,8 +37,7 @@ - #define BRUSH_STATE_DOWN 1 - #define BRUSH_STATE_MOTION 2 - --/* XXX: This seems duplicated with the Yahoo! Doodle prpl code. -- * XXX: How should they work together? */ -+/* XXX: How should they work together? */ - #define PALETTE_NUM_COLORS 7 - - /** -diff -Nur pidgin-2.10.7/pidgin/Makefile.am pidgin-2.10.7-nonprism/pidgin/Makefile.am ---- pidgin-2.10.7/pidgin/Makefile.am 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/Makefile.am 2013-08-16 21:03:34.936610745 -0300 -@@ -160,10 +160,6 @@ - $(GTK_LIBS) \ - $(top_builddir)/libpurple/libpurple.la - --if USE_INTERNAL_LIBGADU --INTGG_CFLAGS = -DUSE_INTERNAL_LIBGADU --endif -- - AM_CPPFLAGS = \ - -DDATADIR=\"$(datadir)\" \ - -DLIBDIR=\"$(libdir)/pidgin/\" \ -@@ -179,6 +175,5 @@ - $(GTK_CFLAGS) \ - $(DBUS_CFLAGS) \ - $(GTKSPELL_CFLAGS) \ -- $(LIBXML_CFLAGS) \ -- $(INTGG_CFLAGS) -+ $(LIBXML_CFLAGS) - endif # ENABLE_GTK -diff -Nur pidgin-2.10.7/pidgin/Makefile.in pidgin-2.10.7-nonprism/pidgin/Makefile.in ---- pidgin-2.10.7/pidgin/Makefile.in 2013-02-11 07:17:23.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/Makefile.in 2013-08-16 23:56:44.729405978 -0300 -@@ -286,8 +286,6 @@ - FARSTREAM_CFLAGS = @FARSTREAM_CFLAGS@ - FARSTREAM_LIBS = @FARSTREAM_LIBS@ - FGREP = @FGREP@ --GADU_CFLAGS = @GADU_CFLAGS@ --GADU_LIBS = @GADU_LIBS@ - GCONFTOOL = @GCONFTOOL@ - GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ - GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -@@ -349,8 +347,6 @@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MANIFEST_TOOL = @MANIFEST_TOOL@ --MEANWHILE_CFLAGS = @MEANWHILE_CFLAGS@ --MEANWHILE_LIBS = @MEANWHILE_LIBS@ - MKDIR_P = @MKDIR_P@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MONO_CFLAGS = @MONO_CFLAGS@ -@@ -645,7 +641,6 @@ - @ENABLE_GTK_TRUE@ $(GTK_LIBS) \ - @ENABLE_GTK_TRUE@ $(top_builddir)/libpurple/libpurple.la - --@ENABLE_GTK_TRUE@@USE_INTERNAL_LIBGADU_TRUE@INTGG_CFLAGS = -DUSE_INTERNAL_LIBGADU - @ENABLE_GTK_TRUE@AM_CPPFLAGS = \ - @ENABLE_GTK_TRUE@ -DDATADIR=\"$(datadir)\" \ - @ENABLE_GTK_TRUE@ -DLIBDIR=\"$(libdir)/pidgin/\" \ -diff -Nur pidgin-2.10.7/pidgin/pixmaps/emotes/default/24/default.theme.in pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/default/24/default.theme.in ---- pidgin-2.10.7/pidgin/pixmaps/emotes/default/24/default.theme.in 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/default/24/default.theme.in 2013-08-16 23:13:41.759061988 -0300 -@@ -28,8 +28,7 @@ - - - [XMPP] --# Following XEP-0038 + GTalk + our default set, in default set order --# The GTalk strings come from ticket #3307. -+# Following XEP-0038 + our default set, in default set order - happy.png :) :-) =) - excited.png :-D :-d :D :d =D =d - sad.png :-( :( -@@ -47,7 +46,7 @@ - foot-in-mouth.png :-! - shout.png >:o >:O - --# Following XEP-0038 + GTalk -+# Following XEP-0038 - angry.png >:-( >:( X-( x-( - good.png :yes: - bad.png :no: -@@ -75,515 +74,3 @@ - ! skywalker.png C:-) c:-) C:) c:) - ! monkey.png :-(|) :(|) 8-|) - ! cyclops.png O-) o-) -- -- --# Following AIM 6.1 --[AIM] --happy.png :-) :) --wink.png ;-) ;) --sad.png :-( :( --tongue.png :P :p :-P :-p --shocked.png =-O --kiss.png :-* --shout.png >:o --excited.png :-D :D --moneymouth.png :-$ --foot-in-mouth.png :-! --embarrassed.png :-[ --angel.png O:-) --thinking.png :-\\ :-/ --crying.png :'( --shut-mouth.png :-X --glasses-cool.png 8-) --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# Following Windows Live Messenger 8.1 --[MSN] --happy.png :) :-) --excited.png :D :d :-D :-d --wink.png ;) ;-) --shocked.png :-O :-o :O :o --tongue.png :-P :P :-p :p --glasses-cool.png (H) (h) --angry.png :@ :-@ --embarrassed.png :$ :-$ --confused.png :S :s :-S :-s --sad.png :( :-( --crying.png :'( --neutral.png :| :-| --devil.png (6) --angel.png (A) (a) --in_love.png (L) (l) --love-over.png (U) (u) --msn.png (M) (m) --cat.png (@) --dog.png (&) --moon.png (S) --star.png (*) --film.png (~) --musical-note.png (8) --mail.png (E) (e) --rose.png (F) (f) --rose-dead.png (W) (w) --clock.png (O) (o) --kiss.png (K) (k) --present.png (G) (g) --cake.png (^) --camera.png (P) (p) --lamp.png (I) (i) --coffee.png (C) (c) --phone.png (T) (t) --hug-left.png ({) --hug-right.png (}) --beer.png (B) (b) --drink.png (D) (d) --boy.png (Z) (z) --girl.png (X) (x) --good.png (Y) (y) --bad.png (N) (n) --vampire.png :[ :-[ --goat.png (nah) --sun.png (#) --rainbow.png (R) (r) --quiet.png :-# --teeth.png 8o| --glasses-nerdy.png 8-| --sarcastic.png ^o) --secret.png :-* --sick.png +o( --snail.png (sn) --turtle.png (tu) --plate.png (pl) --bowl.png (||) --pizza.png (pi) --soccerball.png (so) --car.png (au) --airplane.png (ap) --umbrella.png (um) --island.png (ip) --computer.png (co) --mobile.png (mp) --brb.png (brb) --rain.png (st) --highfive.png (h5) --coins.png (mo) --sheep.png (bah) --dont-know.png :^) --thinking.png *-) --thunder.png (li) --party.png <:o) --eyeroll.png 8-) --sleepy.png |-) --bunny.png ('.') --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- --# Hidden MSN emotes --cigarette.png (ci) (CI) --handcuffs.png (%) --console.png (xx) (XX) --fingers-crossed.png (yn) (YN) -- -- --# Following QQ 2006 --[QQ] --shocked.png /:O /jy /surprised --curl-lip.png /:~ /pz /curl_lip --desire.png /:* /se /desire --dazed.png /:| /dazed --party.png /8-) /dy /revel --crying.png /:< /ll /cry --bashful.png /:$ /hx /bashful --shut-mouth.png /:X /bz /shut_mouth --sleeping.png /:Z /shui /sleep --weep.png /:'( /dk /weep --embarrassed.png /:-| /gg /embarassed --pissed-off.png /:@ /fn /pissed_off --act-up.png /:P /tp /act_up --excited.png /:D /cy /toothy_smile --happy.png /:) /wx /small_smile --sad.png /:( /ng /sad --glasses-cool.png /:+ /kuk /cool --doctor.png /:# /feid /SARS --silly.png /:Q /zk /crazy --sick.png /:T /tu /vomit --snicker.png /;p /tx /titter --cute.png /;-D /ka /cute --disdain.png /;d /by /disdain --arrogant.png /;o /am /arrogant --starving.png /:g /jie /starving --sleepy.png /|-) /kun /sleepy --terror.png /:! /jk /terror --hot.png /:L /sweat --smirk.png /:> /hanx /smirk --soldier.png /:; /db /soldier --struggle.png /;f /fendou /struggle --curse.png /:-S /zhm /curse --question.png /? /yiw /question --quiet.png /;x /xu /shh --hypnotized.png /;@ /yun /dizzy --excruciating.png /:8 /zhem /excrutiating --freaked-out.png /;! /shuai /freaked_out --skeleton.png /!!! /kl /skeleton --hammer.png /xx /qiao /hammer --bye.png /bye /zj /bye --go-away.png /go /shan /go --afraid.png /shake /fad /shake --amorous.png /love /aiq /love --jump.png /jump /tiao /jump --search.png /find /zhao /search --lashes.png /& /mm /beautiful_eyebrows --pig.png /pig /zt /pig --cat.png /cat /mm /cat --dog.png /dog /xg /dog --hug-left.png /hug /yb /hug --coins.png /$ /qianc /money --lamp.png /! /dp /lightbulb --bowl.png /cup /bei /cup --cake.png /cake /dg /cake --thunder.png /li /shd /lightning --bomb.png /bome /zhd /bomb --knife.png /kn /dao /knife --soccerball.png /footb /zq /soccer --musical-note.png /music /yy /music --poop.png /shit /bb /shit --coffee.png /coffee /kf /coffee --hungry.png /eat /fan /eat --pill.png /pill /yw /pill --rose.png /rose /mg /rose --wilt.png /fade /dx /wilt --kiss.png /kiss /wen /kiss --in_love.png /heart /xin /heart --love-over.png /break /xs /broken_heart --meeting.png /meeting /hy /meeting --present.png /gift /lw /gift --phone.png /phone /dh /phone --clock.png /time /sj /time --mail.png /email /yj /email --tv.png /TV /ds /TV --sun.png /sun /ty /sun --moon.png /moon /yl /moon --good.png /strong /qiang /thumbs_up --bad.png /weak /ruo /thumbs_down --handshake.png /share /ws /handshake --victory.png /v /shl /victory --beauty.png /<J> /mn /beauty --qq.png /<QQ> /qz /qq --blowkiss.png /<L> /fw /blow_kiss --angry.png /<O> /oh /angry --liquor.png /<B> /bj /baijiu --can.png /<U> /qsh /soda --watermelon.png /<W> /xigua /watermelon --rain.png /<!!> /xy /rain --cloudy.png /<~> /duoy /cloudy --snowman.png /<Z> /xr /snowman --star.png /<*> /xixing /star --girl.png /<00> /nv /woman --boy.png /<11> /nan /man --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# Following ICQ 6.0 --[ICQ] --happy.png :-) :) --neutral.png :-$ --sad.png :-( :( --shocked.png =-O --wink.png ;-) ;) --tongue.png :-P :P :-p :p --music.png [:-} --laugh.png *JOKINGLY* --sleeping.png *TIRED* --crying.png :'( :'-( --sick.png :-! --kissed.png *KISSED* --stop.png *STOP* --kiss.png :-{} :-* --kissing.png *KISSING* --victory.png *YAHOO* --silly.png %) --embarrassed.png :-[ --devil.png ]:-> --angel.png O:-) --rose.png @}->-- --shut-mouth.png :-X :X :-x :x --bomb.png @= --thinking.png :-\\ :-/ --good.png *THUMBS\ UP* --shout.png >:o >:O :-@ --beer.png *DRINK* --excited.png :-D :D --glasses-cool.png 8-) --amorous.png *IN\ LOVE* --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# Following Yahoo! Messenger 8.1 --[Yahoo] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --hypnotized.png @-) --on-the-phone.png :)] --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --glasses-nerdy.png :-B :-b --quiet.png :-$ --drool.png =P~ =p~ --lying.png :^O :^o --call-me.png :-c --wink.png ;) ;-) --embarrassed.png :"> --mean.png :-> :> --laugh.png :)) :-)) --bye.png =; --arrogant.png [-( --thinking.png :-? --waiting.png :-w :-W --at-wits-end.png ~x( ~X( --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --clown.png :o) :O) --doh.png #-o #-O --weep.png :-< --go-away.png :-h --lashes.png ;;) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --silly.png 8-} --clap.png =D> =d> --mad-tongue.png >:P >:p --time-out.png :-t :-T --hug-left.png >:D< >:d< --love-over.png =(( --hot.png #:-S #:-s --rotfl.png =)) :-j :-J --loser.png L-) l-) --party.png <:-P <:-p --nervous.png :-SS :-Ss :-sS :-ss --cowboy.png <):) --desire.png 8-> --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- --# Hidden Yahoo emotes --alien.png =:) >-) --beat-up.png b-( B-( --chicken.png ~:> --coffee.png ~o) ~O) --cow.png 3:-O 3:-o --dance.png \\:D/ \\:d/ --rose.png @};- --dont-know.png :-L :-l --skeleton.png 8-X 8-x --lamp.png *-:) --monkey.png :(|) --coins.png $-) --peace.png :)>- --pig.png :@) --pray.png [-o< [-O< --pumpkin.png (~~) --shame.png [-X [-x --flag.png **== --clover.png %%- --musical-note.png :-" --giggle.png ;)) --worship.png ^:)^ --star.png (*) --waving.png >:/ --talktohand.png :-@ -- --# Only available after activating the Yahoo! Fighter IMVironment --male-fighter1.png o-> O-> --male-fighter2.png o=> O=> --female-fighter.png o-+ O-+ --yin-yang.png (%) -- --# Following Yahoo! Messenger 8.1 --[Yahoo JAPAN] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --hypnotized.png @-) --on-the-phone.png :)] --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --glasses-nerdy.png :-B :-b --quiet.png :-$ --drool.png =P~ =p~ --lying.png :^O :^o --call-me.png :-c --wink.png ;) ;-) --embarrassed.png :"> --mean.png :-> :> --laugh.png :)) :-)) --bye.png =; --arrogant.png [-( --thinking.png :-? --waiting.png :-w :-W --at-wits-end.png ~x( ~X( --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --clown.png :o) :O) --doh.png #-o #-O --weep.png :-< --go-away.png :-h --lashes.png ;;) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --silly.png 8-} --clap.png =D> =d> --mad-tongue.png >:P >:p --time-out.png :-t :-T --hug-left.png >:D< >:d< --love-over.png =(( --hot.png #:-S #:-s --rotfl.png =)) :-j :-J --loser.png L-) l-) --party.png <:-P <:-p --nervous.png :-SS :-Ss :-sS :-ss --cowboy.png <):) --desire.png 8-> --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) -- --# Hidden Yahoo emotes --alien.png =:) >-) --beat-up.png b-( B-( --chicken.png ~:> --coffee.png ~o) ~O) --cow.png 3:-O 3:-o --dance.png \\:D/ \\:d/ --rose.png @};- --dont-know.png :-L :-l --skeleton.png 8-X 8-x --lamp.png *-:) --monkey.png :(|) --coins.png $-) --peace.png :)>- --pig.png :@) --pray.png [-o< [-O< --pumpkin.png (~~) --shame.png [-X [-x --flag.png **== --clover.png %%- --musical-note.png :-" --giggle.png ;)) --worship.png ^:)^ --star.png (*) --waving.png >:/ --talktohand.png :-@ -- --# Only available after activating the Yahoo! Fighter IMVironment --male-fighter1.png o-> O-> --male-fighter2.png o=> O=> --female-fighter.png o-+ O-+ --yin-yang.png (%) -- -- --# Following MySpaceIM Beta 1.0.697.0 --[MySpaceIM] --excited.png :D :-D --devil.png }:) --confused.png :Z --glasses-nerdy.png B) --bulgy-eyes.png %) --freaked-out.png :E --happy.png :) :-) --amorous.png :X --laugh.png :)) --mohawk.png -: --mad-tongue.png X( --messed.png X) --glasses-nerdy.png Q) --doh.png :G --pirate.png P) --shocked.png :O --sidefrown.png :{ --sinister.png :B --smirk.png :, --neutral.png :| --tongue.png :P :p --pissed-off.png B| --wink.png ;-) ;) --sad.png :[ --kiss.png :x --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# MXit standard emoticons --[MXit] --happy.png :-) :) --sad.png :-( :( --wink.png ;-) ;) --excited.png :-D :D :-> :> --neutral.png :-| :| --shocked.png :-O :O --tongue.png :-P :P --embarrassed.png :-$ :$ --glasses-cool.png 8-) --in_love.png (H) --rose.png (F) --### Added in v3.0 --boy.png (m) --girl.png (f) --star.png (*) --chilli.png (c) --kiss.png (x) --lamp.png (i) --pissed-off.png :e :-e --shut-mouth.png :-x :x --thunder.png (z) --coffee.png (U) --mrgreen.png (G) --### Added in v5.0 --sick.png :o( --excruciating.png :-{ :{ --amorous.png :-} :} --eyeroll.png 8-o 8o --crying.png :'( --thinking.png :-? :? --drool.png :-~ :~ --sleeping.png :-z :z --lying.png :L) --glasses-nerdy.png 8-| 8| --pirate.png P-) --### Added in v5.9.7 --bored.png :-[ :[ --cold.png :-< :< --confused.png :-, :, --hungry.png :-C :C --stressed.png :-s :s -diff -Nur pidgin-2.10.7/pidgin/pixmaps/emotes/default/24/theme pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/default/24/theme ---- pidgin-2.10.7/pidgin/pixmaps/emotes/default/24/theme 2013-02-11 07:17:58.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/default/24/theme 2013-08-16 23:15:55.929941297 -0300 -@@ -28,8 +28,7 @@ - - - [XMPP] --# Following XEP-0038 + GTalk + our default set, in default set order --# The GTalk strings come from ticket #3307. -+# Following XEP-0038 + our default set, in default set order - happy.png :) :-) =) - excited.png :-D :-d :D :d =D =d - sad.png :-( :( -@@ -47,7 +46,7 @@ - foot-in-mouth.png :-! - shout.png >:o >:O - --# Following XEP-0038 + GTalk -+# Following XEP-0038 - angry.png >:-( >:( X-( x-( - good.png :yes: - bad.png :no: -@@ -75,515 +74,3 @@ - ! skywalker.png C:-) c:-) C:) c:) - ! monkey.png :-(|) :(|) 8-|) - ! cyclops.png O-) o-) -- -- --# Following AIM 6.1 --[AIM] --happy.png :-) :) --wink.png ;-) ;) --sad.png :-( :( --tongue.png :P :p :-P :-p --shocked.png =-O --kiss.png :-* --shout.png >:o --excited.png :-D :D --moneymouth.png :-$ --foot-in-mouth.png :-! --embarrassed.png :-[ --angel.png O:-) --thinking.png :-\\ :-/ --crying.png :'( --shut-mouth.png :-X --glasses-cool.png 8-) --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# Following Windows Live Messenger 8.1 --[MSN] --happy.png :) :-) --excited.png :D :d :-D :-d --wink.png ;) ;-) --shocked.png :-O :-o :O :o --tongue.png :-P :P :-p :p --glasses-cool.png (H) (h) --angry.png :@ :-@ --embarrassed.png :$ :-$ --confused.png :S :s :-S :-s --sad.png :( :-( --crying.png :'( --neutral.png :| :-| --devil.png (6) --angel.png (A) (a) --in_love.png (L) (l) --love-over.png (U) (u) --msn.png (M) (m) --cat.png (@) --dog.png (&) --moon.png (S) --star.png (*) --film.png (~) --musical-note.png (8) --mail.png (E) (e) --rose.png (F) (f) --rose-dead.png (W) (w) --clock.png (O) (o) --kiss.png (K) (k) --present.png (G) (g) --cake.png (^) --camera.png (P) (p) --lamp.png (I) (i) --coffee.png (C) (c) --phone.png (T) (t) --hug-left.png ({) --hug-right.png (}) --beer.png (B) (b) --drink.png (D) (d) --boy.png (Z) (z) --girl.png (X) (x) --good.png (Y) (y) --bad.png (N) (n) --vampire.png :[ :-[ --goat.png (nah) --sun.png (#) --rainbow.png (R) (r) --quiet.png :-# --teeth.png 8o| --glasses-nerdy.png 8-| --sarcastic.png ^o) --secret.png :-* --sick.png +o( --snail.png (sn) --turtle.png (tu) --plate.png (pl) --bowl.png (||) --pizza.png (pi) --soccerball.png (so) --car.png (au) --airplane.png (ap) --umbrella.png (um) --island.png (ip) --computer.png (co) --mobile.png (mp) --brb.png (brb) --rain.png (st) --highfive.png (h5) --coins.png (mo) --sheep.png (bah) --dont-know.png :^) --thinking.png *-) --thunder.png (li) --party.png <:o) --eyeroll.png 8-) --sleepy.png |-) --bunny.png ('.') --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- --# Hidden MSN emotes --cigarette.png (ci) (CI) --handcuffs.png (%) --console.png (xx) (XX) --fingers-crossed.png (yn) (YN) -- -- --# Following QQ 2006 --[QQ] --shocked.png /:O /jy /surprised --curl-lip.png /:~ /pz /curl_lip --desire.png /:* /se /desire --dazed.png /:| /dazed --party.png /8-) /dy /revel --crying.png /:< /ll /cry --bashful.png /:$ /hx /bashful --shut-mouth.png /:X /bz /shut_mouth --sleeping.png /:Z /shui /sleep --weep.png /:'( /dk /weep --embarrassed.png /:-| /gg /embarassed --pissed-off.png /:@ /fn /pissed_off --act-up.png /:P /tp /act_up --excited.png /:D /cy /toothy_smile --happy.png /:) /wx /small_smile --sad.png /:( /ng /sad --glasses-cool.png /:+ /kuk /cool --doctor.png /:# /feid /SARS --silly.png /:Q /zk /crazy --sick.png /:T /tu /vomit --snicker.png /;p /tx /titter --cute.png /;-D /ka /cute --disdain.png /;d /by /disdain --arrogant.png /;o /am /arrogant --starving.png /:g /jie /starving --sleepy.png /|-) /kun /sleepy --terror.png /:! /jk /terror --hot.png /:L /sweat --smirk.png /:> /hanx /smirk --soldier.png /:; /db /soldier --struggle.png /;f /fendou /struggle --curse.png /:-S /zhm /curse --question.png /? /yiw /question --quiet.png /;x /xu /shh --hypnotized.png /;@ /yun /dizzy --excruciating.png /:8 /zhem /excrutiating --freaked-out.png /;! /shuai /freaked_out --skeleton.png /!!! /kl /skeleton --hammer.png /xx /qiao /hammer --bye.png /bye /zj /bye --go-away.png /go /shan /go --afraid.png /shake /fad /shake --amorous.png /love /aiq /love --jump.png /jump /tiao /jump --search.png /find /zhao /search --lashes.png /& /mm /beautiful_eyebrows --pig.png /pig /zt /pig --cat.png /cat /mm /cat --dog.png /dog /xg /dog --hug-left.png /hug /yb /hug --coins.png /$ /qianc /money --lamp.png /! /dp /lightbulb --bowl.png /cup /bei /cup --cake.png /cake /dg /cake --thunder.png /li /shd /lightning --bomb.png /bome /zhd /bomb --knife.png /kn /dao /knife --soccerball.png /footb /zq /soccer --musical-note.png /music /yy /music --poop.png /shit /bb /shit --coffee.png /coffee /kf /coffee --hungry.png /eat /fan /eat --pill.png /pill /yw /pill --rose.png /rose /mg /rose --wilt.png /fade /dx /wilt --kiss.png /kiss /wen /kiss --in_love.png /heart /xin /heart --love-over.png /break /xs /broken_heart --meeting.png /meeting /hy /meeting --present.png /gift /lw /gift --phone.png /phone /dh /phone --clock.png /time /sj /time --mail.png /email /yj /email --tv.png /TV /ds /TV --sun.png /sun /ty /sun --moon.png /moon /yl /moon --good.png /strong /qiang /thumbs_up --bad.png /weak /ruo /thumbs_down --handshake.png /share /ws /handshake --victory.png /v /shl /victory --beauty.png /<J> /mn /beauty --qq.png /<QQ> /qz /qq --blowkiss.png /<L> /fw /blow_kiss --angry.png /<O> /oh /angry --liquor.png /<B> /bj /baijiu --can.png /<U> /qsh /soda --watermelon.png /<W> /xigua /watermelon --rain.png /<!!> /xy /rain --cloudy.png /<~> /duoy /cloudy --snowman.png /<Z> /xr /snowman --star.png /<*> /xixing /star --girl.png /<00> /nv /woman --boy.png /<11> /nan /man --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# Following ICQ 6.0 --[ICQ] --happy.png :-) :) --neutral.png :-$ --sad.png :-( :( --shocked.png =-O --wink.png ;-) ;) --tongue.png :-P :P :-p :p --music.png [:-} --laugh.png *JOKINGLY* --sleeping.png *TIRED* --crying.png :'( :'-( --sick.png :-! --kissed.png *KISSED* --stop.png *STOP* --kiss.png :-{} :-* --kissing.png *KISSING* --victory.png *YAHOO* --silly.png %) --embarrassed.png :-[ --devil.png ]:-> --angel.png O:-) --rose.png @}->-- --shut-mouth.png :-X :X :-x :x --bomb.png @= --thinking.png :-\\ :-/ --good.png *THUMBS\ UP* --shout.png >:o >:O :-@ --beer.png *DRINK* --excited.png :-D :D --glasses-cool.png 8-) --amorous.png *IN\ LOVE* --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# Following Yahoo! Messenger 8.1 --[Yahoo] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --hypnotized.png @-) --on-the-phone.png :)] --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --glasses-nerdy.png :-B :-b --quiet.png :-$ --drool.png =P~ =p~ --lying.png :^O :^o --call-me.png :-c --wink.png ;) ;-) --embarrassed.png :"> --mean.png :-> :> --laugh.png :)) :-)) --bye.png =; --arrogant.png [-( --thinking.png :-? --waiting.png :-w :-W --at-wits-end.png ~x( ~X( --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --clown.png :o) :O) --doh.png #-o #-O --weep.png :-< --go-away.png :-h --lashes.png ;;) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --silly.png 8-} --clap.png =D> =d> --mad-tongue.png >:P >:p --time-out.png :-t :-T --hug-left.png >:D< >:d< --love-over.png =(( --hot.png #:-S #:-s --rotfl.png =)) :-j :-J --loser.png L-) l-) --party.png <:-P <:-p --nervous.png :-SS :-Ss :-sS :-ss --cowboy.png <):) --desire.png 8-> --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- --# Hidden Yahoo emotes --alien.png =:) >-) --beat-up.png b-( B-( --chicken.png ~:> --coffee.png ~o) ~O) --cow.png 3:-O 3:-o --dance.png \\:D/ \\:d/ --rose.png @};- --dont-know.png :-L :-l --skeleton.png 8-X 8-x --lamp.png *-:) --monkey.png :(|) --coins.png $-) --peace.png :)>- --pig.png :@) --pray.png [-o< [-O< --pumpkin.png (~~) --shame.png [-X [-x --flag.png **== --clover.png %%- --musical-note.png :-" --giggle.png ;)) --worship.png ^:)^ --star.png (*) --waving.png >:/ --talktohand.png :-@ -- --# Only available after activating the Yahoo! Fighter IMVironment --male-fighter1.png o-> O-> --male-fighter2.png o=> O=> --female-fighter.png o-+ O-+ --yin-yang.png (%) -- --# Following Yahoo! Messenger 8.1 --[Yahoo JAPAN] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --hypnotized.png @-) --on-the-phone.png :)] --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --glasses-nerdy.png :-B :-b --quiet.png :-$ --drool.png =P~ =p~ --lying.png :^O :^o --call-me.png :-c --wink.png ;) ;-) --embarrassed.png :"> --mean.png :-> :> --laugh.png :)) :-)) --bye.png =; --arrogant.png [-( --thinking.png :-? --waiting.png :-w :-W --at-wits-end.png ~x( ~X( --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --clown.png :o) :O) --doh.png #-o #-O --weep.png :-< --go-away.png :-h --lashes.png ;;) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --silly.png 8-} --clap.png =D> =d> --mad-tongue.png >:P >:p --time-out.png :-t :-T --hug-left.png >:D< >:d< --love-over.png =(( --hot.png #:-S #:-s --rotfl.png =)) :-j :-J --loser.png L-) l-) --party.png <:-P <:-p --nervous.png :-SS :-Ss :-sS :-ss --cowboy.png <):) --desire.png 8-> --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) -- --# Hidden Yahoo emotes --alien.png =:) >-) --beat-up.png b-( B-( --chicken.png ~:> --coffee.png ~o) ~O) --cow.png 3:-O 3:-o --dance.png \\:D/ \\:d/ --rose.png @};- --dont-know.png :-L :-l --skeleton.png 8-X 8-x --lamp.png *-:) --monkey.png :(|) --coins.png $-) --peace.png :)>- --pig.png :@) --pray.png [-o< [-O< --pumpkin.png (~~) --shame.png [-X [-x --flag.png **== --clover.png %%- --musical-note.png :-" --giggle.png ;)) --worship.png ^:)^ --star.png (*) --waving.png >:/ --talktohand.png :-@ -- --# Only available after activating the Yahoo! Fighter IMVironment --male-fighter1.png o-> O-> --male-fighter2.png o=> O=> --female-fighter.png o-+ O-+ --yin-yang.png (%) -- -- --# Following MySpaceIM Beta 1.0.697.0 --[MySpaceIM] --excited.png :D :-D --devil.png }:) --confused.png :Z --glasses-nerdy.png B) --bulgy-eyes.png %) --freaked-out.png :E --happy.png :) :-) --amorous.png :X --laugh.png :)) --mohawk.png -: --mad-tongue.png X( --messed.png X) --glasses-nerdy.png Q) --doh.png :G --pirate.png P) --shocked.png :O --sidefrown.png :{ --sinister.png :B --smirk.png :, --neutral.png :| --tongue.png :P :p --pissed-off.png B| --wink.png ;-) ;) --sad.png :[ --kiss.png :x --! skywalker.png C:-) c:-) C:) c:) --! monkey.png :-(|) :(|) 8-|) --! cyclops.png O-) o-) -- -- --# MXit standard emoticons --[MXit] --happy.png :-) :) --sad.png :-( :( --wink.png ;-) ;) --excited.png :-D :D :-> :> --neutral.png :-| :| --shocked.png :-O :O --tongue.png :-P :P --embarrassed.png :-$ :$ --glasses-cool.png 8-) --in_love.png (H) --rose.png (F) --### Added in v3.0 --boy.png (m) --girl.png (f) --star.png (*) --chilli.png (c) --kiss.png (x) --lamp.png (i) --pissed-off.png :e :-e --shut-mouth.png :-x :x --thunder.png (z) --coffee.png (U) --mrgreen.png (G) --### Added in v5.0 --sick.png :o( --excruciating.png :-{ :{ --amorous.png :-} :} --eyeroll.png 8-o 8o --crying.png :'( --thinking.png :-? :? --drool.png :-~ :~ --sleeping.png :-z :z --lying.png :L) --glasses-nerdy.png 8-| 8| --pirate.png P-) --### Added in v5.9.7 --bored.png :-[ :[ --cold.png :-< :< --confused.png :-, :, --hungry.png :-C :C --stressed.png :-s :s -diff -Nur pidgin-2.10.7/pidgin/pixmaps/emotes/small/16/small.theme.in pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/small/16/small.theme.in ---- pidgin-2.10.7/pidgin/pixmaps/emotes/small/16/small.theme.in 2013-02-11 07:16:54.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/small/16/small.theme.in 2013-08-16 23:19:01.815778718 -0300 -@@ -22,8 +22,7 @@ - - - [XMPP] --# Following XEP-0038 + GTalk + our default set, in default set order --# The GTalk strings come from ticket #3307. -+# Following XEP-0038 + our default set, in default set order - happy.png :) :-) =) - excited.png :-D :-d :D :d =D =d - sad.png :-( :( -@@ -38,7 +37,7 @@ - angel.png O:-) o:-) - shut-mouth.png :-X - --# Following XEP-0038 + GTalk -+# Following XEP-0038 - angry.png >:-( >:( X-( x-( - rose.png @->-- :rose: - phone.png :telephone: -@@ -53,269 +52,3 @@ - neutral.png :| :-| - - # Hidden icons from the default set. -- -- --# Following AIM 6.1 --[AIM] --happy.png :-) :) --wink.png ;-) ;) --sad.png :-( :( --tongue.png :P :p :-P :-p --shocked.png =-O --kiss.png :-* --excited.png :-D :D --embarrassed.png :-[ --angel.png O:-) --thinking.png :-\\ :-/ --crying.png :'( --shut-mouth.png :-X --glasses-cool.png 8-) -- -- --# Following Windows Live Messenger 8.1 --[MSN] --happy.png :) :-) --excited.png :D :d :-D :-d --wink.png ;) ;-) --shocked.png :-O :-o :O :o --tongue.png :-P :P :-p :p --glasses-cool.png (H) (h) --angry.png :@ :-@ --embarrassed.png :$ :-$ --confused.png :S :s :-S :-s --sad.png :( :-( --crying.png :'( --neutral.png :| :-| --devil.png (6) --angel.png (A) (a) --in_love.png (L) (l) --star.png (*) --musical-note.png (8) --rose.png (F) (f) --kiss.png (K) (k) --camera.png (P) (p) --lamp.png (I) (i) --coffee.png (C) (c) --phone.png (T) (t) --hug-left.png ({) --hug-right.png (}) --beer.png (B) (b) --boy.png (Z) (z) --girl.png (X) (x) --sarcastic.png ^o) --sick.png +o( --plate.png (pl) --mobile.png (mp) --dont-know.png :^) --thinking.png *-) --thunder.png (li) --party.png <:o) --eyeroll.png 8-) --sleepy.png |-) -- --# Hidden MSN emotes --cigarette.png (ci) (CI) --console.png (xx) (XX) -- -- --# Following QQ 2006 --[QQ] --shocked.png /:O /jy /surprised --party.png /8-) /dy /revel --crying.png /:< /ll /cry --shut-mouth.png /:X /bz /shut_mouth --sleeping.png /:Z /shui /sleep --embarrassed.png /:-| /gg /embarassed --pissed-off.png /:@ /fn /pissed_off --excited.png /:D /cy /toothy_smile --happy.png /:) /wx /small_smile --sad.png /:( /ng /sad --glasses-cool.png /:+ /kuk /cool --sick.png /:T /tu /vomit --sleepy.png /|-) /kun /sleepy --hot.png /:L /sweat --question.png /? /yiw /question --excruciating.png /:8 /zhem /excrutiating --afraid.png /shake /fad /shake --amorous.png /love /aiq /love --search.png /find /zhao /search --hug-left.png /hug /yb /hug --lamp.png /! /dp /lightbulb --thunder.png /li /shd /lightning --musical-note.png /music /yy /music --coffee.png /coffee /kf /coffee --hungry.png /eat /fan /eat --rose.png /rose /mg /rose --kiss.png /kiss /wen /kiss --in_love.png /heart /xin /heart --meeting.png /meeting /hy /meeting --phone.png /phone /dh /phone --tv.png /TV /ds /TV --angry.png /<O> /oh /angry --girl.png /<00> /nv /woman --boy.png /<11> /nan /man -- -- --# Following ICQ 6.0 --[ICQ] --happy.png :-) :) --neutral.png :-$ --sad.png :-( :( --shocked.png =-O --wink.png ;-) ;) --tongue.png :-P :P :-p :p --music.png [:-} --sleeping.png *TIRED* --crying.png :'( :'-( --sick.png :-! --kiss.png :-{} :-* --embarrassed.png :-[ --devil.png ]:-> --angel.png O:-) --rose.png @}->-- --shut-mouth.png :-X :X :-x :x --thinking.png :-\\ :-/ --beer.png *DRINK* --excited.png :-D :D --glasses-cool.png 8-) --amorous.png *IN\ LOVE* -- -- --# Following Yahoo! Messenger 8.1 --[Yahoo] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --drool.png =P~ =p~ --lying.png :^O :^o --wink.png ;) ;-) --embarrassed.png :"> --mean.png :-> :> --thinking.png :-? --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --hug-left.png >:D< >:d< --hot.png #:-S #:-s --party.png <:-P <:-p --nervous.png :-SS :-Ss :-sS :-ss -- --# Hidden Yahoo emotes --coffee.png ~o) ~O) --rose.png @};- --dont-know.png :-L :-l --lamp.png *-:) --shame.png [-X [-x --musical-note.png :-" --star.png (*) -- --# Following Yahoo! Messenger 8.1 --[Yahoo JAPAN] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --wink.png ;) ;-) --thinking.png :-? --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --hug-left.png >:D< >:d< --party.png <:-P <:-p -- --# Hidden Yahoo emotes --coffee.png ~o) ~O) --rose.png @};- --dont-know.png :-L :-l --lamp.png *-:) --shame.png [-X [-x --musical-note.png :-" --star.png (*) -- -- --# Following MySpaceIM Beta 1.0.697.0 --[MySpaceIM] --excited.png :D :-D --devil.png }:) --confused.png :Z --happy.png :) :-) --amorous.png :X --pirate.png P) --shocked.png :O --neutral.png :| --tongue.png :P :p --pissed-off.png B| --wink.png ;-) ;) --sad.png :[ --kiss.png :x -- --# MXit standard emoticons --[MXit] --happy.png :-) :) --sad.png :-( :( --wink.png ;-) ;) --excited.png :-D :D :-> :> --neutral.png :-| :| --shocked.png :-O :O --tongue.png :-P :P --embarrassed.png :-$ :$ --glasses-cool.png 8-) --in_love.png (H) --rose.png (F) --### Added in v3.0 --boy.png (m) --girl.png (f) --star.png (*) --chilli.png (c) --kiss.png (x) --lamp.png (i) --pissed-off.png :e :-e --shut-mouth.png :-x :x --thunder.png (z) --coffee.png (U) --mrgreen.png (G) --### Added in v5.0 --sick.png :o( --excruciating.png :-{ :{ --amorous.png :-} :} --eyeroll.png 8-o 8o --crying.png :'( --thinking.png :-? :? --drool.png :-~ :~ --sleeping.png :-z :z --lying.png :L) --glasses-nerdy.png 8-| 8| --pirate.png P-) --### Added in v5.9.7 --bored.png :-[ :[ --cold.png :-< :< --confused.png :-, :, --hungry.png :-C :C --stressed.png :-s :s -diff -Nur pidgin-2.10.7/pidgin/pixmaps/emotes/small/16/theme pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/small/16/theme ---- pidgin-2.10.7/pidgin/pixmaps/emotes/small/16/theme 2013-02-11 07:17:58.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/pixmaps/emotes/small/16/theme 2013-08-16 23:17:03.828740061 -0300 -@@ -22,8 +22,7 @@ - - - [XMPP] --# Following XEP-0038 + GTalk + our default set, in default set order --# The GTalk strings come from ticket #3307. -+# Following XEP-0038 + our default set, in default set order - happy.png :) :-) =) - excited.png :-D :-d :D :d =D =d - sad.png :-( :( -@@ -38,7 +37,7 @@ - angel.png O:-) o:-) - shut-mouth.png :-X - --# Following XEP-0038 + GTalk -+# Following XEP-0038 - angry.png >:-( >:( X-( x-( - rose.png @->-- :rose: - phone.png :telephone: -@@ -53,269 +52,3 @@ - neutral.png :| :-| - - # Hidden icons from the default set. -- -- --# Following AIM 6.1 --[AIM] --happy.png :-) :) --wink.png ;-) ;) --sad.png :-( :( --tongue.png :P :p :-P :-p --shocked.png =-O --kiss.png :-* --excited.png :-D :D --embarrassed.png :-[ --angel.png O:-) --thinking.png :-\\ :-/ --crying.png :'( --shut-mouth.png :-X --glasses-cool.png 8-) -- -- --# Following Windows Live Messenger 8.1 --[MSN] --happy.png :) :-) --excited.png :D :d :-D :-d --wink.png ;) ;-) --shocked.png :-O :-o :O :o --tongue.png :-P :P :-p :p --glasses-cool.png (H) (h) --angry.png :@ :-@ --embarrassed.png :$ :-$ --confused.png :S :s :-S :-s --sad.png :( :-( --crying.png :'( --neutral.png :| :-| --devil.png (6) --angel.png (A) (a) --in_love.png (L) (l) --star.png (*) --musical-note.png (8) --rose.png (F) (f) --kiss.png (K) (k) --camera.png (P) (p) --lamp.png (I) (i) --coffee.png (C) (c) --phone.png (T) (t) --hug-left.png ({) --hug-right.png (}) --beer.png (B) (b) --boy.png (Z) (z) --girl.png (X) (x) --sarcastic.png ^o) --sick.png +o( --plate.png (pl) --mobile.png (mp) --dont-know.png :^) --thinking.png *-) --thunder.png (li) --party.png <:o) --eyeroll.png 8-) --sleepy.png |-) -- --# Hidden MSN emotes --cigarette.png (ci) (CI) --console.png (xx) (XX) -- -- --# Following QQ 2006 --[QQ] --shocked.png /:O /jy /surprised --party.png /8-) /dy /revel --crying.png /:< /ll /cry --shut-mouth.png /:X /bz /shut_mouth --sleeping.png /:Z /shui /sleep --embarrassed.png /:-| /gg /embarassed --pissed-off.png /:@ /fn /pissed_off --excited.png /:D /cy /toothy_smile --happy.png /:) /wx /small_smile --sad.png /:( /ng /sad --glasses-cool.png /:+ /kuk /cool --sick.png /:T /tu /vomit --sleepy.png /|-) /kun /sleepy --hot.png /:L /sweat --question.png /? /yiw /question --excruciating.png /:8 /zhem /excrutiating --afraid.png /shake /fad /shake --amorous.png /love /aiq /love --search.png /find /zhao /search --hug-left.png /hug /yb /hug --lamp.png /! /dp /lightbulb --thunder.png /li /shd /lightning --musical-note.png /music /yy /music --coffee.png /coffee /kf /coffee --hungry.png /eat /fan /eat --rose.png /rose /mg /rose --kiss.png /kiss /wen /kiss --in_love.png /heart /xin /heart --meeting.png /meeting /hy /meeting --phone.png /phone /dh /phone --tv.png /TV /ds /TV --angry.png /<O> /oh /angry --girl.png /<00> /nv /woman --boy.png /<11> /nan /man -- -- --# Following ICQ 6.0 --[ICQ] --happy.png :-) :) --neutral.png :-$ --sad.png :-( :( --shocked.png =-O --wink.png ;-) ;) --tongue.png :-P :P :-p :p --music.png [:-} --sleeping.png *TIRED* --crying.png :'( :'-( --sick.png :-! --kiss.png :-{} :-* --embarrassed.png :-[ --devil.png ]:-> --angel.png O:-) --rose.png @}->-- --shut-mouth.png :-X :X :-x :x --thinking.png :-\\ :-/ --beer.png *DRINK* --excited.png :-D :D --glasses-cool.png 8-) --amorous.png *IN\ LOVE* -- -- --# Following Yahoo! Messenger 8.1 --[Yahoo] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --drool.png =P~ =p~ --lying.png :^O :^o --wink.png ;) ;-) --embarrassed.png :"> --mean.png :-> :> --thinking.png :-? --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --hug-left.png >:D< >:d< --hot.png #:-S #:-s --party.png <:-P <:-p --nervous.png :-SS :-Ss :-sS :-ss -- --# Hidden Yahoo emotes --coffee.png ~o) ~O) --rose.png @};- --dont-know.png :-L :-l --lamp.png *-:) --shame.png [-X [-x --musical-note.png :-" --star.png (*) -- --# Following Yahoo! Messenger 8.1 --[Yahoo JAPAN] --happy.png :) :-) --question.png :-/ :-\\ --shocked.png :-O :O :-o :o --devil.png >:) --angel.png O:-) o:-) 0:-) --sick.png :-& --sleepy.png (:| --sad.png :( :-( --amorous.png :x :-x :X :-X --angry.png X-( x-( X( x( --crying.png :(( --wink.png ;) ;-) --thinking.png :-? --excited.png :D :-D :d :-d --tongue.png :-P :P :-p :p --glasses-cool.png B-) b-) --neutral.png :| :-| --sleeping.png I-) i-) |-) --kiss.png :-* :* --confused.png :-S :-s --sarcastic.png /:) --eyeroll.png 8-| --hug-left.png >:D< >:d< --party.png <:-P <:-p -- --# Hidden Yahoo emotes --coffee.png ~o) ~O) --rose.png @};- --dont-know.png :-L :-l --lamp.png *-:) --shame.png [-X [-x --musical-note.png :-" --star.png (*) -- -- --# Following MySpaceIM Beta 1.0.697.0 --[MySpaceIM] --excited.png :D :-D --devil.png }:) --confused.png :Z --happy.png :) :-) --amorous.png :X --pirate.png P) --shocked.png :O --neutral.png :| --tongue.png :P :p --pissed-off.png B| --wink.png ;-) ;) --sad.png :[ --kiss.png :x -- --# MXit standard emoticons --[MXit] --happy.png :-) :) --sad.png :-( :( --wink.png ;-) ;) --excited.png :-D :D :-> :> --neutral.png :-| :| --shocked.png :-O :O --tongue.png :-P :P --embarrassed.png :-$ :$ --glasses-cool.png 8-) --in_love.png (H) --rose.png (F) --### Added in v3.0 --boy.png (m) --girl.png (f) --star.png (*) --chilli.png (c) --kiss.png (x) --lamp.png (i) --pissed-off.png :e :-e --shut-mouth.png :-x :x --thunder.png (z) --coffee.png (U) --mrgreen.png (G) --### Added in v5.0 --sick.png :o( --excruciating.png :-{ :{ --amorous.png :-} :} --eyeroll.png 8-o 8o --crying.png :'( --thinking.png :-? :? --drool.png :-~ :~ --sleeping.png :-z :z --lying.png :L) --glasses-nerdy.png 8-| 8| --pirate.png P-) --### Added in v5.9.7 --bored.png :-[ :[ --cold.png :-< :< --confused.png :-, :, --hungry.png :-C :C --stressed.png :-s :s -diff -Nur pidgin-2.10.7/pidgin/pixmaps/Makefile.am pidgin-2.10.7-nonprism/pidgin/pixmaps/Makefile.am ---- pidgin-2.10.7/pidgin/pixmaps/Makefile.am 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/pixmaps/Makefile.am 2013-08-17 00:00:17.335924146 -0300 -@@ -204,37 +204,19 @@ - emotes/small/16/scalable/pidgin-emotes.svg - - PROTOCOLS_16_SCALABLE = \ -- protocols/16/scalable/aim.svg \ - protocols/16/scalable/bonjour.svg \ -- protocols/16/scalable/gadu-gadu.svg \ -- protocols/16/scalable/novell.svg \ -- protocols/16/scalable/icq.svg \ - protocols/16/scalable/irc.svg \ - protocols/16/scalable/jabber.svg \ -- protocols/16/scalable/meanwhile.svg \ -- protocols/16/scalable/msn.svg \ - protocols/16/scalable/silc.svg \ - protocols/16/scalable/simple.svg \ -- protocols/16/scalable/yahoo.svg \ - protocols/16/scalable/zephyr.svg - - PROTOCOLS_16 = \ -- protocols/16/aim.png \ - protocols/16/bonjour.png \ -- protocols/16/facebook.png \ -- protocols/16/gadu-gadu.png \ -- protocols/16/google-talk.png \ -- protocols/16/novell.png \ -- protocols/16/icq.png \ - protocols/16/irc.png \ - protocols/16/jabber.png \ -- protocols/16/meanwhile.png \ -- protocols/16/msn.png \ -- protocols/16/mxit.png \ -- protocols/16/myspace.png \ - protocols/16/silc.png \ - protocols/16/simple.png \ -- protocols/16/yahoo.png \ - protocols/16/zephyr.png - - ICONS_16_SCALABLE = \ -@@ -259,72 +241,35 @@ - ICONS_SCALABLE = icons/hicolor/scalable/apps/pidgin.svg - - PROTOCOLS_22_SCALABLE = \ -- protocols/22/scalable/aim.svg \ - protocols/22/scalable/bonjour.svg \ -- protocols/22/scalable/gadu-gadu.svg \ -- protocols/22/scalable/novell.svg \ -- protocols/22/scalable/icq.svg \ - protocols/22/scalable/irc.svg \ - protocols/22/scalable/jabber.svg \ -- protocols/22/scalable/meanwhile.svg \ -- protocols/22/scalable/msn.svg \ - protocols/22/scalable/silc.svg \ - protocols/22/scalable/simple.svg \ -- protocols/22/scalable/yahoo.svg \ - protocols/22/scalable/zephyr.svg - - PROTOCOLS_22 = \ -- protocols/22/aim.png \ - protocols/22/bonjour.png \ -- protocols/22/facebook.png \ -- protocols/22/gadu-gadu.png \ -- protocols/22/google-talk.png \ -- protocols/22/novell.png \ -- protocols/22/icq.png \ - protocols/22/irc.png \ - protocols/22/jabber.png \ -- protocols/22/meanwhile.png \ -- protocols/22/msn.png \ -- protocols/22/mxit.png \ -- protocols/22/myspace.png \ - protocols/22/silc.png \ - protocols/22/simple.png \ -- protocols/22/yahoo.png \ - protocols/22/zephyr.png - - PROTOCOLS_48 = \ -- protocols/48/aim.png \ - protocols/48/bonjour.png \ -- protocols/48/facebook.png \ -- protocols/48/gadu-gadu.png \ -- protocols/48/novell.png \ -- protocols/48/icq.png \ - protocols/48/irc.png \ - protocols/48/jabber.png \ -- protocols/48/meanwhile.png \ -- protocols/48/msn.png \ -- protocols/48/mxit.png \ -- protocols/48/myspace.png \ - protocols/48/silc.png \ - protocols/48/simple.png \ -- protocols/48/yahoo.png \ - protocols/48/zephyr.png - - PROTOCOLS_SCALABLE = \ -- protocols/scalable/aim.svg \ - protocols/scalable/bonjour.svg \ -- protocols/scalable/gadu-gadu.svg \ -- protocols/scalable/google-talk.svg \ -- protocols/scalable/novell.svg \ -- protocols/scalable/icq.svg \ - protocols/scalable/irc.svg \ - protocols/scalable/jabber.svg \ -- protocols/scalable/meanwhile.svg \ -- protocols/scalable/msn.svg \ -- protocols/scalable/mxit.svg \ - protocols/scalable/silc.svg \ - protocols/scalable/simple.svg \ -- protocols/scalable/yahoo.svg \ - protocols/scalable/zephyr.svg - - STATUS_11 = \ -diff -Nur pidgin-2.10.7/pidgin/pixmaps/Makefile.in pidgin-2.10.7-nonprism/pidgin/pixmaps/Makefile.in ---- pidgin-2.10.7/pidgin/pixmaps/Makefile.in 2013-02-11 07:17:23.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/pixmaps/Makefile.in 2013-08-16 23:59:52.918508551 -0300 -@@ -240,40 +240,19 @@ - emblems/scalable/male.svg emblems/scalable/not-authorized.svg \ - emblems/scalable/secure.svg emblems/scalable/unavailable.svg \ - emblems/scalable/video.svg emblems/scalable/voice.svg \ -- protocols/16/aim.png protocols/16/bonjour.png \ -- protocols/16/facebook.png protocols/16/gadu-gadu.png \ -- protocols/16/google-talk.png protocols/16/novell.png \ -- protocols/16/icq.png protocols/16/irc.png \ -- protocols/16/jabber.png protocols/16/meanwhile.png \ -- protocols/16/msn.png protocols/16/mxit.png \ -- protocols/16/myspace.png protocols/16/silc.png \ -- protocols/16/simple.png protocols/16/yahoo.png \ -- protocols/16/zephyr.png protocols/22/aim.png \ -- protocols/22/bonjour.png protocols/22/facebook.png \ -- protocols/22/gadu-gadu.png protocols/22/google-talk.png \ -- protocols/22/novell.png protocols/22/icq.png \ -- protocols/22/irc.png protocols/22/jabber.png \ -- protocols/22/meanwhile.png protocols/22/msn.png \ -- protocols/22/mxit.png protocols/22/myspace.png \ -- protocols/22/silc.png protocols/22/simple.png \ -- protocols/22/yahoo.png protocols/22/zephyr.png \ -- protocols/48/aim.png protocols/48/bonjour.png \ -- protocols/48/facebook.png protocols/48/gadu-gadu.png \ -- protocols/48/novell.png protocols/48/icq.png \ -- protocols/48/irc.png protocols/48/jabber.png \ -- protocols/48/meanwhile.png protocols/48/msn.png \ -- protocols/48/mxit.png protocols/48/myspace.png \ -- protocols/48/silc.png protocols/48/simple.png \ -- protocols/48/yahoo.png protocols/48/zephyr.png \ -- protocols/scalable/aim.svg protocols/scalable/bonjour.svg \ -- protocols/scalable/gadu-gadu.svg \ -- protocols/scalable/google-talk.svg \ -- protocols/scalable/novell.svg protocols/scalable/icq.svg \ -- protocols/scalable/irc.svg protocols/scalable/jabber.svg \ -- protocols/scalable/meanwhile.svg protocols/scalable/msn.svg \ -- protocols/scalable/mxit.svg protocols/scalable/silc.svg \ -- protocols/scalable/simple.svg protocols/scalable/yahoo.svg \ -- protocols/scalable/zephyr.svg status/11/available.png \ -+ protocols/16/bonjour.png protocols/16/irc.png \ -+ protocols/16/jabber.png protocols/16/silc.png \ -+ protocols/16/simple.png protocols/16/zephyr.png \ -+ protocols/22/bonjour.png protocols/22/irc.png \ -+ protocols/22/jabber.png protocols/22/silc.png \ -+ protocols/22/simple.png protocols/22/zephyr.png \ -+ protocols/48/bonjour.png protocols/48/irc.png \ -+ protocols/48/jabber.png protocols/48/silc.png \ -+ protocols/48/simple.png protocols/48/zephyr.png \ -+ protocols/scalable/bonjour.svg protocols/scalable/irc.svg \ -+ protocols/scalable/jabber.svg protocols/scalable/silc.svg \ -+ protocols/scalable/simple.svg protocols/scalable/zephyr.svg \ -+ status/11/available.png \ - status/11/away.png status/11/busy.png status/11/chat.png \ - status/11/extended-away.png status/11/invisible.png \ - status/11/log-in.png status/11/log-out.png \ -@@ -443,8 +422,6 @@ - FARSTREAM_CFLAGS = @FARSTREAM_CFLAGS@ - FARSTREAM_LIBS = @FARSTREAM_LIBS@ - FGREP = @FGREP@ --GADU_CFLAGS = @GADU_CFLAGS@ --GADU_LIBS = @GADU_LIBS@ - GCONFTOOL = @GCONFTOOL@ - GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ - GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ -@@ -506,8 +483,6 @@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MANIFEST_TOOL = @MANIFEST_TOOL@ --MEANWHILE_CFLAGS = @MEANWHILE_CFLAGS@ --MEANWHILE_LIBS = @MEANWHILE_LIBS@ - MKDIR_P = @MKDIR_P@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MONO_CFLAGS = @MONO_CFLAGS@ -@@ -850,37 +825,19 @@ - @INSTALL_PIXMAPS_TRUE@ emotes/small/16/scalable/pidgin-emotes.svg - - @INSTALL_PIXMAPS_TRUE@PROTOCOLS_16_SCALABLE = \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/aim.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/bonjour.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/gadu-gadu.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/novell.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/icq.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/irc.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/jabber.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/meanwhile.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/msn.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/silc.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/simple.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/yahoo.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/scalable/zephyr.svg - - @INSTALL_PIXMAPS_TRUE@PROTOCOLS_16 = \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/aim.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/bonjour.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/facebook.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/gadu-gadu.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/google-talk.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/novell.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/icq.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/irc.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/jabber.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/meanwhile.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/msn.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/mxit.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/myspace.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/silc.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/simple.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/16/yahoo.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/16/zephyr.png - - @INSTALL_PIXMAPS_TRUE@ICONS_16_SCALABLE = \ -@@ -899,72 +856,35 @@ - @INSTALL_PIXMAPS_TRUE@ICONS_48 = icons/hicolor/48x48/apps/pidgin.png - @INSTALL_PIXMAPS_TRUE@ICONS_SCALABLE = icons/hicolor/scalable/apps/pidgin.svg - @INSTALL_PIXMAPS_TRUE@PROTOCOLS_22_SCALABLE = \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/aim.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/bonjour.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/gadu-gadu.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/novell.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/icq.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/irc.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/jabber.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/meanwhile.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/msn.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/silc.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/simple.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/yahoo.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/scalable/zephyr.svg - - @INSTALL_PIXMAPS_TRUE@PROTOCOLS_22 = \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/aim.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/bonjour.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/facebook.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/gadu-gadu.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/google-talk.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/novell.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/icq.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/irc.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/jabber.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/meanwhile.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/msn.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/mxit.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/myspace.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/silc.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/simple.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/22/yahoo.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/22/zephyr.png - - @INSTALL_PIXMAPS_TRUE@PROTOCOLS_48 = \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/aim.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/48/bonjour.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/facebook.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/gadu-gadu.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/novell.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/icq.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/48/irc.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/48/jabber.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/meanwhile.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/msn.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/mxit.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/myspace.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/48/silc.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/48/simple.png \ --@INSTALL_PIXMAPS_TRUE@ protocols/48/yahoo.png \ - @INSTALL_PIXMAPS_TRUE@ protocols/48/zephyr.png - - @INSTALL_PIXMAPS_TRUE@PROTOCOLS_SCALABLE = \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/aim.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/scalable/bonjour.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/gadu-gadu.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/google-talk.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/novell.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/icq.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/scalable/irc.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/scalable/jabber.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/meanwhile.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/msn.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/mxit.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/scalable/silc.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/scalable/simple.svg \ --@INSTALL_PIXMAPS_TRUE@ protocols/scalable/yahoo.svg \ - @INSTALL_PIXMAPS_TRUE@ protocols/scalable/zephyr.svg - - @INSTALL_PIXMAPS_TRUE@STATUS_11 = \ -diff -Nur pidgin-2.10.7/pidgin/plugins/disco/xmppdisco.c pidgin-2.10.7-nonprism/pidgin/plugins/disco/xmppdisco.c ---- pidgin-2.10.7/pidgin/plugins/disco/xmppdisco.c 2013-02-11 07:16:54.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/plugins/disco/xmppdisco.c 2013-08-16 23:39:46.921427463 -0300 -@@ -250,9 +250,6 @@ - const char *from; - const char *to; - } disco_type_mappings[] = { -- { "gadu-gadu", "gadu-gadu" }, /* the prpl is prpl-gg, but list_icon returns "gadu-gadu" */ -- { "sametime", "meanwhile" }, -- { "myspaceim", "myspace" }, - { "xmpp", "jabber" }, /* prpl-jabber (mentioned in case the prpl is renamed so this line will match) */ - { NULL, NULL } - }; -diff -Nur pidgin-2.10.7/pidgin/plugins/gevolution/add_buddy_dialog.c pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/add_buddy_dialog.c ---- pidgin-2.10.7/pidgin/plugins/gevolution/add_buddy_dialog.c 2013-02-11 07:16:54.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/add_buddy_dialog.c 2013-08-16 21:26:56.293625899 -0300 -@@ -288,21 +288,13 @@ - { - EContact *contact = E_CONTACT(c->data); - const char *name; -- GList *aims, *jabbers, *yahoos, *msns, *icqs, *novells, *ggs; -+ GList *jabbers; - - name = e_contact_get_const(contact, E_CONTACT_FULL_NAME); - -- aims = e_contact_get(contact, E_CONTACT_IM_AIM); - jabbers = e_contact_get(contact, E_CONTACT_IM_JABBER); -- yahoos = e_contact_get(contact, E_CONTACT_IM_YAHOO); -- msns = e_contact_get(contact, E_CONTACT_IM_MSN); -- icqs = e_contact_get(contact, E_CONTACT_IM_ICQ); -- novells = e_contact_get(contact, E_CONTACT_IM_GROUPWISE); -- ggs = e_contact_get(contact, E_CONTACT_IM_GADUGADU); -- -- if (aims == NULL && jabbers == NULL && yahoos == NULL && -- msns == NULL && icqs == NULL && novells == NULL && -- ggs == NULL) -+ -+ if (jabbers == NULL) - { - GtkTreeIter iter; - -@@ -315,13 +307,7 @@ - } - else - { -- add_ims(dialog, contact, name, aims, "prpl-aim"); - add_ims(dialog, contact, name, jabbers, "prpl-jabber"); -- add_ims(dialog, contact, name, yahoos, "prpl-yahoo"); -- add_ims(dialog, contact, name, msns, "prpl-msn"); -- add_ims(dialog, contact, name, icqs, "prpl-icq"); -- add_ims(dialog, contact, name, novells, "prpl-novell"); -- add_ims(dialog, contact, name, ggs, "prpl-gg"); - } - } - -@@ -367,7 +353,7 @@ - { - EContact *contact = E_CONTACT(l->data); - const char *name; -- GList *aims, *jabbers, *yahoos, *msns, *icqs, *novells, *ggs; -+ GList *jabbers; - - name = e_contact_get_const(contact, E_CONTACT_FULL_NAME); - -@@ -377,17 +363,9 @@ - continue; - } - -- aims = e_contact_get(contact, E_CONTACT_IM_AIM); - jabbers = e_contact_get(contact, E_CONTACT_IM_JABBER); -- yahoos = e_contact_get(contact, E_CONTACT_IM_YAHOO); -- msns = e_contact_get(contact, E_CONTACT_IM_MSN); -- icqs = e_contact_get(contact, E_CONTACT_IM_ICQ); -- novells = e_contact_get(contact, E_CONTACT_IM_GROUPWISE); -- ggs = e_contact_get(contact, E_CONTACT_IM_GADUGADU); -- -- if (aims == NULL && jabbers == NULL && yahoos == NULL && -- msns == NULL && icqs == NULL && novells == NULL && -- ggs == NULL) -+ -+ if (jabbers == NULL) - { - GtkTreeIter iter; - -@@ -400,13 +378,7 @@ - } - else - { -- add_ims(dialog, contact, name, aims, "prpl-aim"); - add_ims(dialog, contact, name, jabbers, "prpl-jabber"); -- add_ims(dialog, contact, name, yahoos, "prpl-yahoo"); -- add_ims(dialog, contact, name, msns, "prpl-msn"); -- add_ims(dialog, contact, name, icqs, "prpl-icq"); -- add_ims(dialog, contact, name, novells, "prpl-novell"); -- add_ims(dialog, contact, name, ggs, "prpl-gg"); - } - } - } -diff -Nur pidgin-2.10.7/pidgin/plugins/gevolution/gevolution.c pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/gevolution.c ---- pidgin-2.10.7/pidgin/plugins/gevolution/gevolution.c 2013-02-11 07:16:54.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/gevolution.c 2013-08-16 21:14:05.483056049 -0300 -@@ -119,13 +119,7 @@ - - name = e_contact_get_const(contact, E_CONTACT_FULL_NAME); - -- update_ims_from_contact(contact, name, "prpl-aim", E_CONTACT_IM_AIM); - update_ims_from_contact(contact, name, "prpl-jabber", E_CONTACT_IM_JABBER); -- update_ims_from_contact(contact, name, "prpl-yahoo", E_CONTACT_IM_YAHOO); -- update_ims_from_contact(contact, name, "prpl-msn", E_CONTACT_IM_MSN); -- update_ims_from_contact(contact, name, "prpl-icq", E_CONTACT_IM_ICQ); -- update_ims_from_contact(contact, name, "prpl-novell", E_CONTACT_IM_GROUPWISE); -- update_ims_from_contact(contact, name, "prpl-gg", E_CONTACT_IM_GADUGADU); - } - - static void -diff -Nur pidgin-2.10.7/pidgin/plugins/gevolution/gevo-util.c pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/gevo-util.c ---- pidgin-2.10.7/pidgin/plugins/gevolution/gevo-util.c 2013-02-11 07:16:54.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/gevo-util.c 2013-08-16 23:20:45.692374640 -0300 -@@ -99,20 +99,8 @@ - - protocol_id = purple_account_get_protocol_id(account); - -- if (!strcmp(protocol_id, "prpl-aim")) -- protocol_field = E_CONTACT_IM_AIM; -- else if (!strcmp(protocol_id, "prpl-icq")) -- protocol_field = E_CONTACT_IM_ICQ; -- else if (!strcmp(protocol_id, "prpl-msn")) -- protocol_field = E_CONTACT_IM_MSN; -- else if (!strcmp(protocol_id, "prpl-yahoo")) -- protocol_field = E_CONTACT_IM_YAHOO; -- else if (!strcmp(protocol_id, "prpl-jabber")) -+ if (!strcmp(protocol_id, "prpl-jabber")) - protocol_field = E_CONTACT_IM_JABBER; -- else if (!strcmp(protocol_id, "prpl-novell")) -- protocol_field = E_CONTACT_IM_GROUPWISE; -- else if (!strcmp(protocol_id, "prpl-gg")) -- protocol_field = E_CONTACT_IM_GADUGADU; - - return protocol_field; - } -@@ -169,18 +157,6 @@ - { - PurpleAccount *account = purple_buddy_get_account(buddy); - const char *prpl_id = purple_account_get_protocol_id(account); -- -- if (!strcmp(prpl_id, "prpl-msn")) -- { -- mail = g_strdup(purple_normalize(account, -- purple_buddy_get_name(buddy))); -- } -- else if (!strcmp(prpl_id, "prpl-yahoo")) -- { -- mail = g_strdup_printf("%s@yahoo.com", -- purple_normalize(account, -- purple_buddy_get_name(buddy))); -- } - } - - return mail; -diff -Nur pidgin-2.10.7/pidgin/plugins/gevolution/new_person_dialog.c pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/new_person_dialog.c ---- pidgin-2.10.7/pidgin/plugins/gevolution/new_person_dialog.c 2013-02-11 07:16:54.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin/plugins/gevolution/new_person_dialog.c 2013-08-16 21:23:26.207116339 -0300 -@@ -141,20 +141,8 @@ - if (*email) - e_contact_set(contact, E_CONTACT_EMAIL_1, (gpointer)email); - -- if (!strcmp(im_service, "prpl-aim")) -- field = E_CONTACT_IM_AIM; -- else if (!strcmp(im_service, "prpl-icq")) -- field = E_CONTACT_IM_ICQ; -- else if (!strcmp(im_service, "prpl-yahoo")) -- field = E_CONTACT_IM_YAHOO; -- else if (!strcmp(im_service, "prpl-jabber")) -+ if (!strcmp(im_service, "prpl-jabber")) - field = E_CONTACT_IM_JABBER; -- else if (!strcmp(im_service, "prpl-msn")) -- field = E_CONTACT_IM_MSN; -- else if (!strcmp(im_service, "prpl-novell")) -- field = E_CONTACT_IM_GROUPWISE; -- else if (!strcmp(im_service, "prpl-gg")) -- field = E_CONTACT_IM_GADUGADU; - - if (field > 0) - { -diff -Nur pidgin-2.10.7/pidgin.apspec.in pidgin-2.10.7-nonprism/pidgin.apspec.in ---- pidgin-2.10.7/pidgin.apspec.in 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin.apspec.in 2013-08-16 20:53:14.523862926 -0300 -@@ -14,17 +14,13 @@ - - [Description] - Pidgin allows you to talk to anyone using a variety of messaging protocols, --including AIM (Oscar and TOC), ICQ, IRC, Yahoo!, MSN Messenger, XMPP, --Gadu-Gadu, and Zephyr. These protocols are implemented using a -+including IRC, XMPP and Zephyr. These protocols are implemented using a - modular, easy to use design. To use a protocol, just add an account using the - account editor. - - Pidgin supports many common features of other clients, as well as many unique - features, such as perl scripting, TCL scripting and C plugins. - --Pidgin is NOT affiliated with or endorsed by America Online, Inc., Microsoft --Corporation, Yahoo! Inc., or ICQ Inc. -- - [BuildPrepare] - APBUILD_STATIC="Xss startup-notification-1" prepareBuild --enable-nss --enable-gnutls --enable-binreloc --disable-perl --disable-tcl --disable-gtktest --disable-glibtest --disable-vv --disable-fortify - #APBUILD_STATIC="Xss startup-notification-1" prepareBuild --enable-nss --enable-gnutls --enable-binreloc --disable-perl --disable-tcl --disable-vv -diff -Nur pidgin-2.10.7/pidgin.desktop.in pidgin-2.10.7-nonprism/pidgin.desktop.in ---- pidgin-2.10.7/pidgin.desktop.in 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin.desktop.in 2013-08-16 23:07:34.874212867 -0300 -@@ -1,7 +1,7 @@ - [Desktop Entry] - _Name=Pidgin Internet Messenger - _GenericName=Internet Messenger --_Comment=Chat over IM. Supports AIM, Google Talk, Jabber/XMPP, MSN, Yahoo and more -+_Comment=Chat over IM. Supports IRC, Jabber/XMPP and more - Exec=pidgin - Icon=pidgin - StartupNotify=true -diff -Nur pidgin-2.10.7/pidgin.spec pidgin-2.10.7-nonprism/pidgin.spec ---- pidgin-2.10.7/pidgin.spec 2013-02-11 07:17:59.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin.spec 2013-08-17 00:03:18.474815955 -0300 -@@ -34,7 +34,6 @@ - %{!?_without_startupnotification:BuildRequires: startup-notification-devel} - %{?_with_avahi:BuildRequires: avahi-glib-devel} - %{!?_without_gtkspell:BuildRequires: gtkspell-devel} --%{?_with_meanwhile:BuildRequires: meanwhile-devel} - %{?_with_mono:BuildRequires: mono-devel} - %{?_with_sasl:BuildRequires: cyrus-sasl-devel >= 2} - %{!?_without_silc:BuildRequires: /usr/include/silc/silcclient.h} -@@ -105,7 +104,6 @@ - Group: Applications/Internet - Obsoletes: gaim-silc - Obsoletes: gaim-tcl --Obsoletes: gaim-gadugadu - Obsoletes: pidgin-tcl < 2.0.0 - Obsoletes: pidgin-silc < 2.0.0 - Obsoletes: libpurple-perl < %{version} -@@ -131,13 +129,6 @@ - Requires: libpurple >= %{apiver} - %endif - --%if 0%{?_with_meanwhile:1} --%package -n libpurple-meanwhile --Summary: Lotus Sametime plugin for Pidgin using the Meanwhile library --Group: Applications/Internet --Requires: libpurple >= %{apiver} --%endif -- - %if 0%{?_with_mono:1} - %package -n libpurple-mono - Summary: Mono .NET plugin support for Pidgin -@@ -161,18 +152,14 @@ - - %description - Pidgin allows you to talk to anyone using a variety of messaging --protocols including AIM, MSN, Yahoo!, XMPP, Bonjour, Gadu-Gadu, --ICQ, IRC, Novell Groupwise, QQ, Lotus Sametime, SILC, Simple and --Zephyr. These protocols are implemented using a modular, easy to -+protocols including XMPP, Bonjour, IRC, SILC, Simple and Zephyr. -+These protocols are implemented using a modular, easy to - use design. To use a protocol, just add an account using the - account editor. - - Pidgin supports many common features of other clients, as well as many - unique features, such as perl scripting, TCL scripting and C plugins. - --Pidgin is not affiliated with or endorsed by America Online, Inc., --Microsoft Corporation, Yahoo! Inc., or ICQ Inc. -- - %description devel - The pidgin-devel package contains the header files, developer - documentation, and libraries required for development of Pidgin scripts -@@ -182,9 +169,8 @@ - libpurple contains the core IM support for IM clients such as Pidgin - and Finch. - --libpurple supports a variety of messaging protocols including AIM, MSN, --Yahoo!, XMPP, Bonjour, Gadu-Gadu, ICQ, IRC, Novell Groupwise, QQ, --Lotus Sametime, SILC, Simple and Zephyr. -+libpurple supports a variety of messaging protocols including XMPP, -+Bonjour, IRC, SILC, Simple and Zephyr. - - %description -n libpurple-devel - The libpurple-devel package contains the header files, developer -@@ -196,11 +182,6 @@ - Bonjour plugin for Pidgin. - %endif - --%if 0%{?_with_meanwhile:1} --%description -n libpurple-meanwhile --Lotus Sametime plugin for Pidgin using the Meanwhile library. --%endif -- - %if 0%{?_with_mono:1} - %description -n libpurple-mono - Mono plugin loader for Pidgin. This package will allow you to write or -@@ -236,7 +217,6 @@ - %{!?_with_vv:--disable-vv} \ - %{!?_with_dbus:--disable-dbus} \ - %{!?_with_avahi:--disable-avahi} \ -- %{!?_with_meanwhile:--disable-meanwhile} \ - %{?_without_gstreamer:--disable-gstreamer} \ - %{?_without_gtkspell:--disable-gtkspell} \ - %{?_without_nm:--disable-nm} \ -@@ -258,9 +238,7 @@ - rm -f $RPM_BUILD_ROOT%{_libdir}/gnt/*.la - rm -f $RPM_BUILD_ROOT%{_libdir}/pidgin/*.la - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/*.la --rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/liboscar.so - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libjabber.so --rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libymsg.so - rm -f $RPM_BUILD_ROOT%{_libdir}/*.la - rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod - find $RPM_BUILD_ROOT -type f -name '*.a' -exec rm -f {} ';' -@@ -271,10 +249,6 @@ - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libbonjour.so - %endif - --%if 0%{!?_with_meanwhile:1} --rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libsametime.so --%endif -- - %if 0%{!?_with_mono:1} - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/mono.so - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/*.dll -@@ -299,7 +273,6 @@ - find $RPM_BUILD_ROOT%{_libdir}/purple-2 -xtype f -print | \ - sed "s@^$RPM_BUILD_ROOT@@g" | \ - grep -v /libbonjour.so | \ -- grep -v /libsametime.so | \ - grep -v /mono.so | \ - grep -v ".dll$" > %{name}-%{version}-purpleplugins - -@@ -435,13 +408,6 @@ - %{_libdir}/purple-2/libbonjour.* - %endif - --%if 0%{?_with_meanwhile:1} --%files -n libpurple-meanwhile --%defattr(-, root, root) -- --%{_libdir}/purple-2/libsametime.* --%endif -- - %if 0%{?_with_mono:1} - %files -n libpurple-mono - %defattr(-, root, root) -@@ -492,9 +458,6 @@ - * Sat Jul 11 2009 Stu Tomlinson <stu@nosnilmot.com> - - Update to reflect changes in perl module installation directories - --* Mon May 19 2008 Stu Tomlinson <stu@nosnilmot.com> --- Fix building without meanwhile support -- - * Fri May 16 2008 Stu Tomlinson <stu@nosnilmot.com> - - Add "--without nm" support to build without NetworkManager - -@@ -586,8 +549,6 @@ - - Update to reflect renaming to pidgin/libpurple - - * Sun Oct 1 2006 Stu Tomlinson <stu@nosnilmot.com> --- We can build with internal gadu gadu again, so bring it back into the -- main package - - Deal with gconf schame uninstallation on package upgrade and removal - - * Sun Aug 20 2006 Stu Tomlinson <stu@nosnilmot.com> -@@ -606,19 +567,14 @@ - - Source RPM uses tar.bz2 now to save space - - Update BuildRequires for new intltool dependencies - - Add a --with perlmakehack option to allow builds to succeed on RH9 --- Add a --with gadugadu to build (separate) gaim-gadugadu package - - * Sat Dec 17 2005 Stu Tomlinson <stu@nosnilmot.com> - - Add support for beta versions so the subsequent releases are seen as newer - by RPM --- Split of sametime support to gaim-meanwhile - - Use make DESTDIR=... instead of overloading prefix etc. when installing - - Default build to include cyrus-sasl support in Jabber - - Add --with dbus to build with DBUS support - --* Sun Dec 04 2005 Christopher O'Brien <siege@preoccupied.net> --- Added obsoletes gaim-meanwhile -- - * Sun Oct 30 2005 Stu Tomlinson <stu@nosnilmot.com> - - Add separate gaim-bonjour package if built with --with-howl - - Add separate gaim-mono package if built with --with-mono -diff -Nur pidgin-2.10.7/pidgin.spec.in pidgin-2.10.7-nonprism/pidgin.spec.in ---- pidgin-2.10.7/pidgin.spec.in 2013-02-11 07:16:53.000000000 -0200 -+++ pidgin-2.10.7-nonprism/pidgin.spec.in 2013-08-17 00:07:12.251996234 -0300 -@@ -34,7 +34,6 @@ - %{!?_without_startupnotification:BuildRequires: startup-notification-devel} - %{?_with_avahi:BuildRequires: avahi-glib-devel} - %{!?_without_gtkspell:BuildRequires: gtkspell-devel} --%{?_with_meanwhile:BuildRequires: meanwhile-devel} - %{?_with_mono:BuildRequires: mono-devel} - %{?_with_sasl:BuildRequires: cyrus-sasl-devel >= 2} - %{!?_without_silc:BuildRequires: /usr/include/silc/silcclient.h} -@@ -105,7 +104,6 @@ - Group: Applications/Internet - Obsoletes: gaim-silc - Obsoletes: gaim-tcl --Obsoletes: gaim-gadugadu - Obsoletes: pidgin-tcl < 2.0.0 - Obsoletes: pidgin-silc < 2.0.0 - Obsoletes: libpurple-perl < %{version} -@@ -131,13 +129,6 @@ - Requires: libpurple >= %{apiver} - %endif - --%if 0%{?_with_meanwhile:1} --%package -n libpurple-meanwhile --Summary: Lotus Sametime plugin for Pidgin using the Meanwhile library --Group: Applications/Internet --Requires: libpurple >= %{apiver} --%endif -- - %if 0%{?_with_mono:1} - %package -n libpurple-mono - Summary: Mono .NET plugin support for Pidgin -@@ -161,18 +152,14 @@ - - %description - Pidgin allows you to talk to anyone using a variety of messaging --protocols including AIM, MSN, Yahoo!, XMPP, Bonjour, Gadu-Gadu, --ICQ, IRC, Novell Groupwise, QQ, Lotus Sametime, SILC, Simple and --Zephyr. These protocols are implemented using a modular, easy to -+protocols including XMPP, Bonjour, IRC, SILC, Simple and Zephyr. -+These protocols are implemented using a modular, easy to - use design. To use a protocol, just add an account using the - account editor. - - Pidgin supports many common features of other clients, as well as many - unique features, such as perl scripting, TCL scripting and C plugins. - --Pidgin is not affiliated with or endorsed by America Online, Inc., --Microsoft Corporation, Yahoo! Inc., or ICQ Inc. -- - %description devel - The pidgin-devel package contains the header files, developer - documentation, and libraries required for development of Pidgin scripts -@@ -182,9 +169,8 @@ - libpurple contains the core IM support for IM clients such as Pidgin - and Finch. - --libpurple supports a variety of messaging protocols including AIM, MSN, --Yahoo!, XMPP, Bonjour, Gadu-Gadu, ICQ, IRC, Novell Groupwise, QQ, --Lotus Sametime, SILC, Simple and Zephyr. -+libpurple supports a variety of messaging protocols including XMPP, -+Bonjour, IRC, SILC, Simple and Zephyr. - - %description -n libpurple-devel - The libpurple-devel package contains the header files, developer -@@ -196,11 +182,6 @@ - Bonjour plugin for Pidgin. - %endif - --%if 0%{?_with_meanwhile:1} --%description -n libpurple-meanwhile --Lotus Sametime plugin for Pidgin using the Meanwhile library. --%endif -- - %if 0%{?_with_mono:1} - %description -n libpurple-mono - Mono plugin loader for Pidgin. This package will allow you to write or -@@ -236,7 +217,6 @@ - %{!?_with_vv:--disable-vv} \ - %{!?_with_dbus:--disable-dbus} \ - %{!?_with_avahi:--disable-avahi} \ -- %{!?_with_meanwhile:--disable-meanwhile} \ - %{?_without_gstreamer:--disable-gstreamer} \ - %{?_without_gtkspell:--disable-gtkspell} \ - %{?_without_nm:--disable-nm} \ -@@ -258,9 +238,7 @@ - rm -f $RPM_BUILD_ROOT%{_libdir}/gnt/*.la - rm -f $RPM_BUILD_ROOT%{_libdir}/pidgin/*.la - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/*.la --rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/liboscar.so - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libjabber.so --rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libymsg.so - rm -f $RPM_BUILD_ROOT%{_libdir}/*.la - rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod - find $RPM_BUILD_ROOT -type f -name '*.a' -exec rm -f {} ';' -@@ -271,10 +249,6 @@ - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libbonjour.so - %endif - --%if 0%{!?_with_meanwhile:1} --rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/libsametime.so --%endif -- - %if 0%{!?_with_mono:1} - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/mono.so - rm -f $RPM_BUILD_ROOT%{_libdir}/purple-2/*.dll -@@ -299,7 +273,6 @@ - find $RPM_BUILD_ROOT%{_libdir}/purple-2 -xtype f -print | \ - sed "s@^$RPM_BUILD_ROOT@@g" | \ - grep -v /libbonjour.so | \ -- grep -v /libsametime.so | \ - grep -v /mono.so | \ - grep -v ".dll$" > %{name}-%{version}-purpleplugins - -@@ -435,13 +408,6 @@ - %{_libdir}/purple-2/libbonjour.* - %endif - --%if 0%{?_with_meanwhile:1} --%files -n libpurple-meanwhile --%defattr(-, root, root) -- --%{_libdir}/purple-2/libsametime.* --%endif -- - %if 0%{?_with_mono:1} - %files -n libpurple-mono - %defattr(-, root, root) -@@ -492,9 +458,6 @@ - * Sat Jul 11 2009 Stu Tomlinson <stu@nosnilmot.com> - - Update to reflect changes in perl module installation directories - --* Mon May 19 2008 Stu Tomlinson <stu@nosnilmot.com> --- Fix building without meanwhile support -- - * Fri May 16 2008 Stu Tomlinson <stu@nosnilmot.com> - - Add "--without nm" support to build without NetworkManager - -@@ -586,8 +549,6 @@ - - Update to reflect renaming to pidgin/libpurple - - * Sun Oct 1 2006 Stu Tomlinson <stu@nosnilmot.com> --- We can build with internal gadu gadu again, so bring it back into the -- main package - - Deal with gconf schame uninstallation on package upgrade and removal - - * Sun Aug 20 2006 Stu Tomlinson <stu@nosnilmot.com> -@@ -606,19 +567,14 @@ - - Source RPM uses tar.bz2 now to save space - - Update BuildRequires for new intltool dependencies - - Add a --with perlmakehack option to allow builds to succeed on RH9 --- Add a --with gadugadu to build (separate) gaim-gadugadu package - - * Sat Dec 17 2005 Stu Tomlinson <stu@nosnilmot.com> - - Add support for beta versions so the subsequent releases are seen as newer - by RPM --- Split of sametime support to gaim-meanwhile - - Use make DESTDIR=... instead of overloading prefix etc. when installing - - Default build to include cyrus-sasl support in Jabber - - Add --with dbus to build with DBUS support - --* Sun Dec 04 2005 Christopher O'Brien <siege@preoccupied.net> --- Added obsoletes gaim-meanwhile -- - * Sun Oct 30 2005 Stu Tomlinson <stu@nosnilmot.com> - - Add separate gaim-bonjour package if built with --with-howl - - Add separate gaim-mono package if built with --with-mono diff --git a/pcr/gnuhealth/PKGBUILD b/pcr/gnuhealth/PKGBUILD index 3eaee88d0..76fdf442a 100644 --- a/pcr/gnuhealth/PKGBUILD +++ b/pcr/gnuhealth/PKGBUILD @@ -2,7 +2,7 @@ # Contributor: SpepS <dreamspepser at yahoo dot it> pkgname=gnuhealth -pkgver=2.0.0 +pkgver=2.2.1 pkgrel=1 pkgdesc="A free Health and Hospital Information System" arch=any @@ -27,7 +27,7 @@ depends=( trytond-stock-lot ) source=http://ftp.gnu.org/gnu/health/$pkgname-$pkgver.tar.gz -sha512sums=5d528fe4a20a2b237f32d023f44e898a012f47f9ba83611f71fba386990bf98dbbdb1fb9c5b78dd5a3b65c6fe9b2fe4e7e472fec90cab009e5b8e31b1f31ceeb +sha512sums=9a7ccc71b5cba8e71adaea1d811ef4d68d72a1b3d7493721d68b2bb04f5eb808c659bf74e4f5859c9509be4843b4cae3cc4511422fb3cdc64b5a903507ca364a package() { MODULES=( diff --git a/pcr/libquvi-scripts-current/PKGBUILD b/pcr/libquvi-scripts-current/PKGBUILD deleted file mode 100644 index 6a466b314..000000000 --- a/pcr/libquvi-scripts-current/PKGBUILD +++ /dev/null @@ -1,29 +0,0 @@ -# $Id: PKGBUILD 188870 2013-06-23 17:45:51Z heftig $ -# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de> - -pkgname=libquvi-scripts-current -_pkgname=libquvi-scripts -provides=(libquvi-scripts) -pkgver=0.4.19 -pkgrel=1 -pkgdesc='Library for parsing video download links.' -arch=('any') -url='http://quvi.sourceforge.net/' -license=('LGPL') -depends=('curl' 'lua') -options=('!libtool') -source=("http://downloads.sourceforge.net/sourceforge/quvi/${_pkgname}-${pkgver}.tar.xz"{,.sig}) - -build() { - cd "${_pkgname}-${pkgver}" - ./configure --prefix=/usr --with-nsfw --with-nlfy - make -} - -package() { - cd "${_pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install -} - -md5sums=('a37221697367a700cc1cb3b1f4b681ec' - 'SKIP') diff --git a/pcr/libubox/PKGBUILD b/pcr/libubox/PKGBUILD new file mode 100644 index 000000000..577eecd24 --- /dev/null +++ b/pcr/libubox/PKGBUILD @@ -0,0 +1,32 @@ +# Maintainer: Nicolás Reynolds <fauno@kiwwwi.com.ar> +pkgname=libubox +pkgver=0.8.0 +pkgrel=2 +pkgdesc="OpenWRT's Basic Utility Library" +arch=('i686' 'mips64el') +url="https://openwrt.org" +license=('BSD') +depends=('json-c') +makedepends=('git' 'cmake' 'lua51') +source=(git://nbd.name/luci2/libubox.git) +md5sums=(SKIP) + +pkgver() { + cd ${srcdir}/${pkgname} + local ver="$(git describe --long --tags)" + printf "%s" "${ver//-/.}" +} + +build() { + cd ${srcdir}/${pkgname} + + cmake -DCMAKE_INSTALL_PREFIX=/usr . + make +} + +package() { + cd ${srcdir}/${pkgname} + make DESTDIR=${pkgdir}/ install +} + +# vim:set ts=2 sw=2 et: diff --git a/pcr/multipath-tools-git/PKGBUILD b/pcr/multipath-tools-git/PKGBUILD new file mode 100644 index 000000000..d1bb4ac9b --- /dev/null +++ b/pcr/multipath-tools-git/PKGBUILD @@ -0,0 +1,44 @@ +# Maintainer: Miguel Revilla <yo@miguelrevilla.com> +# Contributor: Alexander Rødseth <rodseth@gmail.com> +# Contributor: Timothée Ravier <tim@siosm.fr> + +pkgname=multipath-tools-git +pkgver=1295.81895af +pkgrel=1 +pkgdesc="Tools to drive the Device Mapper multipathing driver (contains kpartx)" +url="http://christophe.varoqui.free.fr/" +arch=('x86_64' 'i686') +license=('GPL2') +depends=('libaio' 'device-mapper') +makedepends=('git' 'setconf') +options=(!emptydirs) +source=("${pkgname}::git+http://git.opensvc.com/multipath-tools/.git") +md5sums=('SKIP') + +pkgver() { + cd ${pkgname} + echo $(git rev-list --count HEAD).$(git rev-parse --short HEAD) +} + +prepare() { + cd ${pkgname} + sed -i 's|/sbin|/usr/bin|g' Makefile.inc + sed -i 's|LIB=lib|LIB=usr/lib|g' Makefile.inc + sed -i 's|${prefix}/lib/udev|${prefix}/usr/lib/udev|g' Makefile.inc + sed -i 's|$(prefix)/lib/systemd/system|$(prefix)/usr/lib/systemd/system|g' Makefile.inc +} + +build() { + cd ${pkgname} + setconf Makefile.inc GZIP '/usr/bin/gzip -9 -c' + make +} + +package() { + cd ${pkgname} + make LIB="/usr/lib" DESTDIR="${pkgdir}" install + install -Dm644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/COPYING + cd "${pkgdir}"/usr/lib + rm libmpathpersist.so + ln -s libmpathpersist.so.0 libmpathpersist.so +} diff --git a/pcr/python2-relatorio/PKGBUILD b/pcr/python2-relatorio/PKGBUILD index 3e52303b4..e70699886 100644 --- a/pcr/python2-relatorio/PKGBUILD +++ b/pcr/python2-relatorio/PKGBUILD @@ -1,11 +1,12 @@ # Contributor: Florian Walch <florian.walch@gmx.at> # Maintainer: Thomas Bahn <Thomas-Bahn@gmx.net> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> + pkgname=python2-relatorio -pkgver=0.5.6 -pkgrel=2 +pkgver=0.6.0 +pkgrel=1 pkgdesc="A templating library able to output odt and pdf files" -arch=('any') +arch=('i686' 'x86_64' 'mips64el') url="http://relatorio.openhex.org" license=('GPL') depends=('python2-genshi>=0.7' 'python2-lxml>=3.2.1') @@ -18,5 +19,4 @@ build() { python2 setup.py install --root=$pkgdir } - -md5sums=('944fb60fadaff451ab6ee8818de516ad') +md5sums=('170eeb4102a92b9ddc554799a1503cee') diff --git a/pcr/quvi-current/PKGBUILD b/pcr/quvi-current/PKGBUILD new file mode 100644 index 000000000..231e79658 --- /dev/null +++ b/pcr/quvi-current/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 98182 2013-10-07 12:06:30Z jgc $ +# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de> +# Contributor: joyfulgirl@archlinux.us + +pkgname=quvi-current +_pkgname=quvi +provides=(quvi) +pkgver=0.9.4 +pkgrel=2 +pkgdesc='Command-line tool for parsing video download links.' +arch=('i686' 'x86_64') +url='http://quvi.sourceforge.net/' +license=('AGPL3') +depends=('libquvi') +options=('!libtool') +source=("http://downloads.sourceforge.net/sourceforge/${_pkgname}/${_pkgname}-${pkgver}.tar.xz"{,.sig}) + +build() { + cd "${_pkgname}-${pkgver}" + + ./configure --prefix=/usr + make +} + +package() { + cd "${_pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install +} +md5sums=('36ba58e00d10b38797c39c0c9e2ef663' + 'SKIP') diff --git a/pcr/trytond-account-invoice/PKGBUILD b/pcr/trytond-account-invoice/PKGBUILD index 5488733bf..880c1dff9 100644 --- a/pcr/trytond-account-invoice/PKGBUILD +++ b/pcr/trytond-account-invoice/PKGBUILD @@ -2,7 +2,7 @@ # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> pkgname=trytond-account-invoice _pkgname=trytond_account_invoice -pkgver=2.8.1 +pkgver=2.8.3 _pkgdir=2.8 pkgrel=1 pkgdesc="The account_invoice module of the Tryton application platform" @@ -13,7 +13,7 @@ groups=('trytond-modules') depends=('trytond>=2.8' 'trytond-account>=2.8' 'trytond-account-product>=2.8' 'trytond-company>=2.8' 'trytond-currency>=2.8' 'trytond-party>=2.8' 'trytond-product>=2.8') makedepends=('python2-distribute') source=("http://downloads.tryton.org/$_pkgdir/$_pkgname-$pkgver.tar.gz") -md5sums=("0f61e65c235f5b09df1be72851a4f0d4") +md5sums=("5c3dda771139e55d1f445f07922028a3") package() { cd $srcdir/$_pkgname-$pkgver diff --git a/pcr/trytond/PKGBUILD b/pcr/trytond/PKGBUILD index 8a39f898a..d041fabbe 100644 --- a/pcr/trytond/PKGBUILD +++ b/pcr/trytond/PKGBUILD @@ -2,14 +2,14 @@ # Maintainer: Robin Baumgartner <robin@baumgartners.ch> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> pkgname=trytond -pkgver=2.8.1 +pkgver=2.8.3 _pkgdir=2.8 pkgrel=1 pkgdesc="A three-tiers high-level general purpose application platform (server application)" arch=('any') url="http://www.tryton.org/" license=('GPL3') -depends=('python2>=2.7' 'python2-lxml' 'python2-relatorio>=0.5.6' 'python2-genshi>=0.7' 'python2-polib') +depends=('python2>=2.7' 'python2-lxml' 'python2-relatorio>=0.6.0' 'python2-genshi>=0.7' 'python2-polib') optdepends=('python2-psycopg2: support for PostgreSQL database' 'python-pywebdav: support for WebDAV feature' 'pydot: support for displaying workflow graphs' @@ -20,7 +20,7 @@ install="trytond.install" source=("http://downloads.tryton.org/$_pkgdir/$pkgname-$pkgver.tar.gz" 'trytond.install' 'trytond.service') -md5sums=('622094022c570d3a0c9aa9e786542d55' +md5sums=('db714e83e4b09213a6027911af0ad75e' '768e68c01cb5913e36ea89c67fc98038' 'b1535a8528dfd8f655624bf6faea6985') diff --git a/pcr/ubus/PKGBUILD b/pcr/ubus/PKGBUILD new file mode 100644 index 000000000..80e14eaf0 --- /dev/null +++ b/pcr/ubus/PKGBUILD @@ -0,0 +1,32 @@ +# Maintainer: Nicolás Reynolds <fauno@kiwwwi.com.ar> +pkgname=ubus +pkgver=0.8.0 +pkgrel=1 +pkgdesc="OpenWRT's RPC client utility" +arch=('i686' 'mips64el') +url="https://openwrt.org" +license=('LGPL2.1') +depends=('libubox' 'json-c') +makedepends=('git' 'cmake' 'lua51') +source=(git://nbd.name/luci2/ubus.git) +md5sums=(SKIP) + +pkgver() { + cd ${srcdir}/${pkgname} + local ver="$(git describe --long --tags)" + printf "%s" "${ver//-/.}" +} + +build() { + cd ${srcdir}/${pkgname} + + cmake -DCMAKE_INSTALL_PREFIX=/usr . + make +} + +package() { + cd ${srcdir}/${pkgname} + make DESTDIR=${pkgdir}/ install +} + +# vim:set ts=2 sw=2 et: diff --git a/pcr/uci/PKGBUILD b/pcr/uci/PKGBUILD index 41541fa07..80194f162 100644 --- a/pcr/uci/PKGBUILD +++ b/pcr/uci/PKGBUILD @@ -1,41 +1,31 @@ # Maintainer: Nicolás Reynolds <fauno@kiwwwi.com.ar> pkgname=uci -pkgver=0.8.0 +pkgver=v0.8.0.43.g2fcc6d7 pkgrel=2 pkgdesc="OpenWRT's Unified Configuration Interface" arch=('i686' 'x86_64' 'mips64el') url="https://openwrt.org" license=('GPL2') +depends=('libubox') makedepends=('git' 'cmake' 'lua51') -source=(http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}.tar.gz - uci-0.8.0-lua5.1.patch) -md5sums=('135bf6c4188b72c7fd7954f592b1e4e4' - '2c8f4d59b2b7adb990dcaa07e0ed484c') +source=(git://nbd.name/uci.git) +md5sums=(SKIP) -# source PKGBUILD; mksource -mksource() { - - if [ -d uci/.git ]; then - pushd uci; git pull; popd - else - git clone git://nbd.name/uci.git - fi - - cd uci/ - git archive --prefix=${pkgname}-${pkgver}/ v${pkgver} | \ - gzip -9 > ../${pkgname}-${pkgver}.tar.gz - cd .. +pkgver() { + cd ${srcdir}/${pkgname} + local ver="$(git describe --long --tags)" + printf "%s" "${ver//-/.}" } build() { - cd ${srcdir}/${pkgname}-${pkgver} - patch -Np1 -i ${srcdir}/uci-0.8.0-lua5.1.patch - cmake . + cd ${srcdir}/${pkgname} + + cmake -DCMAKE_INSTALL_PREFIX=/usr . make } package() { - cd ${srcdir}/${pkgname}-${pkgver} + cd ${srcdir}/${pkgname} make DESTDIR=${pkgdir}/ install } diff --git a/pcr/youtube-dl-current/PKGBUILD b/pcr/youtube-dl-current/PKGBUILD index 3d2d5c90f..22cd86750 100644 --- a/pcr/youtube-dl-current/PKGBUILD +++ b/pcr/youtube-dl-current/PKGBUILD @@ -5,7 +5,7 @@ pkgname=youtube-dl-current _pkgname=youtube-dl provides=(youtube-dl) -pkgver=2013.10.07 +pkgver=2013.10.09 pkgrel=1 pkgdesc="A small command-line program to download videos from YouTube.com and a few more sites" arch=('any') @@ -27,5 +27,5 @@ package() { "${pkgdir}/usr/share/bash-completion/completions/youtube-dl" install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE" } -md5sums=('8fcf8c27dc2444f78c0413f9ddee383a' +md5sums=('ddbefc30e4efefe29a2fe89ed6f4bccc' 'SKIP') diff --git a/social/uci/PKGBUILD b/social/uci/PKGBUILD index d306b77bd..5a14ac2c0 100644 --- a/social/uci/PKGBUILD +++ b/social/uci/PKGBUILD @@ -6,34 +6,25 @@ pkgdesc="OpenWRT's Unified Configuration Interface" arch=('i686' 'mips64el') url="https://openwrt.org" license=('GPL2') -makedepends=('git' 'cmake' 'lua') -source=(http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}.tar.gz) -md5sums=('135bf6c4188b72c7fd7954f592b1e4e4') +makedepends=('git' 'cmake' 'lua51') +source=(git://nbd.name/uci.git) +md5sums=(SKIP) -# source PKGBUILD; mksource -mksource() { - - if [ -d uci/.git ]; then - pushd uci; git pull; popd - else - git clone git://nbd.name/uci.git - fi - - cd uci/ - git archive --prefix=${pkgname}-${pkgver}/ v${pkgver} | \ - gzip -9 > ../${pkgname}-${pkgver}.tar.gz - cd .. +pkgver() { + cd ${srcdir}/${pkgname} + local ver="$(git describe --long --tags)" + printf "%s" "${ver//-/.}" } build() { - cd ${srcdir}/${pkgname}-${pkgver} + cd ${srcdir}/${pkgname} - cmake . + cmake -DCMAKE_INSTALL_PREFIX=/usr . make } package() { - cd ${srcdir}/${pkgname}-${pkgver} + cd ${srcdir}/${pkgname} make DESTDIR=${pkgdir}/ install } |