Get rid of ltihooks.py.

ltihooks.py apparently breaks the import mechanisms of Python 2.6,
causes SWIG's runtime to fail to share a global type table, and
yields various failures in our tests.

* wrap/python/ltihooks.py: Delete.
* wrap/python/Makefile.am (EXTRA_DIST): remove ltihooks.py.
* wrap/python/tests/bddnqueen.py, wrap/python/tests/interdep.py,
wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py,
wrap/python/tests/ltlsimple.py, wrap/python/tests/minato.py,
wrap/python/tests/modgray.py, wrap/python/tests/optionmap.py,
wrap/python/tests/setxor.py: Do not use ltihooks.
* wrap/python/tests/run.in (pypath): Include the .libs/ directory
in the search path so that Python can find the *.so libraries.
This commit is contained in:
Alexandre Duret-Lutz 2010-12-23 22:25:23 +01:00
parent 2ac37ad58f
commit 3d61b3a3c0
14 changed files with 43 additions and 84 deletions

View file

@ -1,3 +1,23 @@
2010-12-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
Get rid of ltihooks.py.
ltihooks.py apparently breaks the import mechanisms of Python 2.6,
causes SWIG's runtime to fail to share a global type table, and
yields various failures in our tests.
* wrap/python/ltihooks.py: Delete.
* wrap/python/Makefile.am (EXTRA_DIST): remove ltihooks.py.
* wrap/python/tests/bddnqueen.py, wrap/python/tests/interdep.py,
wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py,
wrap/python/tests/ltlsimple.py, wrap/python/tests/minato.py,
wrap/python/tests/modgray.py, wrap/python/tests/optionmap.py,
wrap/python/tests/setxor.py: Do not use ltihooks.
* wrap/python/tests/run.in (pypath): Include the .libs/ directories
in the search path so that Python can find the *.so libraries.
* wrap/python/cgi-bin/ltl2tgba.in: Insert the .libs/ directories
into sys.path instead of importing ltihooks.
2010-12-12 Alexandre Duret-Lutz <adl@lrde.epita.fr> 2010-12-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
* NEWS: Summarize recent changes. * NEWS: Summarize recent changes.

View file

@ -25,7 +25,7 @@ SUBDIRS = . cgi-bin tests
AM_CPPFLAGS = -I$(PYTHONINC) -I$(top_srcdir)/src $(BUDDY_CPPFLAGS) AM_CPPFLAGS = -I$(PYTHONINC) -I$(top_srcdir)/src $(BUDDY_CPPFLAGS)
EXTRA_DIST = ltihooks.py spot.i buddy.i EXTRA_DIST = spot.i buddy.i
python_PYTHON = $(srcdir)/spot.py $(srcdir)/buddy.py python_PYTHON = $(srcdir)/spot.py $(srcdir)/buddy.py
pyexec_LTLIBRARIES = _spot.la _buddy.la pyexec_LTLIBRARIES = _spot.la _buddy.la

View file

