diff options
| author | Jesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org> | 2026-03-07 16:57:23 +0000 |
|---|---|---|
| committer | Jesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org> | 2026-03-07 16:58:48 +0000 |
| commit | 78d07a64338818483fa2b1122a3735ca8dbf5e1e (patch) | |
| tree | 30fdc4574f1ad11ec6f9f738aefc90107094dce5 | |
| parent | a2464b8cf46f914df3e9ecac43d8ba211f59051a (diff) | |
sysutils/py-dbuild: New port: Build, test, and push FreeBSD OCI container images
dbuild is a build tool for daemonless container images. It reads a
project directory containing Containerfile templates and an optional
.daemonless/config.yaml, then handles the full image lifecycle:
build, integration test, SBOM generation, and registry push.
WWW: https://daemonless.io/guides/dbuild
| -rw-r--r-- | sysutils/Makefile | 1 | ||||
| -rw-r--r-- | sysutils/py-dbuild/Makefile | 50 | ||||
| -rw-r--r-- | sysutils/py-dbuild/distinfo | 3 | ||||
| -rw-r--r-- | sysutils/py-dbuild/files/patch-dbuild_ci__test.py | 10 | ||||
| -rw-r--r-- | sysutils/py-dbuild/pkg-descr | 4 |
5 files changed, 68 insertions, 0 deletions
diff --git a/sysutils/Makefile b/sysutils/Makefile index 27e3cf6116b9..cf6cf43021b3 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -1050,6 +1050,7 @@ SUBDIR += py-cron-descriptor SUBDIR += py-croniter SUBDIR += py-croniter2 + SUBDIR += py-dbuild SUBDIR += py-debian-inspector SUBDIR += py-dict-toolbox SUBDIR += py-diffoscope diff --git a/sysutils/py-dbuild/Makefile b/sysutils/py-dbuild/Makefile new file mode 100644 index 000000000000..c642f89f6bb9 --- /dev/null +++ b/sysutils/py-dbuild/Makefile @@ -0,0 +1,50 @@ +PORTNAME= dbuild +DISTVERSIONPREFIX= v +DISTVERSION= 1.4.0 +CATEGORIES= sysutils python +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= dtxdf@FreeBSD.org +COMMENT= Build, test, and push FreeBSD OCI container images +WWW= https://daemonless.io/guides/dbuild + +LICENSE= BSD2CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PY_SETUPTOOLS} \ + ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>=0:devel/py-Jinja2@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyyaml>=0:devel/py-pyyaml@${PY_FLAVOR} \ + buildah:sysutils/buildah \ + podman:sysutils/podman + +USES= python +USE_GITHUB= yes +GH_ACCOUNT= daemonless +USE_PYTHON= autoplist pep517 + +NO_ARCH= yes + +PORTDOCS= README.md + +OPTIONS_DEFINE= COMPOSE_TESTING DOCS MULTI_ARCH_MANIFESTS SBOM \ + SCREENSHOT_TESTING +OPTIONS_DEFAULT= MULTI_ARCH_MANIFESTS SBOM + +COMPOSE_TESTING_DESC= Compose testing +MULTI_ARCH_MANIFESTS_DESC= Multi-arch manifests +SBOM_DESC= SBOM generation +SCREENSHOT_TESTING_DESC= Screenshot testing + +COMPOSE_TESTING_RUN_DEPENDS= podman-compose:sysutils/podman-compose +MULTI_ARCH_MANIFESTS_RUN_DEPENDS= skopeo:sysutils/skopeo +SBOM_RUN_DEPENDS= trivy:security/trivy +SCREENSHOT_TESTING_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}scikit-image>=0:graphics/py-scikit-image@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}selenium>=0:www/py-selenium@${PY_FLAVOR} \ + chromium>=0:www/chromium + +do-install-DOCS-on: + @${MKDIR} ${STAGEDIR}/${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}/${DOCSDIR} + +.include <bsd.port.mk> diff --git a/sysutils/py-dbuild/distinfo b/sysutils/py-dbuild/distinfo new file mode 100644 index 000000000000..05393656c55b --- /dev/null +++ b/sysutils/py-dbuild/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1772857558 +SHA256 (daemonless-dbuild-v1.4.0_GH0.tar.gz) = b4dcbbf7421f1310027f6087ec4a89e0f6d7c51980d195cf3ae5c9327337c06c +SIZE (daemonless-dbuild-v1.4.0_GH0.tar.gz) = 75512 diff --git a/sysutils/py-dbuild/files/patch-dbuild_ci__test.py b/sysutils/py-dbuild/files/patch-dbuild_ci__test.py new file mode 100644 index 000000000000..807c239b9a72 --- /dev/null +++ b/sysutils/py-dbuild/files/patch-dbuild_ci__test.py @@ -0,0 +1,10 @@ +--- dbuild/ci_test.py.orig 2026-03-07 16:44:08 UTC ++++ dbuild/ci_test.py +@@ -97,6 +97,7 @@ def _check_ocijail_annotation(annotation: str, base_im + *podman._priv_prefix(), + "podman", "run", "--rm", + "--annotation", f"{annotation}=true", ++ "--entrypoint", "", + base_image, + "/bin/echo", "ok", + ] diff --git a/sysutils/py-dbuild/pkg-descr b/sysutils/py-dbuild/pkg-descr new file mode 100644 index 000000000000..708815e2235d --- /dev/null +++ b/sysutils/py-dbuild/pkg-descr @@ -0,0 +1,4 @@ +dbuild is a build tool for daemonless container images. It reads a +project directory containing Containerfile templates and an optional +.daemonless/config.yaml, then handles the full image lifecycle: +build, integration test, SBOM generation, and registry push. |
