update Sat Oct 3 06:37:00 PDT 2009
[pkgsrc.git] / wip / kdebindings4-python / patches / patch-ab
1 $NetBSD$
2
3 deal with possible lack of DLFCN package as its only on Linux and Solaris
4
5 --- python/pykde4/__init__.py.orig      2008-07-22 12:00:52.000000000 +1200
6 +++ python/pykde4/__init__.py
7 @@ -1,4 +1,22 @@
8 -import sys,DLFCN
9 +import sys
10 +try:
11 +    from DLFCN import RTLD_NOW, RTLD_GLOBAL
12 +except ImportError:
13 +    RTLD_GLOBAL = -1
14 +    RTLD_NOW = -1
15 +    import os
16 +    osname = os.uname()[0]
17 +    if osname == 'Linux' or osname == 'SunOS' or osname == 'FreeBSD' or osname == 'NetBSD':
18 +        RTLD_GLOBAL = 0x100
19 +        RTLD_NOW = 0x2
20 +    elif osname == 'Darwin':
21 +        RTLD_GLOBAL = 0x8
22 +        RTLD_NOW = 0x2
23 +    del os
24 +except:
25 +    RTLD_GLOBAL = -1
26 +    RTLD_NOW = -1
27 +
28  # This is needed to ensure that dynamic_cast and RTTI works inside kdelibs.
29 -sys.setdlopenflags(DLFCN.RTLD_NOW|DLFCN.RTLD_GLOBAL)
30 -     
31 \ No newline at end of file
32 +if RTLD_GLOBAL != -1 and RTLD_NOW != -1:
33 +    sys.setdlopenflags(RTLD_NOW|RTLD_GLOBAL)