#!/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] }, )