diff options
author | Tomás Touceda <chiiph@leap.se> | 2013-03-07 19:38:42 -0300 |
---|---|---|
committer | Tomás Touceda <chiiph@leap.se> | 2013-03-07 19:38:42 -0300 |
commit | caba70c5cee5e772761f9bbb2e4a9c5beab0be1e (patch) | |
tree | bd84e639c317904854773d250fce3cc42fb5a52f /setup.py | |
parent | 751638b4eb8208e1eaa1beaaed284da6b412bca7 (diff) |
Add setup script and linux distribution files
Diffstat (limited to 'setup.py')
-rwxr-xr-x | setup.py | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/setup.py b/setup.py new file mode 100755 index 00000000..f37d44e2 --- /dev/null +++ b/setup.py @@ -0,0 +1,222 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from __future__ import print_function + +import sys + +try: + from setuptools import setup, find_packages +except ImportError: + from pkg import distribute_setup + distribute_setup.use_setuptools() + from setuptools import setup, find_packages +import os + +from pkg import utils +#from pkg import branding +#from setuptools import Command +from distutils.command.build import build as _build +from distutils.command.sdist import sdist as _sdist + +import versioneer +versioneer.versionfile_source = 'src/leap/_version.py' +versioneer.versionfile_build = 'leap/_version.py' +versioneer.tag_prefix = '' # tags are like 1.2.0 +versioneer.parentdir_prefix = 'leap_client-' +#versioneer.parentdir_prefix = branding.APP_PREFIX + +#branding.brandingfile = 'src/leap/_branding.py' +#branding.brandingfile_build = 'leap/_branding.py' +#branding.cert_path = 'src/leap/certs' + +setup_root = os.path.dirname(__file__) +sys.path.insert(0, os.path.join(setup_root, "src")) + +trove_classifiers = [ + "Development Status :: 3 - Alpha", + "Environment :: X11 Applications :: Qt", + "Intended Audience :: End Users/Desktop", + ("License :: OSI Approved :: GNU General " + "Public License v3 or later (GPLv3+)"), + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 2.6", + "Programming Language :: Python :: 2.7", + "Topic :: Communications", + "Topic :: Security", + "Topic :: System :: Networking", + "Topic :: Utilities" +] + +# BRANDING_OPTS = """ +# # Do NOT manually edit this file! +# # This file has been written from pkg/branding/config.py data by leap setup.py +# # script. + +# BRANDING = { +# 'short_name': "%(short_name)s", +# 'provider_domain': "%(provider_domain)s", +# 'provider_ca_file': "%(provider_ca_file)s"} +# """ + + +# def write_to_branding_file(filename, branding_dict): +# f = open(filename, "w") +# f.write(BRANDING_OPTS % branding_dict) +# f.close() + + +# def copy_pemfile_to_certdir(frompath, topath): +# with open(frompath, "r") as cert_f: +# cert_s = cert_f.read() +# with open(topath, "w") as f: +# f.write(cert_s) + + +# def do_branding(targetfile=branding.brandingfile): +# if branding.BRANDED_BUILD: +# opts = branding.BRANDED_OPTS +# print("DOING BRANDING FOR LEAP") +# certpath = opts['provider_ca_path'] +# shortname = opts['short_name'] +# tocertfile = shortname + '-cacert.pem' +# topath = os.path.join( +# branding.cert_path, +# tocertfile) +# copy_pemfile_to_certdir( +# certpath, +# topath) +# opts['provider_ca_file'] = tocertfile +# write_to_branding_file( +# targetfile, +# opts) +# else: +# print('not running branding because BRANDED_BUILD set to False') + + +# class DoBranding(Command): +# description = "copy the branding info the the top level package" +# user_options = [] + +# def initialize_options(self): +# pass + +# def finalize_options(self): +# pass + +# def run(self): +# do_branding() + + +class cmd_build(_build): + def run(self): + _build.run(self) + + versions = versioneer.get_versions(verbose=True) + # now locate _version.py in the new build/ directory and replace it + # with an updated value + target_versionfile = os.path.join( + self.build_lib, + versioneer.versionfile_build) + print("UPDATING %s" % target_versionfile) + os.unlink(target_versionfile) + f = open(target_versionfile, "w") + f.write(versioneer.SHORT_VERSION_PY % versions) + f.close() + + # branding + # target_brandingfile = os.path.join( + # self.build_lib, + # branding.brandingfile_build) + # do_branding(targetfile=target_brandingfile) + + +class cmd_sdist(_sdist): + def run(self): + # versioneer: + versions = versioneer.get_versions(verbose=True) + self._versioneer_generated_versions = versions + # unless we update this, the command will keep using the old version + self.distribution.metadata.version = versions["version"] + + # branding: + #do_branding() + return _sdist.run(self) + + def make_release_tree(self, base_dir, files): + _sdist.make_release_tree(self, base_dir, files) + # now locate _version.py in the new base_dir directory (remembering + # that it may be a hardlink) and replace it with an updated value + target_versionfile = os.path.join( + base_dir, versioneer.versionfile_source) + print("UPDATING %s" % target_versionfile) + os.unlink(target_versionfile) + f = open(target_versionfile, "w") + f.write( + versioneer.SHORT_VERSION_PY % self._versioneer_generated_versions) + f.close() + +cmdclass = versioneer.get_cmdclass() +#cmdclass["branding"] = DoBranding + +# Uncomment this to have the branding command run automatically +# on the build and sdist commands. +#cmdclass["build"] = cmd_build +#cmdclass["sdist"] = cmd_sdist + +#launcher_name = branding.get_shortname() +#if launcher_name: +# leap_launcher = 'leap-%s-client=leap.app:main' % launcher_name +#else: +# leap_launcher = 'leap-client=leap.app:main' +leap_launcher = 'leap-client=leap.app:main' + +setup( + name="leap-client", # branding.get_name(), + package_dir={"": "src"}, + version=versioneer.get_version(), + cmdclass=cmdclass, + description="The Internet Encryption Toolkit", + long_description=( + "Desktop Client for the LEAP Platform." + "\n" + "LEAP (LEAP Encryption Access Project) develops " + "a multi-year plan to secure everyday communication, breaking down" + "into discrete services, to be rolled out one at a time.\n" + "The client for the current phase gives support to the EIP Service." + "EIP (the Encrypted Internet Proxy) provides circumvention, location " + "anonymization, and traffic " + "encryption in a hassle-free, automatically self-configuring fashion, " + "and has an enhanced level of security." + ), + classifiers=trove_classifiers, + install_requires=utils.parse_requirements(), + # Uncomment when tests are done + # test_suite='nose.collector', + # test_requires=utils.parse_requirements( + # reqfiles=['pkg/test-requirements.pip']), + keywords='LEAP, client, qt, encryption, proxy, openvpn', + author='The LEAP Encryption Access Project', + author_email='info@leap.se', + url='https://leap.se', + license='GPL-3+', + packages=find_packages( + 'src', + exclude=['ez_setup', 'setup', 'examples', 'tests']), + include_package_data=True, + zip_safe=False, + + # not being used since setuptools does not like it. + # looks like debhelper is honoring it... + data_files=[ + # ("share/man/man1", + # ["docs/man/leap-client.1"]), + ("share/polkit-1/actions", + ["pkg/linux/polkit/net.openvpn.gui.leap.policy"]) + ], + platforms="all", + entry_points={ + 'console_scripts': [leap_launcher] + }, +) |