Irssi installation instructions ------------------------------- To compile Irssi you need: - meson-0.49 build system with ninja-1.5 or greater - glib-2.32 or greater - openssl (for ssl support) - perl-5.8 or greater (for building, and optionally Perl scripts) - terminfo or ncurses (for text frontend) For most people, this should work just fine: meson Build ninja -C Build su ninja -C Build install For the moment, autotools is also supported: ./autogen.sh (for people who just cloned the repository) ./configure (if this script already exists, skip ./autogen.sh) make su make install (not _really_ required except for perl support) configure options These options can be given to meson or ./configure. The first syntax is for meson, the 2nd for ./configure For a complete list of options, run meson configure / ./configure --help --prefix Specifies the path where Irssi will be installed. YES, you can install Irssi WITHOUT ROOT permissions by using --prefix=/home/dir -Dwith-proxy=yes / --with-proxy Build the Irssi proxy (see startup-HOWTO). -Dwith-perl=[yes|no] / --with-perl=[yes|no|module] Enable Perl support yes enable builtin (default) no disable module enable as module -Dwith-perl-lib=[site|vendor|DIR] / --with-perl-lib=[site|vendor|DIR] Specify installation dir for Perl libraries site install in dir for site-specific modules (default) vendor install in dir for vendor-specific modules DIR install in DIR [N/A] / --with-socks Build with socks library -Dwith-bot=yes / --with-bot Build irssi-bot -Dwithout-textui=yes / --without-textui Build without text frontend If anything is in non-standard path, you can just give the paths in the -Dc_args and -Dc_link_args options variable, eg.: meson Build -Dc_args='-I/opt/openssl/include' -Dc_link_args='-L/opt/openssl/lib' Perl problems ------------- Perl support generates most of the problems. There's quite a many things that can go wrong: - Compiling fails if you compile irssi with GCC in a system that has perl compiled with some other C compiler. Very common problem with non-Linux/BSD systems. You'll need to edit src/perl/*/Makefile files and remove the parameters that gcc doesn't like. Mostly you'll just need to keep the -I and -D parameters and add -fPIC. - If there's any weird crashing at startup, you might have older irssi's perl libraries installed somewhere, and you should remove those. - Dynamic libraries don't want to work with some systems, so if your system complains about some missing symbol in Irssi.so file, configure irssi with --with-perl-staticlib option (NOT same as --with-perl=static). - If configure complains that it doesn't find some perl stuff, you're probably missing libperl.so or libperl.a. In debian, you'll need to do apt-get install libperl-dev - For unprivileged home directory installations, you probably do not want to specify --with-perl-lib=(site|vendor). Instead, you can use the default perl installation target (below the irssi prefix). If you are using local::lib you can also choose to install there by specifying --with-perl-lib=$PERL_LOCAL_LIB_ROOT/lib/perl5 You can verify that the perl module is loaded and working with "/LOAD" command. It should print something like: Module Type Submodules ... perl static core fe System specific notes --------------------- Android When cross compiling Irssi for Android, you can specify the path of the cross-perl in the cross file. You may not have a cross-perl available. In that case, you will have to manually supply the required Perl arguments in the cross file. See the commented properties in the example cross file. An example cross file can be found in the docs folder. To use it, you would call: meson Build --cross-file cross-android-aarch64.txt \ --prefix /data/data/com.termux/files/usr \ --libdir lib \ -Dfhs-prefix=/data/data/com.termux/files/usr \ Cygwin Getting perl scripting to work needs a few things: - configure with --with-perl-staticlib - libperl.dll is required in linking and running irssi, it's normally located somewhere around /usr/lib/perl5/5.6.1/cygwin/CORE/libperl5_6_1.dll copy it to eg. /usr/bin/libperl.dll - -DUSEIMPORTLIB is needed to be defined while compiling src/perl directory. It doesn't hurt to be defined everywhere, so configure irssi with: CFLAGS='-DUSEIMPORTLIB' ./configure --with-perl-staticlib Apple MacOS / Darwin At the time of writing, meson has an open issue with correctly linking libraries on macos. See docs/meson-macos-ar.txt for a workaround.