Skip to content

Commit aa8c9eb

Browse files
Migrate to setup.py and PEP 517
1 parent ed23d03 commit aa8c9eb

File tree

4 files changed

+147
-103
lines changed

4 files changed

+147
-103
lines changed

pyproject.toml

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
[project]
2+
name = "qiling"
3+
version = "1.2.0-dev"
4+
description = "Qiling is an advanced binary emulation framework that cross-platform-architecture"
5+
readme = "README.md"
6+
requires-python = ">=3.8"
7+
license = {file = "COPYING", text = "GPL-2.0-only"}
8+
maintainers = [
9+
{name = "KaiJern Lau (xwings)", email = "[email protected]"}
10+
]
11+
keywords = ["qiling", "binary", "emulator", "framework", "malware", "analysis", "UEFI", "IoT"]
12+
classifiers = [
13+
"Development Status :: 3 - Alpha",
14+
"Intended Audience :: Developers",
15+
"Topic :: Software Development :: Build Tools",
16+
"License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
17+
"Programming Language :: Python :: 3"
18+
]
19+
20+
dependencies = [
21+
"capstone>=4.0.1",
22+
"unicorn==1.0.2",
23+
"pefile>=2019.4.18",
24+
"python-registry>=1.3.1",
25+
"keystone-engine>=0.9.2",
26+
"pyelftools>=0.26",
27+
"gevent>=20.9.0",
28+
"multiprocess>=0.70.12.2",
29+
"pyyaml>=6.0",
30+
"python-magic>=0.4.16; platform_system != 'Windows'",
31+
"python-magic-bin>=0.4.14; platform_system == 'Windows'",
32+
"windows-curses>=2.1.0; platform_system == 'Windows'"
33+
]
34+
35+
[project.optional-dependencies]
36+
evm = [
37+
"blake2b-py>=0.1.2",
38+
"cached-property>=1.5.2; python_version < '3.8'",
39+
"typing-extensions>=3.7.4.3; python_version < '3.8'",
40+
"eth-keys>=0.2.1",
41+
"eth-typing>=2.2.0",
42+
"eth-utils>=1.9.4",
43+
"eth_abi>=2.1.1",
44+
"lru-dict>=1.1.6",
45+
"py-ecc>=1.4.7",
46+
"rlp>=2",
47+
"trie==2.0.0-alpha.5",
48+
"eth-hash[pycryptodome]",
49+
"numpy",
50+
"rich",
51+
"cmd2"
52+
]
53+
fuzz = [
54+
"aflunicorn>=2.0.0; platform_system != 'Windows'",
55+
"fuzzercorn>=0.0.1; platform_system == 'Linux'"
56+
]
57+
58+
[project.urls]
59+
homepage = "qiling.io"
60+
documentation = "docs.qiling.io"
61+
epository = "github.com/qilingframework/qiling"
62+
changelog = "github.com/qilingframework/qiling/blob/master/ChangeLog"
63+
64+
[project.scripts]
65+
qltool = "qltool:main"
66+
67+
[build-system]
68+
requires = ["setuptools"]
69+
build-backend = "setuptools.build_meta"
70+

qltool

+5-1
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ def handle_examples(parser: argparse.ArgumentParser):
165165

166166
parser.exit(0, __ql_examples)
167167

168-
if __name__ == '__main__':
168+
def main():
169169
parser = argparse.ArgumentParser()
170170
parser.add_argument('--version', action='version', version=f'qltool for Qiling {ql_version}, using Unicorn {unicorn.__version__}')
171171

@@ -260,3 +260,7 @@ if __name__ == '__main__':
260260
print(report.generate_report(ql, pretty_print=True))
261261

262262
exit(ql.os.exit_code)
263+
264+
265+
if __name__ == '__main__':
266+
main()

setup.cfg

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
[metadata]
2+
name = qiling
3+
version = 1.2.0-dev
4+
url = https://qiling.io/
5+
project_urls =
6+
Documentation = https://docs.qiling.io
7+
Repository = https://github.com/qilingframework/qiling
8+
Changelog = https://github.com/qilingframework/qiling/blob/master/ChangeLog
9+
maintainer = KaiJern Lau (xwings)
10+
maintainer_email = [email protected]
11+
classifiers =
12+
Development Status :: 3 - Alpha
13+
Intended Audience :: Developers
14+
Topic :: Software Development :: Build Tools
15+
License :: OSI Approved :: GNU General Public License v2 (GPLv2)
16+
Programming Language :: Python :: 3
17+
license = GPLv2
18+
license_file = COPYING
19+
description = Qiling is an advanced binary emulation framework that cross-platform-architecture
20+
long_description = file: README.md
21+
long_description_content_type = text/markdown
22+
keywords=
23+
qiling
24+
binary
25+
emulator
26+
framework
27+
malware
28+
analysis
29+
UEFI
30+
IoT
31+
platforms = any
32+
33+
[options]
34+
packages = find:
35+
install_requires =
36+
capstone>=4.0.1
37+
unicorn==1.0.2
38+
pefile>=2019.4.18
39+
python-registry>=1.3.1
40+
keystone-engine>=0.9.2
41+
pyelftools>=0.26
42+
gevent>=20.9.0
43+
multiprocess>=0.70.12.2
44+
pyyaml>=6.0
45+
python-magic>=0.4.16; platform_system != 'Windows'
46+
python-magic-bin>=0.4.14; platform_system == 'Windows'
47+
windows-curses>=2.1.0; platform_system == 'Windows'
48+
python_requires = >=3.8
49+
scripts =
50+
qltool
51+
include_package_data = True
52+
53+
[options.extras_require]
54+
evm =
55+
blake2b-py>=0.1.2
56+
cached-property>=1.5.2; python_version < '3.8'
57+
typing-extensions>=3.7.4.3; python_version < '3.8'
58+
eth-keys>=0.2.1
59+
eth-typing>=2.2.0
60+
eth-utils>=1.9.4
61+
eth_abi>=2.1.1
62+
lru-dict>=1.1.6
63+
py-ecc>=1.4.7
64+
rlp>=2
65+
trie==2.0.0-alpha.5
66+
eth-hash[pycryptodome]
67+
numpy
68+
rich
69+
cmd2
70+
fuzz =
71+
aflunicorn>=2.0.0; platform_system != 'Windows'
72+
fuzzercorn>=0.0.1; platform_system == 'Linux'

setup.py

-102
This file was deleted.

0 commit comments

Comments
 (0)