2016-01-04 16:33:20 +01:00
|
|
|
#!/usr/bin/env python3
|
2012-03-11 12:59:19 +01:00
|
|
|
|
2017-10-19 18:00:04 +02:00
|
|
|
import re
|
2018-05-25 14:23:05 +02:00
|
|
|
import subprocess
|
2014-04-02 20:41:20 +02:00
|
|
|
import sys
|
2012-03-11 12:59:19 +01:00
|
|
|
|
2021-12-16 20:34:38 +01:00
|
|
|
from setuptools import Command
|
|
|
|
from setuptools import setup
|
2021-09-07 14:37:19 +02:00
|
|
|
from setuptools.command.install import install
|
|
|
|
|
2017-10-19 18:00:04 +02:00
|
|
|
|
2017-11-27 15:23:02 +01:00
|
|
|
class VersionCheckCommand(Command):
|
2023-04-21 09:40:57 +02:00
|
|
|
"""Make sure git tag and version match before uploading."""
|
2021-12-16 20:34:38 +01:00
|
|
|
|
2017-11-27 15:23:02 +01:00
|
|
|
user_options = []
|
|
|
|
|
|
|
|
def initialize_options(self):
|
2023-04-21 09:40:57 +02:00
|
|
|
"""Abstract method that is required to be overwritten."""
|
2017-11-27 15:23:02 +01:00
|
|
|
|
|
|
|
def finalize_options(self):
|
2023-04-21 09:40:57 +02:00
|
|
|
"""Abstract method that is required to be overwritten."""
|
2017-11-27 15:23:02 +01:00
|
|
|
|
|
|
|
def run(self):
|
|
|
|
version = self.distribution.get_version()
|
2021-12-16 20:34:38 +01:00
|
|
|
version_git = (
|
|
|
|
subprocess.check_output(['git', 'describe', '--tags', '--always'])
|
|
|
|
.rstrip()
|
|
|
|
.decode('utf-8')
|
|
|
|
)
|
2017-11-27 15:23:02 +01:00
|
|
|
if version != version_git:
|
2021-12-16 20:34:38 +01:00
|
|
|
print(
|
|
|
|
'ERROR: Release version mismatch! setup.py (%s) does not match git (%s)'
|
|
|
|
% (version, version_git)
|
|
|
|
)
|
2017-11-27 15:23:02 +01:00
|
|
|
sys.exit(1)
|
2019-07-03 16:20:15 +02:00
|
|
|
print('Upload using: twine upload --sign dist/fdroidserver-%s.tar.gz' % version)
|
2017-11-27 15:23:02 +01:00
|
|
|
|
|
|
|
|
2021-09-07 14:37:19 +02:00
|
|
|
class InstallWithCompile(install):
|
|
|
|
def run(self):
|
|
|
|
from babel.messages.frontend import compile_catalog
|
2021-12-16 20:34:38 +01:00
|
|
|
|
2021-09-07 14:37:19 +02:00
|
|
|
compiler = compile_catalog(self.distribution)
|
|
|
|
option_dict = self.distribution.get_option_dict('compile_catalog')
|
|
|
|
compiler.domain = [option_dict['domain'][1]]
|
|
|
|
compiler.directory = option_dict['directory'][1]
|
|
|
|
compiler.run()
|
|
|
|
super().run()
|
|
|
|
|
|
|
|
|
2017-10-19 18:00:04 +02:00
|
|
|
def get_data_files():
|
|
|
|
data_files = []
|
|
|
|
with open('MANIFEST.in') as fp:
|
|
|
|
data = fp.read()
|
|
|
|
|
2021-12-16 20:34:38 +01:00
|
|
|
data_files.append(
|
2022-08-08 18:06:30 +02:00
|
|
|
('share/doc/fdroidserver/examples', re.findall(r'include (examples/.*)', data))
|
2021-12-16 20:34:38 +01:00
|
|
|
)
|
2022-08-08 18:06:30 +02:00
|
|
|
data_files.append(
|
|
|
|
('share/doc/fdroidserver/examples', ['buildserver/config.buildserver.yml'])
|
|
|
|
)
|
|
|
|
|
|
|
|
for d in re.findall(r'include (locale/.*)/fdroidserver\.po', data):
|
|
|
|
data_files.append(('share/' + d, [d + '/fdroidserver.mo']))
|
2021-12-16 20:34:38 +01:00
|
|
|
|
2017-10-19 18:00:04 +02:00
|
|
|
return data_files
|
|
|
|
|
2015-07-31 14:47:48 +02:00
|
|
|
|
2019-08-15 12:19:29 +02:00
|
|
|
with open("README.md", "r") as fh:
|
|
|
|
long_description = fh.read()
|
|
|
|
|
2021-12-16 20:34:38 +01:00
|
|
|
setup(
|
|
|
|
name='fdroidserver',
|
2023-03-09 16:00:50 +01:00
|
|
|
version='2.3a0',
|
2021-12-16 20:34:38 +01:00
|
|
|
description='F-Droid Server Tools',
|
|
|
|
long_description=long_description,
|
|
|
|
long_description_content_type='text/markdown',
|
|
|
|
author='The F-Droid Project',
|
|
|
|
author_email='team@f-droid.org',
|
|
|
|
url='https://f-droid.org',
|
|
|
|
license='AGPL-3.0',
|
|
|
|
packages=['fdroidserver', 'fdroidserver.asynchronousfilereader'],
|
|
|
|
entry_points={'console_scripts': ['fdroid=fdroidserver.__main__:main']},
|
|
|
|
data_files=get_data_files(),
|
2022-10-20 22:08:00 +02:00
|
|
|
python_requires='>=3.9',
|
2021-12-16 20:34:38 +01:00
|
|
|
cmdclass={
|
|
|
|
'versioncheck': VersionCheckCommand,
|
|
|
|
'install': InstallWithCompile,
|
|
|
|
},
|
|
|
|
setup_requires=[
|
|
|
|
'babel',
|
|
|
|
],
|
|
|
|
install_requires=[
|
|
|
|
'androguard >= 3.1.0rc2, != 3.3.0, != 3.3.1, != 3.3.2',
|
|
|
|
'clint',
|
|
|
|
'defusedxml',
|
|
|
|
'GitPython',
|
|
|
|
'paramiko',
|
|
|
|
'Pillow',
|
|
|
|
'apache-libcloud >= 0.14.1',
|
|
|
|
'pyasn1 >=0.4.1, < 0.5.0',
|
|
|
|
'pyasn1-modules >= 0.2.1, < 0.3',
|
|
|
|
'python-vagrant',
|
|
|
|
'PyYAML',
|
|
|
|
'qrcode',
|
|
|
|
'ruamel.yaml >= 0.15',
|
|
|
|
'requests >= 2.5.2, != 2.11.0, != 2.12.2, != 2.18.0',
|
2022-01-14 12:50:44 +01:00
|
|
|
'sdkmanager >= 0.6.4',
|
2021-12-16 20:34:38 +01:00
|
|
|
'yamllint',
|
|
|
|
],
|
|
|
|
extras_require={
|
|
|
|
'test': ['pyjks', 'html5print'],
|
|
|
|
'docs': [
|
|
|
|
'sphinx',
|
|
|
|
'numpydoc',
|
|
|
|
'pydata_sphinx_theme',
|
|
|
|
'pydocstyle',
|
|
|
|
],
|
|
|
|
},
|
|
|
|
classifiers=[
|
|
|
|
'Development Status :: 4 - Beta',
|
|
|
|
'Intended Audience :: Developers',
|
|
|
|
'Intended Audience :: Information Technology',
|
|
|
|
'Intended Audience :: System Administrators',
|
|
|
|
'Intended Audience :: Telecommunications Industry',
|
|
|
|
'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)',
|
|
|
|
'Operating System :: POSIX',
|
|
|
|
'Operating System :: MacOS :: MacOS X',
|
|
|
|
'Operating System :: Unix',
|
|
|
|
'Topic :: Utilities',
|
|
|
|
],
|
|
|
|
)
|