summaryrefslogtreecommitdiff
path: root/testing/python-notify
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-10-17 01:15:52 -0700
committerroot <root@rshg054.dnsready.net>2012-10-17 01:15:52 -0700
commitc84b2cd310f86dc50c4f52a5907cb17652e8c87c (patch)
treeef3dc614b68e1e6f5966a5d29f3970e27bb7c4f9 /testing/python-notify
parent99d0ec7ebad2eda5f3a03098962e3b250e3bef4c (diff)
Wed Oct 17 01:14:52 PDT 2012
Diffstat (limited to 'testing/python-notify')
-rw-r--r--testing/python-notify/PKGBUILD43
-rw-r--r--testing/python-notify/libnotify07.patch36
-rw-r--r--testing/python-notify/notify-python-0.1.1-fix-GTK-symbols.patch25
3 files changed, 104 insertions, 0 deletions
diff --git a/testing/python-notify/PKGBUILD b/testing/python-notify/PKGBUILD
new file mode 100644
index 000000000..674fb34c1
--- /dev/null
+++ b/testing/python-notify/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 168868 2012-10-16 11:55:02Z allan $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+
+pkgbase=python-notify
+pkgname=python2-notify
+pkgver=0.1.1
+pkgrel=12
+pkgdesc="Python bindings for libnotify"
+arch=('i686' 'x86_64')
+url="http://www.galago-project.org/"
+license=('GPL')
+depends=('pygtk>=2.22.0' 'libnotify>=0.7.1')
+makedepends=('python2')
+conflicts=('python-notify<=0.1.1-11')
+replaces=('python-notify<=0.1.1-11')
+options=(!libtool)
+source=(http://www.galago-project.org/files/releases/source/notify-python/notify-python-${pkgver}.tar.gz
+ libnotify07.patch
+ notify-python-0.1.1-fix-GTK-symbols.patch)
+md5sums=('8f0ef0939cc8edd2efd896ce5ba80cf4'
+ 'b40c4542575d5aef559908fe60a21634'
+ 'c6922028da5951e69a6a0167bdb4461c')
+
+build() {
+ cd "${srcdir}/notify-python-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/libnotify07.patch"
+ patch -Np1 -i "${srcdir}/notify-python-0.1.1-fix-GTK-symbols.patch"
+
+ ./configure --prefix=/usr
+
+ # WARNING - we touch src/pynotify.override in build because upstream did not rebuild pynotify.c
+ # from the input definitions, this forces pynotify.c to be regenerated, at some point this can be removed
+ touch src/pynotify.override
+
+ make clean
+ make
+}
+
+package_python2-notify() {
+ cd "${srcdir}/notify-python-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/python-notify/libnotify07.patch b/testing/python-notify/libnotify07.patch
new file mode 100644
index 000000000..289573d50
--- /dev/null
+++ b/testing/python-notify/libnotify07.patch
@@ -0,0 +1,36 @@
+diff -up notify-python-0.1.1/src/pynotify.defs.notify070 notify-python-0.1.1/src/pynotify.defs
+--- notify-python-0.1.1/src/pynotify.defs.notify070 2010-11-02 17:11:14.928179237 -0400
++++ notify-python-0.1.1/src/pynotify.defs 2010-11-02 17:11:51.153180231 -0400
+@@ -38,7 +38,6 @@
+ '("const-gchar*" "summary")
+ '("const-gchar*" "message" (null-ok) (default "NULL"))
+ '("const-gchar*" "icon" (null-ok) (default "NULL"))
+- '("GtkWidget*" "attach" (null-ok) (default "NULL"))
+ )
+ )
+
+@@ -53,24 +52,6 @@
+ )
+ )
+
+-(define-method attach_to_widget
+- (of-object "NotifyNotification")
+- (c-name "notify_notification_attach_to_widget")
+- (return-type "none")
+- (parameters
+- '("GtkWidget*" "attach")
+- )
+-)
+-
+-(define-method attach_to_status_icon
+- (of-object "NotifyNotification")
+- (c-name "notify_notification_attach_to_status_icon")
+- (return-type "none")
+- (parameters
+- '("GtkStatusIcon*" "attach")
+- )
+-)
+-
+ (define-method show
+ (of-object "NotifyNotification")
+ (c-name "notify_notification_show")
diff --git a/testing/python-notify/notify-python-0.1.1-fix-GTK-symbols.patch b/testing/python-notify/notify-python-0.1.1-fix-GTK-symbols.patch
new file mode 100644
index 000000000..f985c0136
--- /dev/null
+++ b/testing/python-notify/notify-python-0.1.1-fix-GTK-symbols.patch
@@ -0,0 +1,25 @@
+diff -up notify-python-0.1.1/src/__init__.py.BAD notify-python-0.1.1/src/__init__.py
+--- notify-python-0.1.1/src/__init__.py.BAD 2010-08-31 09:04:45.353844005 -0400
++++ notify-python-0.1.1/src/__init__.py 2010-08-31 09:04:49.281844300 -0400
+@@ -1 +1,21 @@
++"""
++Fedora's libnotify.so is not linked against GTK2 or GTK3. The idea
++was to support being linked against different parallel-installable
++GTK stacks.
++
++Unfortunately, python needs to jump through some special hoops in order
++to share symbols with extension modules, specifically, pygtk, which does
++link against GTK2.
++
++Without using sys.setdlopenflags(sys.getdlopenflags() | ctypes.RTLD_GLOBAL),
++the result is:
++libnotify-WARNING **: Missing symbol 'gdk_screen_make_display_name'
++
++Thanks to David Malcolm for figuring out the workaround.
++"""
++import ctypes
++import sys
++sys.setdlopenflags(sys.getdlopenflags() | ctypes.RTLD_GLOBAL)
++import gtk
++
+ from _pynotify import *