1
0
mirror of https://github.com/irssi/irssi.git synced 2024-12-04 14:46:39 -05:00
Go to file
Rodrigo Rebello a720c3b5ef Get back to using pkg-config to check for OpenSSL
Commit 6300dfec7 removed the option to disable SSL support from the
configure script since it became a requirement, but it also removed the
use of pkg-config for finding the OpenSSL library and its dependencies.

This had the unfortunate consequence of breaking the correct detection
of library flags in many static linking scenarios. In some cases, for
example, OpenSSL might have been built with zlib, which requires `-lz`
to be passed to the linker when doing a static link of the irssi
executable. Thus, pkg-config becomes an invaluable tool in such
situations, since no guessing work is needed as the OpenSSL .pc file
provides all the necessary flags.

So, this commit re-inserts the PKG_CHECK_MODULES macro in the configure
script when looking for OpenSSL. The test using AC_CHECK_LIB remains,
but only as a last resort in case the one using pkg-config fails.

Also, because the macro AM_PATH_GLIB_2_0 contains an unconditional call
to PKG_PROG_PKG_CONFIG, the OpenSSL checks are moved so that they come
after the Glib ones in order to avoid doubly checking for the pkg-config
binary (PKG_CHECK_MODULES skips that check if it has been performed
before, but PKG_PROG_PKG_CONFIG does not).
2017-03-20 16:09:43 -03:00
docs Do not alias /server <hostname> to /server connect <hostname> 2017-02-14 23:02:05 +01:00
m4 Fix glib-2.0.m4 so that $PKG_CONFIG doesn't break configure script 2017-01-16 13:04:54 -05:00
scripts Merge pull request #624 from ailin-nemui/mail_pl 2017-02-03 20:29:02 +01:00
src up abi ver 2017-03-14 09:54:28 +01:00
.gitattributes Add .gitattributes to ensure all shell scripts have LF as eol-style. 2016-01-31 20:49:59 +02:00
.gitignore Add frontend for fuzzing 2017-01-07 20:01:07 -05:00
.travis.yml test make dist in travis 2016-05-18 16:50:41 +02:00
AUTHORS Add myself to the core team members 2016-12-22 16:17:43 +01:00
autogen.sh sync docs 2016-02-08 21:18:04 +01:00
colorless.theme Make themes' docs more consistent. 2017-02-05 01:04:03 +01:00
configure.ac Get back to using pkg-config to check for OpenSSL 2017-03-20 16:09:43 -03:00
COPYING Update FSF address. 2007-05-08 17:51:51 +00:00
default.theme Make themes' docs more consistent. 2017-02-05 01:04:03 +01:00
file2header.sh internal default.theme is used if it isn't found anywhere 2000-12-02 02:01:51 +00:00
INSTALL update INSTALL requirement: terminfo or ncurses for text frontend 2016-10-05 01:01:25 +02:00
irssi-config.in Restore irssi-config, bug #537. 2007-10-15 09:34:57 +00:00
irssi-icon.png New icon by ditCh. 2008-03-04 17:46:11 +00:00
irssi-version.sh Undefine PACKAGE_VERSION before overwriting it. 2015-09-20 23:02:51 +02:00
irssi.conf Use TLS by default for Freenode, IRC6, OFTC, EsperNet, EFnet, and Rizon. 2016-10-22 20:37:12 +02:00
Makefile.am Makefile.am: Add default-config.h and default-theme.h to CLEANFILES 2015-12-11 21:31:04 -03:00
NEWS tag as 1.0.2 2017-03-10 18:03:01 +01:00
README.md point out more modules in README 2014-06-30 13:18:18 +02:00
syntax.pl Improve the WINDOW help 2015-09-23 14:21:27 +02:00
TODO Add todo for gnutls. 2008-03-30 13:53:33 +00:00

Irssi

Build Status

