app-admin/awscli2
Universal Command Line Environment for AWS, version 2
ChangeLog
commit 2f5cd4029135f84edfca51c709b76489d0697f61
Author: lucascouts <lucascs@protonmail.com>
Date: Thu Aug 20 19:42:10 2026 -0300
add(metadata/{md5-cache/app-admin/awscli2-2.36.28, md5-cache/app-editors/vim-9.2.0990, md5-cache/app-editors/vim-core-9.2.0990, md5-cache/app-portage/bentoolkit-0.25.0, md5-cache/dev-go/staticcheck-0.8.0, md5-cache/dev-libs/imath-3.2.3, md5-cache/dev-util/claude-code-2.1.238, md5-cache/dev-util/codex-0.149.0, md5-cache/dev-util/codex-bin-0.149.0, md5-cache/dev-util/mesa_clc-26.3.0_pre20260820, md5-cache/dev-util/vulkan-headers-1.4.360_p20260820, md5-cache/dev-util/vulkan-tools-1.4.360_p20260820, md5-cache/media-libs/mesa-26.3.0_pre20260820, md5-cache/media-libs/vulkan-layers-1.4.360_p20260820, md5-cache/media-libs/vulkan-loader-1.4.360_p20260820, md5-cache/net-libs/bun-bin-1.4.0, md5-cache/sci-ml/llama-cpp-0_pre10520, md5-cache/sci-ml/ollama-bin-0.32.15, md5-cache/sys-kernel/linux-firmware-20260820}), mod(.autoupdate/packages.toml), up(app-admin/awscli2-2.36.27 -> 2.36.28, app-editors/{vim, vim-core}-9.2.0984 -> 9.2.0990, app-portage/bentoolkit-0.24.0 -> 0.25.0, dev-go/staticcheck-0.7.0 -> 0.8.0, dev-libs/imath-3.2.2 -> 3.2.3, dev-util/codex{,-bin}-0.148.0 -> 0.149.0, media-libs/{mesa-26.3.0_pre20260819 -> 26.3.0_pre20260820, vulkan-layers-1.4.360_p20260819 -> 1.4.360_p20260820, vulkan-loader-1.4.360_p20260814 -> 1.4.360_p20260820}, net-libs/bun-bin-1.3.14 -> 1.4.0, sci-ml/{llama-cpp-0_pre10502 -> 0_pre10520, ollama-bin-0.32.14 -> 0.32.15}, sys-kernel/linux-firmware-20260818 -> 20260820)
commit a5b7fb577b58744f2237e27888c05a15cb708d86
Author: lucascouts <lucascs@protonmail.com>
Date: Wed Aug 19 21:19:14 2026 -0300
add(app-admin/awscli2-2.36.27): AWS CLI v2 built from source
::gentoo ships the v2 only as app-admin/awscli-bin, the official PyInstaller
bundle. A source build exists nowhere, and it is what lets urllib3, OpenSSL
and the TLS stack come from the system and receive security fixes, instead of
being frozen inside a blob until AWS republishes the zip.
Separate package name with blockers against both app-admin/awscli (v1) and
app-admin/awscli-bin: all three own /usr/bin/aws, and taking the "awscli" name
would promote every v1 user to the v2 on the next @world update, silently
changing default output, config parsing and credential/SSO behaviour.
Packaging notes, all of them load-bearing:
- The v2 is NOT on PyPI (info.version there is 1.46.0, zero 2.x releases), so
the source is the GitHub tag and the pypi eclass must not be used.
- awscli/{botocore,s3transfer} are vendored *forks*, not copies of the upstream
releases; unlike the v1 ebuild they cannot be unbundled.
- Upstream uses an in-tree PEP 517 backend that proxies flit_core and generates
the 20M autocomplete index into the wheel, hence standalone + BDEPEND that
contains all of RDEPEND: the backend imports the whole tree to emit ac.index.
- Six of the eleven dependency ceilings are already violated in ::gentoo and are
stripped in python_prepare_all. "wcwidth<0.3.0" has no comma before the
ceiling, so it escapes the regex ::gentoo's v1 ebuild uses and needs its own
expression; an assertion fails the build if any ceiling survives.
files/awscli2-prompt-toolkit-toolbar-init.patch is not optional. Relaxing
prompt-toolkit<3.0.52 is forced (::gentoo has only 3.0.52 and 3.0.53, so the
pin is unsatisfiable) and it exposes a real runtime bug that the pin was
hiding: ToolbarView bypasses ConditionalContainer.__init__ and hand-sets
.content/.filter, so since 3.0.52 .alternative_content is left undefined and
preferred_width()/preferred_height() raise AttributeError on every render of
the wizard toolbar. It is the only affected class -- every other subclass goes
through BaseHelpContainer.__init__, which does call super().
python_test sizes EPYTEST_JOBS by MemAvailable rather than by core count. The
eclass default of one worker per core peaked at 60G here, more than a chromium
build: each worker parses the vendored botocore's 1868 service models (110M of
JSON) plus ac.index and holds ~5-8G for the whole run, unlike a compiler that
frees between files. A core-count cap OOMs any many-thread, low-memory machine.
Verified: build unpack->install exit 0, the six ceilings measurably stripped,
ac.index generated with no network access inside the sandbox, /usr/bin holding
exactly aws and aws_completer, pkgcheck clean, Manifest checked against the
distfile, autoupdate probe validated live (max 2.36.27 = ebuild). Test suite
green: 97928 passed, 0 failed, 29 skipped -- the patch moves it from 97884,
i.e. it fixes the 44 wizard tests rather than masking them. Two deselects, both
test artefacts: one needs the ac.index that the source tree occludes, the other
asserts the builder's locale. Not merged -- this host has no sudo, so the
install was verified against the image, not against a real merge.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: lucascouts <lucascs@protonmail.com>
Date: Thu Aug 20 19:42:10 2026 -0300
add(metadata/{md5-cache/app-admin/awscli2-2.36.28, md5-cache/app-editors/vim-9.2.0990, md5-cache/app-editors/vim-core-9.2.0990, md5-cache/app-portage/bentoolkit-0.25.0, md5-cache/dev-go/staticcheck-0.8.0, md5-cache/dev-libs/imath-3.2.3, md5-cache/dev-util/claude-code-2.1.238, md5-cache/dev-util/codex-0.149.0, md5-cache/dev-util/codex-bin-0.149.0, md5-cache/dev-util/mesa_clc-26.3.0_pre20260820, md5-cache/dev-util/vulkan-headers-1.4.360_p20260820, md5-cache/dev-util/vulkan-tools-1.4.360_p20260820, md5-cache/media-libs/mesa-26.3.0_pre20260820, md5-cache/media-libs/vulkan-layers-1.4.360_p20260820, md5-cache/media-libs/vulkan-loader-1.4.360_p20260820, md5-cache/net-libs/bun-bin-1.4.0, md5-cache/sci-ml/llama-cpp-0_pre10520, md5-cache/sci-ml/ollama-bin-0.32.15, md5-cache/sys-kernel/linux-firmware-20260820}), mod(.autoupdate/packages.toml), up(app-admin/awscli2-2.36.27 -> 2.36.28, app-editors/{vim, vim-core}-9.2.0984 -> 9.2.0990, app-portage/bentoolkit-0.24.0 -> 0.25.0, dev-go/staticcheck-0.7.0 -> 0.8.0, dev-libs/imath-3.2.2 -> 3.2.3, dev-util/codex{,-bin}-0.148.0 -> 0.149.0, media-libs/{mesa-26.3.0_pre20260819 -> 26.3.0_pre20260820, vulkan-layers-1.4.360_p20260819 -> 1.4.360_p20260820, vulkan-loader-1.4.360_p20260814 -> 1.4.360_p20260820}, net-libs/bun-bin-1.3.14 -> 1.4.0, sci-ml/{llama-cpp-0_pre10502 -> 0_pre10520, ollama-bin-0.32.14 -> 0.32.15}, sys-kernel/linux-firmware-20260818 -> 20260820)
commit a5b7fb577b58744f2237e27888c05a15cb708d86
Author: lucascouts <lucascs@protonmail.com>
Date: Wed Aug 19 21:19:14 2026 -0300
add(app-admin/awscli2-2.36.27): AWS CLI v2 built from source
::gentoo ships the v2 only as app-admin/awscli-bin, the official PyInstaller
bundle. A source build exists nowhere, and it is what lets urllib3, OpenSSL
and the TLS stack come from the system and receive security fixes, instead of
being frozen inside a blob until AWS republishes the zip.
Separate package name with blockers against both app-admin/awscli (v1) and
app-admin/awscli-bin: all three own /usr/bin/aws, and taking the "awscli" name
would promote every v1 user to the v2 on the next @world update, silently
changing default output, config parsing and credential/SSO behaviour.
Packaging notes, all of them load-bearing:
- The v2 is NOT on PyPI (info.version there is 1.46.0, zero 2.x releases), so
the source is the GitHub tag and the pypi eclass must not be used.
- awscli/{botocore,s3transfer} are vendored *forks*, not copies of the upstream
releases; unlike the v1 ebuild they cannot be unbundled.
- Upstream uses an in-tree PEP 517 backend that proxies flit_core and generates
the 20M autocomplete index into the wheel, hence standalone + BDEPEND that
contains all of RDEPEND: the backend imports the whole tree to emit ac.index.
- Six of the eleven dependency ceilings are already violated in ::gentoo and are
stripped in python_prepare_all. "wcwidth<0.3.0" has no comma before the
ceiling, so it escapes the regex ::gentoo's v1 ebuild uses and needs its own
expression; an assertion fails the build if any ceiling survives.
files/awscli2-prompt-toolkit-toolbar-init.patch is not optional. Relaxing
prompt-toolkit<3.0.52 is forced (::gentoo has only 3.0.52 and 3.0.53, so the
pin is unsatisfiable) and it exposes a real runtime bug that the pin was
hiding: ToolbarView bypasses ConditionalContainer.__init__ and hand-sets
.content/.filter, so since 3.0.52 .alternative_content is left undefined and
preferred_width()/preferred_height() raise AttributeError on every render of
the wizard toolbar. It is the only affected class -- every other subclass goes
through BaseHelpContainer.__init__, which does call super().
python_test sizes EPYTEST_JOBS by MemAvailable rather than by core count. The
eclass default of one worker per core peaked at 60G here, more than a chromium
build: each worker parses the vendored botocore's 1868 service models (110M of
JSON) plus ac.index and holds ~5-8G for the whole run, unlike a compiler that
frees between files. A core-count cap OOMs any many-thread, low-memory machine.
Verified: build unpack->install exit 0, the six ceilings measurably stripped,
ac.index generated with no network access inside the sandbox, /usr/bin holding
exactly aws and aws_completer, pkgcheck clean, Manifest checked against the
distfile, autoupdate probe validated live (max 2.36.27 = ebuild). Test suite
green: 97928 passed, 0 failed, 29 skipped -- the patch moves it from 97884,
i.e. it fixes the 44 wizard tests rather than masking them. Two deselects, both
test artefacts: one needs the ac.index that the source tree occludes, the other
asserts the builder's locale. Not merged -- this host has no sudo, so the
install was verified against the image, not against a real merge.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>


View
Download
Browse