forked from LBRYCommunity/lbry-sdk
simplify setup.py
This commit is contained in:
parent
f1231bd8e5
commit
ddfaf51393
1 changed files with 49 additions and 313 deletions
362
setup.py
362
setup.py
|
@ -5,18 +5,6 @@ import os
|
|||
import site
|
||||
from lbrynet import __version__
|
||||
|
||||
LINUX = 1
|
||||
DARWIN = 2
|
||||
WINDOWS = 3
|
||||
|
||||
if sys.platform.startswith("linux"):
|
||||
platform = LINUX
|
||||
elif sys.platform.startswith("darwin"):
|
||||
platform = DARWIN
|
||||
elif sys.platform.startswith("win"):
|
||||
platform = WINDOWS
|
||||
else:
|
||||
raise Exception("Unknown os: %s" % sys.platform)
|
||||
|
||||
base_dir = os.path.abspath(os.path.dirname(__file__))
|
||||
package_name = "lbrynet"
|
||||
|
@ -31,39 +19,38 @@ keywords = "LBRY"
|
|||
|
||||
# TODO: find a way to keep this in sync with requirements.txt
|
||||
requires = [
|
||||
'Twisted==16.0.0',
|
||||
'Yapsy==1.11.223',
|
||||
'appdirs==1.4.0',
|
||||
'argparse==1.2.1',
|
||||
'colorama==0.3.7',
|
||||
'dnspython==1.12.0',
|
||||
'ecdsa==0.13',
|
||||
'envparse==0.2.0',
|
||||
'gmpy==1.17',
|
||||
'jsonrpc==1.2',
|
||||
'jsonrpclib==0.1.7',
|
||||
'jsonschema==2.5.1',
|
||||
'lbryum>=2.7.5',
|
||||
'loggly-python-handler==1.0.0',
|
||||
'miniupnpc==1.9',
|
||||
'pbkdf2==1.3',
|
||||
'protobuf==3.0.0',
|
||||
'pycrypto==2.6.1',
|
||||
'qrcode==5.2.2',
|
||||
'requests==2.9.1',
|
||||
'requests_futures==0.9.7',
|
||||
'seccure==0.3.1.3',
|
||||
'simplejson==3.8.2',
|
||||
'six>=1.9.0',
|
||||
'slowaes==0.1a1',
|
||||
'txJSON-RPC==0.5',
|
||||
'wsgiref==0.1.2',
|
||||
'zope.interface==4.1.3',
|
||||
'base58==0.2.2',
|
||||
'googlefinance==0.7',
|
||||
'pyyaml==3.12',
|
||||
'service_identity==16.0.0',
|
||||
'ndg-httpsclient==0.4.2',
|
||||
'Twisted',
|
||||
'appdirs',
|
||||
'argparse',
|
||||
'colorama',
|
||||
'dnspython',
|
||||
'ecdsa',
|
||||
'envparse',
|
||||
'gmpy',
|
||||
'jsonrpc',
|
||||
'jsonrpclib',
|
||||
'jsonschema',
|
||||
'lbryum',
|
||||
'loggly-python-handler',
|
||||
'miniupnpc',
|
||||
'pbkdf2',
|
||||
'protobuf',
|
||||
'pycrypto',
|
||||
'qrcode',
|
||||
'requests',
|
||||
'requests_futures',
|
||||
'seccure',
|
||||
'simplejson',
|
||||
'six',
|
||||
'slowaes',
|
||||
'txJSON-RPC',
|
||||
'wsgiref',
|
||||
'zope.interface',
|
||||
'base58',
|
||||
'googlefinance',
|
||||
'pyyaml',
|
||||
'service_identity',
|
||||
'ndg-httpsclient',
|
||||
]
|
||||
|
||||
|
||||
|
@ -80,273 +67,22 @@ def package_files(directory):
|
|||
yield os.path.join('..', path, filename)
|
||||
|
||||
|
||||
if platform == LINUX:
|
||||
import ez_setup
|
||||
ez_setup.use_setuptools()
|
||||
from setuptools import setup, find_packages
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
requires.append('service-identity')
|
||||
|
||||
setup(name=package_name,
|
||||
description=description,
|
||||
version=__version__,
|
||||
maintainer=maintainer,
|
||||
maintainer_email=maintainer_email,
|
||||
url=url,
|
||||
author=author,
|
||||
keywords=keywords,
|
||||
packages=find_packages(base_dir),
|
||||
install_requires=requires,
|
||||
entry_points={'console_scripts': console_scripts},
|
||||
package_data={
|
||||
package_name: list(package_files('lbrynet/resources/ui'))
|
||||
}
|
||||
)
|
||||
|
||||
elif platform == DARWIN:
|
||||
import ez_setup
|
||||
|
||||
ez_setup.use_setuptools()
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
setup(name=package_name,
|
||||
description=description,
|
||||
version=__version__,
|
||||
maintainer=maintainer,
|
||||
maintainer_email=maintainer_email,
|
||||
url=url,
|
||||
author=author,
|
||||
keywords=keywords,
|
||||
packages=find_packages(base_dir),
|
||||
install_requires=requires,
|
||||
entry_points={'console_scripts': console_scripts},
|
||||
package_data={
|
||||
package_name: list(package_files('lbrynet/resources/ui'))
|
||||
},
|
||||
# If this is True, setuptools tries to build an egg
|
||||
# and py2app / modulegraph / imp.find_module
|
||||
# doesn't like that.
|
||||
zip_safe=False,
|
||||
)
|
||||
|
||||
elif platform == WINDOWS:
|
||||
import opcode
|
||||
import pkg_resources
|
||||
from cx_Freeze import setup, Executable
|
||||
import requests.certs
|
||||
|
||||
app_dir = os.path.join('packaging', 'windows', 'lbry-win32-app')
|
||||
daemon_dir = os.path.join('lbrynet', 'lbrynet_daemon')
|
||||
win_icon = os.path.join(app_dir, 'icons', 'lbry256.ico')
|
||||
wordlist_path = pkg_resources.resource_filename('lbryum', 'wordlist')
|
||||
|
||||
# Allow virtualenv to find distutils of base python installation
|
||||
distutils_path = os.path.join(os.path.dirname(opcode.__file__), 'distutils')
|
||||
|
||||
schemas = os.path.join(site.getsitepackages()[1], "jsonschema", "schemas")
|
||||
onlyfiles = [f for f in os.listdir(schemas) if os.path.isfile(os.path.join(schemas, f))]
|
||||
zipincludes = [(os.path.join(schemas, f), os.path.join("jsonschema", "schemas", f)) for f in onlyfiles]
|
||||
|
||||
def find_data_file(filename):
|
||||
if getattr(sys, 'frozen', False):
|
||||
# The application is frozen
|
||||
data_dir = os.path.dirname(sys.executable)
|
||||
else:
|
||||
# The application is not frozen
|
||||
# Change this bit to match where you store your data files:
|
||||
data_dir = os.path.dirname(__file__)
|
||||
return os.path.join(data_dir, filename)
|
||||
|
||||
shortcut_table = [
|
||||
('LBRYShortcut', # Shortcut
|
||||
'DesktopFolder', # Directory
|
||||
'LBRY', # Name
|
||||
'TARGETDIR', # Component
|
||||
'[TARGETDIR]\{0}.exe'.format(dist_name), # Target
|
||||
None, # Arguments
|
||||
description, # Description
|
||||
None, # Hotkey
|
||||
None, # Icon
|
||||
None, # IconIndex
|
||||
None, # ShowCmd
|
||||
'TARGETDIR', # WkDir
|
||||
),
|
||||
# ('DaemonShortcut', # Shortcut
|
||||
# 'DesktopFolder', # Directory
|
||||
# 'lbrynet-daemon', # Name
|
||||
# 'TARGETDIR', # Component
|
||||
# '[TARGETDIR]\lbrynet-daemon.exe', # Target
|
||||
# '--log-to-console', # Arguments
|
||||
# description, # Description
|
||||
# None, # Hotkey
|
||||
# None, # Icon
|
||||
# None, # IconIndex
|
||||
# None, # ShowCmd
|
||||
# 'TARGETDIR', # WkDir
|
||||
# ),
|
||||
# ('DaemonCLIShortcut', # Shortcut
|
||||
# 'DesktopFolder', # Directory
|
||||
# 'lbrynet-cli', # Name
|
||||
# 'TARGETDIR', # Component
|
||||
# '[TARGETDIR]\lbrynet-cli.exe', # Target
|
||||
# None, # Arguments
|
||||
# description, # Description
|
||||
# None, # Hotkey
|
||||
# None, # Icon
|
||||
# None, # IconIndex
|
||||
# None, # ShowCmd
|
||||
# 'TARGETDIR', # WkDir
|
||||
# ),
|
||||
('ProgramMenuLBRYShortcut', # Shortcut
|
||||
'ProgramMenuFolder', # Directory
|
||||
# r'[ProgramMenuFolder]\lbrynet', # Directory
|
||||
'LBRY', # Name
|
||||
'TARGETDIR', # Component
|
||||
'[TARGETDIR]\{0}.exe'.format(dist_name), # Target
|
||||
None, # Arguments
|
||||
description, # Description
|
||||
None, # Hotkey
|
||||
None, # Icon
|
||||
None, # IconIndex
|
||||
None, # ShowCmd
|
||||
'TARGETDIR', # WkDir
|
||||
),
|
||||
('ProgramMenuDaemonShortcut', # Shortcut
|
||||
'ProgramMenuFolder', # Directory
|
||||
# r'[ProgramMenuFolder]\lbrynet', # Directory
|
||||
'lbrynet-daemon', # Name
|
||||
'TARGETDIR', # Component
|
||||
'[TARGETDIR]\lbrynet-daemon.exe', # Target
|
||||
'--log-to-console', # Arguments
|
||||
description, # Description
|
||||
None, # Hotkey
|
||||
None, # Icon
|
||||
None, # IconIndex
|
||||
None, # ShowCmd
|
||||
'TARGETDIR', # WkDir
|
||||
),
|
||||
('ProgramMenuDaemonCLIShortcut', # Shortcut
|
||||
'ProgramMenuFolder', # Directory
|
||||
# r'[ProgramMenuFolder]\lbrynet', # Directory
|
||||
'lbrynet-cli', # Name
|
||||
'TARGETDIR', # Component
|
||||
'[TARGETDIR]\lbrynet-cli.exe', # Target
|
||||
None, # Arguments
|
||||
description, # Description
|
||||
None, # Hotkey
|
||||
None, # Icon
|
||||
None, # IconIndex
|
||||
None, # ShowCmd
|
||||
'TARGETDIR', # WkDir
|
||||
),
|
||||
]
|
||||
|
||||
msi_data = {"Shortcut": shortcut_table}
|
||||
|
||||
bdist_msi_options = {
|
||||
'upgrade_code': '{18c0e933-ad08-44e8-a413-1d0ed624c100}',
|
||||
'add_to_path': True,
|
||||
# Default install path is 'C:\Program Files\' for 32-bit or 'C:\Program Files (x86)\' for 64-bit
|
||||
# 'initial_target_dir': r'[LocalAppDataFolder]\{0}'.format(name),
|
||||
'data': msi_data
|
||||
}
|
||||
|
||||
build_exe_options = {
|
||||
'include_msvcr': True,
|
||||
'includes': [],
|
||||
'packages': ['cython',
|
||||
'twisted',
|
||||
'yapsy',
|
||||
'appdirs',
|
||||
'argparse',
|
||||
'base58',
|
||||
'colorama',
|
||||
'cx_Freeze',
|
||||
'dns',
|
||||
'ecdsa',
|
||||
'envparse',
|
||||
'gmpy',
|
||||
'googlefinance',
|
||||
'jsonrpc',
|
||||
'jsonrpclib',
|
||||
'lbryum',
|
||||
'loggly',
|
||||
'miniupnpc',
|
||||
'pbkdf2',
|
||||
'google.protobuf',
|
||||
'Crypto',
|
||||
'bitcoinrpc',
|
||||
'win32api',
|
||||
'qrcode',
|
||||
'requests',
|
||||
'requests_futures',
|
||||
'seccure',
|
||||
'simplejson',
|
||||
'jsonschema',
|
||||
'six',
|
||||
'aes',
|
||||
'txjsonrpc',
|
||||
'wsgiref',
|
||||
'zope.interface',
|
||||
'os',
|
||||
'pkg_resources',
|
||||
'yaml'
|
||||
],
|
||||
'excludes': ['distutils', 'collections.sys', 'collections._weakref', 'collections.abc',
|
||||
'Tkinter', 'tk', 'tcl', 'PyQt4', 'nose', 'mock'
|
||||
'zope.interface._zope_interface_coptimizations', 'leveldb'],
|
||||
'include_files': [(distutils_path, 'distutils'), (requests.certs.where(), 'cacert.pem'),
|
||||
(os.path.join(app_dir, 'icons', 'lbry16.ico'), os.path.join('icons', 'lbry16.ico')),
|
||||
(os.path.join(app_dir, 'icons', 'lbry256.ico'), os.path.join('icons', 'lbry256.ico')),
|
||||
(os.path.join(wordlist_path, 'chinese_simplified.txt'),
|
||||
os.path.join('wordlist', 'chinese_simplified.txt')),
|
||||
(os.path.join(wordlist_path, 'english.txt'), os.path.join('wordlist', 'english.txt')),
|
||||
(os.path.join(wordlist_path, 'japanese.txt'), os.path.join('wordlist', 'japanese.txt')),
|
||||
(os.path.join(wordlist_path, 'portuguese.txt'), os.path.join('wordlist', 'portuguese.txt')),
|
||||
(os.path.join(wordlist_path, 'spanish.txt'), os.path.join('wordlist', 'spanish.txt'))
|
||||
],
|
||||
'namespace_packages': ['zope', 'google'],
|
||||
"zip_includes": zipincludes}
|
||||
|
||||
tray_app = Executable(
|
||||
script=os.path.join(app_dir, 'LBRYWin32App.py'),
|
||||
base='Win32GUI',
|
||||
icon=win_icon,
|
||||
targetName='{0}.exe'.format(dist_name)
|
||||
)
|
||||
|
||||
daemon_exe = Executable(
|
||||
script=os.path.join(daemon_dir, 'DaemonControl.py'),
|
||||
icon=win_icon,
|
||||
targetName='lbrynet-daemon.exe'
|
||||
)
|
||||
|
||||
cli_exe = Executable(
|
||||
script=os.path.join(daemon_dir, 'DaemonCLI.py'),
|
||||
icon=win_icon,
|
||||
targetName='lbrynet-cli.exe'
|
||||
)
|
||||
|
||||
setup(
|
||||
name=package_name,
|
||||
description=description,
|
||||
version=__version__,
|
||||
maintainer=maintainer,
|
||||
maintainer_email=maintainer_email,
|
||||
url=url,
|
||||
author=author,
|
||||
keywords=keywords,
|
||||
data_files=[],
|
||||
options={
|
||||
'build_exe': build_exe_options,
|
||||
'bdist_msi': bdist_msi_options
|
||||
},
|
||||
executables=[
|
||||
tray_app,
|
||||
daemon_exe,
|
||||
cli_exe
|
||||
],
|
||||
package_data={
|
||||
package_name: list(package_files('lbrynet/resources/ui'))
|
||||
}
|
||||
)
|
||||
setup(name=package_name,
|
||||
description=description,
|
||||
version=__version__,
|
||||
maintainer=maintainer,
|
||||
maintainer_email=maintainer_email,
|
||||
url=url,
|
||||
author=author,
|
||||
keywords=keywords,
|
||||
packages=find_packages(base_dir),
|
||||
install_requires=requires,
|
||||
entry_points={'console_scripts': console_scripts},
|
||||
package_data={
|
||||
package_name: list(package_files('lbrynet/resources/ui'))
|
||||
},
|
||||
zip_safe=False,
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue