1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-11-14 19:10:11 +01:00
fdroidserver/setup.py

138 lines
4.0 KiB
Python
Raw Normal View History

2016-01-04 16:33:20 +01:00
#!/usr/bin/env python3
import re
import subprocess
import sys
2021-12-16 20:34:38 +01:00
from setuptools import Command
from setuptools import setup
from setuptools.command.install import install
class VersionCheckCommand(Command):
"""Make sure git tag and version match before uploading."""
2021-12-16 20:34:38 +01:00
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()
2021-12-16 20:34:38 +01:00
version_git = (
subprocess.check_output(['git', 'describe', '--tags', '--always'])
.rstrip()
.decode('utf-8')
)
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)
)
sys.exit(1)
print('Upload using: twine upload --sign dist/fdroidserver-%s.tar.gz' % version)
class InstallWithCompile(install):
def run(self):
from babel.messages.frontend import compile_catalog
2021-12-16 20:34:38 +01: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()
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
return data_files
2015-07-31 14:47:48 +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=[
'appdirs',
'androguard >= 3.3.5',
2021-12-16 20:34:38 +01:00
'clint',
'defusedxml',
'GitPython',
'paramiko',
'Pillow',
'apache-libcloud >= 0.14.1',
'pyasn1 >=0.4.1',
'pyasn1-modules >= 0.2.1',
2021-12-16 20:34:38 +01:00
'python-vagrant',
'PyYAML',
'qrcode',
'ruamel.yaml >= 0.15, < 0.17.22',
2021-12-16 20:34:38 +01:00
'requests >= 2.5.2, != 2.11.0, != 2.12.2, != 2.18.0',
'sdkmanager >= 0.6.4',
2021-12-16 20:34:38 +01:00
'yamllint',
],
# Some requires are only needed for very limited cases:
# * biplist is only used for parsing Apple .ipa files
# * pycountry is only for linting config/mirrors.yml
2021-12-16 20:34:38 +01:00
extras_require={
'optional': ['biplist', 'pycountry'],
2021-12-16 20:34:38 +01:00
'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',
],
)