EvoX Genesis
EvoX Genesis turns a high-level software objective into a persistent recursive software world: finite-lived agents recursively develop software, while only accepted consequences persist across develop
翻譯準備中
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Automated APT repository for the Odio ecosystem, served via GitHub Pages.
| Package | Source |
|---|---|
odio-api | b0bbywan/go-odio-api |
odioctl | b0bbywan/odioctl |
mpd-discplayer | b0bbywan/go-mpd-discplayer |
spotifyd | b0bbywan/spotifyd |
mympd | b0bbywan/odio-mympd (build of upstream jcorporation/myMPD) |
qbzd | b0bbywan/odio-qbz (daemon-only build of upstream vicrodh/qbz) |
mpd2mpris | b0bbywan/mpd2mpris (formerly mpDris2) — tracks latest |
mpdris2 | b0bbywan/mpd2mpris pinned at v0.11.1 (last release shipping mpdris2_*.deb) so apt install mpdris2 keeps working |
snapclientmpris | b0bbywan/snapclientmpris |
odio-kiosk | b0bbywan/odio-framebuffer-ui (kiosk build of upstream e1z0/Framebuffer-browser, amd64/arm64 only) |
upmpdcli, libupnpp17, libnpupnp13, upmpdcli-* plugins | b0bbywan/odio-upmpdcli (mirror of the upstream trixie builds from lesbonscomptes.com) |
# Add GPG key
curl -fsSL https://apt.odio.love/key.gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/odio.gpg
# Add repository
echo "deb [signed-by=/usr/share/keyrings/odio.gpg] https://apt.odio.love stable main" \
| sudo tee /etc/apt/sources.list.d/odio.list
# Install
sudo apt update
sudo apt install odio-api mpd-discplayer spotifyd mympd mpd2mpris
# Add testing repo (after adding the GPG key above)
echo "deb [signed-by=/usr/share/keyrings/odio.gpg] https://apt.odio.love testing main" \
| sudo tee /etc/apt/sources.list.d/odio-testing.list
sudo apt update
sudo apt install odio-api
Tags containing -rc, -beta, or -alpha go to testing only. Final releases go to stable, and to testing too unless a newer prerelease is there, so testing never lags stable.
Rename note:
mpDris2was renamed tompd2mpris. New installs should usempd2mpris; thempdris2package stays in the repo (pinned atv0.11.1, the last release shippingmpdris2_*.deb) so existingapt install mpdris2setups keep resolving. The two carry different package names, so both coexist.
go-odio-api, odioctl, go-mpd-discplayer, spotifyd, odio-mympd, odio-qbz, mpd2mpris, or odio-framebuffer-ui) publishes a GitHub Release with .deb artifactsrepository_dispatch on this repo.deb from each source project's latest stable tag (stable) and newest tag, final or prerelease (testing), skipping any release already fetched in a previous run (a cached debs/ keyed on the resolved versions)reprepro builds the APT repository metadata for both stable and testing suitesA scheduled rebuild (Monday and Thursday 04:00 UTC) catches any missed releases and keeps the .deb cache warm (GitHub evicts caches after 7 days without access). Thanks to the cache, a rebuild with no new releases re-downloads nothing — keeping source projects' GitHub download counters honest. No binaries stored in git — source projects remain the single source of truth.
# Generate a key (no passphrase for CI)
gpg --batch --gen-key <<EOF
%no-protection
Key-Type: RSA
Key-Length: 4096
Name-Real: Odio APT Repository
Name-Email: [email protected]
Expire-Date: 2y
%commit
EOF
# Export private key → GitHub secret GPG_PRIVATE_KEY
gpg --armor --export-secret-keys "[email protected]"
| Secret | Where | Description |
|---|---|---|
GPG_PRIVATE_KEY | apt-repo | GPG private key for signing |
APT_REPO_TOKEN | go-odio-api, odioctl, go-mpd-discplayer, spotifyd, odio-mympd, odio-qbz, mpd2mpris, odio-framebuffer-ui | PAT with repo scope to trigger dispatch |
In apt-repo → Settings → Pages → Source: GitHub Actions.
Add the job from trigger-snippet.yml to the release workflow of each source project.
gh workflow run update-repo.yml
Or with specific versions (any subset of inputs):
gh workflow run update-repo.yml \
-f odio_version=v0.9.0 \
-f odioctl_version=v0.1.0 \
-f discplayer_version=v0.8.0 \
-f spotifyd_version=v0.3.5 \
-f mympd_version=v25.0.1 \
-f qbzd_version=v2.0.2 \
-f mpd2mpris_version=v0.12.0 \
-f fbrowser_version=v1.0.0+git20260210.4213a69
If a manually supplied version contains -rc, -beta, or -alpha, it is routed to testing and the latest stable for that package is kept in stable.
The repository-build logic lives in scripts/build-apt-repo.sh (called by the workflow):
./scripts/build-apt-repo.sh configure --gpg-key-id "$GPG_KEY_ID"
./scripts/build-apt-repo.sh resolve [--odio-version vX.Y.Z ...] >> "$GITHUB_ENV"
./scripts/build-apt-repo.sh download
./scripts/build-apt-repo.sh build --gpg-key-id "$GPG_KEY_ID"
Run ./scripts/build-apt-repo.sh --help for full subcommand documentation.
BSD 2-Clause — see LICENSE.