From bac183932cb3914adc9612331c327dc601be80d9 Mon Sep 17 00:00:00 2001 From: bryan Date: Wed, 8 Jul 2026 10:34:51 -0700 Subject: [PATCH 1/2] packages: add 28 python packages (wolfi import batch 3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Third batch from `pkgmgr import-wolfi` — the python ecosystem. requests builds from source in Minimal with its full dependency tree; the PEP-517 backends (hatchling, setuptools-scm, …) are bootstrapped so hatchling-backed packages build at all. apps/libs: requests jinja2 pygments distro click boltons pyyaml markupsafe python-dateutil six wrapt more-itertools itsdangerous blinker mdurl requests tree: urllib3 certifi charset-normalizer idna backend bootstrap: setuptools-scm pluggy trove-classifiers hatchling hatch-vcs pathspec editables calver typing-extensions build.sh = pip3 wheel --no-build-isolation + pip3 install --root; backend read from the source pyproject.toml; outputs + runtime_deps from the built artifact. Each builds clean and passes every `minimal check` at 0 TODOs. Co-Authored-By: Claude Opus 4.8 --- packages/blinker/build.ncl | 32 +++++++++++ packages/blinker/build.sh | 5 ++ packages/boltons/build.ncl | 33 +++++++++++ packages/boltons/build.sh | 5 ++ packages/calver/build.ncl | 33 +++++++++++ packages/calver/build.sh | 5 ++ packages/certifi/build.ncl | 33 +++++++++++ packages/certifi/build.sh | 5 ++ .../certifi/use-alpine-system-certs.patch | 56 +++++++++++++++++++ packages/charset-normalizer/build.ncl | 47 ++++++++++++++++ packages/charset-normalizer/build.sh | 5 ++ packages/click/build.ncl | 33 +++++++++++ packages/click/build.sh | 5 ++ packages/distro/build.ncl | 33 +++++++++++ packages/distro/build.sh | 5 ++ packages/editables/build.ncl | 33 +++++++++++ packages/editables/build.sh | 5 ++ packages/hatch-vcs/build.ncl | 35 ++++++++++++ packages/hatch-vcs/build.sh | 5 ++ packages/hatchling/build.ncl | 38 +++++++++++++ packages/hatchling/build.sh | 6 ++ packages/idna/build.ncl | 34 +++++++++++ packages/idna/build.sh | 5 ++ packages/itsdangerous/build.ncl | 32 +++++++++++ packages/itsdangerous/build.sh | 5 ++ packages/jinja2/build.ncl | 33 +++++++++++ packages/jinja2/build.sh | 5 ++ packages/markupsafe/build.ncl | 36 ++++++++++++ packages/markupsafe/build.sh | 5 ++ packages/mdurl/build.ncl | 32 +++++++++++ packages/mdurl/build.sh | 5 ++ packages/more-itertools/build.ncl | 32 +++++++++++ packages/more-itertools/build.sh | 5 ++ packages/pathspec/build.ncl | 33 +++++++++++ packages/pathspec/build.sh | 5 ++ packages/pluggy/build.ncl | 35 ++++++++++++ packages/pluggy/build.sh | 6 ++ packages/pygments/build.ncl | 34 +++++++++++ packages/pygments/build.sh | 5 ++ packages/python-dateutil/build.ncl | 34 +++++++++++ packages/python-dateutil/build.sh | 5 ++ packages/pyyaml/build.ncl | 37 ++++++++++++ packages/pyyaml/build.sh | 5 ++ packages/requests/build.ncl | 37 ++++++++++++ packages/requests/build.sh | 5 ++ packages/setuptools-scm/build.ncl | 47 ++++++++++++++++ packages/setuptools-scm/build.sh | 5 ++ packages/six/build.ncl | 33 +++++++++++ packages/six/build.sh | 5 ++ packages/trove-classifiers/build.ncl | 47 ++++++++++++++++ packages/trove-classifiers/build.sh | 6 ++ packages/typing-extensions/build.ncl | 33 +++++++++++ packages/typing-extensions/build.sh | 5 ++ packages/urllib3/build.ncl | 37 ++++++++++++ packages/urllib3/build.sh | 6 ++ packages/wrapt/build.ncl | 32 +++++++++++ packages/wrapt/build.sh | 5 ++ 57 files changed, 1188 insertions(+) create mode 100644 packages/blinker/build.ncl create mode 100755 packages/blinker/build.sh create mode 100644 packages/boltons/build.ncl create mode 100755 packages/boltons/build.sh create mode 100644 packages/calver/build.ncl create mode 100755 packages/calver/build.sh create mode 100644 packages/certifi/build.ncl create mode 100755 packages/certifi/build.sh create mode 100644 packages/certifi/use-alpine-system-certs.patch create mode 100644 packages/charset-normalizer/build.ncl create mode 100755 packages/charset-normalizer/build.sh create mode 100644 packages/click/build.ncl create mode 100755 packages/click/build.sh create mode 100644 packages/distro/build.ncl create mode 100755 packages/distro/build.sh create mode 100644 packages/editables/build.ncl create mode 100755 packages/editables/build.sh create mode 100644 packages/hatch-vcs/build.ncl create mode 100755 packages/hatch-vcs/build.sh create mode 100644 packages/hatchling/build.ncl create mode 100755 packages/hatchling/build.sh create mode 100644 packages/idna/build.ncl create mode 100755 packages/idna/build.sh create mode 100644 packages/itsdangerous/build.ncl create mode 100755 packages/itsdangerous/build.sh create mode 100644 packages/jinja2/build.ncl create mode 100755 packages/jinja2/build.sh create mode 100644 packages/markupsafe/build.ncl create mode 100755 packages/markupsafe/build.sh create mode 100644 packages/mdurl/build.ncl create mode 100755 packages/mdurl/build.sh create mode 100644 packages/more-itertools/build.ncl create mode 100755 packages/more-itertools/build.sh create mode 100644 packages/pathspec/build.ncl create mode 100755 packages/pathspec/build.sh create mode 100644 packages/pluggy/build.ncl create mode 100755 packages/pluggy/build.sh create mode 100644 packages/pygments/build.ncl create mode 100755 packages/pygments/build.sh create mode 100644 packages/python-dateutil/build.ncl create mode 100755 packages/python-dateutil/build.sh create mode 100644 packages/pyyaml/build.ncl create mode 100755 packages/pyyaml/build.sh create mode 100644 packages/requests/build.ncl create mode 100755 packages/requests/build.sh create mode 100644 packages/setuptools-scm/build.ncl create mode 100755 packages/setuptools-scm/build.sh create mode 100644 packages/six/build.ncl create mode 100755 packages/six/build.sh create mode 100644 packages/trove-classifiers/build.ncl create mode 100755 packages/trove-classifiers/build.sh create mode 100644 packages/typing-extensions/build.ncl create mode 100755 packages/typing-extensions/build.sh create mode 100644 packages/urllib3/build.ncl create mode 100755 packages/urllib3/build.sh create mode 100644 packages/wrapt/build.ncl create mode 100755 packages/wrapt/build.sh diff --git a/packages/blinker/build.ncl b/packages/blinker/build.ncl new file mode 100644 index 00000000..65188a8e --- /dev/null +++ b/packages/blinker/build.ncl @@ -0,0 +1,32 @@ +# Imported from Wolfi `blinker` by `pkgmgr import-wolfi` (python build). +# TODO: REVIEWER — verify the pypi runtime deps (install_requires) + outputs. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let flit-core = import "../flit-core/build.ncl" in +let python = import "../python/build.ncl" in +let version = "1.9.0" in +{ + name = "blinker", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/pallets-eco/blinker/%{version}.tar.gz", + sha256 = "9b02df578ec0aadd5e800e5f09281e80abddab5e0f74b4b88694f06c9956b6aa", + extract = true, + strip_prefix = "blinker-%{version}", + } | Source, + base, + flit-core, + ], + cmd = "./build.sh", + outputs = { + everything = { glob = "usr/**", allow_executable = true } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "pallets-eco", repo = "blinker" }, + license_spdx = "MIT", + } | Attrs, +} | BuildSpec diff --git a/packages/blinker/build.sh b/packages/blinker/build.sh new file mode 100755 index 00000000..7f15aa53 --- /dev/null +++ b/packages/blinker/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `blinker` (1.9.0, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" blinker diff --git a/packages/boltons/build.ncl b/packages/boltons/build.ncl new file mode 100644 index 00000000..b1431e1e --- /dev/null +++ b/packages/boltons/build.ncl @@ -0,0 +1,33 @@ +# Imported from Wolfi `boltons` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let flit-core = import "../flit-core/build.ncl" in +let python = import "../python/build.ncl" in +let version = "26.0.0" in +{ + name = "boltons", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/mahmoud/boltons/%{version}.tar.gz", + sha256 = "c1b7eb5fd76e04093b5c0151ca1ac4b064faf4b736eaf1c0c83a8de101ccae14", + extract = true, + strip_prefix = "boltons-%{version}", + } | Source, + base, + flit-core, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/boltons/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/boltons-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "mahmoud", repo = "boltons" }, + license_spdx = "BSD-3-Clause", + } | Attrs, +} | BuildSpec diff --git a/packages/boltons/build.sh b/packages/boltons/build.sh new file mode 100755 index 00000000..c4c48810 --- /dev/null +++ b/packages/boltons/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `boltons` (26.0.0, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" boltons diff --git a/packages/calver/build.ncl b/packages/calver/build.ncl new file mode 100644 index 00000000..6569e355 --- /dev/null +++ b/packages/calver/build.ncl @@ -0,0 +1,33 @@ +# Imported from Wolfi `calver` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let python = import "../python/build.ncl" in +let version = "2025.10.20" in +{ + name = "calver", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/di/calver/%{version}.tar.gz", + sha256 = "8378c74d31e7d04ab1fd00f0a0d128525941823134c1e79dbcd649d3c130fc03", + extract = true, + strip_prefix = "calver-%{version}", + } | Source, + base, + setuptools, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/calver/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/calver-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python, setuptools], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "di", repo = "calver" }, + license_spdx = "Apache-2.0", + } | Attrs, +} | BuildSpec diff --git a/packages/calver/build.sh b/packages/calver/build.sh new file mode 100755 index 00000000..58619d08 --- /dev/null +++ b/packages/calver/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `calver` (2025.10.20, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" calver diff --git a/packages/certifi/build.ncl b/packages/certifi/build.ncl new file mode 100644 index 00000000..3a9245cf --- /dev/null +++ b/packages/certifi/build.ncl @@ -0,0 +1,33 @@ +# Imported from Wolfi `certifi` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let python = import "../python/build.ncl" in +let version = "2026.06.17" in +{ + name = "certifi", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/certifi/python-certifi/%{version}.tar.gz", + sha256 = "de76d4c70f5a4fecce2522a11e01b57ea75d41d878bc590dcc43290d26a0acc8", + extract = true, + strip_prefix = "python-certifi-%{version}", + } | Source, + base, + setuptools, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/certifi/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/certifi-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "certifi", repo = "python-certifi" }, + license_spdx = "MPL-2.0", + } | Attrs, +} | BuildSpec diff --git a/packages/certifi/build.sh b/packages/certifi/build.sh new file mode 100755 index 00000000..678e8259 --- /dev/null +++ b/packages/certifi/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `certifi` (2026.06.17, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" certifi diff --git a/packages/certifi/use-alpine-system-certs.patch b/packages/certifi/use-alpine-system-certs.patch new file mode 100644 index 00000000..75278954 --- /dev/null +++ b/packages/certifi/use-alpine-system-certs.patch @@ -0,0 +1,56 @@ +# originated from https://git.alpinelinux.org/aports/tree/main/py3-certifi/use-alpine-system-certs.patch + +NEVER EVER REMOVE THIS PATCH +REBASE IT ON TOP OF THE VERSION YOU'RE UPGRADING + +This makes py3-certifi use the system certificates provided by Alpine Linux +instead of the ones provided with py3-certifi instead, this allows us to add +this package as a dependency for other packages without worries. + +This is based on the patch used by Debian + +diff --git a/certifi/core.py b/certifi/core.py +index 1c9661c..32423f7 100644 +--- a/certifi/core.py ++++ b/certifi/core.py +@@ -10,13 +10,13 @@ import atexit + def exit_cacert_ctx() -> None: + _CACERT_CTX.__exit__(None, None, None) # type: ignore[union-attr] + ++ALPINE_CA_CERTS_PATH = '/etc/ssl/certs/ca-certificates.crt' + + if sys.version_info >= (3, 11): + + from importlib.resources import as_file, files + +- _CACERT_CTX = None +- _CACERT_PATH = None ++ _CACERT_PATH = ALPINE_CA_CERTS_PATH + + def where() -> str: + # This is slightly terrible, but we want to delay extracting the file +@@ -44,14 +44,14 @@ if sys.version_info >= (3, 11): + return _CACERT_PATH + + def contents() -> str: +- return files("certifi").joinpath("cacert.pem").read_text(encoding="ascii") ++ with open(where(), "r", encoding="ascii") as data: ++ return data.read() + + else: + + from importlib.resources import path as get_path, read_text + +- _CACERT_CTX = None +- _CACERT_PATH = None ++ _CACERT_PATH = ALPINE_CA_CERTS_PATH + + def where() -> str: + # This is slightly terrible, but we want to delay extracting the +@@ -80,4 +80,5 @@ else: + return _CACERT_PATH + + def contents() -> str: +- return read_text("certifi", "cacert.pem", encoding="ascii") ++ with open(where(), "r", encoding="ascii") as data: ++ return data.read() diff --git a/packages/charset-normalizer/build.ncl b/packages/charset-normalizer/build.ncl new file mode 100644 index 00000000..fc74ed6d --- /dev/null +++ b/packages/charset-normalizer/build.ncl @@ -0,0 +1,47 @@ +# Imported from Wolfi `charset-normalizer` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputBin, OutputData, Source, Test, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let python = import "../python/build.ncl" in +let version = "3.4.9" in +{ + name = "charset-normalizer", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/jawah/charset_normalizer/%{version}.tar.gz", + sha256 = "5b7bcc5c09e1e8c1ba0173bbb829385bde1dc8e2f8f47230a690f27882b755d2", + extract = true, + strip_prefix = "charset_normalizer-%{version}", + } | Source, + base, + setuptools, + ], + cmd = "./build.sh", + outputs = { + normalizer = { glob = "usr/bin/normalizer" } | OutputBin, + python_site_package = { glob = "usr/lib/python*/site-packages/charset_normalizer/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/charset_normalizer-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "jawah", repo = "charset_normalizer" }, + license_spdx = "MIT", + } | Attrs, + tests = { + smoke = + { + class = 'Standalone, + test_deps = [base], + cmds = [ + # Smoke test ported from the Wolfi recipe's test block. + ["/bin/bash", "-c", "normalizer --help"], + ["/bin/bash", "-c", "normalizer --version"], + ["/bin/bash", "-c", "normalizer --version"], + ], + } | Test, + }, +} | BuildSpec diff --git a/packages/charset-normalizer/build.sh b/packages/charset-normalizer/build.sh new file mode 100755 index 00000000..8034b819 --- /dev/null +++ b/packages/charset-normalizer/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `charset-normalizer` (3.4.9, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" charset-normalizer diff --git a/packages/click/build.ncl b/packages/click/build.ncl new file mode 100644 index 00000000..fac90acf --- /dev/null +++ b/packages/click/build.ncl @@ -0,0 +1,33 @@ +# Imported from Wolfi `click` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let flit-core = import "../flit-core/build.ncl" in +let python = import "../python/build.ncl" in +let version = "8.4.2" in +{ + name = "click", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/pallets/click/%{version}.tar.gz", + sha256 = "d5635f9b7999806a02bd323fc7a9f8c4b1cb5f600b2967d4e7e5dbb106b1c216", + extract = true, + strip_prefix = "click-%{version}", + } | Source, + base, + flit-core, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/click/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/click-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "pallets", repo = "click" }, + license_spdx = "BSD-3-Clause", + } | Attrs, +} | BuildSpec diff --git a/packages/click/build.sh b/packages/click/build.sh new file mode 100755 index 00000000..3c5bb53c --- /dev/null +++ b/packages/click/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `click` (8.4.2, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" click diff --git a/packages/distro/build.ncl b/packages/distro/build.ncl new file mode 100644 index 00000000..1108a60d --- /dev/null +++ b/packages/distro/build.ncl @@ -0,0 +1,33 @@ +# Imported from Wolfi `distro` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let python = import "../python/build.ncl" in +let version = "1.9.0" in +{ + name = "distro", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/python-distro/distro/v%{version}.tar.gz", + sha256 = "6ede051357868ed427ea71d16fc27f4d63cc0d9c8a32788aa11c450ecefcc76f", + extract = true, + strip_prefix = "distro-%{version}", + } | Source, + base, + setuptools, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/distro/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/distro-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "python-distro", repo = "distro" }, + license_spdx = "Apache-2.0", + } | Attrs, +} | BuildSpec diff --git a/packages/distro/build.sh b/packages/distro/build.sh new file mode 100755 index 00000000..e4e7713e --- /dev/null +++ b/packages/distro/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `distro` (1.9.0, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" distro diff --git a/packages/editables/build.ncl b/packages/editables/build.ncl new file mode 100644 index 00000000..ca3a9902 --- /dev/null +++ b/packages/editables/build.ncl @@ -0,0 +1,33 @@ +# Imported from Wolfi `editables` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let flit-core = import "../flit-core/build.ncl" in +let python = import "../python/build.ncl" in +let version = "0.6" in +{ + name = "editables", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/pfmoore/editables/%{version}.tar.gz", + sha256 = "766d9b40616dbcf5cc920e9db26dd915de999cfab75768ff05b3ebf9c389acb2", + extract = true, + strip_prefix = "editables-%{version}", + } | Source, + base, + flit-core, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/editables/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/editables-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "pfmoore", repo = "editables" }, + license_spdx = "MIT", + } | Attrs, +} | BuildSpec diff --git a/packages/editables/build.sh b/packages/editables/build.sh new file mode 100755 index 00000000..023f27ae --- /dev/null +++ b/packages/editables/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `editables` (0.6, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" editables diff --git a/packages/hatch-vcs/build.ncl b/packages/hatch-vcs/build.ncl new file mode 100644 index 00000000..8cd9d886 --- /dev/null +++ b/packages/hatch-vcs/build.ncl @@ -0,0 +1,35 @@ +# Imported from Wolfi `hatch-vcs` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let hatchling = import "../hatchling/build.ncl" in +let python = import "../python/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let setuptools-scm = import "../setuptools-scm/build.ncl" in +let version = "0.5.0" in +{ + name = "hatch-vcs", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/ofek/hatch-vcs/v%{version}.tar.gz", + sha256 = "a74465d21bb60eef75f01b3c189b73181f152a5eef2b26bd95de039e224953a7", + extract = true, + strip_prefix = "hatch-vcs-%{version}", + } | Source, + base, + hatchling, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/hatch_vcs/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/hatch_vcs-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python, hatchling, setuptools, setuptools-scm], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "ofek", repo = "hatch-vcs" }, + license_spdx = "MIT", + } | Attrs, +} | BuildSpec diff --git a/packages/hatch-vcs/build.sh b/packages/hatch-vcs/build.sh new file mode 100755 index 00000000..ecc05608 --- /dev/null +++ b/packages/hatch-vcs/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `hatch-vcs` (0.5.0, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" hatch-vcs diff --git a/packages/hatchling/build.ncl b/packages/hatchling/build.ncl new file mode 100644 index 00000000..ef2727d4 --- /dev/null +++ b/packages/hatchling/build.ncl @@ -0,0 +1,38 @@ +# Imported from Wolfi `hatchling` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputBin, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let python = import "../python/build.ncl" in +let py-packaging = import "../py-packaging/build.ncl" in +let pathspec = import "../pathspec/build.ncl" in +let pluggy = import "../pluggy/build.ncl" in +let trove-classifiers = import "../trove-classifiers/build.ncl" in +let version = "1.31.0" in +{ + name = "hatchling", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/pypa/hatch/hatchling-v%{version}.tar.gz", + sha256 = "7432f025f7d641a7e5ced035b712d67895ab31ba487f127163683ae26f51b90e", + extract = true, + strip_prefix = "hatch-hatchling-v%{version}", + } | Source, + base, + setuptools, + ], + cmd = "./build.sh", + outputs = { + hatchling = { glob = "usr/bin/hatchling" } | OutputBin, + python_site_package = { glob = "usr/lib/python*/site-packages/hatchling/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/hatchling-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python, py-packaging, pathspec, pluggy, trove-classifiers], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "pypa", repo = "hatch" }, + license_spdx = "MIT", + } | Attrs, +} | BuildSpec diff --git a/packages/hatchling/build.sh b/packages/hatchling/build.sh new file mode 100755 index 00000000..2ee797e2 --- /dev/null +++ b/packages/hatchling/build.sh @@ -0,0 +1,6 @@ +#!/bin/sh +# Imported from Wolfi `hatchling` (1.31.0, python) by pkgmgr import-wolfi. +set -eu +cd backend +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" hatchling diff --git a/packages/idna/build.ncl b/packages/idna/build.ncl new file mode 100644 index 00000000..e19afab5 --- /dev/null +++ b/packages/idna/build.ncl @@ -0,0 +1,34 @@ +# Imported from Wolfi `idna` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputBin, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let flit-core = import "../flit-core/build.ncl" in +let python = import "../python/build.ncl" in +let version = "3.18" in +{ + name = "idna", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/kjd/idna/v%{version}.tar.gz", + sha256 = "d51d4068b4e8bac335589797266b0af8ced2be9fb5d5cc2a887ee64e2f5b28a9", + extract = true, + strip_prefix = "idna-%{version}", + } | Source, + base, + flit-core, + ], + cmd = "./build.sh", + outputs = { + idna = { glob = "usr/bin/idna" } | OutputBin, + python_site_package = { glob = "usr/lib/python*/site-packages/idna/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/idna-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "kjd", repo = "idna" }, + license_spdx = "BSD-3-Clause", + } | Attrs, +} | BuildSpec diff --git a/packages/idna/build.sh b/packages/idna/build.sh new file mode 100755 index 00000000..20dbae80 --- /dev/null +++ b/packages/idna/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `idna` (3.18, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" idna diff --git a/packages/itsdangerous/build.ncl b/packages/itsdangerous/build.ncl new file mode 100644 index 00000000..62a7e4b9 --- /dev/null +++ b/packages/itsdangerous/build.ncl @@ -0,0 +1,32 @@ +# Imported from Wolfi `itsdangerous` by `pkgmgr import-wolfi` (python build). +# TODO: REVIEWER — verify the pypi runtime deps (install_requires) + outputs. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let flit-core = import "../flit-core/build.ncl" in +let python = import "../python/build.ncl" in +let version = "2.2.0" in +{ + name = "itsdangerous", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/pallets/itsdangerous/%{version}.tar.gz", + sha256 = "7b0c6d4186e963b88489b69603b7ab2bf7c8e9eb4135a7b13b5f21bd4b937f2b", + extract = true, + strip_prefix = "itsdangerous-%{version}", + } | Source, + base, + flit-core, + ], + cmd = "./build.sh", + outputs = { + everything = { glob = "usr/**", allow_executable = true } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "pallets", repo = "itsdangerous" }, + license_spdx = "BSD-3-Clause", + } | Attrs, +} | BuildSpec diff --git a/packages/itsdangerous/build.sh b/packages/itsdangerous/build.sh new file mode 100755 index 00000000..d3e0bee8 --- /dev/null +++ b/packages/itsdangerous/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `itsdangerous` (2.2.0, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" itsdangerous diff --git a/packages/jinja2/build.ncl b/packages/jinja2/build.ncl new file mode 100644 index 00000000..d451b6b9 --- /dev/null +++ b/packages/jinja2/build.ncl @@ -0,0 +1,33 @@ +# Imported from Wolfi `jinja2` by `pkgmgr import-wolfi` (python build). +# TODO: REVIEWER — verify the pypi runtime deps (install_requires) + outputs. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let flit-core = import "../flit-core/build.ncl" in +let python = import "../python/build.ncl" in +let markupsafe = import "../markupsafe/build.ncl" in +let version = "3.1.6" in +{ + name = "jinja2", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/pallets/jinja/%{version}.tar.gz", + sha256 = "2074b22a72caa65474902234b320d73463d6d4c223ee49f4b433495758356337", + extract = true, + strip_prefix = "jinja-%{version}", + } | Source, + base, + flit-core, + ], + cmd = "./build.sh", + outputs = { + everything = { glob = "usr/**", allow_executable = true } | OutputData, + }, + runtime_deps = [python, markupsafe], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "pallets", repo = "jinja" }, + license_spdx = "BSD-3-Clause", + } | Attrs, +} | BuildSpec diff --git a/packages/jinja2/build.sh b/packages/jinja2/build.sh new file mode 100755 index 00000000..de46a012 --- /dev/null +++ b/packages/jinja2/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `jinja2` (3.1.6, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" jinja2 diff --git a/packages/markupsafe/build.ncl b/packages/markupsafe/build.ncl new file mode 100644 index 00000000..48bfc9ed --- /dev/null +++ b/packages/markupsafe/build.ncl @@ -0,0 +1,36 @@ +# Imported from Wolfi `markupsafe` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let toolchain = import "../toolchain/build.ncl" in +let python = import "../python/build.ncl" in +let version = "3.0.3" in +{ + name = "markupsafe", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/pallets/markupsafe/%{version}.tar.gz", + sha256 = "f1d9d06c34515dd3ad210ec769da613057b536d11d6c039183b87757a883a254", + extract = true, + strip_prefix = "markupsafe-%{version}", + } | Source, + base, + setuptools, + toolchain, + python, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/markupsafe/**", allow_executable = true } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/markupsafe-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "pallets", repo = "markupsafe" }, + license_spdx = "BSD-3-Clause", + } | Attrs, +} | BuildSpec diff --git a/packages/markupsafe/build.sh b/packages/markupsafe/build.sh new file mode 100755 index 00000000..55ea23ef --- /dev/null +++ b/packages/markupsafe/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `markupsafe` (3.0.3, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" markupsafe diff --git a/packages/mdurl/build.ncl b/packages/mdurl/build.ncl new file mode 100644 index 00000000..768ec8e1 --- /dev/null +++ b/packages/mdurl/build.ncl @@ -0,0 +1,32 @@ +# Imported from Wolfi `mdurl` by `pkgmgr import-wolfi` (python build). +# TODO: REVIEWER — verify the pypi runtime deps (install_requires) + outputs. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let flit-core = import "../flit-core/build.ncl" in +let python = import "../python/build.ncl" in +let version = "0.1.2" in +{ + name = "mdurl", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/executablebooks/mdurl/%{version}.tar.gz", + sha256 = "99d4fabddab7ee4a05fa458deb1a6f0d009966e4631c50d1b875767a1cd3896d", + extract = true, + strip_prefix = "mdurl-%{version}", + } | Source, + base, + flit-core, + ], + cmd = "./build.sh", + outputs = { + everything = { glob = "usr/**", allow_executable = true } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "executablebooks", repo = "mdurl" }, + license_spdx = "MIT", + } | Attrs, +} | BuildSpec diff --git a/packages/mdurl/build.sh b/packages/mdurl/build.sh new file mode 100755 index 00000000..0f884787 --- /dev/null +++ b/packages/mdurl/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `mdurl` (0.1.2, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" mdurl diff --git a/packages/more-itertools/build.ncl b/packages/more-itertools/build.ncl new file mode 100644 index 00000000..47ef0273 --- /dev/null +++ b/packages/more-itertools/build.ncl @@ -0,0 +1,32 @@ +# Imported from Wolfi `more-itertools` by `pkgmgr import-wolfi` (python build). +# TODO: REVIEWER — verify the pypi runtime deps (install_requires) + outputs. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let flit-core = import "../flit-core/build.ncl" in +let python = import "../python/build.ncl" in +let version = "11.1.0" in +{ + name = "more-itertools", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/more-itertools/more-itertools/v%{version}.tar.gz", + sha256 = "685e5ee4b97fc6d7bf8d2b920df48cb1a9ae410d447c2b63c3488674ac2b70a8", + extract = true, + strip_prefix = "more-itertools-%{version}", + } | Source, + base, + flit-core, + ], + cmd = "./build.sh", + outputs = { + everything = { glob = "usr/**", allow_executable = true } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "more-itertools", repo = "more-itertools" }, + license_spdx = "MIT", + } | Attrs, +} | BuildSpec diff --git a/packages/more-itertools/build.sh b/packages/more-itertools/build.sh new file mode 100755 index 00000000..9819f25e --- /dev/null +++ b/packages/more-itertools/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `more-itertools` (11.1.0, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" more-itertools diff --git a/packages/pathspec/build.ncl b/packages/pathspec/build.ncl new file mode 100644 index 00000000..4a23e6cb --- /dev/null +++ b/packages/pathspec/build.ncl @@ -0,0 +1,33 @@ +# Imported from Wolfi `pathspec` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let flit-core = import "../flit-core/build.ncl" in +let python = import "../python/build.ncl" in +let version = "1.1.1" in +{ + name = "pathspec", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/cpburnz/python-pathspec/v%{version}.tar.gz", + sha256 = "7befd398baeb84cd3872bcb84926e688361012d21c8c157dcc2f9f64684b9147", + extract = true, + strip_prefix = "python-pathspec-%{version}", + } | Source, + base, + flit-core, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/pathspec/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/pathspec-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "cpburnz", repo = "python-pathspec" }, + license_spdx = "MPL-2.0", + } | Attrs, +} | BuildSpec diff --git a/packages/pathspec/build.sh b/packages/pathspec/build.sh new file mode 100755 index 00000000..bc4c191c --- /dev/null +++ b/packages/pathspec/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `pathspec` (1.1.1, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" pathspec diff --git a/packages/pluggy/build.ncl b/packages/pluggy/build.ncl new file mode 100644 index 00000000..8e09bb79 --- /dev/null +++ b/packages/pluggy/build.ncl @@ -0,0 +1,35 @@ +# Imported from Wolfi `pluggy` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let setuptools-scm = import "../setuptools-scm/build.ncl" in +let python = import "../python/build.ncl" in +let version = "1.6.0" in +{ + name = "pluggy", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/pytest-dev/pluggy/%{version}.tar.gz", + sha256 = "d35ec78be56dae9fd736e1378a2c3c176fd2aefd9daefc209abeab569c2732ee", + extract = true, + strip_prefix = "pluggy-%{version}", + } | Source, + base, + setuptools, + setuptools-scm, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/pluggy/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/pluggy-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "pytest-dev", repo = "pluggy" }, + license_spdx = "MIT", + } | Attrs, +} | BuildSpec diff --git a/packages/pluggy/build.sh b/packages/pluggy/build.sh new file mode 100755 index 00000000..26019230 --- /dev/null +++ b/packages/pluggy/build.sh @@ -0,0 +1,6 @@ +#!/bin/sh +# Imported from Wolfi `pluggy` (1.6.0, python) by pkgmgr import-wolfi. +set -eu +export SETUPTOOLS_SCM_PRETEND_VERSION="1.6.0" +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" pluggy diff --git a/packages/pygments/build.ncl b/packages/pygments/build.ncl new file mode 100644 index 00000000..891d5e26 --- /dev/null +++ b/packages/pygments/build.ncl @@ -0,0 +1,34 @@ +# Imported from Wolfi `pygments` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputBin, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let hatchling = import "../hatchling/build.ncl" in +let python = import "../python/build.ncl" in +let version = "2.20.0" in +{ + name = "pygments", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/pygments/pygments/%{version}.tar.gz", + sha256 = "da22a0d6df2abb3bcf6815a0612e5b1b05b4c3fd0a5e804ae79c271de2fe50b1", + extract = true, + strip_prefix = "pygments-%{version}", + } | Source, + base, + hatchling, + ], + cmd = "./build.sh", + outputs = { + pygmentize = { glob = "usr/bin/pygmentize" } | OutputBin, + python_site_package = { glob = "usr/lib/python*/site-packages/pygments/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/pygments-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "pygments", repo = "pygments" }, + license_spdx = "BSD-2-Clause", + } | Attrs, +} | BuildSpec diff --git a/packages/pygments/build.sh b/packages/pygments/build.sh new file mode 100755 index 00000000..0bdaa26b --- /dev/null +++ b/packages/pygments/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `pygments` (2.20.0, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" pygments diff --git a/packages/python-dateutil/build.ncl b/packages/python-dateutil/build.ncl new file mode 100644 index 00000000..22f0eb8c --- /dev/null +++ b/packages/python-dateutil/build.ncl @@ -0,0 +1,34 @@ +# Imported from Wolfi `python-dateutil` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let python = import "../python/build.ncl" in +let six = import "../six/build.ncl" in +let version = "2.9.0" in +{ + name = "python-dateutil", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/dateutil/dateutil/%{version}.tar.gz", + sha256 = "f98616d970b4db272a66ce4b0bf04529ed4b26549f070a4dd9481d0a536293bf", + extract = true, + strip_prefix = "dateutil-%{version}", + } | Source, + base, + setuptools, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/dateutil/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/python_dateutil-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python, six], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "dateutil", repo = "dateutil" }, + license_spdx = "Apache-2.0", + } | Attrs, +} | BuildSpec diff --git a/packages/python-dateutil/build.sh b/packages/python-dateutil/build.sh new file mode 100755 index 00000000..c48baf93 --- /dev/null +++ b/packages/python-dateutil/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `python-dateutil` (2.9.0, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" python-dateutil diff --git a/packages/pyyaml/build.ncl b/packages/pyyaml/build.ncl new file mode 100644 index 00000000..def77f45 --- /dev/null +++ b/packages/pyyaml/build.ncl @@ -0,0 +1,37 @@ +# Imported from Wolfi `pyyaml` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let toolchain = import "../toolchain/build.ncl" in +let python = import "../python/build.ncl" in +let version = "6.0.3" in +{ + name = "pyyaml", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/yaml/pyyaml/%{version}.tar.gz", + sha256 = "c7b45011e052458ae79015d5eea3046c37d099023d4b253dde26ee1c29ea2f36", + extract = true, + strip_prefix = "pyyaml-%{version}", + } | Source, + base, + setuptools, + toolchain, + python, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/_yaml/**", allow_executable = true } | OutputData, + site_yaml = { glob = "usr/lib/python*/site-packages/yaml/**", allow_executable = true } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/pyyaml-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "yaml", repo = "pyyaml" }, + license_spdx = "MIT", + } | Attrs, +} | BuildSpec diff --git a/packages/pyyaml/build.sh b/packages/pyyaml/build.sh new file mode 100755 index 00000000..ad6c229a --- /dev/null +++ b/packages/pyyaml/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `pyyaml` (6.0.3, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" pyyaml diff --git a/packages/requests/build.ncl b/packages/requests/build.ncl new file mode 100644 index 00000000..e1469e20 --- /dev/null +++ b/packages/requests/build.ncl @@ -0,0 +1,37 @@ +# Imported from Wolfi `requests` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let python = import "../python/build.ncl" in +let charset-normalizer = import "../charset-normalizer/build.ncl" in +let idna = import "../idna/build.ncl" in +let urllib3 = import "../urllib3/build.ncl" in +let certifi = import "../certifi/build.ncl" in +let version = "2.34.2" in +{ + name = "requests", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/psf/requests/v%{version}.tar.gz", + sha256 = "d3c132d905099fa3468bb5cb273c2bdf5a7a92dce987c93b198820b3a7b57228", + extract = true, + strip_prefix = "requests-%{version}", + } | Source, + base, + setuptools, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/requests/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/requests-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python, charset-normalizer, idna, urllib3, certifi], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "psf", repo = "requests" }, + license_spdx = "Apache-2.0", + } | Attrs, +} | BuildSpec diff --git a/packages/requests/build.sh b/packages/requests/build.sh new file mode 100755 index 00000000..ae50c52a --- /dev/null +++ b/packages/requests/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `requests` (2.34.2, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" requests diff --git a/packages/setuptools-scm/build.ncl b/packages/setuptools-scm/build.ncl new file mode 100644 index 00000000..1da09202 --- /dev/null +++ b/packages/setuptools-scm/build.ncl @@ -0,0 +1,47 @@ +# Imported from Wolfi `setuptools-scm` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputBin, OutputData, Source, Test, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let python = import "../python/build.ncl" in +let py-packaging = import "../py-packaging/build.ncl" in +let typing-extensions = import "../typing-extensions/build.ncl" in +let version = "9.2.2" in +{ + name = "setuptools-scm", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/pypa/setuptools_scm/v%{version}.tar.gz", + sha256 = "853f06f1ab2cebd2bef6970c76fdf6bd6bad250c69b9d966d5a3e14f9d503df1", + extract = true, + strip_prefix = "setuptools-scm-%{version}", + } | Source, + base, + setuptools, + ], + cmd = "./build.sh", + outputs = { + setuptools-scm = { glob = "usr/bin/setuptools-scm" } | OutputBin, + python_site_package = { glob = "usr/lib/python*/site-packages/setuptools_scm/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/setuptools_scm-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python, py-packaging, setuptools, typing-extensions], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "pypa", repo = "setuptools_scm" }, + license_spdx = "MIT", + } | Attrs, + tests = { + smoke = + { + class = 'Standalone, + test_deps = [base], + cmds = [ + # Smoke test ported from the Wolfi recipe's test block. + ["/bin/bash", "-c", "setuptools-scm --help"], + ], + } | Test, + }, +} | BuildSpec diff --git a/packages/setuptools-scm/build.sh b/packages/setuptools-scm/build.sh new file mode 100755 index 00000000..630aba43 --- /dev/null +++ b/packages/setuptools-scm/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `setuptools-scm` (9.2.2, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" setuptools-scm diff --git a/packages/six/build.ncl b/packages/six/build.ncl new file mode 100644 index 00000000..27b49f5b --- /dev/null +++ b/packages/six/build.ncl @@ -0,0 +1,33 @@ +# Imported from Wolfi `six` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let python = import "../python/build.ncl" in +let version = "1.17.0" in +{ + name = "six", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/benjaminp/six/%{version}.tar.gz", + sha256 = "32f3ae8f39a23ff9458d84c90e00cf042e5432ccb61c8991a5e437e7eacd83c6", + extract = true, + strip_prefix = "six-%{version}", + } | Source, + base, + setuptools, + ], + cmd = "./build.sh", + outputs = { + site_six = { glob = "usr/lib/python*/site-packages/six.py" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/six-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "benjaminp", repo = "six" }, + license_spdx = "MIT", + } | Attrs, +} | BuildSpec diff --git a/packages/six/build.sh b/packages/six/build.sh new file mode 100755 index 00000000..2f796f01 --- /dev/null +++ b/packages/six/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `six` (1.17.0, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" six diff --git a/packages/trove-classifiers/build.ncl b/packages/trove-classifiers/build.ncl new file mode 100644 index 00000000..3071ebe0 --- /dev/null +++ b/packages/trove-classifiers/build.ncl @@ -0,0 +1,47 @@ +# Imported from Wolfi `trove-classifiers` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputBin, OutputData, Source, Test, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let setuptools-scm = import "../setuptools-scm/build.ncl" in +let python = import "../python/build.ncl" in +let version = "2026.6.1.19" in +{ + name = "trove-classifiers", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/pypa/trove-classifiers/%{version}.tar.gz", + sha256 = "20360c44ddae1f970eab52c26523de6e2e79bbe7c493fa363c681ee5fa47a588", + extract = true, + strip_prefix = "trove-classifiers-%{version}", + } | Source, + base, + setuptools, + setuptools-scm, + ], + cmd = "./build.sh", + outputs = { + trove-classifiers = { glob = "usr/bin/trove-classifiers" } | OutputBin, + python_site_package = { glob = "usr/lib/python*/site-packages/trove_classifiers/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/trove_classifiers-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "pypa", repo = "trove-classifiers" }, + license_spdx = "Apache-2.0", + } | Attrs, + tests = { + smoke = + { + class = 'Standalone, + test_deps = [base], + cmds = [ + # Smoke test ported from the Wolfi recipe's test block. + ["/bin/bash", "-c", "trove-classifiers"], + ], + } | Test, + }, +} | BuildSpec diff --git a/packages/trove-classifiers/build.sh b/packages/trove-classifiers/build.sh new file mode 100755 index 00000000..099be9ba --- /dev/null +++ b/packages/trove-classifiers/build.sh @@ -0,0 +1,6 @@ +#!/bin/sh +# Imported from Wolfi `trove-classifiers` (2026.6.1.19, python) by pkgmgr import-wolfi. +set -eu +export SETUPTOOLS_SCM_PRETEND_VERSION="2026.6.1.19" +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" trove-classifiers diff --git a/packages/typing-extensions/build.ncl b/packages/typing-extensions/build.ncl new file mode 100644 index 00000000..018f5530 --- /dev/null +++ b/packages/typing-extensions/build.ncl @@ -0,0 +1,33 @@ +# Imported from Wolfi `typing-extensions` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let flit-core = import "../flit-core/build.ncl" in +let python = import "../python/build.ncl" in +let version = "4.16.0" in +{ + name = "typing-extensions", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/python/typing_extensions/%{version}.tar.gz", + sha256 = "4d569f4d4bcd3d26345e0d92cfd14ce1f1302cac2f62a5a7e337c06fb0fdc1ea", + extract = true, + strip_prefix = "typing_extensions-%{version}", + } | Source, + base, + flit-core, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/typing_extensions.py" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/typing_extensions-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "python", repo = "typing_extensions" }, + license_spdx = "PSF-2.0", + } | Attrs, +} | BuildSpec diff --git a/packages/typing-extensions/build.sh b/packages/typing-extensions/build.sh new file mode 100755 index 00000000..6456ed89 --- /dev/null +++ b/packages/typing-extensions/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `typing-extensions` (4.16.0, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" typing-extensions diff --git a/packages/urllib3/build.ncl b/packages/urllib3/build.ncl new file mode 100644 index 00000000..48c8e624 --- /dev/null +++ b/packages/urllib3/build.ncl @@ -0,0 +1,37 @@ +# Imported from Wolfi `urllib3` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let hatchling = import "../hatchling/build.ncl" in +let setuptools-scm = import "../setuptools-scm/build.ncl" in +let hatch-vcs = import "../hatch-vcs/build.ncl" in +let python = import "../python/build.ncl" in +let version = "2.7.0" in +{ + name = "urllib3", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/urllib3/urllib3/%{version}.tar.gz", + sha256 = "74317bc088603618b7bd9a57d7f3a043cef29123b672a5c280d373f5b3a8c317", + extract = true, + strip_prefix = "urllib3-%{version}", + } | Source, + base, + hatchling, + setuptools-scm, + hatch-vcs, + ], + cmd = "./build.sh", + outputs = { + python_site_package = { glob = "usr/lib/python*/site-packages/urllib3/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/urllib3-*.dist-info/**" } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "urllib3", repo = "urllib3" }, + license_spdx = "MIT", + } | Attrs, +} | BuildSpec diff --git a/packages/urllib3/build.sh b/packages/urllib3/build.sh new file mode 100755 index 00000000..81255bf1 --- /dev/null +++ b/packages/urllib3/build.sh @@ -0,0 +1,6 @@ +#!/bin/sh +# Imported from Wolfi `urllib3` (2.7.0, python) by pkgmgr import-wolfi. +set -eu +export SETUPTOOLS_SCM_PRETEND_VERSION="2.7.0" +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" urllib3 diff --git a/packages/wrapt/build.ncl b/packages/wrapt/build.ncl new file mode 100644 index 00000000..3547c6d2 --- /dev/null +++ b/packages/wrapt/build.ncl @@ -0,0 +1,32 @@ +# Imported from Wolfi `wrapt` by `pkgmgr import-wolfi` (python build). +# TODO: REVIEWER — verify the pypi runtime deps (install_requires) + outputs. +let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in +let base = import "../base/build.ncl" in +let setuptools = import "../setuptools/build.ncl" in +let python = import "../python/build.ncl" in +let version = "2.2.2" in +{ + name = "wrapt", + build_deps = [ + { file = "build.sh" } | Local, + { + url = "gs://minimal-staging-archives/GrahamDumpleton/wrapt/%{version}.tar.gz", + sha256 = "e37dec1263084cef183d1a00118f9113bcad7837332b6036aef835cc349aa360", + extract = true, + strip_prefix = "wrapt-%{version}", + } | Source, + base, + setuptools, + ], + cmd = "./build.sh", + outputs = { + everything = { glob = "usr/**", allow_executable = true } | OutputData, + }, + runtime_deps = [python], + attrs = + { + upstream_version = version, + source_provenance = { category = 'GithubRepo, owner = "GrahamDumpleton", repo = "wrapt" }, + license_spdx = "BSD-2-Clause", + } | Attrs, +} | BuildSpec diff --git a/packages/wrapt/build.sh b/packages/wrapt/build.sh new file mode 100755 index 00000000..2182a387 --- /dev/null +++ b/packages/wrapt/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Imported from Wolfi `wrapt` (2.2.2, python) by pkgmgr import-wolfi. +set -eu +pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" +pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" wrapt From 34234313bf7a2e60692d834ba91e5eedc5d7a4d8 Mon Sep 17 00:00:00 2001 From: bryan Date: Wed, 8 Jul 2026 14:44:54 -0700 Subject: [PATCH 2/2] batch3: address CR review (repro flags, scm version, precise outputs) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - markupsafe: export the C-extension reproducibility flags (CFLAGS/CXXFLAGS -ffile-prefix-map=$(pwd)=/builddir -gno-record-gcc-switches, LDFLAGS --build-id=none) so _speedups.so doesn't embed the sandbox path / a build-id. - pluggy, trove-classifiers: SETUPTOOLS_SCM_PRETEND_VERSION now reads $MINIMAL_ARG_VERSION (forwarded via build_args) instead of a hardcoded literal that would silently go stale on a version bump. - itsdangerous, jinja2, mdurl, wrapt: replace the discovery-mode catch-all `usr/**` output + reviewer TODO with precise python_site_package / python_dist_info globs, derived from the actual built trees (wrapt also ships a wrapt-stubs/ top-level dir). Runtime deps already verified correct (jinja2 -> markupsafe; the rest pure-python). All rebuilt clean (minimal package --rebuild --no-fetch). These match what the now-fixed importer emits. certifi's system-CA-bundle patch is left for a reviewer decision (see PR comment) — it changes trust behavior + adds a runtime dep. Co-Authored-By: Claude Opus 4.8 --- packages/itsdangerous/build.ncl | 7 ++++--- packages/jinja2/build.ncl | 7 ++++--- packages/markupsafe/build.sh | 4 ++++ packages/mdurl/build.ncl | 7 ++++--- packages/pluggy/build.ncl | 3 +++ packages/pluggy/build.sh | 2 +- packages/trove-classifiers/build.ncl | 3 +++ packages/trove-classifiers/build.sh | 2 +- packages/wrapt/build.ncl | 8 +++++--- 9 files changed, 29 insertions(+), 14 deletions(-) diff --git a/packages/itsdangerous/build.ncl b/packages/itsdangerous/build.ncl index 62a7e4b9..2ff8b139 100644 --- a/packages/itsdangerous/build.ncl +++ b/packages/itsdangerous/build.ncl @@ -1,5 +1,5 @@ -# Imported from Wolfi `itsdangerous` by `pkgmgr import-wolfi` (python build). -# TODO: REVIEWER — verify the pypi runtime deps (install_requires) + outputs. +# Imported from Wolfi `itsdangerous` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in let base = import "../base/build.ncl" in let flit-core = import "../flit-core/build.ncl" in @@ -20,7 +20,8 @@ let version = "2.2.0" in ], cmd = "./build.sh", outputs = { - everything = { glob = "usr/**", allow_executable = true } | OutputData, + python_site_package = { glob = "usr/lib/python*/site-packages/itsdangerous/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/itsdangerous-*.dist-info/**" } | OutputData, }, runtime_deps = [python], attrs = diff --git a/packages/jinja2/build.ncl b/packages/jinja2/build.ncl index d451b6b9..e8c67cde 100644 --- a/packages/jinja2/build.ncl +++ b/packages/jinja2/build.ncl @@ -1,5 +1,5 @@ -# Imported from Wolfi `jinja2` by `pkgmgr import-wolfi` (python build). -# TODO: REVIEWER — verify the pypi runtime deps (install_requires) + outputs. +# Imported from Wolfi `jinja2` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in let base = import "../base/build.ncl" in let flit-core = import "../flit-core/build.ncl" in @@ -21,7 +21,8 @@ let version = "3.1.6" in ], cmd = "./build.sh", outputs = { - everything = { glob = "usr/**", allow_executable = true } | OutputData, + python_site_package = { glob = "usr/lib/python*/site-packages/jinja2/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/jinja2-*.dist-info/**" } | OutputData, }, runtime_deps = [python, markupsafe], attrs = diff --git a/packages/markupsafe/build.sh b/packages/markupsafe/build.sh index 55ea23ef..68e08a2f 100755 --- a/packages/markupsafe/build.sh +++ b/packages/markupsafe/build.sh @@ -1,5 +1,9 @@ #!/bin/sh # Imported from Wolfi `markupsafe` (3.0.3, python) by pkgmgr import-wolfi. set -eu +# Reproducibility for the compiled C extension (see AGENTS.md). +export CFLAGS="${CFLAGS:-} -ffile-prefix-map=$(pwd)=/builddir -gno-record-gcc-switches" +export CXXFLAGS="$CFLAGS" +export LDFLAGS="${LDFLAGS:-} -Wl,--build-id=none" pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" markupsafe diff --git a/packages/mdurl/build.ncl b/packages/mdurl/build.ncl index 768ec8e1..50381054 100644 --- a/packages/mdurl/build.ncl +++ b/packages/mdurl/build.ncl @@ -1,5 +1,5 @@ -# Imported from Wolfi `mdurl` by `pkgmgr import-wolfi` (python build). -# TODO: REVIEWER — verify the pypi runtime deps (install_requires) + outputs. +# Imported from Wolfi `mdurl` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in let base = import "../base/build.ncl" in let flit-core = import "../flit-core/build.ncl" in @@ -20,7 +20,8 @@ let version = "0.1.2" in ], cmd = "./build.sh", outputs = { - everything = { glob = "usr/**", allow_executable = true } | OutputData, + python_site_package = { glob = "usr/lib/python*/site-packages/mdurl/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/mdurl-*.dist-info/**" } | OutputData, }, runtime_deps = [python], attrs = diff --git a/packages/pluggy/build.ncl b/packages/pluggy/build.ncl index 8e09bb79..efc2fcc8 100644 --- a/packages/pluggy/build.ncl +++ b/packages/pluggy/build.ncl @@ -21,6 +21,9 @@ let version = "1.6.0" in setuptools-scm, ], cmd = "./build.sh", + build_args = { + include version, + }, outputs = { python_site_package = { glob = "usr/lib/python*/site-packages/pluggy/**" } | OutputData, python_dist_info = { glob = "usr/lib/python*/site-packages/pluggy-*.dist-info/**" } | OutputData, diff --git a/packages/pluggy/build.sh b/packages/pluggy/build.sh index 26019230..c9aa6881 100755 --- a/packages/pluggy/build.sh +++ b/packages/pluggy/build.sh @@ -1,6 +1,6 @@ #!/bin/sh # Imported from Wolfi `pluggy` (1.6.0, python) by pkgmgr import-wolfi. set -eu -export SETUPTOOLS_SCM_PRETEND_VERSION="1.6.0" +export SETUPTOOLS_SCM_PRETEND_VERSION="$MINIMAL_ARG_VERSION" pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" pluggy diff --git a/packages/trove-classifiers/build.ncl b/packages/trove-classifiers/build.ncl index 3071ebe0..5d2f8003 100644 --- a/packages/trove-classifiers/build.ncl +++ b/packages/trove-classifiers/build.ncl @@ -21,6 +21,9 @@ let version = "2026.6.1.19" in setuptools-scm, ], cmd = "./build.sh", + build_args = { + include version, + }, outputs = { trove-classifiers = { glob = "usr/bin/trove-classifiers" } | OutputBin, python_site_package = { glob = "usr/lib/python*/site-packages/trove_classifiers/**" } | OutputData, diff --git a/packages/trove-classifiers/build.sh b/packages/trove-classifiers/build.sh index 099be9ba..b6dce410 100755 --- a/packages/trove-classifiers/build.sh +++ b/packages/trove-classifiers/build.sh @@ -1,6 +1,6 @@ #!/bin/sh # Imported from Wolfi `trove-classifiers` (2026.6.1.19, python) by pkgmgr import-wolfi. set -eu -export SETUPTOOLS_SCM_PRETEND_VERSION="2026.6.1.19" +export SETUPTOOLS_SCM_PRETEND_VERSION="$MINIMAL_ARG_VERSION" pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir "$(pwd)" pip3 install --no-index --find-links dist --no-deps --no-user --root "$OUTPUT_DIR" trove-classifiers diff --git a/packages/wrapt/build.ncl b/packages/wrapt/build.ncl index 3547c6d2..9a1e3717 100644 --- a/packages/wrapt/build.ncl +++ b/packages/wrapt/build.ncl @@ -1,5 +1,5 @@ -# Imported from Wolfi `wrapt` by `pkgmgr import-wolfi` (python build). -# TODO: REVIEWER — verify the pypi runtime deps (install_requires) + outputs. +# Imported from Wolfi `wrapt` by `pkgmgr import-wolfi` (python build), +# with outputs refined from a verified `minimal package` build. let { Attrs, BuildSpec, Local, OutputData, Source, .. } = import "minimal.ncl" in let base = import "../base/build.ncl" in let setuptools = import "../setuptools/build.ncl" in @@ -20,7 +20,9 @@ let version = "2.2.2" in ], cmd = "./build.sh", outputs = { - everything = { glob = "usr/**", allow_executable = true } | OutputData, + python_site_package = { glob = "usr/lib/python*/site-packages/wrapt/**" } | OutputData, + site_wrapt_stubs = { glob = "usr/lib/python*/site-packages/wrapt-stubs/**" } | OutputData, + python_dist_info = { glob = "usr/lib/python*/site-packages/wrapt-*.dist-info/**" } | OutputData, }, runtime_deps = [python], attrs =