blob: c2695cb748a0700372eeba3b7eafd9a62c8d05f0 [file] [log] [blame]
#!/usr/bin/python3
# SPDX-License-Identifier: GPL-2.0-or-later
""" install rteval """
import sysconfig
from os.path import relpath
import os
import shutil
import gzip
from setuptools import setup
# Get PYTHONLIB with no prefix so --prefix installs work.
SCHEME = 'rpm_prefix'
if SCHEME not in sysconfig.get_scheme_names():
SCHEME = 'posix_prefix'
PYTHONLIB = relpath(sysconfig.get_path('platlib', SCHEME), '/usr')
# Tiny hack to make rteval-cmd become a rteval when building/installing the package
try:
os.mkdir('dist', 0o755)
distcreated = True
except OSError as e:
if e.errno == 17:
# If it already exists, ignore this error
distcreated = False
else:
raise e
shutil.copy('rteval-cmd','dist/rteval')
# Hack to avoid importing libxml2 and a lot of other stuff
# when getting the rteval version. These are modules which
# might not be available on the build box.
shutil.copy('rteval/version.py','dist/__init__.py')
from dist import RTEVAL_VERSION
# Compress the man page, so distutil will only care for the compressed file
mangz = gzip.GzipFile('dist/rteval.8.gz', 'w', 9)
with open('doc/rteval.8', 'rb') as man:
mangz.writelines(man)
mangz.close()
# Do the setup stuff
setup(name="rteval",
version = RTEVAL_VERSION,
description = "Evaluate system performance for Realtime",
author = "Clark Williams, David Sommerseth",
author_email = "williams@redhat.com, davids@redhat.com",
url = "https://git.kernel.org/pub/scm/utils/rteval/rteval.git",
license = "GPLv2",
long_description =
"""\
The rteval script is used to judge the behavior of a hardware
platform while running a Realtime Linux kernel under a moderate
to heavy load.
Provides control logic for starting a system load and then running a
response time measurement utility (cyclictest) for a specified amount
of time. When the run is finished, the sample data from cyclictest is
analyzed for standard statistical measurements (i.e mode, median, range,
mean, variance and standard deviation) and a report is generated.
""",
packages = ["rteval",
"rteval.modules",
"rteval.modules.loads",
"rteval.modules.measurement",
"rteval.sysinfo"],
package_dir = { "rteval": "rteval",
"rteval.modules": "rteval/modules",
"rteval.modules.loads": "rteval/modules/loads",
"rteval.modules.measurement": "rteval/modules/measurement",
"rteval.sysinfo": "rteval/sysinfo"
},
data_files = [("share/rteval", ["rteval/rteval_dmi.xsl",
"rteval/rteval_histogram_raw.xsl",
"rteval/rteval_text.xsl"]),
("/etc", ["rteval.conf"]),
("share/man/man8", ["dist/rteval.8.gz"])
],
scripts = ["dist/rteval"]
)
# Clean-up from our little hack
os.unlink('dist/rteval')
os.unlink('dist/rteval.8.gz')
os.unlink('dist/__init__.py')
if distcreated:
try:
os.rmdir('dist')
except OSError:
# Ignore any errors
pass