mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
gst/__init__.py: Make gst-python work on OS without dl.so
Original commit message from CVS: reviewed by: Edward Hervey <edward@fluendo.com> * gst/__init__.py: Make gst-python work on OS without dl.so Fixes #341799
This commit is contained in:
parent
78e97adb23
commit
20469390bd
2 changed files with 31 additions and 5 deletions
|
@ -1,3 +1,11 @@
|
|||
2006-05-27 Yuri Pankov <yuri.pankov@gmail.com>
|
||||
|
||||
reviewed by: Edward Hervey <edward@fluendo.com>
|
||||
|
||||
* gst/__init__.py:
|
||||
Make gst-python work on OS without dl.so
|
||||
Fixes #341799
|
||||
|
||||
2006-04-27 Johan Rydberg <jrydberg@gnu.org>
|
||||
|
||||
reviewed by: Edward Hervey <edward@fluendo.com>
|
||||
|
|
|
@ -83,17 +83,35 @@ class Fraction(Value):
|
|||
def __repr__(self):
|
||||
return '<gst.Fraction %d/%d>' % (self.num, self.denom)
|
||||
|
||||
import DLFCN, sys
|
||||
import sys
|
||||
dlsave = sys.getdlopenflags()
|
||||
sys.setdlopenflags(DLFCN.RTLD_LAZY | DLFCN.RTLD_GLOBAL)
|
||||
try:
|
||||
from DLFCN import RTLD_GLOBAL, RTLD_LAZY
|
||||
except ImportError:
|
||||
RTLD_GLOBAL = -1
|
||||
RTLD_LAZY = -1
|
||||
import os
|
||||
osname = os.uname()[0]
|
||||
if osname == 'Linux' or osname == 'SunOS' or osname == 'FreeBSD':
|
||||
RTLD_GLOBAL = 0x100
|
||||
RTLD_LAZY = 0x1
|
||||
elif osname == 'Darwin':
|
||||
RTLD_GLOBAL = 0x8
|
||||
RTLD_LAZY = 0x1
|
||||
del os
|
||||
except:
|
||||
RTLD_GLOBAL = -1
|
||||
RTLD_LAZY = -1
|
||||
|
||||
if RTLD_GLOBAL != -1 and RTLD_LAZY != -1:
|
||||
sys.setdlopenflags(RTLD_LAZY | RTLD_GLOBAL)
|
||||
from _gst import *
|
||||
import interfaces
|
||||
|
||||
version = get_gst_version
|
||||
|
||||
sys.setdlopenflags(dlsave)
|
||||
del DLFCN, sys
|
||||
del sys
|
||||
|
||||
# this restores previously installed importhooks, so we don't interfere
|
||||
# with other people's module importers
|
||||
|
|
Loading…
Reference in a new issue