Skip to content

Commit

Permalink
Check for third party Python modules during configure.
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: David Disseldorp <[email protected]>

Autobuild-User(master): David Disseldorp <[email protected]>
Autobuild-Date(master): Mon Mar 30 13:40:33 CEST 2015 on sn-devel-104
  • Loading branch information
jelmer authored and ddiss committed Mar 30, 2015
1 parent e50342f commit c3747f9
Showing 1 changed file with 39 additions and 2 deletions.
41 changes: 39 additions & 2 deletions third_party/wscript
Original file line number Diff line number Diff line change
@@ -1,23 +1,60 @@
#!/usr/bin/env python

import Utils
import os
import sys

# work out what python external libraries we need to install
external_libs = {
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_libs.items():
for module, package in external_pkgs.items():
try:
__import__(module)
except ImportError:
Expand Down

0 comments on commit c3747f9

Please sign in to comment.