From nobody Sat Mar 7 16:59:25 2026 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fSqHx5P0qz6Tlxl for ; Sat, 07 Mar 2026 16:59:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fSqHx4pXzz3g6d for ; Sat, 07 Mar 2026 16:59:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772902765; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/FxmWPsFZ8d7fwuIQiPalVjhZmE1WODM4t3mRTla8rs=; b=M970+K3hcyoRBA62zomsPq4eAD75SU2zT4lO7qall3Fhko93tGVhPJKwUPR+mxacnOd7Xu Q8L9LsrFZQvPZB+URO1UBWCH1w1EtCOyuRoWs9k8qaJKUtDLOoXttJQ8ek0K1DFTQNCH/L vyFHknOjU4Q/2tReKa6W9mIcugUYZ4VKb3AWlrQlaEmjeBcgyMtgwms5N68z7K+al7PULS /orE49qNnkXVex0TbVu1waVI5nHPNfi7+76X0cbYhCImkxa2Iqe4EAEtNHwekfOg+H/FhN binPbI9lih+Oy3y1MGWx1aoCByqdl98RhMN8QukJw5bjSVMNL8lEuIsky9Xb5w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772902765; a=rsa-sha256; cv=none; b=k8NxNqFMejhAJyHoewjHxOM+OgsuXBVwMrAOsJK/pja91QnZ+V52nb3Nb1M/jNy4cAYtER wJw2wzz7aLGypKygxgWgfJHqtY6w9f5lOSNWWXZrpwMjjIuckkT2GdDZS5iyULxL15ptEu oZ1ZTmGChGaBYfA1t3vhWGO+98ZE5adAf7ivaBMiJ5nRNPB1uJmpY0i+B/mwDDjcC+cuUz jtz9w7UmkbTbl6+5qwrfHV5FLnxSaeKWzoR7Z/ijnBr0Dmn/b5XspQSuCet8VZgvRzRjpE zmwUFM5EfYL916zFWWC2Yros9altfEDL/jf09AQhtA+kRT/49NwJKABM/gs/AA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772902765; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/FxmWPsFZ8d7fwuIQiPalVjhZmE1WODM4t3mRTla8rs=; b=RqGjEBYXhkEi7EpQlJk6sVSgnKiEJu6bgu0FORzZWuPeITUl+8NMH1p6pkF/TOW2JUcxPD u385Fws3LYZ7if+v8DlRKWW4mvK+jAWCJs1rq77StMBy4mLp6wxBjfd1w5ehN/4xUoxpso GQLJEHqYkGcaauGKBr0V9iPiuIa7/gOe8t7HqWgRNC4BXfuuOuUryRZF5hU20QEOaQD6tq 6yILqvay0HCe3mXKCfpcsGfdgaqmQfmA/Gs9/ePnIMpNBt97CfKjv60W6mK1TM3rS3PrFi uULjxJRb/qIseIsNPpwbxfXokiSTtAglpUmzFr9qxSDnba+44P6X6FMzURplLA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fSqHx3wBZz2K7 for ; Sat, 07 Mar 2026 16:59:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44287 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 07 Mar 2026 16:59:25 +0000 To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: =?utf-8?Q?Jes=C3=BAs?= Daniel Colmenares Oviedo Subject: git: 78d07a643388 - main - sysutils/py-dbuild: New port: Build, test, and push FreeBSD OCI container images List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dtxdf X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 78d07a64338818483fa2b1122a3735ca8dbf5e1e Auto-Submitted: auto-generated Date: Sat, 07 Mar 2026 16:59:25 +0000 Message-Id: <69ac596d.44287.6b77e64e@gitrepo.freebsd.org> The branch main has been updated by dtxdf: URL: https://cgit.FreeBSD.org/ports/commit/?id=78d07a64338818483fa2b1122a3735ca8dbf5e1e commit 78d07a64338818483fa2b1122a3735ca8dbf5e1e Author: Jesús Daniel Colmenares Oviedo AuthorDate: 2026-03-07 16:57:23 +0000 Commit: Jesús Daniel Colmenares Oviedo CommitDate: 2026-03-07 16:58:48 +0000 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 --- sysutils/Makefile | 1 + sysutils/py-dbuild/Makefile | 50 +++++++++++++++++++++++ sysutils/py-dbuild/distinfo | 3 ++ sysutils/py-dbuild/files/patch-dbuild_ci__test.py | 10 +++++ sysutils/py-dbuild/pkg-descr | 4 ++ 5 files changed, 68 insertions(+) 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 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.