Skip to content

istitov/stuff

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6,945 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

stuff

A Gentoo ebuild overlay. Focus areas: AMD Ryzen-AI / NPU tooling, ROCm (typically a release ahead of ::gentoo), niche scientific physics (SAXS / SANS / XAFS / electron microscopy / micromagnetism / Rietveld), the DeaDBeeF plugin ecosystem, curated pf-sources (CVE-only patch curation), and a small Python 2 preservation layer for legacy scientific scripts.

eselect repository enable stuff
emerge --sync stuff

Package checks

Mirrors

Auto-mirrored on every push:

Highlights

AMD Ryzen-AI / NPU stack

NPU-first LLM tooling for AMD Ryzen AI (XDNA2). Application layer plus the driver and runtime it needs:

Local LLM tooling

Backend-agnostic servers, model-swap proxy, CLI clients, and web UI. Pairs with fastflowlm / lemonade above as well as vllm and any other OpenAI-compatible endpoint:

  • sci-misc/llama-cpp — llama.cpp server / runtime. Bundled web UI provisioned at configure time (default on; disable with USE=-webui).
  • sci-misc/llama-swap — Go HTTP proxy that lifecycle-manages multiple inference backends and routes OpenAI/Anthropic-compatible requests to the right one. Optional embedded Svelte UI via USE=ui; vendored Go modules on extra-stuff.
  • www-apps/hollama — Minimal chat UI (SvelteKit + Node, browser-localStorage state, no server-side persistence). Talks to Ollama natively and any OpenAI-compatible endpoint. systemd unit + openrc service files; loopback-only by default.
  • dev-util/aichat — All-in-one LLM CLI (Chat-REPL, shell assistant, RAG, agents); multi-provider, single Rust binary.
  • dev-util/rtk — "Rust Token Killer" CLI proxy that filters dev-command output (cargo, npm, pytest, …) before it reaches your LLM session, cutting token consumption.
  • dev-util/argc — Bash CLI framework + Argcfile.sh task runner; infrastructure for sigoden's tooling cluster.

Speech / audio ML stack

ASR, speaker diarization, and audio DSP packages:

PyTorch / ONNX ecosystem additions

General-purpose ML infrastructure not covered by ::gentoo, pulled in alongside the speech stack above and broadly useful on their own:

ROCm 7.2.3

Local bumps of the ROCm 7.2 stable line ahead of ::gentoo's 7.2.0: dev-libs/rocm-{core,comgr,device-libs,opencl-runtime}, dev-libs/rccl, dev-libs/hipother, dev-build/rocm-cmake, dev-util/{hip,hipcc,hipify-clang,rocm-smi,rocminfo,rocm_bandwidth_test}, sci-libs/{hipBLAS,hipBLAS-common,hipBLASLt,hipCUB,hipFFT,hipRAND,hipSOLVER,hipSPARSE,hipsparselt,composable-kernel,miopen,rocBLAS,rocFFT,rocPRIM,rocRAND,rocSOLVER,rocSPARSE,rocThrust}.

dev-util/therock-bin is a /opt-installed ROCm SDK that pulls AMD's nightly TheRock build for a per-host AMDGPU_TARGETS. Coexists with the /usr ROCm above; an nvchecker regex source on AMD's CDN tracks new nightlies.

HyperSpy / 4D-STEM electron-microscopy stack

A full HyperSpy ecosystem that is not in ::gentoo:

hyperspy, hyperspyui, hyperspy-gui-traitsui, hyperspy-gui-ipywidgets, rosettasciio, emdfile, ncempy, exspy, atomap, pyxem, py4dstem.

Packaging follows upstream's split into a core (hyperspy) plus GUI backends and per-domain extensions (exspy for EELS/EDS, atomap for atomic-column analysis, pyxem / py4dstem for 4D-STEM, ncempy/emdfile/rosettasciio for I/O).

SANS / SAXS / XAFS analysis

  • sci-physics/mantid — SANS reduction and analysis. Installs under /opt/mantid and keeps building against the current ::gentoo by carrying a few local deps (see Qt5 revivals below).
  • sci-physics/sasview + dev-python/sasmodels
    • dev-python/bumps + dev-python/periodictable — SAS modeling and fitting.
  • sci-libs/ausaxs + dev-python/pyausaxs — AUSAXS solvent-scattering calculator and its Python bindings.
  • sci-physics/xraylarch — XAFS analysis; modern replacement for the discontinued ifeffit.
  • sci-physics/demeter — classic Athena/Artemis XAFS GUIs (Perl).

DeaDBeeF plugin collection

Twenty-six media-plugins/deadbeef-* packages, covering audio format support (opus, vgmstream, vfs-rar, archive-reader, bs2b), visualization (spectrogram, musical-spectrum, vu-meter, dr-meter, waveform-seekbar), playback/session control (playback-order, playback-status, headerbar, quick-search, rating, replaygain-control), file browsing (fb, bookmark-manager), desktop integration (gnome, statusnotifier, discord-presence) and output plumbing (jack, pulse2, stereo-widener, copy-info, customizable-toolbar).

Micromagnetism

sci-physics/mumax (GPU finite-difference, Go + CUDA), sci-physics/oommf (Tcl/Tk reference implementation), and sci-physics/vampire (atomistic spin dynamics).

Design choices

Python 2 preservation

