# HG changeset patch # User David Demelier # Date 1634737518 -7200 # Node ID a09d4c9b85183e1bc22189b5898b83942ae7ef48 # Parent 02c1b78b9b58fe309d2bf2f6970ab9efeb7ed506 misc: improve meta files diff -r 02c1b78b9b58 -r a09d4c9b8518 .gitignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.gitignore Wed Oct 20 15:45:18 2021 +0200 @@ -0,0 +1,10 @@ +# vim/emacs specific. +tags +tags.lock +tags.temp +cscope.out +.swp +.swo + +# macOS specific. +.DS_Store diff -r 02c1b78b9b58 -r a09d4c9b8518 .hgignore --- a/.hgignore Wed Oct 20 15:07:37 2021 +0200 +++ b/.hgignore Wed Oct 20 15:45:18 2021 +0200 @@ -1,6 +1,3 @@ -# CMake files. -^build - # vim/emacs specific. ^tags$ ^tags\.lock$ diff -r 02c1b78b9b58 -r a09d4c9b8518 INSTALL.md --- a/INSTALL.md Wed Oct 20 15:07:37 2021 +0200 +++ b/INSTALL.md Wed Oct 20 15:45:18 2021 +0200 @@ -9,8 +9,8 @@ Build dependencies: - C99 and few features from C11 (stdatomics.h, stdnoreturn.h). -- [Bison][] and [Flex][]: For configuration files. -- [GNU Make][]: The GNU make utility. +- [Bison][] and [Flex][]: for configuration files. +- [CMake][]: the cross platform build utility. Optional runtime dependencies: @@ -22,63 +22,48 @@ This is the quick way to install irccd. - tar xvzf irccd-x.y.z-tar.xz - cd irccd-x.y.z - make - sudo make install - -### Installing plugins - -And to install plugins you must build and use `plugins` and `install-plugins` -targets: + tar xvzf irccd-x.y.z-tar.xz + cmake -S irccd-x.y.z -B build + cmake --build build --target all + sudo cmake --build build --target install - make plugins - sudo make install-plugins +### Disabling plugins -Alternatively you can build and install plugins manually using `plugin-NAME` and -`install-plugin-NAME` to install only wanted plugins. +For every plugin, an option `IRCCD_WITH_PLUGIN_` is presented and set to +on by default. Substitute `` with the plugin uppercase name (e.g. `ASK`). -Example: - - make plugin-ask plugin-links - sudo make install-plugin-ask plugin-links + cmake build -DIRCCD_WITH_PLUGIN_ASK=Off ### Systemd service -A systemd service is available through the `install-systemd` target. The service -file is named `irccd.service`. +The systemd service file is installed by default if the machine is running +systemd, it's possible to force the option using `IRCCD_WITH_SYSTEMD` to `On` or +`Off`. -Options -------- + cmake build -DIRCCD_WITH_SYSTEMD=Off -The following options are available at build time (make sure to run `make clean` -when you change options). +### Other options + +The following options are available: -- `SSL`: set to 1 or 0 to enable/disable OpenSSL (default: 1). -- `JS`: set to 1 or 0 to disable Javascript (default: 1). -- `DEBUG`: set to 1 or 0 to build with debug symbols and optimizations disabled - (default: 0). -- `USER`: user to use for transport and init scripts (default: nobody). -- `GROUP`: group to use for transport and init scripts (default: nobody). +- `IRCCD_WITH_MAN`: disable installation of manpages. +- `IRCCD_WITH_JS`: disable Javascript support (and all Javascript plugins). +- `IRCCD_WITH_SSL`: disable OpenSSL support. +- `IRCCD_WITH_TESTS`: disable building of tests. +- `IRCCD_WITH_EXAMPLES`: disable plugin templates. -You can tweak the installation directories by changing the following variables -(note: all paths must be absolute): +The following options control installation directories. -- `PREFIX`: root directory for installing (default: /usr/local). -- `BINDIR`: binaries (default: ${PREFIX}/bin). -- `ETCDIR`: config files (default: ${PREFIX}/etc). -- `LIBDIR`: libraries (default: ${PREFIX}/lib). -- `INCDIR`: header files (default: ${PREFIX}/include). -- `SHAREDIR`: data files (default: ${PREFIX}/share). -- `MANDIR`: path to manual pages (default: ${PREFIX}/share/man). -- `VARDIR`: local cache files (default: ${PREFIX}/var). - -For any options, make sure to specify them for any make targets (e.g. `install`) -because they can be translated at install time too. +- `CMAKE_INSTALL_PREFIX`: root directory for installing (default: /usr/local). +- `CMAKE_INSTALL_BINDIR`: binaries (default: ${CMAKE_INSTALL_PREFIX}/bin). +- `CMAKE_INSTALL_SYSCONFDIR`: config files (default: ${CMAKE_INSTALL_PREFIX}/etc). +- `CMAKE_INSTALL_LIBDIR`: libraries (default: ${CMAKE_INSTALL_PREFIX}/lib). +- `CMAKE_INSTALL_INCLUDEDIR`: header files (default: ${CMAKE_INSTALL_PREFIX}/include). +- `CMAKE_INSTALL_SHAREDIR`: data files (default: ${CMAKE_INSTALL_PREFIX}/share). +- `CMAKE_INSTALL_MANDIR`: path to manual pages (default: ${CMAKE_INSTALL_PREFIX}/share/man). [Bison]: https://www.gnu.org/software/bison -[GNU Make]: http://www.cmake.org +[CMake]: http://www.cmake.org [CURL]: https://curl.se [Flex]: https://github.com/westes/flex [OpenSSL]: http://openssl.org -[libbsd]: https://libbsd.freedesktop.org/wiki diff -r 02c1b78b9b58 -r a09d4c9b8518 README.md --- a/README.md Wed Oct 20 15:07:37 2021 +0200 +++ b/README.md Wed Oct 20 15:45:18 2021 +0200 @@ -1,25 +1,27 @@ IRC Client Daemon ================= -IRC Client Daemon aka irccd is a full featured IRC bot written in C. It runs as -a daemon waiting for events. It's also possible to connect to more than one -server. +IRC Client Daemon aka irccd is a full featured IRC bot written in C. + +It runs as a daemon waiting for events. It's also possible to connect to more +than one server with the same instance. It is designed in mind to be simple, +fast and easy to use. -Irccd is also able to use optional Javascript plugins to do specific actions on -these events. +Irccd is also able to use optional Javascript plugins to write convenient +plugins with system sandboxing. -Irccd is also controllable via unix sockets allowing you use irccd as a message -relayer and such. +Irccd is also controllable via unix sockets or through its dedicated `irccdctl` +utility allowing you to use irccd as a message relayer and such. Features -------- +- Simple, fast, clean and lightweight, - Can use Javascript to create plugins, - Can connect to multiple servers, - Can be controlled by sockets and irccdctl, - Extremely well documented, - Clean and powerful Javascript API, -- Very fast and light. Documentation ------------- @@ -30,4 +32,4 @@ Author ------ -The irccd application was written by David Demelier +The irccd application was written by David Demelier .