From c84b2cd310f86dc50c4f52a5907cb17652e8c87c Mon Sep 17 00:00:00 2001 From: root Date: Wed, 17 Oct 2012 01:15:52 -0700 Subject: Wed Oct 17 01:14:52 PDT 2012 --- testing/python-notify/PKGBUILD | 43 ++++++++++++++++++++++ testing/python-notify/libnotify07.patch | 36 ++++++++++++++++++ .../notify-python-0.1.1-fix-GTK-symbols.patch | 25 +++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 testing/python-notify/PKGBUILD create mode 100644 testing/python-notify/libnotify07.patch create mode 100644 testing/python-notify/notify-python-0.1.1-fix-GTK-symbols.patch (limited to 'testing/python-notify') 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 + +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 * -- cgit v1.2.3-54-g00ecf