NAS-137581 / 26.04 / fix building on trixie (#929)

* fix building on trixie

* fix inconsistencies in pyproject.toml

* fix manifest.yml

* remove hard-coded debian version from readme
This commit is contained in:
Caleb St. John
2025-09-23 10:36:55 -04:00
committed by GitHub
parent 1d99cf8448
commit 87c0236b7a
7 changed files with 43 additions and 29 deletions

View File

@@ -8,11 +8,11 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Set up Python 3.10 - name: Set up Python 3.13
uses: actions/setup-python@v5 uses: actions/setup-python@v5
with: with:
python-version: '3.10' python-version: '3.13'
- name: Validating manifest - name: Validating manifest
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip

4
MANIFEST.in Normal file
View File

@@ -0,0 +1,4 @@
include scripts/parse_deps.pl
include README.md
include LICENSE
include requirements.txt

View File

@@ -18,7 +18,7 @@ ifneq ($(REPO_CHANGED),0)
@${PYTHON} -m venv venv-${COMMIT_HASH} || { echo "Failed to create virutal environment"; exit 1; } @${PYTHON} -m venv venv-${COMMIT_HASH} || { echo "Failed to create virutal environment"; exit 1; }
@{ . ./venv-${COMMIT_HASH}/bin/activate && \ @{ . ./venv-${COMMIT_HASH}/bin/activate && \
python3 -m pip install -r requirements.txt >/dev/null 2>&1 && \ python3 -m pip install -r requirements.txt >/dev/null 2>&1 && \
python3 setup.py install >/dev/null 2>&1; } || { echo "Failed to install scale-build"; exit 1; } python3 -m pip install . >/dev/null 2>&1; } || { echo "Failed to install scale-build"; exit 1; }
endif endif
all: checkout packages update iso all: checkout packages update iso

View File

@@ -12,7 +12,8 @@ Found an issue in the build for SCALE? Please report it on our [Jira bugtracker]
## Requirements ## Requirements
- Debian 10 or later (VM or Bare-Metal) - Supported version of Debian
- Python 3.11 or later
- 20GB of RAM - 20GB of RAM
- At least 15GB of free disk space - At least 15GB of free disk space
@@ -33,6 +34,8 @@ In addition to the host, you will want to pre-install the following packages:
## Usage ## Usage
The build system automatically manages a Python virtual environment to ensure build consistency. It detects changes in the git repository hash and automatically recreates the virtual environment when needed, ensuring that the build tools are always in sync with the current codebase.
After the pre-requistes are installed, simply run "make" (as root or sudo) to perform a complete build which performs the following steps: After the pre-requistes are installed, simply run "make" (as root or sudo) to perform a complete build which performs the following steps:
``` make checkout ``` ``` make checkout ```

27
pyproject.toml Normal file
View File

@@ -0,0 +1,27 @@
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "scale_build"
description = "A build framework for TrueNAS SCALE"
readme = "README.md"
license = {text = "GPL-3.0"}
requires-python = ">=3.11"
dynamic = ["version"]
dependencies = [
"coloredlogs",
"toposort",
"requests",
"pyyaml",
]
[project.scripts]
scale_build = "scale_build.main:main"
[tool.setuptools.packages.find]
where = ["."]
include = ["scale_build*", "truenas_install*"]
[tool.setuptools]
include-package-data = true

View File

@@ -1,2 +1,6 @@
[flake8] [flake8]
max-line-length=120 max-line-length=120
[options]
scripts =
scripts/parse_deps.pl

View File

@@ -1,24 +0,0 @@
from setuptools import find_packages, setup
setup(
name='scale_build',
description='A build framework for TrueNAS SCALE',
packages=find_packages(),
include_package_data=True,
license='BSD',
platforms='any',
install_requires=[
'coloredlogs',
'toposort',
'requests',
'pyyaml'
],
entry_points={
'console_scripts': [
'scale_build = scale_build.main:main',
],
},
scripts=[
'scripts/parse_deps.pl',
]
)