Skip to content

Commit f30cf39

Browse files
authored
Merge branch 'develop' into issues/issue1195
2 parents d4585be + d56cd83 commit f30cf39

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+11039
-595
lines changed

.github/workflows/build-pypi.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
runs-on: ubuntu-20.04
1919
strategy:
2020
matrix:
21-
python-version: ["3.7"]
21+
python-version: ["3.8"]
2222
steps:
2323
- uses: actions/checkout@v4
2424
- name: Set up Python ${{ matrix.python-version }}
@@ -29,12 +29,11 @@ jobs:
2929
- name: Install dependencies
3030
run: |
3131
python -m pip install --upgrade pip
32-
pip install setuptools wheel
32+
pip install build
3333
3434
- name: Build PyPi packages
3535
run: |
36-
python setup.py sdist --formats=gztar,zip
37-
python setup.py bdist_wheel
36+
python -m build
3837
3938
- name: Archive dist
4039
uses: actions/upload-artifact@v4

.github/workflows/install.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
fail-fast: false
99
matrix:
1010
host: [ ubuntu-latest, windows-latest ]
11-
python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11" ]
11+
python-version: [ "3.8", "3.9", "3.10", "3.11" ]
1212
steps:
1313
- uses: actions/checkout@v4
1414

.github/workflows/test.yaml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jobs:
66
runs-on: ubuntu-20.04
77
strategy:
88
matrix:
9-
python-version: ["3.7"]
9+
python-version: ["3.8"]
1010
steps:
1111
- uses: actions/checkout@v4
1212
- name: Set up Python ${{ matrix.python-version }}
@@ -18,13 +18,12 @@ jobs:
1818
run: |
1919
python -m pip install --upgrade pip
2020
pip install Cmake
21-
pip install setuptools wheel
21+
pip install build
2222
pip install -r ./test/requirements-testing.txt
2323
2424
- name: Build PyPi packages
2525
run: |
26-
python setup.py sdist --formats=gztar,zip
27-
python setup.py bdist_wheel
26+
python -m build
2827
2928
- name: Download images
3029
run: |
@@ -47,7 +46,7 @@ jobs:
4746
4847
- name: Clean up post-test
4948
run: |
50-
rm -rf *.lime
49+
rm -rf *.bin
5150
rm -rf *.img
5251
cd volatility3/symbols
5352
rm -rf linux

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ config*.json
2727
# Pyinstaller files
2828
build
2929
dist
30+
*.egg-info
3031

3132
# Environments
3233
.env

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,16 @@ more details.
2020

2121
## Requirements
2222

23-
Volatility 3 requires Python 3.7.0 or later. To install the most minimal set of dependencies (some plugins will not work) use a command such as:
23+
Volatility 3 requires Python 3.8.0 or later. To install the most minimal set of dependencies (some plugins will not work) use a command such as:
2424

2525
```shell
2626
pip3 install -r requirements-minimal.txt
2727
```
2828

29-
Alternately, the minimal packages will be installed automatically when Volatility 3 is installed using setup.py. However, as noted in the Quick Start section below, Volatility 3 does not *need* to be installed via setup.py prior to using it.
29+
Alternately, the minimal packages will be installed automatically when Volatility 3 is installed using pip. However, as noted in the Quick Start section below, Volatility 3 does not *need* to be installed prior to using it.
3030

3131
```shell
32-
python3 setup.py build
33-
python3 setup.py install
32+
pip3 install .
3433
```
3534

3635
To enable the full range of Volatility 3 functionality, use a command like the one below. For partial functionality, comment out any unnecessary packages in [requirements.txt](requirements.txt) prior to running the command.

doc/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ sphinx_autodoc_typehints>=1.4.0
44
sphinx-rtd-theme>=0.4.3
55

66
yara-python
7+
yara-x
78
pycryptodome
89
pefile

