▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒████████▓░▒▒▒▒▒▒▒▒▒▒▒▒▒▒██▓░██▓░██████▓░▒▒██████▓░▒▒▒▒██████▓░▒▒▒▒
▒▒▒▒██▓░▒▒▒▒▒▒████▓░▒▒▒▒██████▓░▒▒▒▒██▓░▒▒██▓░██▓░▒▒██▓░██▓░▒▒▒▒▒▒▒▒▒▒
▒▒▒▒██████▓░████████▓░██▓░▒▒██▓░██▓░██████▓░▒▒██████▓░▒▒▒▒████▓░▒▒▒▒▒▒
▒▒▒▒██▓░▒▒▒▒██▓░▒▒▒▒▒▒██▓░▒▒██▓░██▓░██▓░▒▒██▓░██▓░▒▒██▓░▒▒▒▒▒▒██▓░▒▒▒▒
▒▒▒▒██▓░▒▒▒▒▒▒██████▓░▒▒██████▓░██▓░██████▓░▒▒██████▓░▒▒██████▓░▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒ You are not expected to understand this. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

https://git.freespeechextremist.com/gitweb/?p=fedibbs

FediBBS is a small program designed to provide a very simple, low-latency, text
interface to fedi servers that either are Pleroma or that look enough like it.
The degree of success at actually achieving this goal is subjective.

I had been meaning to write this (because I am the only person still running a
Pleroma server that includes bbs.ex and because I wanted to test Revolver
without loading the entire damn JS interface) and was more or less pushed into
it by CVE-2025-32433.

Instead of attempting to speak the ssh protocol and manage keys and auth, the
program is transport-agnostic: it uses argv and stdin/stdout.  It is patterned
after gitolite (https://github.com/sitaramc/gitolite).  This allows you to
deploy it using any protocol that can deal with text streams.  So, although it
works over ssh, it also works standalone or over whatever other protocol.  If
you don't care about sending passwords in cleartext over the net, this software
doesn't care, either:  put it behind a telnet server or aux/listen1 or netcat
or inetd or whatever.  (Bad admins get owned.)  Use stunnel, whatever.

- Build/install

Builds on Plan 9:

	% mk # Builds for current Plan 9 system
	% mk bin/amd64/fedibbs # Builds amd64 target
	% mk linux # Builds amd64/arm64/riscv64 Linux targets

Builds on Linux if you have mk (available via Inferno or P9P) and rc:

	$ mk linux # Just build all of them, whatever; no $objtype on Linux.
	$ mk bin/linux/arm64/fedibbs # Take a wild guess.

A best-effort Unix build script has been provided by @i@declin.eu and then
tweaked by me and I didn't even run it but it's in build-fluoride.sh.  I don't
remember the GNU tar syntax for adding a prefix so it doesn't do the same thing.

If anyone complains about the use of mk(1), please get people to stop using
CMake and ninja and all those insane build systems first.  AN ENTIRE PLAN 9 VM
IS SMALLER THAN YOUR GODDAMN BUILD SYSTEM.

It builds for BSDs and whatnot.  I haven't tested it.  It probably builds on OSX
and Windows and stuff but I don't have those and don't care about those
platforms.  Go claims it will support them, but `go tool dist list` also claims
that it supports aix/ppc64 and I don't have one of those, either.  Feel free to
try.  I don't know why you'd want to, but the official policy is to not get in
the way of hackers hacking.

Once you have a binary, see doc/install for installation instructions.

- You are not expected to understand this.

The appeal of this software is limited:  you probably don't want it.

The design of the interface is whatever made sense to me or what made it easier
to test Revolver or sometimes just because I thought it was funny.

You don't have to use this client.  I would like to actively discourage you from
using this client, because the intended audience of this client is people that
will ignore me if I tell them not to use it.  These are some fine clients if you
want a client that is actually good:

	* bloat:  https://git.freesoftwareextremist.com/bloat/
	* Weird FSE bloat:  https://git.freespeechextremist.com/gitweb/?p=bloat
		* Go
		* Both versions of bloat work both client- and server-side on Plan 9.
	* FSE BBS interface:  https://git.freespeechextremist.com/gitweb/?p=fse;a=blob;f=lib/pleroma/bbs/handler.ex;h=a649dbc34e9430d892274a493bacfd478a902481;hb=HEAD
		* Not standalone.
		* No longer operable on FSE itself; deactivated when
		  CVE-2025-32433 was announced.
		* At time of writing, this code does everything the BBS
		  interface used to do, so there's not a huge reason to use that.
		  But you *can*.
	* sshocial:  https://git.pleroma.social/Duponin/sshocial
		* Elixir
		* Standalone
		* Uses tokens only
	* https://git.carcosa.net/jmcbray/brutaldon
		* Python
		* Standalone
		* I haven't used it since like 2018 so I don't know.
		* It looks like it is still maintained.

- Moar docs

See doc .

Installation instructions:  doc/install
Acknowledgements:  doc/ack
Contribution guidelines:  doc/contributing

Other stuff might be in there.

- No

See doc/LICENSE for the license.  (It's just AGPLv3.) AGPLv3 compliance is easy,
because the source is embedded in the binary.  Owing to a build system hack,
it is very easy to comply with the terms of the AGPLv3.  (Breaking that hack is
considered hostile.)

I write code: any attempt to make me care about licensing or copyright
assignment beyond this paragraph will be understood as an act of aggression.