@ -69,14 +69,15 @@ if (os.environ.has_key('SERVER_SOFTWARE') and
# Add the build and source directories first in the search path. # Add the build and source directories first in the search path.
# If we are not in the right place, python will find the installed # If we are not in the right place, python will find the installed
# libraries later. # libraries later.
sys.path.insert(0, '@srcdir@/../.libs')
sys.path.insert(0, '@srcdir@/..') sys.path.insert(0, '@srcdir@/..')
sys.path.insert(0, '../.libs')
sys.path.insert(0, '..') sys.path.insert(0, '..')
# Darwin needs some help in figuring out where non-installed libtool # Darwin needs some help in figuring out where non-installed libtool
# libraries are (on this platform libtool encodes the expected final # libraries are (on this platform libtool encodes the expected final
# path of dependent libraries in each library). # path of dependent libraries in each library).
m = '../.libs:@top_builddir@/src/.libs:@top_builddir@/buddy/src/.libs' m = '../.libs:@top_builddir@/src/.libs:@top_builddir@/buddy/src/.libs'
os.environ['DYLD_LIBRARY_PATH'] = m os.environ['DYLD_LIBRARY_PATH'] = m
import ltihooks
# Extra HTML headers. # Extra HTML headers.
extra_header = '' extra_header = ''

View file

@ -1,60 +0,0 @@
# -*- Mode: Python; py-indent-offset: 4 -*-
# ltihooks.py: python import hooks that understand libtool libraries.
# Copyright (C) 2000 James Henstridge.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
import os, ihooks
class LibtoolHooks(ihooks.Hooks):
def get_suffixes(self):
"""Like normal get_suffixes, but adds .la suffixes to list"""
ret = ihooks.Hooks.get_suffixes(self)
ret.insert(0, ('module.la', 'rb', 3))
ret.insert(0, ('.la', 'rb', 3))
return ret
def load_dynamic(self, name, filename, file=None):
"""Like normal load_dynamic, but treat .la files specially"""
if len(filename) > 3 and filename[-3:] == '.la':
fp = open(filename, 'r')
dlname = ''
installed = 1
line = fp.readline()
while line:
if len(line) > 7 and line[:7] == 'dlname=':
dlname = line[8:-2]
elif len(line) > 10 and line[:10] == 'installed=':
installed = line[10:-1] == 'yes'
line = fp.readline()
fp.close()
if dlname:
if installed:
filename = os.path.join(os.path.dirname(filename),
dlname)
else:
filename = os.path.join(os.path.dirname(filename),
'.libs', dlname)
return ihooks.Hooks.load_dynamic(self, name, filename, file)
importer = ihooks.ModuleImporter()
importer.set_hooks(LibtoolHooks())
def install():
importer.install()
def uninstall():
importer.uninstall()
install()

View file

@ -1,5 +1,5 @@
# -*- mode: python; coding: iso-8859-1 -*- # -*- mode: python; coding: iso-8859-1 -*-
# Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), # Copyright (C) 2003, 2004, 2010 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre # département Systèmes Répartis Coopératifs (SRC), Université Pierre
# et Marie Curie. # et Marie Curie.
# #
@ -23,7 +23,6 @@
# Python translation of the C++ example from the BuDDy distribution. # Python translation of the C++ example from the BuDDy distribution.
# (compare with buddy/examples/queen/queen.cxx) # (compare with buddy/examples/queen/queen.cxx)
import ltihooks
import sys import sys
from buddy import * from buddy import *

View file

@ -1,5 +1,5 @@
# -*- mode: python; coding: iso-8859-1 -*- # -*- mode: python; coding: iso-8859-1 -*-
# Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), # Copyright (C) 2003, 2004, 2010 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre # département Systèmes Répartis Coopératifs (SRC), Université Pierre
# et Marie Curie. # et Marie Curie.
# #
@ -22,9 +22,8 @@
# Make sure that interdependencies between the spot and buddy wrappers # Make sure that interdependencies between the spot and buddy wrappers
# are not problematic. # are not problematic.
import ltihooks
import spot
import buddy import buddy
import spot
e = spot.default_environment.instance() e = spot.default_environment.instance()
p = spot.empty_parse_error_list() p = spot.empty_parse_error_list()
f = spot.parse('GFa', p, e) f = spot.parse('GFa', p, e)

View file

@ -1,5 +1,5 @@
# -*- mode: python; coding: iso-8859-1 -*- # -*- mode: python; coding: iso-8859-1 -*-
# Copyright (C) 2009 Laboratoire de Recherche et Développement # Copyright (C) 2009, 2010 Laboratoire de Recherche et Développement
# de l'Epita (LRDE). # de l'Epita (LRDE).
# Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), # Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre # département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -27,7 +27,6 @@
import sys import sys
import getopt import getopt
import ltihooks
import spot import spot
def usage(prog): def usage(prog):

View file

@ -1,5 +1,5 @@
# -*- mode: python; coding: iso-8859-1 -*- # -*- mode: python; coding: iso-8859-1 -*-
# Copyright (C) 2009 Laboratoire de Recherche et Développement # Copyright (C) 2009, 2010 Laboratoire de Recherche et Développement
# de l'Epita (LRDE). # de l'Epita (LRDE).
# Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), # Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre # département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -23,7 +23,6 @@
# 02111-1307, USA. # 02111-1307, USA.
import sys import sys
import ltihooks
import spot import spot
e = spot.default_environment.instance() e = spot.default_environment.instance()

View file

@ -1,5 +1,5 @@
# -*- mode: python; coding: iso-8859-1 -*- # -*- mode: python; coding: iso-8859-1 -*-
# Copyright (C) 2009 Laboratoire de Recherche et Développement # Copyright (C) 2009, 2010 Laboratoire de Recherche et Développement
# de l'Epita (LRDE). # de l'Epita (LRDE).
# Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), # Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre # département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -22,7 +22,6 @@
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA. # 02111-1307, USA.
import ltihooks
import spot import spot
e = spot.default_environment.instance() e = spot.default_environment.instance()

View file

@ -1,5 +1,5 @@
# -*- mode: python; coding: iso-8859-1 -*- # -*- mode: python; coding: iso-8859-1 -*-
# Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), # Copyright (C) 2004, 2010 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre # département Systèmes Répartis Coopératifs (SRC), Université Pierre
# et Marie Curie. # et Marie Curie.
# #
@ -20,7 +20,6 @@
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA. # 02111-1307, USA.
import ltihooks
import spot import spot
import buddy import buddy
import sys import sys

View file

@ -1,5 +1,5 @@
# -*- mode: python; coding: iso-8859-1 -*- # -*- mode: python; coding: iso-8859-1 -*-
# Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), # Copyright (C) 2004, 2010 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre # département Systèmes Répartis Coopératifs (SRC), Université Pierre
# et Marie Curie. # et Marie Curie.
# #
@ -20,7 +20,6 @@
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA. # 02111-1307, USA.
import ltihooks
import spot import spot
class test(spot.loopless_modular_mixed_radix_gray_code): class test(spot.loopless_modular_mixed_radix_gray_code):

View file

@ -1,5 +1,5 @@
# -*- mode: python; coding: iso-8859-1 -*- # -*- mode: python; coding: iso-8859-1 -*-
# Copyright (C) 2005 Laboratoire d'Informatique de Paris 6 (LIP6), # Copyright (C) 2005, 2010 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre # département Systèmes Répartis Coopératifs (SRC), Université Pierre
# et Marie Curie. # et Marie Curie.
# #
@ -20,7 +20,6 @@
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA. # 02111-1307, USA.
import ltihooks
import spot import spot
o = spot.option_map() o = spot.option_map()

View file

@ -1,7 +1,10 @@
#!/bin/sh #!/bin/sh
# Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre # Copyright (C) 2010 Laboratoire de Recherche et Developpement de
# et Marie Curie. # l'EPITA (LRDE).
# Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6
# (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
# Pierre et Marie Curie.
# #
# This file is part of Spot, a model checking library. # This file is part of Spot, a model checking library.
# #
@ -30,7 +33,11 @@ test -n "$srcdir" && test -z "$VERBOSE" && exec >/dev/null 2>&1
# path of dependent libraries in each library). # path of dependent libraries in each library).
modpath='../.libs:@top_builddir@/src/.libs:@top_builddir@/buddy/src/.libs' modpath='../.libs:@top_builddir@/src/.libs:@top_builddir@/buddy/src/.libs'
pypath='..:@srcdir@/..:$PYTHONPATH' # .. is for the *.py files, and ../.libs for the *.so. We used to
# rely on a module called ltihooks.py to teach the import function how
# to load a Libtool library, but it started to cause issues with
# Python 2.6.
pypath='..:../.libs:@srcdir@/..:@srcdir@/../.libs:$PYTHONPATH'
test -z "$1" && test -z "$1" &&
PYTHONPATH=$pypath DYLD_LIBRARY_PATH=$modpath exec @PYTHON@ PYTHONPATH=$pypath DYLD_LIBRARY_PATH=$modpath exec @PYTHON@

View file

@ -18,7 +18,6 @@
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA. # 02111-1307, USA.
import ltihooks
import sys import sys
from buddy import * from buddy import *