An open API service indexing awesome lists of open source software.

https://github.com/uhlin/swirc

Lightweight terminal based ICB and IRC client
https://github.com/uhlin/swirc

internet irc irc-client linux ncurses visual-studio

Last synced: 5 months ago
JSON representation

Lightweight terminal based ICB and IRC client

Awesome Lists containing this project

README

          

# README #

![Swirc Logo](https://www.nifty-networks.net/swirc/gfx/swirc-royal-110x110.png)

[![Coverity Scan Build Status](https://scan.coverity.com/projects/18215/badge.svg)](https://scan.coverity.com/projects/uhlin-swirc)
[![CodeQL](https://github.com/uhlin/swirc/actions/workflows/codeql.yml/badge.svg)](https://github.com/uhlin/swirc/actions/workflows/codeql.yml)
[![macOS](https://github.com/uhlin/swirc/actions/workflows/macos.yml/badge.svg)](https://github.com/uhlin/swirc/actions/workflows/macos.yml)

## What is Swirc? ##

Swirc is a BSD licensed, console based and lightweight ICB and IRC
client written in C/C++, whose goals are to be portable and secure.

[Official Swirc homepage](https://www.nifty-networks.net/swirc/)

## Program options ##

usage: swirc [-46?CPRSXdipv] [-W password] [-c server[:port]] [-h hostname] [-j join] [-n nickname] [-r rl name] [-u username] [-x config]

-4 Use IPv4 addresses only
-6 Use IPv6 addresses only
-?, --help Output help
-C Do not change color definitions
-P Permanently disable SASL authentication
-R Disable TLS/SSL peer verification
-S Force TLS
-W Equal effect as flag 'p' but non-interactive
-X Disable all IRCv3 extensions
-c Connect to IRC server
-d Debug logging
-h Sets the bind host
-i Turn on Internet Citizen's Band mode
-j A comma-separated list of channels to join
-n Online nickname
-p Query for server password (for private servers)
-r Your real name
-u Your username
-v, --version Output Swirc version
-x Config file

## SAST Tools ##

[PVS-Studio](https://pvs-studio.com/en/pvs-studio/?utm_source=website&utm_medium=github&utm_campaign=open_source) - static analyzer for C, C++, C#, and Java code.

## Cloning ##

To clone the repository use [Git](https://git-scm.com).

$ git clone https://github.com/uhlin/swirc.git

## Building ##

### Framework ###

Swirc currently depends on:

* [Curl](https://curl.haxx.se/libcurl/)
* [GNOME libnotify](https://wiki.gnome.org/)
* [GNU gettext](https://www.gnu.org/software/gettext/)
* [GNU libiconv](https://www.gnu.org/software/libiconv/)
* [GNU libidn](https://www.gnu.org/software/libidn/)
* [Hunspell](https://hunspell.github.io/)
* [Ncurses](https://www.gnu.org/software/ncurses/ncurses.html)
with wide character support
* [OpenSSL toolkit](https://www.openssl.org/)

Which means that on for example a Debian GNU/Linux system you need to
install these packages before building:

# apt install gettext libcurl4-openssl-dev libhunspell-dev libidn11-dev libncursesw5-dev libssl-dev

And on Mac OS X, provided that
[Homebrew](http://brew.sh/)
is installed, issue:

$ brew install hunspell
$ brew install libressl

Prompts that begin with a hash(#) symbolizes that the command shall be
executed as root, while prompts that begin with a dollar sign ($)
symbolizes that the command shall be executed as a normal user.

#### Void Linux ####

# xbps-install -S gettext-devel hunspell-devel libcurl-devel libidn-devel libnotify-devel ncurses-devel openssl-devel

### Building for the UNIX environment ###

On the BSDs and GNU/Linux the configure script will per default
generate make definitions that expects that the C compiler
[GCC](https://gcc.gnu.org/)
is installed on your system. A make utility must also be
present. Regarding Mac OS X I suggest that you install
[Xcode](https://developer.apple.com/xcode/).
Due to certain circumstances I no longer can confirm that building for
OS X works.

$ cd /path/to/swirc
$ ./configure
$ make

#### Configuration options ####

The following options can be passed to the configure script:

- `--with-libnotify`: Enable support for desktop notifications
- `--without-libiconv`: Build without GNU libiconv
- `--without-libidn`: Build without GNU libidn
- `--without-libintl`: No internationalization

#### Install ####

1. Installing it under `/usr/local`:

$ sudo make install

2. Installing it under `/home/user` without the translations (in which
case you also should've passed `--without-libintl` to the configure
script):

$ PREFIX=/home/user make install-no-lc-msgs

### Building for Windows ###

To build Swirc for Windows you must have
[Visual Studio](http://www.visualstudio.com/).

So, fire up the command prompt for
[Visual Studio](http://www.visualstudio.com/)
where the needed tools (the compiler, etc.) are loaded into the
environment. The regular command prompt won't work. Then:

cd c:\path\to\swirc
nmake -f Makefile.vc

*Done!*

To make a distribution of Swirc use:

nmake -f Makefile.vc dist

## Cleaning ##

Examples:

$ make clean
$ nmake -f Makefile.vc clean