::gentoo removed Python 2 support in 2024. sci-visualization/gwyddion 2.x ships pygwy, Python 2 bindings used by user analysis scripts; Gwyddion 3's GI bindings don't yet cover everything pygwy exposes, so those scripts still need a py2 runtime. This overlay vendors a small Python 2 surface to keep them working:

  • Locally-vendored eclasses in eclass/: distutils-r1_py2, python-r1_py2, python-single-r1_py2, python-utils-r1_py2. Inheriting one of these is the signal that a package is intentionally pinned to py2.
  • py2 forks of core libs under dev-python/*-python2: numpy-python2, certifi-python2, setuptools-python2, setuptools_scm-python2, pycairo-python2. Named distinctly so they can coexist with the py3 versions from ::gentoo.
  • py2-only legacy packages kept as-is: pygobject-2.28.6, pygtk-2.24.0, unittest-or-fail.

Expected pkgcheck warnings from this corner (UnderscoreInUseFlag, PythonMismatchedPackageName, RequiredUseDefaults) are suppressed globally in metadata/pkgcheck.conf with a comment explaining why.

Qt5 revival mirror

::gentoo last-rited the entire dev-qt:5 set on 2026-05-15 (bug #948836) and started treecleaning Qt5 consumers (dev-python/pyqt5 went 2026-05-21). sci-physics/mantid and a few other consumers will need Qt5 through 2026 at minimum, so this overlay carries the full slot:5 set at v5.15.19-lts-lgpl with the KDE Qt5 Patch Collection applied via the local qt5-build.eclass.

  • 23 dev-qt/* packages at 5.15.19linguist-tools, qtconcurrent, qtcore, qtdbus, qtdeclarative, qtgraphicaleffects, qtgui, qthelp, qtmultimedia, qtnetwork, qtopengl, qtprintsupport, qtquickcontrols, qtquickcontrols2, qtsql, qtsvg, qttest, qttranslations, qtwayland, qtwebchannel, qtwidgets, qtx11extras, qtxml. All keyworded ~arch (qtwebchannel limited to ~amd64 ~x86 per upstream's narrower keyword history). dev-qt/qthelp and dev-qt/qtwebchannel keep their pre-import 5.15.18 ebuilds alongside; the other 21 ship 5.15.19 only.
  • dev-python/pyqt5 + dev-python/pyqt5-sip — revived at PyPI-latest after ::gentoo's treeclean.
  • x11-libs/qscintilla-2.14.1-r1 (the last Qt5-compatible slot), with =x11-libs/qscintilla-2.14.1-r2 (Qt6-only) masked in profiles/package.mask.
  • KDE Qt5 Patch Collection bundles mirrored to extra-stuff as signed-tag-pinned .tar.xz distfiles; the eclass fans the SRC_URI out across the github / codeberg / gitlab raw URLs.
  • profiles/package.unmask overrides ::gentoo's bare dev-qt/*:5 masks so these ebuilds stay installable for overlay users.

Drop the mirror once mantid finishes its Qt6 port and the other consumers follow.

Other targeted fixes kept in-tree

  • sci-libs/hdf 4.2.16 / 4.3.1 — local bumps; 4.2.16 carries a gcc 15 build fix, 4.3.1 is ahead of ::gentoo's 4.2.15-r2.
  • x11-libs/gtk+-2.24.33-r99 — gtk+:2 holdover for apps that still need it.
  • dev-python/bokeh — 2.4.2 dropped, 3.4.1 and 3.9.0 kept with the deprecated flaky test dep removed.
  • dev-python/py4dstem 0.14.18 — carries upstream PR #712 for numpy 2 compatibility.
  • dev-python/cupy 13.6.0 / 14.0.1 — ROCm USE flag dropped from 13.6.0 (cupy 13's HIP backend is incompatible with ROCm 7.x hipBLAS); cupy 14 dropped ROCm support entirely upstream.
  • Several media-plugins/deadbeef-* plugins carry patches for DeaDBeeF's modernized C API.

Also here

Repository layout and conventions

  • Thin manifests, masters = gentoo only. Every package depends on ::gentoo being enabled.
  • Profiles under profiles/ follow standard PMS layout.
  • Patches live in <category>/<package>/files/ and are applied via PATCHES=() or src_prepare().
  • Commit messages use subject + body form (72-char subject, blank line, rationale). Single-line messages only for truly trivial edits.
  • metadata/pkgcheck.conf documents which checks are suppressed and why (not just that they're suppressed).
  • CI runs pkgcheck scan on every PR and push (delta only), plus a full repo scan every three days via scheduled workflow. URL-liveness checks (pkgcheck scan --net) are not part of CI; run them locally if you change an upstream URL.
  • DocumentationCONTRIBUTING.md (house-style checklist, AI/LLM disclosure expectation), SECURITY.md (vulnerability reporting via GitHub private advisories), CODE_OF_CONDUCT.md.
  • News itemseselect news read after emerge --sync stuff surfaces GLEP-42 announcements for migrations, mask windows, and CVE-sensitive notices. Items live in metadata/news/.
  • Upstream version trackingscripts/nvchecker/ holds the generated nvchecker.toml plus a local-cron runner (run.sh) and the regenerator (generate.py). A weekly CI job at .github/workflows/nvchecker.yml runs the same config against the tree as baseline and uploads a drift artifact.

Credits

Originally created by @megabaks; see the contributors list for everyone who has contributed since. Thank you.

License

Original packaging files — ebuilds, eclasses, metadata.xml, profiles, and news items — are distributed under the GNU General Public License v2, matching ::gentoo's per-file header convention and its Copyright Policy (GLEP 76).

Patches that modify upstream code are derivative works of it and carry that code's own license, as do the upstream sources themselves; the applicable license is the one declared in each ebuild's LICENSE variable — e.g. the dev-python/py4dstem numpy-2 patch is GPL-3 and the media-libs/opencv patches are Apache-2.0, not GPL-2. This mirrors GLEP 76's Certificate of Origin, under which a contribution "based upon previous work" is submitted "under the same free software license" as that prior work.