Skip to content

kruton/tinyfugue

Repository files navigation

TinyFugue
=========

TinyFugue is a programmable MUD client for Unix-like systems, macOS, and
Cygwin. CMake is the authoritative build system; the top-level Makefile is a
convenience wrapper around CMake.

Requirements
------------

Required:

* CMake 3.20 or newer
* An ANSI C compiler and BSD-style select()
* PCRE 2 (8-bit)

Optional dependencies are ICU for Unicode support, OpenSSL or the GnuTLS
OpenSSL compatibility layer for TLS, a termcap-compatible library, and zlib
for MCCP.

Build and test
--------------

The convenience workflow is:

    make
    make test
    ./build/tf -L./build/tf-lib

Pass CMake settings through CMAKE_ARGS:

    make CMAKE_ARGS="-DTF_TLS=OFF -DTF_WIDECHAR=OFF"

The direct CMake workflow is:

    cmake -S . -B build -DBUILD_TESTING=ON
    cmake --build build
    ctest --test-dir build --output-on-failure

Presets are available for `default`, `debug`, `full`, `minimal`, and
`protocols` configurations:

    cmake --preset full
    cmake --build --preset full
    ctest --preset full

Run the Linux GitHub Actions matrix locally with Docker and
[act](https://github.com/nektos/act):

    make ci-local

Use `ACT_ARGS` to select one matrix entry or pass other `act` options:

    make ci-local ACT_ARGS="--matrix name:minimal"

Install
-------

    make install PREFIX=/desired/prefix

or:

    cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/desired/prefix
    cmake --build build
    cmake --install build

Packaging tools may use `DESTDIR` with the install command. The executable,
macro library, generated help index, compatibility links, change log, and man
page are installed.

Native packages
---------------

Package definitions for Debian/Ubuntu, Fedora/RHEL, Homebrew, FreeBSD, and
Cygwin are maintained in `debian/` and `packaging/`. See
`packaging/README.md` for build commands, source archive handling, and release
updates. The package workflow builds and tests each native artifact.

Configuration
-------------

`TF_WIDECHAR`, `TF_TLS`, `TF_TERMCAP`, and `TF_ZLIB` accept `AUTO`, `ON`, or
`OFF`. `AUTO` enables a feature when its dependency is available, `ON`
requires it, and `OFF` disables it.

Other notable switches include `TF_INET6`, `TF_GETADDRINFO`, `TF_HISTORY`,
`TF_PROCESS`, `TF_FLOAT`, `TF_256COLORS`, `TF_ATCP`, `TF_GMCP`,
`TF_OPTION102`, `TF_VERSIONED`, and `TF_INSTALL_SYMLINK`. Use
`cmake -S . -B build -LH` for the complete cache option list.

Runtime
-------

If the installed macro library is moved, set `TFLIBDIR` or use `tf -L/path`.
Public installations can restrict shell, file, and world operations through
commands in `local.tf`; see `/help restrict`.

TinyFugue is distributed under the GNU General Public License version 2 or
later. See COPYING.

About

Tinyfugue MUD client (tf) with UTF-8 patches for Unicode MUDs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors