mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-05 18:50:09 +02:00
Merge branch 'fix_pip_git_installation' into 'master'
Build translation files on install instead of distributing them in sdist Closes #934 See merge request fdroid/fdroidserver!1014
This commit is contained in:
commit
04a45ae745
@ -130,9 +130,9 @@ ubuntu_bionic_pip:
|
||||
# setup venv to act as release build machine
|
||||
- python -m venv sdist-env
|
||||
- . sdist-env/bin/activate
|
||||
- ./setup.py compile_catalog sdist
|
||||
- ./setup.py sdist
|
||||
- deactivate
|
||||
- tar tzf dist/fdroidserver-*.tar.gz | grep locale/de/LC_MESSAGES/fdroidserver.mo
|
||||
- tar tzf dist/fdroidserver-*.tar.gz
|
||||
# back to bare machine to act as user's install machine
|
||||
- $pip install --upgrade pip setuptools wheel # make this go away: "error: invalid command 'bdist_wheel'"
|
||||
- $pip install dist/fdroidserver-*.tar.gz
|
||||
@ -141,7 +141,7 @@ ubuntu_bionic_pip:
|
||||
- fdroid=`which fdroid` ./tests/run-tests
|
||||
|
||||
|
||||
# test install process on a bleeding edge distro with pip
|
||||
# test installation process on a bleeding edge distro with pip
|
||||
arch_pip_install:
|
||||
image: archlinux
|
||||
only:
|
||||
@ -233,6 +233,7 @@ black:
|
||||
fdroidserver/readmeta.py
|
||||
fdroidserver/signindex.py
|
||||
fdroidserver/tail.py
|
||||
setup.py
|
||||
tests/build.TestCase
|
||||
tests/deploy.TestCase
|
||||
tests/exception.TestCase
|
||||
@ -272,7 +273,7 @@ fedora_latest:
|
||||
unzip
|
||||
wget
|
||||
which
|
||||
- ./setup.py compile_catalog sdist
|
||||
- ./setup.py sdist
|
||||
- useradd -m -c "test account" --password "fakepassword" testuser
|
||||
- su testuser --login --command "cd `pwd`; $pip install --user dist/fdroidserver-*.tar.gz"
|
||||
- test -e ~testuser/.local/share/locale/de/LC_MESSAGES/fdroidserver.mo
|
||||
|
36
MANIFEST.in
36
MANIFEST.in
@ -20,24 +20,24 @@ include examples/public-read-only-s3-bucket-policy.json
|
||||
include examples/template.yml
|
||||
include gradlew-fdroid
|
||||
include LICENSE
|
||||
include locale/bo/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/de/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/es/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/fr/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/hu/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/it/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/ko/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/nb_NO/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/pl/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/pt/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/pt_BR/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/pt_PT/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/ru/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/sq/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/tr/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/uk/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/zh_Hans/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/zh_Hant/LC_MESSAGES/fdroidserver.mo
|
||||
include locale/bo/LC_MESSAGES/fdroidserver.po
|
||||
include locale/de/LC_MESSAGES/fdroidserver.po
|
||||
include locale/es/LC_MESSAGES/fdroidserver.po
|
||||
include locale/fr/LC_MESSAGES/fdroidserver.po
|
||||
include locale/hu/LC_MESSAGES/fdroidserver.po
|
||||
include locale/it/LC_MESSAGES/fdroidserver.po
|
||||
include locale/ko/LC_MESSAGES/fdroidserver.po
|
||||
include locale/nb_NO/LC_MESSAGES/fdroidserver.po
|
||||
include locale/pl/LC_MESSAGES/fdroidserver.po
|
||||
include locale/pt/LC_MESSAGES/fdroidserver.po
|
||||
include locale/pt_BR/LC_MESSAGES/fdroidserver.po
|
||||
include locale/pt_PT/LC_MESSAGES/fdroidserver.po
|
||||
include locale/ru/LC_MESSAGES/fdroidserver.po
|
||||
include locale/sq/LC_MESSAGES/fdroidserver.po
|
||||
include locale/tr/LC_MESSAGES/fdroidserver.po
|
||||
include locale/uk/LC_MESSAGES/fdroidserver.po
|
||||
include locale/zh_Hans/LC_MESSAGES/fdroidserver.po
|
||||
include locale/zh_Hant/LC_MESSAGES/fdroidserver.po
|
||||
include makebuildserver
|
||||
include README.md
|
||||
include tests/androguard_test.py
|
||||
|
171
setup.py
171
setup.py
@ -1,15 +1,18 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from setuptools import Command
|
||||
from setuptools import setup
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
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"""
|
||||
|
||||
user_options = []
|
||||
|
||||
def initialize_options(self):
|
||||
@ -20,14 +23,32 @@ class VersionCheckCommand(Command):
|
||||
|
||||
def run(self):
|
||||
version = self.distribution.get_version()
|
||||
version_git = subprocess.check_output(['git', 'describe', '--tags', '--always']).rstrip().decode('utf-8')
|
||||
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))
|
||||
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
|
||||
|
||||
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():
|
||||
# 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):
|
||||
@ -39,78 +60,84 @@ def get_data_files():
|
||||
with open('MANIFEST.in') as fp:
|
||||
data = fp.read()
|
||||
|
||||
data_files.append((data_prefix + '/share/doc/fdroidserver/examples',
|
||||
['buildserver/config.buildserver.yml', ]
|
||||
+ re.findall(r'include (examples/.*)', data)))
|
||||
data_files.append(
|
||||
(
|
||||
data_prefix + '/share/doc/fdroidserver/examples',
|
||||
['buildserver/config.buildserver.yml']
|
||||
+ 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):
|
||||
for f in re.findall(
|
||||
r'include (locale/[a-z][a-z][a-zA-Z_]*/LC_MESSAGES/fdroidserver\.)po', data
|
||||
):
|
||||
f += 'mo'
|
||||
d = os.path.join(data_prefix, 'share', os.path.dirname(f))
|
||||
data_files.append((d, [f, ]))
|
||||
data_files.append((d, [f]))
|
||||
return data_files
|
||||
|
||||
|
||||
with open("README.md", "r") as fh:
|
||||
long_description = fh.read()
|
||||
|
||||
setup(name='fdroidserver',
|
||||
version='2.1a0',
|
||||
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'],
|
||||
scripts=['makebuildserver'],
|
||||
entry_points={
|
||||
'console_scripts': ['fdroid=fdroidserver.__main__:main']
|
||||
},
|
||||
data_files=get_data_files(),
|
||||
python_requires='>=3.5',
|
||||
cmdclass={'versioncheck': VersionCheckCommand},
|
||||
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',
|
||||
'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',
|
||||
],
|
||||
)
|
||||
setup(
|
||||
name='fdroidserver',
|
||||
version='2.1a0',
|
||||
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'],
|
||||
scripts=['makebuildserver'],
|
||||
entry_points={'console_scripts': ['fdroid=fdroidserver.__main__:main']},
|
||||
data_files=get_data_files(),
|
||||
python_requires='>=3.5',
|
||||
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',
|
||||
'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',
|
||||
],
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user