Fix detection of SIP-TQt, PyTQt and PyTDE modules in tdedistutils

with multiple Python3 installed in parallel. This solves FTBFS
when building tde-guidance.

Remove import of 'imp' module that is no longer needed.
Sysconfig from Python is now used instead of sysconfig from distutils.

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
pull/11/head
Slávek Banko 4 months ago
parent dcf49643f4
commit 9f0eefe9d3
Signed by: SlavekB
GPG Key ID: 608F5293A04BE668

@ -26,15 +26,15 @@ from distutils.command.install_data import install_data
from distutils.command.install_lib import install_lib
from distutils.util import change_root, convert_path
from distutils.spawn import find_executable,spawn
from distutils import sysconfig
from distutils import log
from distutils import file_util
from distutils import dir_util
from distutils.util import byte_compile
import tqtuicompiler
import stat
import os,os.path,imp,glob
import os,os.path,glob
import sys
import sysconfig
from types import *
INSTALL_LIST = 'install_log.txt'
@ -619,39 +619,43 @@ class BuildKControlModule(Command):
# Python dir
if self.python_dir is None:
self.python_dir = os.path.split(sysconfig.get_config_var("LIBPL"))[0]
self.python_dir = sysconfig.get_path('platstdlib')
self.announce("Using %s for the python directory" % self.python_dir)
# Python include dir.
if self.python_inc_dir is None:
# Find the Python include directory.
self.python_inc_dir = sysconfig.get_config_var("INCLUDEPY")
self.python_inc_dir = sysconfig.get_path('include')
self.announce("Using %s for Python header files" % self.python_inc_dir)
# PyTQt dir
if self.pytqt_dir is None:
self.pytqt_dir = FindFileInPaths("PyTQt", sys.path)
if self.pytqt_dir is None:
self.pytqt_dir = os.path.join(sysconfig.get_python_lib(), 'PyTQt')
if (FindFileInPaths("libtqtcmodule*",[self.pytqt_dir]) is None) and (FindFileInPaths("tqt*",[self.pytqt_dir]) is None):
pytqt_dirs = sys.path
pytqt_dirs.insert(0, sysconfig.get_path('platstdlib'))
self.pytqt_dir = FindFileInPaths("PyTQt/tqt*.so", pytqt_dirs)
if not self.pytqt_dir is None:
self.pytqt_dir = os.path.join(self.pytqt_dir, 'PyTQt')
if (FindFileInPaths("tqt*", self.pytqt_dir) is None):
raise SystemExit("Failed to find the PyTQt directory: %s" % self.pytqt_dir)
self.announce("Using %s for PyTQt modules" % self.pytqt_dir)
# PyTDE dir
if self.pytde_dir is None:
self.pytde_dir = sysconfig.get_python_lib()
if (FindFileInPaths("libtdecorecmodule*",[self.pytde_dir]) is None) and (FindFileInPaths("tdecore*",[self.pytde_dir]) is None):
pytde_dirs = sys.path
pytde_dirs.insert(0, sysconfig.get_path('platstdlib'))
self.pytde_dir = FindFileInPaths("tdecore*.so", pytde_dirs)
if (FindFileInPaths("tdecore*", self.pytde_dir) is None):
raise SystemExit("Failed to find the PyTDE directory: %s" % self.pytde_dir)
self.announce("Using %s for PyTDE modules" % self.pytde_dir)
# Sip dir
if self.sip_dir is None:
self.sip_dir = os.path.dirname(FindFileInPaths("sip_tqt*", sys.path))
if self.sip_dir is None:
self.sip_dir = sysconfig.get_python_lib()
if (FindFileInPaths("libsip_tqt*", [self.sip_dir]) is None) and (FindFileInPaths("sip_tqt*", [self.sip_dir]) is None):
raise SystemExit("Failed to find libsip files in directory: %s" % self.sip_dir)
self.announce("Using %s for libsip files" % self.sip_dir)
sip_dirs = sys.path
sip_dirs.insert(0, sysconfig.get_path('platstdlib'))
self.sip_dir = FindFileInPaths("sip_tqt*.so", sip_dirs)
if (FindFileInPaths("sip_tqt*", [self.sip_dir]) is None):
raise SystemExit("Failed to find sip-tqt directory: %s" % self.sip_dir)
self.announce("Using %s for sip-tqt files" % self.sip_dir)
# Find the C library (libgcc, libgcc_s or some other variation).
if self.clib is None:
@ -692,7 +696,7 @@ class BuildKControlModule(Command):
libraryname = None
cmodulecategory = None
try:
fhandle = open(moduletuple[0],'r')
fhandle = open(moduletuple[0], 'r', encoding='utf-8')
for line in fhandle.readlines():
parts = line.strip().split('=')
try:
@ -1068,7 +1072,7 @@ class InstallKControlModule(Command):
libraryname = None
cmodulecategory = None
try:
fhandle = open(moduletuple[0],'r')
fhandle = open(moduletuple[0], 'r', encoding='utf-8')
for line in fhandle.readlines():
parts = line.strip().split('=')
try:
@ -1564,39 +1568,43 @@ class BuildTdeioslave(Command):
# Python dir
if self.python_dir is None:
self.python_dir = os.path.split(sysconfig.get_config_var("LIBPL"))[0]
self.python_dir = sysconfig.get_path('platstdlib')
self.announce("Using %s for the python directory" % self.python_dir)
# Python include dir.
if self.python_inc_dir is None:
# Find the Python include directory.
self.python_inc_dir = sysconfig.get_config_var("INCLUDEPY")
self.python_inc_dir = sysconfig.get_path('include')
self.announce("Using %s for Python header files" % self.python_inc_dir)
# PyTQt dir
if self.pytqt_dir is None:
self.pytqt_dir = FindFileInPaths("PyTQt", sys.path)
if self.pytqt_dir is None:
self.pytqt_dir = os.path.join(sysconfig.get_python_lib(), 'PyTQt')
if (FindFileInPaths("libtqtcmodule*",[self.pytqt_dir]) is None) and (FindFileInPaths("tqt*",[self.pytqt_dir]) is None):
pytqt_dirs = sys.path
pytqt_dirs.insert(0, sysconfig.get_path('platstdlib'))
self.pytqt_dir = FindFileInPaths("PyTQt/tqt*.so", pytqt_dirs)
if not self.pytqt_dir is None:
self.pytqt_dir = os.path.join(self.pytqt_dir, 'PyTQt')
if (FindFileInPaths("tqt*", self.pytqt_dir) is None):
raise SystemExit("Failed to find the PyTQt directory: %s" % self.pytqt_dir)
self.announce("Using %s for PyTQt modules" % self.pytqt_dir)
# PyTDE dir
if self.pytde_dir is None:
self.pytde_dir = sysconfig.get_python_lib()
if (FindFileInPaths("libtdecorecmodule*",[self.pytde_dir]) is None) and (FindFileInPaths("tdecore*",[self.pytde_dir]) is None):
pytde_dirs = sys.path
pytde_dirs.insert(0, sysconfig.get_path('platstdlib'))
self.pytde_dir = FindFileInPaths("tdecore*.so", pytde_dirs)
if (FindFileInPaths("tdecore*", self.pytde_dir) is None):
raise SystemExit("Failed to find the PyTDE directory: %s" % self.pytde_dir)
self.announce("Using %s for PyTDE modules" % self.pytde_dir)
# Sip dir
if self.sip_dir is None:
self.sip_dir = os.path.dirname(FindFileInPaths("sip_tqt*", sys.path))
if self.sip_dir is None:
self.sip_dir = sysconfig.get_python_lib()
if (FindFileInPaths("libsip_tqt*", [self.sip_dir]) is None) and (FindFileInPaths("sip_tqt*", [self.sip_dir]) is None):
raise SystemExit("Failed to find libsip files in directory: %s" % self.sip_dir)
self.announce("Using %s for libsip files" % self.sip_dir)
sip_dirs = sys.path
sip_dirs.insert(0, sysconfig.get_path('platstdlib'))
self.sip_dir = FindFileInPaths("sip_tqt*.so", sip_dirs)
if (FindFileInPaths("sip_tqt*", [self.sip_dir]) is None):
raise SystemExit("Failed to find sip-tqt directory: %s" % self.sip_dir)
self.announce("Using %s for sip-tqt files" % self.sip_dir)
# Find the C library (libgcc, libgcc_s or some other variation).
if self.clib is None:

Loading…
Cancel
Save