summaryrefslogtreecommitdiff
path: root/community/onboard
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-05-12 00:02:41 +0000
committerroot <root@rshg054.dnsready.net>2012-05-12 00:02:41 +0000
commite1da03cf5ba92abee0e3afd9dc4cef438ebf96c7 (patch)
tree233b060ecee707d77b6c0d3d91de90eb4beed13e /community/onboard
parent2ced64d6aa5881fa575de1861c464c432deee26f (diff)
Sat May 12 00:02:41 UTC 2012
Diffstat (limited to 'community/onboard')
-rw-r--r--community/onboard/PKGBUILD41
-rw-r--r--community/onboard/fix_encoding_mismatch.patch187
-rw-r--r--community/onboard/fix_unicode_translations.patch247
-rw-r--r--community/onboard/onboard.install13
4 files changed, 488 insertions, 0 deletions
diff --git a/community/onboard/PKGBUILD b/community/onboard/PKGBUILD
new file mode 100644
index 000000000..8476b2c16
--- /dev/null
+++ b/community/onboard/PKGBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+
+pkgname=onboard
+pkgver=0.97.0
+pkgrel=2
+pkgdesc="On-screen keyboard useful on tablet PCs or for mobility impaired users"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/onboard"
+license=('GPL')
+depends=('python2-cairo' 'dbus-python' 'python2-gobject' 'libwnck3' 'python2-virtkey' 'desktop-file-utils' 'dconf' 'hicolor-icon-theme' 'xdg-utils')
+makedepends=('python-distutils-extra')
+optdepends=('at-spi2-atk: auto-show when editing text'
+ 'mousetweaks: hover click with mouse')
+options=('!emptydirs')
+install=$pkgname.install
+source=(http://launchpad.net/$pkgname/${pkgver%.*}/$pkgver/+download/$pkgname-$pkgver.tar.gz
+ fix_unicode_translations.patch
+ fix_encoding_mismatch.patch)
+md5sums=('258bf6653a840c54ce1b4898d31fb775'
+ '73d71d019dc27e6ac8d479ab3dd0ab21'
+ '8c7f6f31547e1454725ded8090cbdc41')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # https://bugs.launchpad.net/onboard/+bug/933030
+ patch -Np0 -i "$srcdir/fix_unicode_translations.patch"
+
+ # https://bugs.launchpad.net/onboard/+bug/958385
+ patch -Np1 -i "$srcdir/fix_encoding_mismatch.patch"
+
+ sed -i 's/\"python\"/\"python2\"/g' scripts/sokSettings.py
+
+ python2 setup.py install --root=$pkgdir/ --optimize=1
+}
+
+package() {
+ cd "$pkgdir"
+
+ find . -type f -name *.py | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+}
diff --git a/community/onboard/fix_encoding_mismatch.patch b/community/onboard/fix_encoding_mismatch.patch
new file mode 100644
index 000000000..01750598c
--- /dev/null
+++ b/community/onboard/fix_encoding_mismatch.patch
@@ -0,0 +1,187 @@
+Subject: Fix string encodings so as to not have a mismatch without mousetweaks
+Author: marmuta
+Origin: upstream, http://bazaar.launchpad.net/~onboard/onboard/0.91/revision/764
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/958385
+
+---
+ Onboard/Config.py | 9 +++++----
+ Onboard/ConfigUtils.py | 9 ++++++---
+ Onboard/Exceptions.py | 5 +++--
+ Onboard/OnboardGtk.py | 5 +++--
+ Onboard/settings.py | 7 ++++---
+ Onboard/utils.py | 16 ++++++++++++++++
+ 6 files changed, 37 insertions(+), 14 deletions(-)
+
+Index: onboard-0.97.0/Onboard/Config.py
+===================================================================
+--- onboard-0.97.0.orig/Onboard/Config.py
++++ onboard-0.97.0/Onboard/Config.py
+@@ -12,7 +12,7 @@
+
+ from gi.repository import GLib, Gtk
+
+-from Onboard.utils import show_confirmation_dialog, Version
++from Onboard.utils import show_confirmation_dialog, Version, unicode_str
+ from Onboard.WindowUtils import Handle
+ from Onboard.ConfigUtils import ConfigObject
+ from Onboard.MouseControl import Mousetweaks, ClickMapper
+@@ -209,7 +209,7 @@
+ try:
+ ConfigObject.__init__(self)
+ except SchemaError as e:
+- _logger.error(str(e))
++ _logger.error(unicode_str(e))
+ sys.exit()
+
+ # init paths
+@@ -225,7 +225,8 @@
+ try:
+ copytree(old_user_dir, user_dir)
+ except OSError as ex: # python >2.5
+- _logger.error(_("Failed to migrate user directory. ") + str(ex))
++ _logger.error(_("Failed to migrate user directory. ") + \
++ unicode_str(ex))
+
+ # Load system defaults (if there are any, not required).
+ # Used for distribution specific settings, aka branding.
+@@ -347,7 +348,7 @@
+ self.mousetweaks = Mousetweaks()
+ self.children.append(self.mousetweaks)
+ except (SchemaError, ImportError) as e:
+- _logger.warning(str(e))
++ _logger.warning(unicode_str(e))
+ self.mousetweaks = None
+
+ self.clickmapper = ClickMapper()
+Index: onboard-0.97.0/Onboard/ConfigUtils.py
+===================================================================
+--- onboard-0.97.0.orig/Onboard/ConfigUtils.py
++++ onboard-0.97.0/Onboard/ConfigUtils.py
+@@ -22,7 +22,8 @@
+ from gi.repository import Gio
+
+ from Onboard.Exceptions import SchemaError
+-from Onboard.utils import pack_name_value_list, unpack_name_value_list
++from Onboard.utils import pack_name_value_list, unpack_name_value_list, \
++ unicode_str
+
+ _CAN_SET_HOOK = "_can_set_" # return true if value is valid
+ _GSETTINGS_GET_HOOK = "_gsettings_get_" # retrieve from gsettings
+@@ -388,7 +389,8 @@
+ try:
+ filename = parser.read(paths)
+ except configparser.ParsingError as ex:
+- _logger.error(_("Failed to read system defaults. " + str(ex)))
++ _logger.error(_("Failed to read system defaults. " + \
++ unicode_str(ex)))
+
+ if not filename:
+ _logger.info(_("No system defaults found."))
+@@ -501,7 +503,8 @@
+ value = self.settings[self.key]
+
+ except KeyError as ex:
+- _logger.error(_("Failed to get gsettings value. ") + str(ex))
++ _logger.error(_("Failed to get gsettings value. ") + \
++ unicode_str(ex))
+
+ return value
+
+Index: onboard-0.97.0/Onboard/Exceptions.py
+===================================================================
+--- onboard-0.97.0.orig/Onboard/Exceptions.py
++++ onboard-0.97.0/Onboard/Exceptions.py
+@@ -4,6 +4,7 @@
+
+ from traceback import format_tb
+ import sys
++from Onboard.utils import unicode_str
+
+ class ChainableError(Exception):
+ """
+@@ -40,10 +41,10 @@
+ traceback = property(_get_traceback)
+
+ def __str__(self):
+- message = self._message + "\n"
++ message = unicode_str(self._message) + "\n"
+ if self.chained_exception:
+ message += "%s: %s" % (type(self.chained_exception).__name__,
+- str(self.chained_exception))
++ unicode_str(self.chained_exception))
+ return message
+
+ class SVGSyntaxError(ChainableError):
+Index: onboard-0.97.0/Onboard/OnboardGtk.py
+===================================================================
+--- onboard-0.97.0.orig/Onboard/OnboardGtk.py
++++ onboard-0.97.0/Onboard/OnboardGtk.py
+@@ -26,7 +26,8 @@
+ from Onboard.KeyGtk import *
+ from Onboard.KbdWindow import KbdWindow, KbdPlugWindow
+ from Onboard.KeyboardSVG import KeyboardSVG
+-from Onboard.utils import show_confirmation_dialog, CallOnce, timeit
++from Onboard.utils import show_confirmation_dialog, CallOnce, timeit, \
++ unicode_str
+ from Onboard.Appearance import Theme
+
+ ### Config Singleton ###
+@@ -485,7 +486,7 @@
+ except virtkey.error as e:
+ t = time.time()
+ if t > self._vk_error_time + .2: # rate limit to once per 200ms
+- _logger.warning("vk: "+str(e))
++ _logger.warning("vk: " + unicode_str(e))
+ self._vk_error_time = t
+
+ return self._vk
+Index: onboard-0.97.0/Onboard/settings.py
+===================================================================
+--- onboard-0.97.0.orig/Onboard/settings.py
++++ onboard-0.97.0/Onboard/settings.py
+@@ -24,7 +24,8 @@
+ from Onboard.Appearance import Theme, ColorScheme
+ from Onboard.Scanner import ScanMode, ScanDevice
+ from Onboard.utils import show_ask_string_dialog, \
+- show_confirmation_dialog
++ show_confirmation_dialog, \
++ unicode_str
+
+ from virtkey import virtkey
+ from osk import Devices
+@@ -400,8 +401,8 @@
+ try:
+ Popen([filename, "universal-access"])
+ except OSError as e:
+- _logger.warning(_("System settings not found"
+- " ({}): {}").format(filename, str(e)))
++ _logger.warning(_("System settings not found ({}): {}") \
++ .format(filename, unicode_str(e)))
+
+ def update_num_resize_handles_combobox(self):
+ self.num_resize_handles_list = Gtk.ListStore(str, int)
+Index: onboard-0.97.0/Onboard/utils.py
+===================================================================
+--- onboard-0.97.0.orig/Onboard/utils.py
++++ onboard-0.97.0/Onboard/utils.py
+@@ -961,4 +961,20 @@
+ return 1
+ return 0
+
++def unicode_str(obj, encoding = "utf-8"):
++ """
++ Safe str() function that always returns an unicode string.
++ Do nothing if the string was already unicode.
++ """
++ if sys.version_info.major >= 3: # python 3?
++ return str(obj)
++
++ if type(obj) == unicode: # unicode string?
++ return obj
++
++ if hasattr(obj, "__unicode__"): # Exception object?
++ return unicode(obj)
++
++ return str(obj).decode("utf-8") # strings, numbers, ...
++
+
diff --git a/community/onboard/fix_unicode_translations.patch b/community/onboard/fix_unicode_translations.patch
new file mode 100644
index 000000000..1eaf663cc
--- /dev/null
+++ b/community/onboard/fix_unicode_translations.patch
@@ -0,0 +1,247 @@
+=== modified file 'Onboard/Appearance.py'
+--- Onboard/Appearance.py 2012-02-14 08:16:34 +0000
++++ Onboard/Appearance.py 2012-02-15 23:27:20 +0000
+@@ -11,7 +11,6 @@
+ _logger = logging.getLogger("Appearance")
+ ###############
+
+-from gettext import gettext as _
+ from xml.dom import minidom
+ import os
+ import re
+
+=== modified file 'Onboard/Config.py'
+--- Onboard/Config.py 2012-02-15 10:58:02 +0000
++++ Onboard/Config.py 2012-02-15 23:27:20 +0000
+@@ -9,7 +9,6 @@
+ import sys
+ from shutil import copytree
+ from optparse import OptionParser
+-from gettext import gettext as _
+
+ from gi.repository import GLib, Gtk
+
+
+=== modified file 'Onboard/ConfigUtils.py'
+--- Onboard/ConfigUtils.py 2012-02-08 14:56:38 +0000
++++ Onboard/ConfigUtils.py 2012-02-15 23:27:20 +0000
+@@ -13,7 +13,6 @@
+ import os
+ import sys
+ from ast import literal_eval
+-from gettext import gettext as _
+ try:
+ import configparser
+ except ImportError:
+@@ -418,8 +417,8 @@
+ # convert ini file strings to property values
+ sysdef_gskeys = dict((k.sysdef, k) for k in list(self.gskeys.values()))
+ for sysdef, value in items:
+- _logger.info(_("Found system default '{}={}'") \
+- .format(sysdef, value))
++ _logger.info(_("Found system default '[{}] {}={}'") \
++ .format(self.sysdef_section, sysdef, value))
+
+ gskey = sysdef_gskeys.get(sysdef, None)
+ value = self._convert_sysdef_key(gskey, sysdef, value)
+
+=== modified file 'Onboard/IconPalette.py'
+--- Onboard/IconPalette.py 2012-02-15 01:34:13 +0000
++++ Onboard/IconPalette.py 2012-02-15 23:27:20 +0000
+@@ -43,7 +43,6 @@
+ config = Config()
+ ########################
+
+-from gettext import gettext as _
+
+ class IconPalette(Gtk.Window, WindowRectTracker, WindowManipulator):
+ """
+
+=== modified file 'Onboard/Indicator.py'
+--- Onboard/Indicator.py 2012-02-11 14:07:56 +0000
++++ Onboard/Indicator.py 2012-02-15 23:27:20 +0000
+@@ -18,7 +18,6 @@
+ config = Config()
+ ########################
+
+-from gettext import gettext as _
+
+ class Indicator(GObject.GObject):
+
+
+=== modified file 'Onboard/KbdWindow.py'
+--- Onboard/KbdWindow.py 2012-02-15 10:18:48 +0000
++++ Onboard/KbdWindow.py 2012-02-15 23:27:20 +0000
+@@ -11,7 +11,6 @@
+ from Onboard.WindowUtils import Orientation, WindowRectTracker
+ from Onboard.IconPalette import IconPalette
+
+-from gettext import gettext as _
+
+ ### Logging ###
+ import logging
+
+=== modified file 'Onboard/Keyboard.py'
+--- Onboard/Keyboard.py 2012-02-14 20:21:02 +0000
++++ Onboard/Keyboard.py 2012-02-15 23:27:20 +0000
+@@ -3,7 +3,6 @@
+ from __future__ import division, print_function, unicode_literals
+
+ import sys
+-from gettext import gettext as _
+
+ from gi.repository import GObject, Gtk, Gdk
+
+
+=== modified file 'Onboard/KeyboardGTK.py'
+--- Onboard/KeyboardGTK.py 2012-02-15 01:33:34 +0000
++++ Onboard/KeyboardGTK.py 2012-02-15 23:27:20 +0000
+@@ -5,7 +5,6 @@
+
+ import os
+ import time
+-from gettext import gettext as _
+
+ import cairo
+ from gi.repository import GObject, Gdk, Gtk
+
+=== modified file 'Onboard/KeyboardSVG.py'
+--- Onboard/KeyboardSVG.py 2012-02-09 19:18:36 +0000
++++ Onboard/KeyboardSVG.py 2012-02-15 23:27:20 +0000
+@@ -11,7 +11,6 @@
+ import re
+ import sys
+ import shutil
+-from gettext import gettext as _
+ from xml.dom import minidom
+
+ from Onboard import Exceptions
+
+=== modified file 'Onboard/MouseControl.py'
+--- Onboard/MouseControl.py 2012-01-19 08:50:34 +0000
++++ Onboard/MouseControl.py 2012-02-15 23:27:20 +0000
+@@ -5,7 +5,6 @@
+
+ from __future__ import division, print_function, unicode_literals
+
+-from gettext import gettext as _
+ try:
+ import dbus
+ from dbus.mainloop.glib import DBusGMainLoop
+
+=== modified file 'Onboard/OnboardGtk.py'
+--- Onboard/OnboardGtk.py 2012-02-15 10:58:02 +0000
++++ Onboard/OnboardGtk.py 2012-02-15 23:27:20 +0000
+@@ -13,14 +13,14 @@
+ import signal
+ import gettext
+ import os.path
+-from gettext import gettext as _
+ import virtkey
+-
+ from gi.repository import GObject, Gio, Gdk, Gtk
+
++# setup gettext, install _() function for all modules
++app = "onboard"
++gettext.install(app, unicode=True)
+
+ from Onboard.Indicator import Indicator
+-
+ from Onboard.Keyboard import Keyboard
+ from Onboard.Scanner import Scanner
+ from Onboard.KeyGtk import *
+@@ -37,11 +37,6 @@
+ import Onboard.KeyCommon
+ import Onboard.utils as utils
+
+-#setup gettext
+-app="onboard"
+-gettext.textdomain(app)
+-gettext.bindtextdomain(app)
+-
+ DEFAULT_FONTSIZE = 10
+
+ class OnboardGtk(Gtk.Application):
+
+=== modified file 'Onboard/SnippetView.py'
+--- Onboard/SnippetView.py 2012-01-09 22:25:10 +0000
++++ Onboard/SnippetView.py 2012-02-15 23:27:20 +0000
+@@ -4,7 +4,6 @@
+
+ from gi.repository import GObject, Gtk
+
+-from gettext import gettext as _
+
+ from Onboard.utils import show_error_dialog
+
+
+=== modified file 'Onboard/TouchHandles.py'
+--- Onboard/TouchHandles.py 2012-02-14 08:32:08 +0000
++++ Onboard/TouchHandles.py 2012-02-15 23:27:20 +0000
+@@ -5,7 +5,6 @@
+
+ from math import pi, sqrt, sin, log
+ import cairo
+-from gettext import gettext as _
+
+ from Onboard.utils import Rect
+ from Onboard.WindowUtils import Handle
+
+=== modified file 'Onboard/WindowUtils.py'
+--- Onboard/WindowUtils.py 2012-02-15 10:23:36 +0000
++++ Onboard/WindowUtils.py 2012-02-15 23:27:20 +0000
+@@ -5,7 +5,6 @@
+
+ import time
+ from math import sqrt
+-from gettext import gettext as _
+
+ from gi.repository import GObject, Gtk, Gdk
+
+
+=== modified file 'Onboard/settings.py'
+--- Onboard/settings.py 2012-02-15 10:58:02 +0000
++++ Onboard/settings.py 2012-02-15 23:27:20 +0000
+@@ -11,9 +11,14 @@
+ from subprocess import Popen
+ from xml.parsers.expat import ExpatError
+ from xml.dom import minidom
++import gettext
+
+ from gi.repository import GObject, Pango, Gdk, Gtk
+
++# setup gettext, install _() function for all modules
++app = "onboard"
++gettext.install(app, unicode=True)
++
+ from Onboard.KeyboardSVG import KeyboardSVG
+ from Onboard.SnippetView import SnippetView
+ from Onboard.Appearance import Theme, ColorScheme
+@@ -36,14 +41,6 @@
+ config = Config()
+ ########################
+
+-#setup gettext
+-import gettext
+-from gettext import gettext as _
+-app = "onboard"
+-gettext.textdomain(app)
+-gettext.bindtextdomain(app)
+-
+-
+
+ def LoadUI(filebase):
+ builder = Gtk.Builder()
+
+=== modified file 'Onboard/utils.py'
+--- Onboard/utils.py 2012-02-15 01:33:34 +0000
++++ Onboard/utils.py 2012-02-15 23:27:20 +0000
+@@ -11,7 +11,6 @@
+ from subprocess import Popen
+ from math import pi, sqrt, sin
+ from contextlib import contextmanager
+-from gettext import gettext as _
+
+ from gi.repository import GObject, Gtk
+
+
diff --git a/community/onboard/onboard.install b/community/onboard/onboard.install
new file mode 100644
index 000000000..aa4c3e059
--- /dev/null
+++ b/community/onboard/onboard.install
@@ -0,0 +1,13 @@
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ xdg-icon-resource forceupdate
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}