forked from svpcom/wfb-ng
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
84 lines (72 loc) · 3.17 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from setuptools import setup, find_packages, command
import distutils.command.bdist_rpm as orig
import setuptools.command.bdist_rpm as orig2
class bdist_rpm(orig.bdist_rpm):
"""
Override the default bdist_rpm behavior to do the following:
1. Run egg_info to ensure the name and version are properly calculated.
2. Always run 'install' using --single-version-externally-managed to
disable eggs in RPM distributions.
3. Replace dash with underscore in the version numbers for better RPM
compatibility.
4. Add %global debug_package %{nil} to spec file
"""
def run(self):
# ensure distro name is up-to-date
self.run_command('egg_info')
orig.bdist_rpm.run(self)
def _make_spec_file(self):
version = self.distribution.get_version()
rpmversion = version.replace('-', '_')
spec = orig.bdist_rpm._make_spec_file(self)
line23 = '%define version ' + version
line24 = '%define version ' + rpmversion
spec = ['%global debug_package %{nil}'] + \
[
line.replace(
"Source0: %{name}-%{version}.tar",
"Source0: %{name}-%{unmangled_version}.tar"
).replace(
"setup.py install ",
"setup.py install --single-version-externally-managed "
).replace(
"%setup",
"%setup -n %{name}-%{unmangled_version}"
).replace(line23, line24)
for line in spec
]
insert_loc = spec.index(line24) + 1
unmangled_version = "%define unmangled_version " + version
spec.insert(insert_loc, unmangled_version)
return spec
orig2.bdist_rpm = bdist_rpm
version = os.environ.get('VERSION') or 'trunk'
commit = os.environ.get('COMMIT')
if version and commit:
with open('telemetry/conf/site.cfg', 'w') as fd:
fd.write("# Don't make any changes here, use local.cfg instead!\n\n[common]\nversion = %r\ncommit = %r\n" % (version, commit))
setup(
url="http://wifibroadcast.org",
name="wifibroadcast",
version=version,
packages=find_packages(exclude=["*.tests", "*.tests.*", "tests.*", "tests"]),
zip_safe=False,
entry_points={'console_scripts': ['wfb-cli=telemetry.cli:main',
'wfb-test-latency=telemetry.latency_test:main',
'wfb-server=telemetry.server:main']},
package_data={'telemetry.conf': ['master.cfg', 'site.cfg']},
data_files = [('/usr/bin', ['wfb_tx', 'wfb_rx', 'wfb_keygen']),
('/lib/systemd/system', ['scripts/storm32.service',
'scripts/wifibroadcast.service',
'scripts/wifibroadcast@.service']),
('/etc/default', ['scripts/default/wifibroadcast']),
('/etc/sysctl.d', ['scripts/98-wifibroadcast.conf'])],
keywords="wifibroadcast",
author="Vasily Evseenko",
author_email="svpcom@p2ptech.org",
description="Wifibroadcast server",
license="GPLv3",
)