Skip to main content

Setting up IRC

About IRC

Internet Relay Chat was once the most popular real-time communication method that uses computer for a large spectrum of community groups. While it has largely been supplanted by more contemporarly methods for most people, IRC is still a prefered means of communication among older software projects like GCC.

The Client

As an old technology that is also very favored among programmers, IRC has many clients with different flavors, from GUI to CLI to headless. As a linux user with strong attraction to tmux, I chose weechat. Depending on your distro or OS, install your client first.

Configuring Weechat

I will be using GCC channel in OFTC server as the example.

How are we configuring this?

While Weechat has a configuration file, Weechat officially advises against using the file to configure the program behavior. Instead, it promotes `/set` dialog within the client to set the proper configuration.

Connect to server

Let's first connect to server. The `#gcc` channel is hosted at the OFTC server (irc.oftc.net). Let's connect to it with non-SSL connection first: `/connect irc.oftc.net`.

Set nick

Once connected, our goal is to setup and own a nick name. Likely, weechat is already using your login name, but if you desire a different name, or if the current name is already taken, you would need to issue `/nick NAME_HERE`. Change `NAME_HERE` with an appropriate nickname.

Register nick

Once an appropriate, free nick is chosen, let's register it so that it uniquely identifies the user. The server has a service named NickServ. Its primary job is to, as the name suggests, service nicknames. Users interact with NickServ by sending messages to it. To register our nick, send the following: `/msg NickServ REGISTER YOUR_PASSWORD_HERE YOUR@EMAIL.HERE`, replacing the password and email as appropriate. Depending on servers, there may be extra steps involved. For OFTC, I had to log into OFTC web interface, send out verification email, and verify via emailed link.

Register SSL to the nick

Adopted from OFTC site.
  • Generate cer and key file:`openssl req -nodes -newkey rsa:2048 -keyout nick.key -x509 -days 3650 -out nick.cer`
  • Generate pem file: `cat nick.cer nick.key > nick.pem`
  • Set permissions: `chmod 400 nick.pem nick.key`
  • Copy the files: `mkdir -p ~/.weechat/certs && mv nick.* ~/.weechat/certs`
  • Within Weechat, add server: `/server add OFTC irc.oftc.net/6697 -ssl -ssl_verify -autoconnect`
  • Within Weechat, add certs: `/set irc.server.OFTC.ssl_cert %h/certs/nick.pem`
  • Quit and restart Weechat
  • connect to server: `/connect OFTC`
  • Identify yourself: `/msg NickServ IDENTIFY YOUR_PASSWORD_HERE`
  • Associate Nick to Cert: `/msg nickserv cert add`
  • close everything and reconnect to server to verify connection and Nick authentication

Other nitty-tidy settings

turn on autoconnect, and give default channel to connect to for autojoin.

Other things to consider

I need to get highlights to work properly so that if anyone talks with my id, it is easy to spot when I return to the chat. I also am interested in running this headless on another server/VM. Also, the script for notify seems an interesting feature. This blog post and another post seem to provide some interesting options for scripts. This gitgist also provides a wealth of information.

Comments

Popular posts from this blog

Creating a patch for GNU GCC using Git

Overview and Target Audience The GNU GCC project followed a blend of a traditional method with contemporary git tools when it comes to contributing code, making the experience unique from some other, git-based projects. This blog post will explore different aspects of the process, helpful commands, and various scripts that would make the experience more pleasent for new contributors. While this blog aims to help new contributors get acustomed to the GNU GCC code culture and make contributing easier, it must be stressed that this is not in any way in-depth exploration of the process. This should help you put your first foot forward; the community will help you take the rest of the steps from that point on. This post also assumes the user is in a POSIX environment (e.g. Linux, FreeBSD). Git and GNU As stated in this phoronix post , GNU GCC made a full transition to git early 2020. As of this writing, the community seems to be adjusting to the new tools. GNU GCC hosts its own git serve

Debugging with GCC: GIMPLE

GCC and GIMPLE One of the very first thing GCC asks the GSoC applicants to do, even before writing the application, is to try various different debugging techniques using GCC. I was personally familiar with the basic, compile-with-g-flag-and-use-gdb method. Turns out, there's more: GIMPLE. A Simple but Non-trivial Program Problem Description The instruction asks to compile a simple but non-trivial program with some flags that generates debugging information: -O3 -S -fdump-tree-all -fdump-ipa-all -fdump-rtl-all . Because I was keep reading on ways to debug GCC just prior to the statement, I immediately thought "GCC" and tried make -j8 CXXFLAGS="-O3 -S -fdump-tree-all -fdump-ipa-all -fdump-rtl-all" . This was a mistake: turns out, GCC can't be compiled with those flags. Thankfully, GCC developers have a very active IRC channel for me to signal SOS. Resolution jakub and segher were quick to respond to my call for help. jakub: it isn't meant that y