]) SETUP_KWARGS['install_requires'].append('WMI') elif sys.platform.startswith('linux'): FREEZER_INCLUDES.append('spwd') try: import yum FREEZER_INCLUDES.append('yum') except ImportError: pass elif sys.platform.startswith('sunos'): # (The sledgehammer approach) # Just try to include everything # (This may be a better way to generate FREEZER_INCLUDES generally) try: from bbfreeze.modulegraph.modulegraph import ModuleGraph mf = ModuleGraph(sys.path[:]) for arg in glob.glob("salt/modules/*.py"): mf.run_script(arg) for mod in mf.flatten(): if type(mod).__name__ != "Script" and mod.filename: FREEZER_INCLUDES.append(str(os.path.basename(mod.identifier))) except ImportError: pass if HAS_ESKY: # if the user has the esky / bbfreeze libraries installed, add the # appropriate kwargs to setup OPTIONS = SETUP_KWARGS.get('options', {}) OPTIONS['bdist_esky'] = { 'freezer_module': 'bbfreeze', 'freezer_options': {
def get_esky_freezer_includes(self): # Sometimes the auto module traversal doesn't find everything, so we # explicitly add it. The auto dependency tracking especially does not work for # imports occurring in salt.modules, as they are loaded at salt runtime. # Specifying includes that don't exist doesn't appear to cause a freezing # error. freezer_includes = [ 'zmq.core.*', 'zmq.utils.*', 'ast', 'csv', 'difflib', 'distutils', 'distutils.version', 'numbers', 'json', 'M2Crypto', 'Cookie', 'asyncore', 'fileinput', 'sqlite3', 'email', 'email.mime.*', 'requests', 'sqlite3', ] if HAS_ZMQ and hasattr(zmq, 'pyzmq_version_info'): if HAS_ZMQ and zmq.pyzmq_version_info() >= (0, 14): # We're freezing, and when freezing ZMQ needs to be installed, so this # works fine if 'zmq.core.*' in freezer_includes: # For PyZMQ >= 0.14, freezing does not need 'zmq.core.*' freezer_includes.remove('zmq.core.*') if IS_WINDOWS_PLATFORM: freezer_includes.extend([ 'imp', 'win32api', 'win32file', 'win32con', 'win32com', 'win32net', 'win32netcon', 'win32gui', 'win32security', 'ntsecuritycon', 'pywintypes', 'pythoncom', '_winreg', 'wmi', 'site', 'psutil', ]) elif sys.platform.startswith('linux'): freezer_includes.append('spwd') try: import yum # pylint: disable=unused-variable freezer_includes.append('yum') except ImportError: pass elif sys.platform.startswith('sunos'): # (The sledgehammer approach) # Just try to include everything # (This may be a better way to generate freezer_includes generally) try: from bbfreeze.modulegraph.modulegraph import ModuleGraph mgraph = ModuleGraph(sys.path[:]) for arg in glob.glob('salt/modules/*.py'): mgraph.run_script(arg) for mod in mgraph.flatten(): if type(mod).__name__ != 'Script' and mod.filename: freezer_includes.append(str(os.path.basename(mod.identifier))) except ImportError: pass # Include C extension that convinces esky to package up the libsodium C library # This is needed for ctypes to find it in libnacl which is in turn needed for raet # see pkg/smartos/esky/sodium_grabber{.c,_installer.py} freezer_includes.extend([ 'sodium_grabber', 'ioflo', 'raet', 'libnacl', ]) return freezer_includes
def get_esky_freezer_includes(self): # Sometimes the auto module traversal doesn't find everything, so we # explicitly add it. The auto dependency tracking especially does not work for # imports occurring in salt.modules, as they are loaded at salt runtime. # Specifying includes that don't exist doesn't appear to cause a freezing # error. freezer_includes = [ 'zmq.core.*', 'zmq.utils.*', 'ast', 'difflib', 'distutils', 'distutils.version', 'numbers', 'json', 'M2Crypto', 'Cookie', 'asyncore', 'fileinput', 'sqlite3', 'email', 'email.mime.*', 'requests', 'sqlite3', ] if HAS_ZMQ and hasattr(zmq, 'pyzmq_version_info'): if HAS_ZMQ and zmq.pyzmq_version_info() >= (0, 14): # We're freezing, and when freezing ZMQ needs to be installed, so this # works fine if 'zmq.core.*' in freezer_includes: # For PyZMQ >= 0.14, freezing does not need 'zmq.core.*' freezer_includes.remove('zmq.core.*') if IS_WINDOWS_PLATFORM: freezer_includes.extend([ 'win32api', 'win32file', 'win32con', 'win32com', 'win32net', 'win32netcon', 'win32gui', 'win32security', 'ntsecuritycon', 'pywintypes', 'pythoncom', '_winreg', 'wmi', 'site', 'psutil', ]) elif sys.platform.startswith('linux'): freezer_includes.append('spwd') try: import yum # pylint: disable=unused-variable freezer_includes.append('yum') except ImportError: pass elif sys.platform.startswith('sunos'): # (The sledgehammer approach) # Just try to include everything # (This may be a better way to generate freezer_includes generally) try: from bbfreeze.modulegraph.modulegraph import ModuleGraph mgraph = ModuleGraph(sys.path[:]) for arg in glob.glob('salt/modules/*.py'): mgraph.run_script(arg) for mod in mgraph.flatten(): if type(mod).__name__ != 'Script' and mod.filename: freezer_includes.append( str(os.path.basename(mod.identifier))) except ImportError: pass # Include C extension that convinces esky to package up the libsodium C library # This is needed for ctypes to find it in libnacl which is in turn needed for raet # see pkg/smartos/esky/sodium_grabber{.c,_installer.py} freezer_includes.extend([ 'sodium_grabber', 'ioflo', 'raet', 'libnacl', ]) return freezer_includes
def get_esky_freezer_includes(self): # Sometimes the auto module traversal doesn't find everything, so we # explicitly add it. The auto dependency tracking especially does not work for # imports occurring in salt.modules, as they are loaded at salt runtime. # Specifying includes that don't exist doesn't appear to cause a freezing # error. freezer_includes = [ "zmq.core.*", "zmq.utils.*", "ast", "csv", "difflib", "distutils", "distutils.version", "numbers", "json", "M2Crypto", "Cookie", "asyncore", "fileinput", "sqlite3", "email", "email.mime.*", "requests", "sqlite3", ] if HAS_ZMQ and hasattr(zmq, "pyzmq_version_info"): if HAS_ZMQ and zmq.pyzmq_version_info() >= (0, 14): # We're freezing, and when freezing ZMQ needs to be installed, so this # works fine if "zmq.core.*" in freezer_includes: # For PyZMQ >= 0.14, freezing does not need 'zmq.core.*' freezer_includes.remove("zmq.core.*") if IS_WINDOWS_PLATFORM: freezer_includes.extend([ "imp", "win32api", "win32file", "win32con", "win32com", "win32net", "win32netcon", "win32gui", "win32security", "ntsecuritycon", "pywintypes", "pythoncom", "_winreg", "wmi", "site", "psutil", "pytz", ]) elif IS_SMARTOS_PLATFORM: # we have them as requirements in pkg/smartos/esky/requirements.txt # all these should be safe to force include freezer_includes.extend([ "cherrypy", "python-dateutil", "pyghmi", "croniter", "mako", "gnupg" ]) elif sys.platform.startswith("linux"): freezer_includes.append("spwd") try: import yum # pylint: disable=unused-variable freezer_includes.append("yum") except ImportError: pass elif sys.platform.startswith("sunos"): # (The sledgehammer approach) # Just try to include everything # (This may be a better way to generate freezer_includes generally) try: from bbfreeze.modulegraph.modulegraph import ModuleGraph mgraph = ModuleGraph(sys.path[:]) for arg in glob.glob("salt/modules/*.py"): mgraph.run_script(arg) for mod in mgraph.flatten(): if type(mod).__name__ != "Script" and mod.filename: freezer_includes.append( str(os.path.basename(mod.identifier))) except ImportError: pass return freezer_includes
'psutil', ]) elif sys.platform.startswith('linux'): freezer_includes.append('spwd') try: import yum # pylint: disable=unused-variable freezer_includes.append('yum') except ImportError: pass elif sys.platform.startswith('sunos'): # (The sledgehammer approach) # Just try to include everything # (This may be a better way to generate freezer_includes generally) try: from bbfreeze.modulegraph.modulegraph import ModuleGraph mgraph = ModuleGraph(sys.path[:]) for arg in glob.glob('salt/modules/*.py'): mgraph.run_script(arg) for mod in mgraph.flatten(): if type(mod).__name__ != 'Script' and mod.filename: freezer_includes.append(str(os.path.basename(mod.identifier))) except ImportError: pass # Include C extension that convinces esky to package up the libsodium C library # This is needed for ctypes to find it in libnacl which is in turn needed for raet # see pkg/smartos/esky/sodium_grabber{.c,_installer.py} freezer_includes.extend([ 'sodium_grabber', 'ioflo', 'raet', 'libnacl',