sci-ml/stable-diffusion-cpp
Diffusion model (SD, Flux, Wan, Qwen-Image, ...) inference in pure C/C++
-
stable-diffusion-cpp-0_pre782~amd64openblas blis flexiblas hip cuda opencl vulkan wmma webm webp cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_avx512f cpu_flags_x86_avx512vbmi cpu_flags_x86_bmi2 cpu_flags_x86_f16c cpu_flags_x86_fma3 cpu_flags_x86_sse4_2 cpu_flags_arm_asimddp cpu_flags_arm_asimdhp cpu_flags_arm_sve cpu_flags_arm_i8mm cpu_flags_arm_sve2 +amdgpu_targets_gfx908 +amdgpu_targets_gfx90a +amdgpu_targets_gfx942 +amdgpu_targets_gfx950 +amdgpu_targets_gfx1030 +amdgpu_targets_gfx1100 +amdgpu_targets_gfx1101 +amdgpu_targets_gfx1200 +amdgpu_targets_gfx1201 amdgpu_targets_gfx803 amdgpu_targets_gfx900 amdgpu_targets_gfx906 amdgpu_targets_gfx940 amdgpu_targets_gfx941 amdgpu_targets_gfx1010 amdgpu_targets_gfx1011 amdgpu_targets_gfx1012 amdgpu_targets_gfx1031 amdgpu_targets_gfx1102 amdgpu_targets_gfx1103 amdgpu_targets_gfx1150 amdgpu_targets_gfx1151
View
Download
Browse License: MIT Overlay: bentoo -
stable-diffusion-cpp-0.0.841~amd64openblas blis rocm cuda opencl vulkan flexiblas webm webp wmma cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_fma3 cpu_flags_x86_f16c cpu_flags_x86_bmi2 cpu_flags_x86_avx_vnni cpu_flags_x86_avx512f cpu_flags_x86_avx512vbmi cpu_flags_x86_avx512_vnni cpu_flags_x86_avx512_bf16 +amdgpu_targets_gfx908 +amdgpu_targets_gfx90a +amdgpu_targets_gfx942 +amdgpu_targets_gfx1030 +amdgpu_targets_gfx1100 +amdgpu_targets_gfx1101 +amdgpu_targets_gfx1200 +amdgpu_targets_gfx1201 amdgpu_targets_gfx803 amdgpu_targets_gfx900 amdgpu_targets_gfx906 amdgpu_targets_gfx940 amdgpu_targets_gfx941 amdgpu_targets_gfx1010 amdgpu_targets_gfx1011 amdgpu_targets_gfx1012 amdgpu_targets_gfx1031 amdgpu_targets_gfx1102 amdgpu_targets_gfx1103 amdgpu_targets_gfx1150 amdgpu_targets_gfx1151
View
Download
Browse License: MIT Overlay: zGentoo -
stable-diffusion-cpp-0.0.669~amd64openblas blis rocm cuda opencl vulkan flexiblas webm webp wmma cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_fma3 cpu_flags_x86_f16c cpu_flags_x86_bmi2 cpu_flags_x86_avx_vnni cpu_flags_x86_avx512f cpu_flags_x86_avx512vbmi cpu_flags_x86_avx512_vnni cpu_flags_x86_avx512_bf16 +amdgpu_targets_gfx908 +amdgpu_targets_gfx90a +amdgpu_targets_gfx942 +amdgpu_targets_gfx1030 +amdgpu_targets_gfx1100 +amdgpu_targets_gfx1101 +amdgpu_targets_gfx1200 +amdgpu_targets_gfx1201 amdgpu_targets_gfx803 amdgpu_targets_gfx900 amdgpu_targets_gfx906 amdgpu_targets_gfx940 amdgpu_targets_gfx941 amdgpu_targets_gfx1010 amdgpu_targets_gfx1011 amdgpu_targets_gfx1012 amdgpu_targets_gfx1031 amdgpu_targets_gfx1102 amdgpu_targets_gfx1103 amdgpu_targets_gfx1150 amdgpu_targets_gfx1151
View
Download
Browse License: MIT Overlay: zGentoo
ChangeLog
commit d169990f0c80529429e795e9fc0cdbe6d7ff23f5
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Aug 9 17:44:46 2026 -0300
fix(sci-ml/stable-diffusion-cpp-0_pre782): move a comment out of REQUIRED_USE, which had masked the package since 2026-07-19
The package has been uninstallable for everyone who syncs this overlay for
twenty days:
!!! All ebuilds that could satisfy "sci-ml/stable-diffusion-cpp" have been
masked. sci-ml/stable-diffusion-cpp-0_pre782::bentoo
(masked by: invalid: REQUIRED_USE: USE flag '#' is not in IUSE)
REQUIRED_USE is a dependency specification, not bash. A '#' inside the string
is not a comment -- it is parsed as a USE-flag token, does not appear in IUSE,
and portage rejects the whole package's metadata. Three explanatory lines about
media-libs/libwebm sat between `arm64? ( !hip )` and `arm64? ( !webm )`, and
they took the package down with them. They reached the published md5-cache
verbatim, so `emaint sync` delivered the breakage rather than containing it.
Introduced in 24355c117 (2026-07-19). The comment is preserved -- moved above
the assignment, where '#' does comment -- together with a note stating the
failure mode, so the next person to document a constraint does it in the right
place. Nothing about the constraints themselves changed: the flattened
REQUIRED_USE in md5-cache is identical apart from the three lines leaving.
Also corrected, in the KEYWORDS comment added earlier today: it named a
constraint `arm64? ( !rocm )` that does not exist. The ebuild spells it
`arm64? ( !hip )`, deliberately -- see the note above REQUIRED_USE on why the
flag is not called "rocm" -- and there is a second one, `arm64? ( !webm )`.
Both are named correctly now.
Verified against this checkout rather than the synced copy, which still carries
the break until the next sync:
PORTAGE_CONFIGROOT=<override> emerge -pq sci-ml/stable-diffusion-cpp
[ebuild N ] sci-ml/stable-diffusion-cpp-0_pre782
pkgcheck clean. No Manifest change; md5-cache regenerated and its _md5_ matches
the ebuild.
Worth recording why this survived twenty days: nothing in the overlay's checks
tries to resolve these packages. pkgcheck with the check set used on this
package reports clean with the broken REQUIRED_USE in place -- confirmed both
before and after this fix. The gate that would have caught it on day one is
story 002's per-package validation gate, deferred on every one of these
packages with the note "gate needs emerge". This is the first defect that
deferral is known to have cost.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
commit 35ffa1c3857aedf99bebf9deb8d8e76ea7317518
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Aug 9 13:20:15 2026 -0300
mod(sci-ml/{llama-cpp-0_pre10333,whisper-cpp-1.9.2,stable-diffusion-cpp-0_pre782}, sci-libs/onnxruntime-1.28.0): drop ~arm64, the validation behind it was descoped
These four were keyworded ~arm64 by the AI-stack work on the strength of a
qemu-user chroot build that would be run later. That validation is descoped as
of 2026-08-08, so the keyword was left asserting a build nobody had run.
Shipping an unvalidated keyword is worse than shipping none. It tells an arm64
user the package was considered on their architecture when it was only assumed
to work there, and the failure lands on them at build time instead of on the
maintainer at packaging time.
Each ebuild now carries the reasoning inline, next to KEYWORDS, including the
reversal condition: restore ~arm64 together with a recorded arm64 build, not
before. Kept deliberately: stable-diffusion-cpp's REQUIRED_USE="arm64? (
!rocm )". It costs nothing while the keyword is absent and is correct the
moment it returns.
This is a restriction, not a limitation, and the distinction is written into
every one of the four comments. Upstream supports aarch64 in all four cases --
ggml exposes GGML_CPU_ARM_ARCH, whisper.cpp treats Apple Silicon as a headline
platform, sd.cpp has no arch gate beyond SD_METAL, and onnxruntime publishes
aarch64 artifacts. Nothing here is evidence against arm64; it is the absence of
evidence for it on this overlay's own terms.
Recorded against the overlay's stated principle -- "KEYWORDS should include
~arm64 whenever upstream supports it; restricting to ~amd64 needs a
justification, not a default." The justification is the one above, and it is
about validation capacity rather than about the packages. It is also narrow:
294 ebuilds in this overlay carry ~arm64 and none of them are touched here.
Not touched, and worth stating so the boundary is legible:
sci-ml/lemonade{,-bin} keep ~arm64. Their keyword never rested on the
descoped chroot -- lemonade-bin's SRC_URI fetches an
upstream-published arm64 tarball and src_install
consumes it. That is direct upstream evidence, which
is the other basis this overlay accepts.
sci-ml/ik_llama-cpp already ~amd64 only, for its own recorded reason.
sci-libs/onnxruntime-bin already ~amd64 only.
No Manifest change: KEYWORDS does not touch SRC_URI, and the overlay uses thin
manifests. No revbump either -- KEYWORDS does not change the installed image,
and a revbump would be actively wrong here, showing arm64 users a new version
they cannot install instead of letting the existing one fall out of view.
pkgcheck clean on all four (DependencyCheck, MetadataVarCheck,
PackageMetadataXmlCheck, VisibilityCheck, SrcUriCheck, RestrictCheck,
KeywordsCheck).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
commit bee4b55bea2e68fae9d3640d745eb74fa2df4aaf
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Jul 26 19:58:35 2026 -0300
add(metadata/{md5-cache/media-gfx/imagemagick-7.1.2.28, md5-cache/sci-ml/ik_llama-cpp-0_pre20260726}), del(metadata/md5-cache/sci-ml/stable-diffusion-cpp-782), mod(metadata/md5-cache/sci-ml/ik_llama-cpp-0_pre20260725, .autoupdate/packages.toml), up(media-gfx/imagemagick-7.1.2.27 -> 7.1.2.28, sci-ml/ik_llama-cpp-0_pre20260725 -> 0_pre20260726), down(sci-ml/stable-diffusion-cpp-782 -> 0_pre782)
commit 3fb7b422e4b70e4b6a59e415765a55a407fef71f
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Jul 19 21:32:26 2026 -0300
add(metadata/{md5-cache/app-editors/devin-desktop-bin-3.5.17, md5-cache/dev-util/mesa_clc-26.2.0_pre20260720, md5-cache/media-libs/mesa-26.2.0_pre20260720, md5-cache/sci-ml/stable-diffusion-cpp-782, md5-cache/sys-apps/pnpm-11.15.1}), mod(.autoupdate/packages.toml), up(app-editors/devin-desktop-bin-3.4.27 -> 3.5.17, dev-util/mesa_clc-26.2.0_pre20260719 -> 26.2.0_pre20260720, media-libs/mesa-26.2.0_pre20260719 -> 26.2.0_pre20260720, sci-ml/stable-diffusion-cpp-0_pre782 -> 782, sys-apps/pnpm-11.15.0 -> 11.15.1)
commit 24355c1170b0ca3cc788763c1adf79611c47e03e
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Jul 19 18:19:15 2026 -0300
add(dev-cpp/safeint-3.0.28a, sci-libs/dlpack-1.3), mod(sci-ml/{llama-cpp, whisper-cpp, stable-diffusion-cpp, ik_llama-cpp}, sci-libs/onnxruntime-bin, .autoupdate/packages.toml)
Story 002 (AI stack foundation), completing work partially captured by
5a315107. That commit swept an intermediate state of this series into an
unrelated bump; this finishes it.
Unblocks sci-libs/onnxruntime: dev-cpp/safeint and sci-libs/dlpack exist
only in ::guru, so as of 5a315107 onnxruntime was uninstallable on every
arch. Both ported header-only, Manifests regenerated from independently
downloaded distfiles and byte-identical to guru's.
ROCm USE flag renamed rocm -> hip across the family. Empirically, and
reproducibly in both directions on two independent packages, naming it
"rocm" makes pkgcheck emit NonsolvableDeps{InDev,InStable} on arm64
profiles while "hip" scans clean, for identical semantics and identical
dependencies. The mechanism is NOT understood and the pruning is not
universal (an equivalent arm64? ( !webm ) guard does not silence
media-libs/libwebm). Recorded as a workaround, not a rule; re-check on
pkgcheck upgrades. See story 002 design D1.4a.
Correctness fixes found while adapting, each a USE flag that pulled real
dependencies and did nothing:
- whisper-cpp: GGML_CLBLAST does not exist in 1.9.1; USE=opencl built
no OpenCL support. Now -DGGML_OPENCL.
- ik_llama-cpp: GGML_HIP is a no-op in that fork (it is GGML_HIPBLAS);
USE=rocm pulled hip and hipBLAS and built zero GPU support.
- whisper-cpp and ik_llama-cpp: -DGGML_NATIVE=OFF alone does not pin
the x86 baseline. INS_ENB leaves AVX/AVX2/FMA/F16C defaulting ON, so
both shipped binaries that SIGILL on pre-Haswell hardware regardless
of CPU_FLAGS_X86. Both now wire the flags explicitly.
- onnxruntime-bin: headers installed flat into /usr/include while the
shipped .pc and CMake config both declare
includedir=${prefix}/include/onnxruntime, and the .pc carried
prefix=/usr/local. Both corrected.
- llama-cpp: unpinned webui fetch (mutable bucket pointer, no Manifest
checksum) removed from all three ebuilds, not just the newest.
arm64 VALIDATION LEVEL — upstream evidence only, NO test build (R1.5).
KEYWORDS="~amd64 ~arm64" on llama-cpp, whisper-cpp, stable-diffusion-cpp,
onnxruntime and onnxruntime-bin rests on upstream source inspection and
dependency keyword surveys. The qemu-user chroot build (story 002 tasks
1.10/1.11) was NOT run: it needs a qemu rebuild with static-user, a
binfmt handler and a stage3. Nothing here asserts arm64 runtime
correctness, and no GPU backend was validated on any architecture.
ik_llama-cpp stays ~amd64 deliberately.
NOT BUILT. No emerge was run for any package in this commit. Every option
name, install path and collision claim was verified by reading pinned
upstream sources, not by execution. The per-package emerge gates (tasks
2.12, 3.11, 4.11, 5.11) remain open.
pkgcheck: llama-cpp, whisper-cpp, ik_llama-cpp, onnxruntime-bin, safeint
and dlpack are clean. stable-diffusion-cpp reports 4 (media-libs/libwebm
is ~amd64-only) and onnxruntime reports 4 (safeint/dlpack kept at ~amd64,
plus dev-python/coloredlogs has no arm64 keyword). Both accepted and
documented.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
commit 5a315107f3ff8696462c6646020302035ffa2ee7
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Jul 19 18:01:25 2026 -0300
add(sci-libs/onnxruntime{,-bin}-1.27.1, sci-ml/{ik_llama-cpp-0_pre20260718, stable-diffusion-cpp-0_pre782, whisper-cpp-1.9.1}), add(metadata/{md5-cache/app-editors/vim-9.2.0810, md5-cache/app-editors/vim-core-9.2.0810, md5-cache/app-portage/bentoolkit-0.14.0, md5-cache/sci-libs/onnxruntime-1.27.1, md5-cache/sci-libs/onnxruntime-bin-1.27.1, md5-cache/sci-ml/ik_llama-cpp-0_pre20260718, md5-cache/sci-ml/stable-diffusion-cpp-0_pre782, md5-cache/sci-ml/whisper-cpp-1.9.1}), mod(sci-ml/{llama-cpp-0_pre10019, llama-cpp-0_pre10057, llama-cpp-0_pre10068}), mod(metadata/{md5-cache/app-portage/bentoolkit-0.13.1, md5-cache/sci-ml/llama-cpp-0_pre10019, md5-cache/sci-ml/llama-cpp-0_pre10057, md5-cache/sci-ml/llama-cpp-0_pre10068}), up(app-editors/{vim, vim-core}-9.2.0807 -> 9.2.0810, app-portage/bentoolkit-0.13.1 -> 0.14.0)
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Aug 9 17:44:46 2026 -0300
fix(sci-ml/stable-diffusion-cpp-0_pre782): move a comment out of REQUIRED_USE, which had masked the package since 2026-07-19
The package has been uninstallable for everyone who syncs this overlay for
twenty days:
!!! All ebuilds that could satisfy "sci-ml/stable-diffusion-cpp" have been
masked. sci-ml/stable-diffusion-cpp-0_pre782::bentoo
(masked by: invalid: REQUIRED_USE: USE flag '#' is not in IUSE)
REQUIRED_USE is a dependency specification, not bash. A '#' inside the string
is not a comment -- it is parsed as a USE-flag token, does not appear in IUSE,
and portage rejects the whole package's metadata. Three explanatory lines about
media-libs/libwebm sat between `arm64? ( !hip )` and `arm64? ( !webm )`, and
they took the package down with them. They reached the published md5-cache
verbatim, so `emaint sync` delivered the breakage rather than containing it.
Introduced in 24355c117 (2026-07-19). The comment is preserved -- moved above
the assignment, where '#' does comment -- together with a note stating the
failure mode, so the next person to document a constraint does it in the right
place. Nothing about the constraints themselves changed: the flattened
REQUIRED_USE in md5-cache is identical apart from the three lines leaving.
Also corrected, in the KEYWORDS comment added earlier today: it named a
constraint `arm64? ( !rocm )` that does not exist. The ebuild spells it
`arm64? ( !hip )`, deliberately -- see the note above REQUIRED_USE on why the
flag is not called "rocm" -- and there is a second one, `arm64? ( !webm )`.
Both are named correctly now.
Verified against this checkout rather than the synced copy, which still carries
the break until the next sync:
PORTAGE_CONFIGROOT=<override> emerge -pq sci-ml/stable-diffusion-cpp
[ebuild N ] sci-ml/stable-diffusion-cpp-0_pre782
pkgcheck clean. No Manifest change; md5-cache regenerated and its _md5_ matches
the ebuild.
Worth recording why this survived twenty days: nothing in the overlay's checks
tries to resolve these packages. pkgcheck with the check set used on this
package reports clean with the broken REQUIRED_USE in place -- confirmed both
before and after this fix. The gate that would have caught it on day one is
story 002's per-package validation gate, deferred on every one of these
packages with the note "gate needs emerge". This is the first defect that
deferral is known to have cost.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
commit 35ffa1c3857aedf99bebf9deb8d8e76ea7317518
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Aug 9 13:20:15 2026 -0300
mod(sci-ml/{llama-cpp-0_pre10333,whisper-cpp-1.9.2,stable-diffusion-cpp-0_pre782}, sci-libs/onnxruntime-1.28.0): drop ~arm64, the validation behind it was descoped
These four were keyworded ~arm64 by the AI-stack work on the strength of a
qemu-user chroot build that would be run later. That validation is descoped as
of 2026-08-08, so the keyword was left asserting a build nobody had run.
Shipping an unvalidated keyword is worse than shipping none. It tells an arm64
user the package was considered on their architecture when it was only assumed
to work there, and the failure lands on them at build time instead of on the
maintainer at packaging time.
Each ebuild now carries the reasoning inline, next to KEYWORDS, including the
reversal condition: restore ~arm64 together with a recorded arm64 build, not
before. Kept deliberately: stable-diffusion-cpp's REQUIRED_USE="arm64? (
!rocm )". It costs nothing while the keyword is absent and is correct the
moment it returns.
This is a restriction, not a limitation, and the distinction is written into
every one of the four comments. Upstream supports aarch64 in all four cases --
ggml exposes GGML_CPU_ARM_ARCH, whisper.cpp treats Apple Silicon as a headline
platform, sd.cpp has no arch gate beyond SD_METAL, and onnxruntime publishes
aarch64 artifacts. Nothing here is evidence against arm64; it is the absence of
evidence for it on this overlay's own terms.
Recorded against the overlay's stated principle -- "KEYWORDS should include
~arm64 whenever upstream supports it; restricting to ~amd64 needs a
justification, not a default." The justification is the one above, and it is
about validation capacity rather than about the packages. It is also narrow:
294 ebuilds in this overlay carry ~arm64 and none of them are touched here.
Not touched, and worth stating so the boundary is legible:
sci-ml/lemonade{,-bin} keep ~arm64. Their keyword never rested on the
descoped chroot -- lemonade-bin's SRC_URI fetches an
upstream-published arm64 tarball and src_install
consumes it. That is direct upstream evidence, which
is the other basis this overlay accepts.
sci-ml/ik_llama-cpp already ~amd64 only, for its own recorded reason.
sci-libs/onnxruntime-bin already ~amd64 only.
No Manifest change: KEYWORDS does not touch SRC_URI, and the overlay uses thin
manifests. No revbump either -- KEYWORDS does not change the installed image,
and a revbump would be actively wrong here, showing arm64 users a new version
they cannot install instead of letting the existing one fall out of view.
pkgcheck clean on all four (DependencyCheck, MetadataVarCheck,
PackageMetadataXmlCheck, VisibilityCheck, SrcUriCheck, RestrictCheck,
KeywordsCheck).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
commit bee4b55bea2e68fae9d3640d745eb74fa2df4aaf
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Jul 26 19:58:35 2026 -0300
add(metadata/{md5-cache/media-gfx/imagemagick-7.1.2.28, md5-cache/sci-ml/ik_llama-cpp-0_pre20260726}), del(metadata/md5-cache/sci-ml/stable-diffusion-cpp-782), mod(metadata/md5-cache/sci-ml/ik_llama-cpp-0_pre20260725, .autoupdate/packages.toml), up(media-gfx/imagemagick-7.1.2.27 -> 7.1.2.28, sci-ml/ik_llama-cpp-0_pre20260725 -> 0_pre20260726), down(sci-ml/stable-diffusion-cpp-782 -> 0_pre782)
commit 3fb7b422e4b70e4b6a59e415765a55a407fef71f
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Jul 19 21:32:26 2026 -0300
add(metadata/{md5-cache/app-editors/devin-desktop-bin-3.5.17, md5-cache/dev-util/mesa_clc-26.2.0_pre20260720, md5-cache/media-libs/mesa-26.2.0_pre20260720, md5-cache/sci-ml/stable-diffusion-cpp-782, md5-cache/sys-apps/pnpm-11.15.1}), mod(.autoupdate/packages.toml), up(app-editors/devin-desktop-bin-3.4.27 -> 3.5.17, dev-util/mesa_clc-26.2.0_pre20260719 -> 26.2.0_pre20260720, media-libs/mesa-26.2.0_pre20260719 -> 26.2.0_pre20260720, sci-ml/stable-diffusion-cpp-0_pre782 -> 782, sys-apps/pnpm-11.15.0 -> 11.15.1)
commit 24355c1170b0ca3cc788763c1adf79611c47e03e
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Jul 19 18:19:15 2026 -0300
add(dev-cpp/safeint-3.0.28a, sci-libs/dlpack-1.3), mod(sci-ml/{llama-cpp, whisper-cpp, stable-diffusion-cpp, ik_llama-cpp}, sci-libs/onnxruntime-bin, .autoupdate/packages.toml)
Story 002 (AI stack foundation), completing work partially captured by
5a315107. That commit swept an intermediate state of this series into an
unrelated bump; this finishes it.
Unblocks sci-libs/onnxruntime: dev-cpp/safeint and sci-libs/dlpack exist
only in ::guru, so as of 5a315107 onnxruntime was uninstallable on every
arch. Both ported header-only, Manifests regenerated from independently
downloaded distfiles and byte-identical to guru's.
ROCm USE flag renamed rocm -> hip across the family. Empirically, and
reproducibly in both directions on two independent packages, naming it
"rocm" makes pkgcheck emit NonsolvableDeps{InDev,InStable} on arm64
profiles while "hip" scans clean, for identical semantics and identical
dependencies. The mechanism is NOT understood and the pruning is not
universal (an equivalent arm64? ( !webm ) guard does not silence
media-libs/libwebm). Recorded as a workaround, not a rule; re-check on
pkgcheck upgrades. See story 002 design D1.4a.
Correctness fixes found while adapting, each a USE flag that pulled real
dependencies and did nothing:
- whisper-cpp: GGML_CLBLAST does not exist in 1.9.1; USE=opencl built
no OpenCL support. Now -DGGML_OPENCL.
- ik_llama-cpp: GGML_HIP is a no-op in that fork (it is GGML_HIPBLAS);
USE=rocm pulled hip and hipBLAS and built zero GPU support.
- whisper-cpp and ik_llama-cpp: -DGGML_NATIVE=OFF alone does not pin
the x86 baseline. INS_ENB leaves AVX/AVX2/FMA/F16C defaulting ON, so
both shipped binaries that SIGILL on pre-Haswell hardware regardless
of CPU_FLAGS_X86. Both now wire the flags explicitly.
- onnxruntime-bin: headers installed flat into /usr/include while the
shipped .pc and CMake config both declare
includedir=${prefix}/include/onnxruntime, and the .pc carried
prefix=/usr/local. Both corrected.
- llama-cpp: unpinned webui fetch (mutable bucket pointer, no Manifest
checksum) removed from all three ebuilds, not just the newest.
arm64 VALIDATION LEVEL — upstream evidence only, NO test build (R1.5).
KEYWORDS="~amd64 ~arm64" on llama-cpp, whisper-cpp, stable-diffusion-cpp,
onnxruntime and onnxruntime-bin rests on upstream source inspection and
dependency keyword surveys. The qemu-user chroot build (story 002 tasks
1.10/1.11) was NOT run: it needs a qemu rebuild with static-user, a
binfmt handler and a stage3. Nothing here asserts arm64 runtime
correctness, and no GPU backend was validated on any architecture.
ik_llama-cpp stays ~amd64 deliberately.
NOT BUILT. No emerge was run for any package in this commit. Every option
name, install path and collision claim was verified by reading pinned
upstream sources, not by execution. The per-package emerge gates (tasks
2.12, 3.11, 4.11, 5.11) remain open.
pkgcheck: llama-cpp, whisper-cpp, ik_llama-cpp, onnxruntime-bin, safeint
and dlpack are clean. stable-diffusion-cpp reports 4 (media-libs/libwebm
is ~amd64-only) and onnxruntime reports 4 (safeint/dlpack kept at ~amd64,
plus dev-python/coloredlogs has no arm64 keyword). Both accepted and
documented.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
commit 5a315107f3ff8696462c6646020302035ffa2ee7
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Jul 19 18:01:25 2026 -0300
add(sci-libs/onnxruntime{,-bin}-1.27.1, sci-ml/{ik_llama-cpp-0_pre20260718, stable-diffusion-cpp-0_pre782, whisper-cpp-1.9.1}), add(metadata/{md5-cache/app-editors/vim-9.2.0810, md5-cache/app-editors/vim-core-9.2.0810, md5-cache/app-portage/bentoolkit-0.14.0, md5-cache/sci-libs/onnxruntime-1.27.1, md5-cache/sci-libs/onnxruntime-bin-1.27.1, md5-cache/sci-ml/ik_llama-cpp-0_pre20260718, md5-cache/sci-ml/stable-diffusion-cpp-0_pre782, md5-cache/sci-ml/whisper-cpp-1.9.1}), mod(sci-ml/{llama-cpp-0_pre10019, llama-cpp-0_pre10057, llama-cpp-0_pre10068}), mod(metadata/{md5-cache/app-portage/bentoolkit-0.13.1, md5-cache/sci-ml/llama-cpp-0_pre10019, md5-cache/sci-ml/llama-cpp-0_pre10057, md5-cache/sci-ml/llama-cpp-0_pre10068}), up(app-editors/{vim, vim-core}-9.2.0807 -> 9.2.0810, app-portage/bentoolkit-0.13.1 -> 0.14.0)

