blob: c4fbbd58ead8994e39934cad9ad7a875edfe8aba [file] [log] [blame]
Jean-Paul Calderonecf20dd62008-06-12 16:38:38 -04001#!/usr/bin/env python
Jean-Paul Calderone0db6cdb2008-04-11 11:52:15 -04002# -*- coding: utf-8 -*-
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05003#
Hynek Schlawack76ecf942015-04-14 11:09:44 -04004# Copyright (C) Jean-Paul Calderone 2008-2015, All rights reserved
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05005#
Jean-Paul Calderonee53ccf72008-04-11 11:40:39 -04006
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05007"""
8Installation script for the OpenSSL module
9"""
10
Hynek Schlawackf982efd2015-04-15 12:08:54 -040011import sys
12
Jean-Paul Calderone5d97b412014-01-10 14:09:20 -050013from setuptools import setup
Hynek Schlawackf982efd2015-04-15 12:08:54 -040014from setuptools.command.test import test as TestCommand
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050015
Hynek Schlawack76ecf942015-04-14 11:09:44 -040016
Jean-Paul Calderoneba4308e2010-07-27 20:56:32 -040017# XXX Deduplicate this
Hynek Schlawack197bda92015-04-14 18:51:01 -040018__version__ = '0.15.1'
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050019
Hynek Schlawackf982efd2015-04-15 12:08:54 -040020
21class PyTest(TestCommand):
22 user_options = [("pytest-args=", "a", "Arguments to pass to py.test")]
23
24 def initialize_options(self):
25 TestCommand.initialize_options(self)
26 self.pytest_args = None
27
28 def finalize_options(self):
29 TestCommand.finalize_options(self)
30 self.test_args = []
31 self.test_suite = True
32
33 def run_tests(self):
34 # import here, cause outside the eggs aren't loaded
35 import pytest
36 errno = pytest.main(self.pytest_args or [] +
37 ["OpenSSL"])
38 sys.exit(errno)
39
40
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050041setup(name='pyOpenSSL', version=__version__,
Jean-Paul Calderonee0d94c82009-07-21 11:12:52 -040042 packages = ['OpenSSL'],
Jean-Paul Calderone024375a2010-07-27 20:37:50 -040043 package_dir = {'OpenSSL': 'OpenSSL'},
Jean-Paul Calderone1ac2c192013-12-31 20:16:13 -050044 py_modules = ['OpenSSL.__init__',
45 'OpenSSL.tsafe',
Jean-Paul Calderone8210b922013-02-09 09:03:18 -080046 'OpenSSL.rand',
Jean-Paul Calderone1ac2c192013-12-31 20:16:13 -050047 'OpenSSL.crypto',
48 'OpenSSL.SSL',
49 'OpenSSL.version',
50 'OpenSSL.test.__init__',
Jean-Paul Calderone0b88b6a2009-07-05 12:44:41 -040051 'OpenSSL.test.util',
Jean-Paul Calderone30c09ea2008-03-21 17:04:05 -040052 'OpenSSL.test.test_crypto',
Rick Dean433dc642009-07-07 13:11:55 -050053 'OpenSSL.test.test_rand',
Hynek Schlawackb1648592015-04-13 22:18:25 -040054 'OpenSSL.test.test_ssl',
55 'OpenSSL.test.test_tsafe',
56 'OpenSSL.test.test_util',],
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050057 description = 'Python wrapper module around the OpenSSL library',
Jean-Paul Calderone1ac2c192013-12-31 20:16:13 -050058 author = 'Jean-Paul Calderone',
59 author_email = 'exarkun@twistedmatrix.com',
Jean-Paul Calderonee53ccf72008-04-11 11:40:39 -040060 maintainer = 'Jean-Paul Calderone',
61 maintainer_email = 'exarkun@twistedmatrix.com',
Jean-Paul Calderone324c6432014-01-09 15:34:08 -050062 url = 'https://github.com/pyca/pyopenssl',
Jean-Paul Calderone9820bba2011-03-02 19:02:33 -050063 license = 'APL2',
Jean-Paul Calderone7cf3b472015-01-18 18:35:40 -050064 install_requires=["cryptography>=0.7", "six>=1.5.2"],
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050065 long_description = """\
66High-level wrapper around a subset of the OpenSSL library, includes
67 * SSL.Connection objects, wrapping the methods of Python's portable
68 sockets
69 * Callbacks written in Python
70 * Extensive error-handling mechanism, mirroring OpenSSL's error codes
Jean-Paul Calderoned59d3bc2011-12-19 13:32:29 -050071... and much more ;)""",
72 classifiers = [
73 'Development Status :: 6 - Mature',
74 'Intended Audience :: Developers',
75 'License :: OSI Approved :: Apache Software License',
76 'Operating System :: MacOS :: MacOS X',
77 'Operating System :: Microsoft :: Windows',
78 'Operating System :: POSIX',
Jean-Paul Calderone16743132014-03-03 09:12:06 -050079
80 # General classifiers to indicate "this project supports Python 2" and
81 # "this project supports Python 3".
82 'Programming Language :: Python :: 2',
83 # In particular, this makes pyOpenSSL show up on
84 # https://pypi.python.org/pypi?:action=browse&c=533&show=all and is in
85 # accordance with
86 # http://docs.python.org/2/howto/pyporting.html#universal-bits-of-advice
87 'Programming Language :: Python :: 3',
88
89 # More specific classifiers to indicate more precisely which versions
90 # of those languages the project supports.
Jean-Paul Calderoned59d3bc2011-12-19 13:32:29 -050091 'Programming Language :: Python :: 2.6',
92 'Programming Language :: Python :: 2.7',
93 'Programming Language :: Python :: 3.2',
Jean-Paul Calderone19ad3712014-01-09 20:40:46 -050094 'Programming Language :: Python :: 3.3',
Jean-Paul Calderone16743132014-03-03 09:12:06 -050095
Jean-Paul Calderoned59d3bc2011-12-19 13:32:29 -050096 'Programming Language :: Python :: Implementation :: CPython',
97 'Programming Language :: Python :: Implementation :: PyPy',
98 'Topic :: Security :: Cryptography',
99 'Topic :: Software Development :: Libraries :: Python Modules',
100 'Topic :: System :: Networking',
Jean-Paul Calderone11bf4b92014-01-11 07:30:42 -0500101 ],
Hynek Schlawackf982efd2015-04-15 12:08:54 -0400102 test_suite="OpenSSL",
103 tests_require=[
104 "pytest",
105 ],
106 cmdclass={
107 "test": PyTest,
108 })