Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to PEP 518 #1111

Closed
wants to merge 11 commits into from
5 changes: 2 additions & 3 deletions .github/workflows/pythonpublish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,10 @@ jobs:
python-version: '3.x'
- name: Install dependencies
run: |
pip install setuptools wheel
pip install setuptools wheel build
- name: Build distribution 📦
run: |
pip install .
python setup.py sdist bdist_wheel
python -m build
nullableVoidPtr marked this conversation as resolved.
Show resolved Hide resolved
- uses: actions/upload-artifact@v2
with:
path: ${{ github.workspace }}/dist/*
Expand Down
68 changes: 68 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
[project]
name = "qiling"
version = "1.2.0-dev"
description = "Qiling is an advanced binary emulation framework that cross-platform-architecture"
readme = "README.md"
requires-python = ">=3.8"
license = {file = "COPYING", text = "GPL-2.0-only"}
maintainers = [
{name = "KaiJern Lau (xwings)", email = "info@qiling.io"}
]
keywords = ["qiling", "binary", "emulator", "framework", "malware", "analysis", "UEFI", "IoT"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Topic :: Software Development :: Build Tools",
"License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
"Programming Language :: Python :: 3"
]

dependencies = [
"capstone>=4.0.1",
"unicorn==2.0.0-rc5",
"pefile>=2021.9.3",
"python-registry>=1.3.1",
"keystone-engine>=0.9.2",
"pyelftools>=0.26",
"gevent>=20.9.0",
"multiprocess>=0.70.12.2",
"pyyaml>=6.0",
"windows-curses>=2.1.0; platform_system == 'Windows'"
]

[project.optional-dependencies]
evm = [
"blake2b-py>=0.1.2",
"cached-property>=1.5.2; python_version < '3.8'",
"typing-extensions>=3.7.4.3; python_version < '3.8'",
"eth-keys>=0.2.1",
"eth-typing>=2.2.0",
"eth-utils>=1.9.4",
"eth_abi>=2.1.1",
"lru-dict>=1.1.6",
"py-ecc>=1.4.7",
"rlp>=2",
"trie==2.0.0-alpha.5",
"eth-hash[pycryptodome]",
"numpy",
"rich",
"cmd2"
]
fuzz = [
"aflunicorn>=2.0.0; platform_system != 'Windows'",
"fuzzercorn>=0.0.1; platform_system == 'Linux'"
]

[project.urls]
homepage = "qiling.io"
documentation = "docs.qiling.io"
epository = "github.com/qilingframework/qiling"
changelog = "github.com/qilingframework/qiling/blob/master/ChangeLog"

[project.scripts]
qltool = "qltool:main"

[build-system]
requires = ["setuptools>=40.9.0", "wheel"]
build-backend = "setuptools.build_meta"

6 changes: 5 additions & 1 deletion qltool
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ def handle_examples(parser: argparse.ArgumentParser):

parser.exit(0, __ql_examples)

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

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

exit(ql.os.exit_code)


if __name__ == '__main__':
main()
70 changes: 70 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
[metadata]
name = qiling
version = 1.2.0-dev
url = https://qiling.io/
project_urls =
Documentation = https://docs.qiling.io
Repository = https://github.com/qilingframework/qiling
Changelog = https://github.com/qilingframework/qiling/blob/master/ChangeLog
maintainer = KaiJern Lau (xwings)
maintainer_email = info@qiling.io
classifiers =
Development Status :: 3 - Alpha
Intended Audience :: Developers
Topic :: Software Development :: Build Tools
License :: OSI Approved :: GNU General Public License v2 (GPLv2)
Programming Language :: Python :: 3
license = GPLv2
license_file = COPYING
description = Qiling is an advanced binary emulation framework that cross-platform-architecture
long_description = file: README.md
long_description_content_type = text/markdown
keywords=
qiling
binary
emulator
framework
malware
analysis
UEFI
IoT
platforms = any

[options]
packages = find:
install_requires =
capstone>=4.0.1
unicorn==2.0.0-rc5
pefile>=2021.9.3
python-registry>=1.3.1
keystone-engine>=0.9.2
pyelftools>=0.26
gevent>=20.9.0
multiprocess>=0.70.12.2
pyyaml>=6.0
windows-curses>=2.1.0; platform_system == 'Windows'
python_requires = >=3.8
scripts =
qltool
include_package_data = True

[options.extras_require]
evm =
blake2b-py>=0.1.2
cached-property>=1.5.2; python_version < '3.8'
typing-extensions>=3.7.4.3; python_version < '3.8'
eth-keys>=0.2.1
eth-typing>=2.2.0
eth-utils>=1.9.4
eth_abi>=2.1.1
lru-dict>=1.1.6
py-ecc>=1.4.7
rlp>=2
trie==2.0.0-alpha.5
eth-hash[pycryptodome]
numpy
rich
cmd2
fuzz =
aflunicorn>=2.0.0; platform_system != 'Windows'
fuzzercorn>=0.0.1; platform_system == 'Linux'
102 changes: 0 additions & 102 deletions setup.py

This file was deleted.