Table of Contents

Unix/Linux Prerequisites

Building

You probably need or want to build Synchronet for your Unix/Linux system from source code and you will need the following prerequisites installed first:

Required

Required Component Files Debian Package Red Hat Package FreeBSD Port/Package
GNU make gmake or make make make devel/gmake
GNU C/C++ Compiler or Clang C/C++ Compiler gcc and g++ or clang and clang++ g++ gcc Part of system
System C library header files errno.h linux-libc-dev glibc-headers Part of system
libarchive libarchive.so and archive.h libarchive-dev libarchive-devel Part of system
ncurses library and headers libncurses.so and ncurses.h or curses.h libncursesw5-dev ncurses-devel Part of system
Netscape Portable Runtime Library libnspr4.so and nspr.h libnspr4-dev nspr-devel devel/nspr
Perl perl perl lang/perl5.14 (version subject to change)
Python python python3 python lang/python
pkgconf pkg-config pkg-config pkgconfig devel/pkgconf
unzip unzip zip unzip archivers/unzip
patch (for non-x86 platforms) patch patch patch

It's possible to build Synchronet, but potentially more difficult, if you don't have the following components on your system:

Recommended Component Files Debian Package FreeBSD port/package Alternative
Git git git devel/git ftp, wget, curl
Capabilities Library (Linux) libcap.so and sys/capability.h libcap-dev Not available setcap
GNU Debugger gdb gdb Part of system
systemd library (for systemd integration) libsystemd.so and headers libsystemd-dev N/A
MQTT library libmosquitto.so and headers libmosquitto-dev net/mosquitto
Xorg Xlib.so and headers xorg-dev x11/xorg
SDL 2 libsdl.so and headers libsdl2-dev devel/sdl2
GTK+ libraries and headers libgtk-3-dev x11-toolkits/gtk30
GTK+ User Interface Builder (GLADE) libraries and headers libglade2-dev devel/libglade2
GNU Wget wget wget ftp/wget

3rd Party Programs

Some 3rd party executables may be utilized while running a Synchronet BBS:

Optional

Optional Component Files Debian Package FreeBSD port/package Comments
lrzsz rz and sz lrzsz comms/lrzsz Use sexyz instead
G-Kermit gkermit gkermit comms/gkermit
Network tools netstat, ifconfig net-tools iproute2 package contains newer/alternative tools (e.g. ss, ip)

Install

Debian/Ubuntu Linux

The following shell command-line/script file1) can be used to install the required and recommended packages on Debian-based Linux distros (e.g. Ubuntu):

install-sbbs-deps.sh
  sudo apt install build-essential perl zip git gdb libarchive-dev libncursesw5-dev libnspr4-dev libmosquitto-dev libsystemd-dev libcap-dev xorg-dev libsdl2-dev libgtk-3-dev libglade2-dev python3 python-is-python3 lrzsz gkermit

CentOS 7

To be able to use Mosquitto for MQTT, you will need to add the EPEL repo. Execute the following command as root:

yum -y install epel-release

Now install the development tools:

yum group install "Development Tools"

and finally the rest of the prerequisite packages

yum install libarchive-devel nspr-devel ncurses-devel libcap-devel systemd-devel xorg-x11-server-devel SDL-devel lrzsz gkermit mosquitto-devel

(this is a work in progress)

MacOS

After installing Homebrew:

brew install pkgconf nspr libarchive sdl2

See Also

1)
made executable with chmod +x