man bunny

bunny

NAME

bunny: the package manager of Mwa Linux

SYNOPSIS

bunny [--root <dir>] <command> [arguments]

DESCRIPTION

bunny installs precompiled packages. It never compiles anything on your machine.

Before installing, it checks the size, the sha256 and the signature of every archive. If one check fails, nothing is installed.

A package is a plain .tar.zst archive. You can open it with tar.

COMMANDS

update
download the signed indexes of the repositories
search <pattern>
search by name or description
install <pkg>…
install packages and their dependencies
remove <pkg>…
remove packages
sysupgrade
upgrade the whole system
list [-f <pkg>]
installed packages, or the files of one
owns <path>
which package owns a file
info <pkg>
version, dependencies, description
verify [<pkg>]
check installed files against the package
rollback <pkg>
reinstall the previous version from the cache
$ doas bunny update
$ bunny search zstd
$ doas bunny install zstd
$ bunny owns /usr/bin/zstd
$ doas bunny sysupgrade

REPOSITORIES

/etc/bunny/repos.conf lists the repositories, one per line, by priority:

stable  http://pkg.mwa.dog/stable/
testing http://pkg.mwa.dog/testing/

testing gets new builds first. They move to stable after a test machine boots with them.

Only http:// is accepted. The transport proves nothing: the signatures do. bunny refuses an index older than the one it already has, so a server cannot send you back to old packages.

Browse the packages: pkg.mwa.dog.

SIGNATURES

Trusted keys are in /etc/bunny/keys/, from the mwa-keyring package. Key of 2026 (Ed25519, minisign format):

RWT0DI/j+53wchmcBUfUgxf643+lwnDT2rlqxpi51QHv8y+tv3Nb0ShN

Check an archive by hand:

$ bunny check-sig zstd-1.5.7-1-x86_64.tar.zst
$ minisign -Vm zstd-1.5.7-1-x86_64.tar.zst -P RWT0DI/j+53wchmcBUfUgxf643+lwnDT2rlqxpi51QHv8y+tv3Nb0ShN

CONFIGURATION FILES

bunny never overwrites a file in /etc that you changed. It writes the new version next to it, as <file>.bunny-new, and tells you at the end.

REPAIR

Go back to the previous version of a package (bunny keeps the last two in its cache):

$ doas bunny rollback zstd

If a broken library stops bunny from running, use bunny.static. It has no dependencies and no network, and installs from a local archive:

$ doas bunny.static install /var/cache/bunny/pkg/zstd-1.5.7-1-x86_64.tar.zst

FILES

/etc/bunny/repos.conf
repositories
/etc/bunny/keys/
trusted public keys
/var/lib/bunny/local/
installed packages, plain text
/var/lib/bunny/sync/
signed indexes
/var/cache/bunny/pkg/
downloaded archives

SEE ALSO

openrc(8), REPO(5), minisign(1)

made with <3 by dogmwa