mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
c3747f9658
Inform the user whether the module was found on the system, or if the bundled copy is being used. If the module is not found, suggest what they can do to make it available to Samba. Change-Id: I89ec57a2acf87768ca3714add59575578d2ee399 Signed-Off-By: Jelmer Vernooij <jelmer@samba.org> Reviewed-by: David Disseldorp <ddiss@samba.org> Autobuild-User(master): David Disseldorp <ddiss@samba.org> Autobuild-Date(master): Mon Mar 30 13:40:33 CEST 2015 on sn-devel-104
74 lines
2.1 KiB
Python
74 lines
2.1 KiB
Python
#!/usr/bin/env python
|
|
|
|
import Utils
|
|
import os
|
|
import sys
|
|
|
|
# work out what python external libraries we need to install
|
|
external_pkgs = {
|
|
"dns.resolver": "dnspython/dns",
|
|
"iso8601": "pyiso8601/iso8601",
|
|
}
|
|
|
|
|
|
def find_third_party_module(conf, module, package):
|
|
conf.COMPOUND_START("Checking for third party Python module %s" % module)
|
|
try:
|
|
__import__(module)
|
|
except ImportError:
|
|
pass
|
|
else:
|
|
# Installed on the system
|
|
conf.COMPOUND_END("system")
|
|
|
|
old_path = sys.path
|
|
try:
|
|
sys.path.append(os.path.join(conf.curdir, os.path.dirname(package)))
|
|
try:
|
|
__import__(module)
|
|
except ImportError:
|
|
if (os.path.isdir(os.path.join(conf.srcdir, ".git")) and
|
|
os.path.isfile(os.path.join(conf.srcdir, ".gitmodule"))):
|
|
raise Utils.WafError("""\
|
|
Unable to find Python module '%s'. Please install the system package or check \
|
|
out the relevant submodule by running 'git submodule init; git submodule update'.
|
|
""" % module)
|
|
else:
|
|
raise Utils.WafError("""\
|
|
Unable to find Python module '%s'. Please install the system package or place a copy in
|
|
%s.
|
|
""" % (module, package))
|
|
else:
|
|
conf.COMPOUND_END("bundled")
|
|
finally:
|
|
sys.path = old_path
|
|
|
|
|
|
def configure(conf):
|
|
for module, package in external_pkgs.items():
|
|
find_third_party_module(conf, module, package)
|
|
conf.RECURSE('popt')
|
|
conf.RECURSE('zlib')
|
|
|
|
|
|
def build(bld):
|
|
list = []
|
|
|
|
for module, package in external_pkgs.items():
|
|
try:
|
|
__import__(module)
|
|
except ImportError:
|
|
list.append(package)
|
|
|
|
for e in list:
|
|
bld.INSTALL_WILDCARD('${PYTHONARCHDIR}/samba/third_party', e + '/**/*', flat=False,
|
|
exclude='*.pyc', trim_path=os.path.dirname(e))
|
|
|
|
bld.SAMBA_GENERATOR('third_party_init_py',
|
|
rule='touch ${TGT}',
|
|
target='empty_file')
|
|
|
|
bld.INSTALL_FILES('${PYTHONARCHDIR}/samba/third_party', 'empty_file', destname='__init__.py')
|
|
bld.RECURSE('zlib')
|
|
bld.RECURSE('popt')
|