pyproject.toml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
[project]
2+
name = "volatility3"
3+
description = "Memory forensics framework"
4+
keywords = ["volatility", "memory", "forensics", "framework", "windows", "linux", "volshell"]
5+
readme = "README.md"
6+
authors = [
7+
{ name = "Volatility Foundation", email = "[email protected]" },
8+
]
9+
requires-python = ">=3.8.0"
10+
license = { text = "VSL" }
11+
dynamic = ["dependencies", "optional-dependencies", "version"]
12+
13+
[project.urls]
14+
Homepage = "https://github.com/volatilityfoundation/volatility3/"
15+
"Bug Tracker" = "https://github.com/volatilityfoundation/volatility3/issues"
16+
Documentation = "https://volatility3.readthedocs.io/"
17+
"Source Code" = "https://github.com/volatilityfoundation/volatility3"
18+
19+
[project.scripts]
20+
vol = "volatility3.cli:main"
21+
volshell = "volatility3.cli.volshell:main"
22+
23+
[tool.setuptools.dynamic]
24+
version = { attr = "volatility3.framework.constants._version.PACKAGE_VERSION" }
25+
dependencies = { file = "requirements-minimal.txt" }
26+
27+
[tool.setuptools.packages.find]
28+
include = ["volatility3*"]
29+
30+
[build-system]
31+
requires = ["setuptools>=68"]
32+
build-backend = "setuptools.build_meta"

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ capstone>=3.0.5
1515
pycryptodome
1616

1717
# This is required for memory acquisition via leechcore/pcileech.
18-
leechcorepyc>=2.4.0
18+
leechcorepyc>=2.4.0; sys_platform != 'darwin'
1919

2020
# This is required for memory analysis on a Amazon/MinIO S3 and Google Cloud object storage
2121
gcsfs>=2023.1.0

setup.py

Lines changed: 6 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,50 +4,21 @@
44

55
import setuptools
66

7-
from volatility3.framework import constants
87

9-
with open("README.md", "r", encoding="utf-8") as fh:
10-
long_description = fh.read()
11-
12-
13-
def get_install_requires():
8+
def get_requires(filename):
149
requirements = []
15-
with open("requirements-minimal.txt", "r", encoding="utf-8") as fh:
10+
with open(filename, "r", encoding="utf-8") as fh:
1611
for line in fh.readlines():
1712
stripped_line = line.strip()
18-
if stripped_line == "" or stripped_line.startswith("#"):
13+
if stripped_line == "" or stripped_line.startswith(("#", "-r")):
1914
continue
2015
requirements.append(stripped_line)
2116
return requirements
2217

2318

2419
setuptools.setup(
25-
name="volatility3",
26-
description="Memory forensics framework",
27-
version=constants.PACKAGE_VERSION,
28-
license="VSL",
29-
keywords="volatility memory forensics framework windows linux volshell",
30-
author="Volatility Foundation",
31-
long_description=long_description,
32-
long_description_content_type="text/markdown",
33-
author_email="[email protected]",
34-
url="https://github.com/volatilityfoundation/volatility3/",
35-
project_urls={
36-
"Bug Tracker": "https://github.com/volatilityfoundation/volatility3/issues",
37-
"Documentation": "https://volatility3.readthedocs.io/",
38-
"Source Code": "https://github.com/volatilityfoundation/volatility3",
39-
},
40-
packages=setuptools.find_namespace_packages(
41-
include=["volatility3", "volatility3.*"]
42-
),
43-
package_dir={"volatility3": "volatility3"},
44-
python_requires=">=3.7.0",
45-
include_package_data=True,
46-
entry_points={
47-
"console_scripts": [
48-
"vol = volatility3.cli:main",
49-
"volshell = volatility3.cli.volshell:main",
50-
],
20+
extras_require={
21+
"dev": get_requires("requirements-dev.txt"),
22+
"full": get_requires("requirements.txt"),
5123
},
52-
install_requires=get_install_requires(),
5324
)

test/requirements-testing.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ pefile>=2017.8.1 #foo
66

77
# This is required for the yara plugins
88
yara-python>=3.8.0
9+
yara-x>=0.5.0
910

1011
pytest>=7.0.0

0 commit comments

Comments
 (0)