diff options
Diffstat (limited to 'keymanager/setup.py')
-rw-r--r-- | keymanager/setup.py | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/keymanager/setup.py b/keymanager/setup.py new file mode 100644 index 0000000..cde5f8b --- /dev/null +++ b/keymanager/setup.py @@ -0,0 +1,152 @@ +# -*- coding: utf-8 -*- +# setup.py +# Copyright (C) 2013 LEAP +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +""" +setup file for leap.keymanager +""" +import re +from setuptools import setup +from setuptools import find_packages +from setuptools import Command + +from pkg import utils + +import versioneer + +trove_classifiers = [ + 'Development Status :: 4 - Beta', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + 'Programming Language :: Python :: 2.6', + 'Programming Language :: Python :: 2.7', + 'Topic :: Communications :: Email', + 'Topic :: Internet', + 'Topic :: Security :: Cryptography', + 'Topic :: Software Development :: Libraries', +] + +DOWNLOAD_BASE = ('https://github.com/leapcode/bitmask_client/' + 'archive/%s.tar.gz') +_versions = versioneer.get_versions() +VERSION = _versions['version'] +VERSION_REVISION = _versions['full-revisionid'] +DOWNLOAD_URL = "" + +# get the short version for the download url +_version_short = re.findall('\d+\.\d+\.\d+', VERSION) +if len(_version_short) > 0: + VERSION_SHORT = _version_short[0] + DOWNLOAD_URL = DOWNLOAD_BASE % VERSION_SHORT + +class freeze_debianver(Command): + + """ + Freezes the version in a debian branch. + To be used after merging the development branch onto the debian one. + """ + user_options = [] + template = r""" +# This file was generated by the `freeze_debianver` command in setup.py +# Using 'versioneer.py' (0.16) from +# revision-control system data, or from the parent directory name of an +# unpacked source archive. Distribution tarballs contain a pre-generated copy +# of this file. + +import json +import sys + +version_json = ''' +{ + "dirty": false, + "error": null, + "full-revisionid": "FULL_REVISIONID", + "version": "VERSION_STRING" +} +''' # END VERSION_JSON + +def get_versions(): + return json.loads(version_json) +""" + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def run(self): + proceed = str(raw_input( + "This will overwrite the file _version.py. Continue? [y/N] ")) + if proceed != "y": + print("He. You scared. Aborting.") + return + subst_template = self.template.replace( + 'VERSION_STRING', VERSION_SHORT).replace( + 'FULL_REVISIONID', VERSION_REVISION) + versioneer_cfg = versioneer.get_config_from_root('.') + with open(versioneer_cfg.versionfile_source, 'w') as f: + f.write(subst_template) + + +cmdclass = versioneer.get_cmdclass() +cmdclass["freeze_debianver"] = freeze_debianver + +# XXX add ref to docs + +requirements = utils.parse_requirements() + +if utils.is_develop_mode(): + print + print ("[WARNING] Skipping leap-specific dependencies " + "because development mode is detected.") + print ("[WARNING] You can install " + "the latest published versions with " + "'pip install -r pkg/requirements-leap.pip'") + print ("[WARNING] Or you can instead do 'python setup.py develop' " + "from the parent folder of each one of them.") + print +else: + requirements += utils.parse_requirements( + reqfiles=["pkg/requirements-leap.pip"]) + +setup( + name='leap.keymanager', + version=VERSION, + cmdclass=cmdclass, + url='https://leap.se/', + download_url=DOWNLOAD_URL, + license='GPLv3+', + description='LEAP\'s Key Manager', + author='The LEAP Encryption Access Project', + author_email='info@leap.se', + maintainer='Kali Kaneko', + maintainer_email='kali@leap.se', + long_description=( + "The Key Manager handles all types of keys to allow for " + "point-to-point encryption between parties communicating through " + "LEAP infrastructure." + ), + classifiers=trove_classifiers, + namespace_packages=["leap"], + packages=find_packages('src', exclude=['leap.keymanager.tests']), + package_dir={'': 'src'}, + test_suite='leap.keymanager.tests', + install_requires=requirements, + tests_require=utils.parse_requirements( + reqfiles=['pkg/requirements-testing.pip']), +) |