Irssi is a modular chat client that is most commonly known for its text mode user interface, but 80% of the code isn't text mode specific. We have a working but currently unmaintained GTK2 frontend called xirssi. Irssi comes with IRC support built in, and there are third party ICB, SILC, XMPP (Jabber), PSYC and Quassel protocol modules available.

Installation

See the INSTALL file.

Features

So what's so great about Irssi? Here's a list of some features I can think of currently:

  • Optional automation - There's lots of things Irssi does for you automatically that some people like and others just hate. Things like: nick completion, creating new window for newly joined channel, creating queries when msgs/notices are received or when you send a msg, closing queries when it's been idle for some time, etc.

  • Multiserver friendy - I think Irssi has clearly the best support for handling multiple server connections. You can have as many as you want in as many ircnets as you want. Having several connections in one server works too, for example when you hit the (ircnet's) 10 channels/connection limit you can just create another connection and you hardly notice it. If connection to server is lost, Irssi tries to connect back until it's successful. Also channels you were joined before disconnection are restored, even if they're "temporarily unavailable" because of netsplits, Irssi keeps rejoining back to them. Also worth noticing - there's not that stupid "server is bound to this window, if this window gets closed the connection closes" thing that ircII based clients have.

  • Channel automation - You can specify what channels to join to immediately after connected to some server or IRC network. After joined to channel, Irssi can automatically request ops for you (or do anything, actually) from channel's bots.

  • Window content saving - Say /LAYOUT SAVE when you've put all the channels and queries to their correct place, and after restarting Irssi, the channels will be joined back into windows where they were saved.

  • Tab completing anything - You can complete lots of things with tab: nicks, commands, command -options, file names, settings, text format names, channels and server names. There's also an excellent /msg completion that works transparently with multiple IRC networks. Completing channel nicks is also pretty intelligent, it first goes through the people who have talked to you recently, then the people who have talked to anyone recently and only then it fallbacks to rest of the nicks. You can also complete a set of words you've specified, for example homepage changes it to your actual home page URL.

  • Excellent logging - You can log any way you want and as easily or hard as you want. With autologging Irssi logs everything to specified directory, one file per channel/nick. ircII style /WINDOW LOG ON is also supported. There's also the "hard way" of logging - /LOG command which lets you specify exactly what you wish to log and where. Log rotating is supported with all the different logging methods, you can specify how often you want it to rotate and what kind of time stamp to use.

  • Excellent ignoring - You can most probably ignore anything any way you want. Nick masks, words, regular expressions. You can add exceptions to ignores. You can ignore other people's replies in channels to nicks you have ignored. You can also specify that the specific ignores work only in specific channel(s).

  • Lastlog and scrollback handling - /LASTLOG command has some new features: -new option checks only lines that came since you last did /LASTLOG command, -away option checks new lines since you last went away. Regular expression matches work also, of course. Going to some wanted place at scrollback has always been hard with non-GUI clients. A search command that jumps around in scrollback in GUI-style is still missing from Irssi, but there's something that's almost as good as it. /LASTLOG always shows timestamps when the line was printed, even if you didn't have timestamps on. Now doing /SB GOTO jumps directly to the position in scrollback you wanted. Great feature when you want to browse a bit of the discussion what happened when someone said your name (as seen in awaylog) or topic was changed (/last -topics)

Files

  • The docs/ directory contains several documents:
    • startup-HOWTO.txt - new users should read this
    • manual.txt - manual I started writing but didn't get it very far :)
    • perl.txt - Perl scripting help
    • formats.txt - How to use colors, etc. with irssi
    • faq.txt - Frequently Asked Questions
    • special_vars.txt - some predefined $variables you can use with irssi

Bugs / Suggestions

See the TODO file, http://bugs.irssi.org and the GitHub issues if it is already listed in there; if not, open an issue on GitHub or send a mail to staff@irssi.org.

You can also contact the Irssi developers in #irssi on freenode.