2016-01-04 16:33:20 +01:00
|
|
|
#!/usr/bin/env python3
|
2012-03-11 12:59:19 +01:00
|
|
|
|
2017-11-27 15:23:02 +01:00
|
|
|
from setuptools import Command
|
2013-10-24 21:29:40 +02:00
|
|
|
from setuptools import setup
|
2017-04-03 14:55:20 +02:00
|
|
|
import os
|
2017-10-19 18:00:04 +02:00
|
|
|
import re
|
2017-09-20 11:48:49 +02:00
|
|
|
import shutil
|
2014-04-02 20:41:20 +02:00
|
|
|
import sys
|
2012-03-11 12:59:19 +01:00
|
|
|
|
2017-10-19 18:00:04 +02:00
|
|
|
|
2017-11-27 15:23:02 +01:00
|
|
|
class VersionCheckCommand(Command):
|
|
|
|
"""Make sure git tag and version match before uploading"""
|
|
|
|
user_options = []
|
|
|
|
|
|
|
|
def initialize_options(self):
|
|
|
|
"""Abstract method that is required to be overwritten"""
|
|
|
|
|
|
|
|
def finalize_options(self):
|
|
|
|
"""Abstract method that is required to be overwritten"""
|
|
|
|
|
|
|
|
def run(self):
|
|
|
|
version = self.distribution.get_version()
|
|
|
|
version_git = subprocess.check_output(['git', 'describe', '--tags', '--always']).rstrip().decode('utf-8')
|
|
|
|
if version != version_git:
|
|
|
|
print('ERROR: Release version mismatch! setup.py (%s) does not match git (%s)'
|
|
|
|
% (version, version_git))
|
|
|
|
sys.exit(1)
|
|
|
|
print('Upload using: twine upload dist/fdroidserver*.tar.gz*')
|
|
|
|
|
|
|
|
|
2017-10-19 18:00:04 +02:00
|
|
|
def get_data_files():
|
|
|
|
# workaround issue on OSX or --user installs, where sys.prefix is not an installable location
|
|
|
|
if os.access(sys.prefix, os.W_OK | os.X_OK):
|
|
|
|
data_prefix = sys.prefix
|
|
|
|
else:
|
|
|
|
data_prefix = '.'
|
|
|
|
|
|
|
|
data_files = []
|
|
|
|
with open('MANIFEST.in') as fp:
|
|
|
|
data = fp.read()
|
|
|
|
|
|
|
|
data_files.append((data_prefix + '/share/doc/fdroidserver/examples',
|
|
|
|
['buildserver/config.buildserver.py', ]
|
|
|
|
+ re.findall(r'include (examples/.*)', data)))
|
|
|
|
|
|
|
|
for f in re.findall(r'include (locale/[a-z][a-z][a-zA-Z_]*/LC_MESSAGES/fdroidserver.mo)', data):
|
|
|
|
d = os.path.join(data_prefix, 'share', os.path.dirname(f))
|
|
|
|
data_files.append((d, [f, ]))
|
|
|
|
return data_files
|
|
|
|
|
2015-07-31 14:47:48 +02:00
|
|
|
|
2017-09-20 11:48:49 +02:00
|
|
|
# PyPI accepts reST not Markdown
|
2017-10-19 16:41:47 +02:00
|
|
|
if os.path.exists('README.md'):
|
|
|
|
if shutil.which('pandoc'):
|
|
|
|
print('Using reST README')
|
|
|
|
import subprocess
|
|
|
|
subprocess.check_call(['pandoc', '--from=markdown', '--to=rst', 'README.md',
|
|
|
|
'--output=README.rst'], universal_newlines=True)
|
|
|
|
with open('README.rst') as fp:
|
|
|
|
readme = fp.read()
|
|
|
|
else:
|
|
|
|
print('Using Markdown README')
|
|
|
|
with open('README.md') as fp:
|
|
|
|
readme = fp.read()
|
2017-09-20 11:48:49 +02:00
|
|
|
else:
|
2017-10-19 16:41:47 +02:00
|
|
|
readme = ''
|
2017-09-20 11:48:49 +02:00
|
|
|
|
2014-04-02 20:38:57 +02:00
|
|
|
setup(name='fdroidserver',
|
2018-01-03 21:41:35 +01:00
|
|
|
version='1.0.0',
|
2012-03-11 12:59:19 +01:00
|
|
|
description='F-Droid Server Tools',
|
2017-09-20 11:48:49 +02:00
|
|
|
long_description=readme,
|
2012-03-11 12:59:19 +01:00
|
|
|
author='The F-Droid Project',
|
2014-01-08 18:17:00 +01:00
|
|
|
author_email='team@f-droid.org',
|
|
|
|
url='https://f-droid.org',
|
2017-09-15 11:31:18 +02:00
|
|
|
license='AGPL-3.0',
|
2015-09-20 20:50:02 +02:00
|
|
|
packages=['fdroidserver', 'fdroidserver.asynchronousfilereader'],
|
2017-12-06 22:48:08 +01:00
|
|
|
scripts=['fdroid', 'makebuildserver'],
|
2017-10-19 18:00:04 +02:00
|
|
|
data_files=get_data_files(),
|
2017-09-15 11:31:18 +02:00
|
|
|
python_requires='>=3.4',
|
2017-11-27 15:23:02 +01:00
|
|
|
cmdclass={'versioncheck': VersionCheckCommand},
|
2017-12-05 16:11:10 +01:00
|
|
|
setup_requires=[
|
|
|
|
'babel',
|
|
|
|
],
|
2015-09-14 07:11:53 +02:00
|
|
|
install_requires=[
|
2016-06-10 11:42:42 +02:00
|
|
|
'clint',
|
2016-03-21 21:00:12 +01:00
|
|
|
'GitPython',
|
2014-08-16 11:51:23 +02:00
|
|
|
'mwclient',
|
|
|
|
'paramiko',
|
|
|
|
'Pillow',
|
|
|
|
'apache-libcloud >= 0.14.1',
|
2014-08-30 04:53:55 +02:00
|
|
|
'pyasn1',
|
|
|
|
'pyasn1-modules',
|
2016-09-27 08:49:32 +02:00
|
|
|
'python-vagrant',
|
2015-07-24 09:42:47 +02:00
|
|
|
'PyYAML',
|
2017-11-27 22:24:59 +01:00
|
|
|
'qrcode',
|
2017-05-16 10:29:32 +02:00
|
|
|
'ruamel.yaml >= 0.13',
|
2017-08-17 01:47:06 +02:00
|
|
|
'requests >= 2.5.2, != 2.11.0, != 2.12.2, != 2.18.0',
|
|
|
|
'docker-py >= 1.9, < 2.0',
|
2014-12-31 16:42:26 +01:00
|
|
|
],
|
2013-10-24 21:29:40 +02:00
|
|
|
classifiers=[
|
2017-07-19 16:12:06 +02:00
|
|
|
'Development Status :: 4 - Beta',
|
2014-08-16 11:51:23 +02:00
|
|
|
'Intended Audience :: Developers',
|
2017-07-19 16:12:06 +02:00
|
|
|
'Intended Audience :: Information Technology',
|
|
|
|
'Intended Audience :: System Administrators',
|
|
|
|
'Intended Audience :: Telecommunications Industry',
|
2016-02-18 11:47:02 +01:00
|
|
|
'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)',
|
2014-08-16 11:51:23 +02:00
|
|
|
'Operating System :: POSIX',
|
2017-07-19 16:12:06 +02:00
|
|
|
'Operating System :: MacOS :: MacOS X',
|
|
|
|
'Operating System :: Unix',
|
2014-08-16 11:51:23 +02:00
|
|
|
'Topic :: Utilities',
|
2014-12-31 16:42:26 +01:00
|
|
|
],
|
2013-10-24 21:29:40 +02:00
|
|
|
)
|