Code Monkey home page Code Monkey logo

WWIV BBS

WWIV is compiled with the following compilers:

  • MS Visual C++ 2019 Community Edition.
  • GCC 8.3 (or later) on Linux (tested on Debian10, Ubuntu 20.04, Centos7 with SCL/GCC-8)
  • CMake 3.18 or newer

Building WWIV BBS


We prefer contributors to FORK wwivbbs repositories to their account and work from there.

Building on Windows

Installing Git

You will need Git installed. You can use the GitHub Desktop GUI, but it's also easy to use the command line tool directly. You'll need to download Git and install it. Make sure the git command is in your PATH.

If you are using GitHub Desktop, this is likely in the folder: "Documents\GitHub\WWIV". Otherwise just create a directory and clone your fork. You can follow instructions that are written by GitHub Here. Just make sure that when you clone the repo, you have "Recurse Submodules" specified in the tool, or using --recurse-submodules on the command line.

Download and Install Visual Studio

WWIV is compiled with the VS2019 compiler for windows. You can download Microsoft Visual Studio 2019 Community

Choose to install the Desktop development with C++ workload. You also may want to optionally install the following "Individual Components":

   Git For Windows (Only if you do not have this already)
   GitHub extension for Visual Studio

Build WWIV (Windows)

  • If you cloned a git repository for your fork of WWIV, then select File then Open and choose Folder.

  • If you are using the GitHub for Windows extension, then from the Visual Studio IDE, select File and then Open from Source Control On the bottom, you should see your local GIT repositories already. Above that you will see Login to GitHub, do that.

  • Now in your Local repositories (Documents\GitHub\WWIV), open the folder WWIV in Visual Studio. It should recognize the CMake build and be able to build WWIV.

  • When VS says "READY" on the bottom, go to Build on the menu and select Build Solution(F7). If you have any build errors, run Build one more time and see if that resolves itself as there can be timing issues on some machines.

  • You select whether or not you are building DEBUG or RELEASE on the toolbar. Those binaries and other built files will be places in a \debug and \release folder along side your github source files. ex: Documents\GitHub\WWIV\debug or Documents\GitHub\WWIV\release.

Building on Linux

This only builds the binaries, it does NOT include the supporting files. Please follow the Linux Installation instructions under Steps to install the software for first installing the base system.

** NOTE:** Do these steps as a non-root user; your BBS user would be the easiest from a file permissions perspective later on. root should never be used to compile binaries.

Install pre-requisite software

Package Comments
git to grab the source code for compiling
ncurses ncurses-devel, libncurses5-dev, etc depending on your distro
zlib1g-dev or zlib-dev depending on your distro
cmake 3.18 or later (3.22 or later if using arm64 or aarch64)
make for cryptlib
ninja-build 1.8 or later, earlier versions probably work too
g++ 8.3.0 or later (easiest to install via build-essential on debian/ubuntu)

If you are on debian or ubuntu, you can use the /builds/linux/install-prereqs.sh script to ensure that the right software is installed. This command should be executed as root (using sudo)

WWIV Binaries

Here's the list of binaries that will be built in the build directory:

  • bbs/bbs
  • network/network
  • networkb/networkb
  • networkc/networkc
  • networkf/networkf
  • networkt/networkt
  • network1/network1
  • network2/network2
  • network3/network3
  • wwivconfig/wwivconfig
  • wwivd/wwivd
  • wwivutil/wwivutil

Getting the source from GitHub

If you plan to have an active repo, we prefer contributors to FORK WWIVBBS repositories to their account and work from there.

  • Fork, then clone your fork

    # Create a directory for your fork's clone.
    mkdir git
    chdir git
    # Clone your fork into the current directory (git).
    # Use your GitHub username instead of <em>YOUR-USERNAME</em>
    git clone --recurse-submodules -j8 https://github.com/<em>YOUR-USERNAME</em>/wwiv.git
  • Navigate to wwiv

Compiling WWIV

Now change directory to the wwiv directory where you cloned the repository and run the following:

mkdir _build
cd _build 
../cmake-config.sh 
cmake --build .

Copy all of the files newly built, or symlinks to them from your WWIV base install i.e. in /opt/wwiv/ (assuming the source is in $HOME/git/wwiv now.)

 # This should be done as the wwiv user who has the source code.
 cd /opt/wwiv
 ln -s $HOME/git/wwiv/builds/tools/linux/use-built-bin.sh
 
 export BUILT_BIN=$HOME/out/wwiv
 ./use-built-bin.sh ${BUILT_BIN} bbs wwivd wwivconfig network network?

Out of Source Build warning

If you get an error about needing to do an out of source build, please make sure that you are executing the cmake command from a directory that is not the same as your source code, such as a subdirectory called _b or _build or even a different directory all together. I use /home/rushfan/out/wwiv myself.

Once you get a warning about this, you will need to clean the build so you need to remove the following file and directory:

  • CMakeFiles
  • CMakeCache.txt

Building on ChromeOS/ChromeBook

  • Tested successfully on

    • ChromeOS versions 99.x.x and higher
    • CPU/Arch 64bit (i3, i5, aarch64, mediatek arm64)
    • 4GB+ Memory
  • Tested un-successful on (Was unable to get build tools installed)

    • ChromeOS version below 99.x.x
    • CPU/Arch 32bit
    • Under 4GB
  • Notes:

    • Not really for production, but great for developing and testing.
    • Use Linux build directions
    • Telnet/SSH/Status Ports must be above 10,000 due to limitations on ChromeOS
    • If running on arm64, or aarch64 CPU, use cmake 3.22.x or higher
    • Recommend installing under your primary user instead of "wwiv" for simplicity sake. (Again not recommended for production use)
      • If you choose to use a new user be sure to restart the entire linux sub-system after install.

Installation and SysOp Instructions

All the installation and SysOp administration information you need is in the WWIV Documentation


Get Involved

If you want to help out with WWIV BBS:

Rushfan's Projects

8086tiny icon 8086tiny

8086tiny interpreter by Adrian Cable, taken from http://www.megalith.co.uk/8086tiny/

arch icon arch

[mirror] architecture code

dosbox icon dosbox

DOSBOX fork for WWIV (or any) BBS

leech icon leech

WWIV 3.21 chain leech game ported to TP7

libcpu icon libcpu

"libcpu" is an open source library that emulates several CPU architectures

multimail icon multimail

Offline reader for QWK, Blue Wave, etc. Multi-platform, curses-based.

my_basic icon my_basic

Easy extendable lightweight BASIC script interpreter written with C. It's able to use it as a standalone interpreter or integrate it with existing projects. It fits well with Workstation, PC, Tablet, Pad, Mobile Phone, PDA, Video Game Console, Raspberry Pi, Intel Edison, Arduino and even MCU; totally portable to a dozen of operating systems.

mysticbbs icon mysticbbs

Clone of Mystic BBS 1.10a30, the last open source version

opencppcoverage icon opencppcoverage

OpenCppCoverage is an open source code coverage tool for C++ under Windows.

os2 icon os2

Things needed while using OS/2

pdcurses icon pdcurses

Public Domain Curses - a curses library for environments that don't fit the termcap/terminfo model.

proboard---2.22 icon proboard---2.22

Official ProBoard 2.22 created by Lawrence Stockman and the ProBoard NinJa Team.

proboard-lib-files icon proboard-lib-files

LIB - Files for ProBoard! filename(#).LIB Are duplcates and you can use them instead of the original by just simply erasing the (#) from the end of the file name. I included all of them for all us just in case an older or newer one was needed for the version of ProBoard you're compiling! Thanks, John Riley

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.