diff options
Diffstat (limited to 'doc/misc/erc.texi')
-rw-r--r-- | doc/misc/erc.texi | 134 |
1 files changed, 107 insertions, 27 deletions
diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi index d635cac5abb..10ced678e1d 100644 --- a/doc/misc/erc.texi +++ b/doc/misc/erc.texi @@ -131,21 +131,30 @@ customize-variable @key{RET} erc-modules @key{RET}}. @node Sample Session @section Sample Session -This is an example ERC session which shows how to connect to the #emacs -channel on Freenode. Another IRC channel on Freenode that may be of -interest is #erc, which is a channel where ERC users and developers hang -out. +This is an example ERC session which shows how to connect to the +#emacs channel on Libera.Chat. Another IRC channel on Libera.Chat +that may be of interest is #erc, which is a channel where ERC users +and developers hang out. These channels used to live on the Freenode +IRC network until June 2021, when they---along with the official IRC +channels of the GNU Project, the Free Software Foundation, and many +other free software communities---relocated to the Libera.Chat network +in the aftermath of changes in governance and policies of Freenode in +May and June 2021. GNU and FSF's announcements about this are at +@uref{https://lists.gnu.org/archive/html/info-gnu/2021-06/msg00005.html}, +@uref{https://lists.gnu.org/archive/html/info-gnu/2021-06/msg00007.html}, +and +@uref{https://lists.gnu.org/archive/html/info-gnu-emacs/2021-06/msg00000.html}. @itemize @bullet -@item Connect to Freenode +@item Connect to Libera.Chat -Run @kbd{M-x erc}. Use ``chat.freenode.net'' as the IRC server, -``6667'' as the port, and choose a nickname. +Run @kbd{M-x erc}. Use ``irc.libera.chat as the IRC server, ``6667'' +as the port, and choose a nickname. @item Get used to the interface -Switch to the ``chat.freenode.net:6667'' buffer, if you're not already +Switch to the ``irc.libera.chat:6667'' buffer, if you're not already there. You will see first some messages about checking for ident, and then a bunch of other messages that describe the current IRC server. @@ -158,13 +167,13 @@ background. If the latter, switch to the ``#emacs'' buffer. You will see the channel topic and a list of the people who are currently on the channel. -@item Register your nickname with Freenode +@item Register your nickname with Libera.Chat If you would like to be able to talk with people privately on the -Freenode network, you will have to ``register'' your nickname. To do -so, switch to the ``chat.freenode.net:6667'' buffer and type ``/msg -NickServ register <password>'', replacing ``<password>'' with your -desired password. It should tell you that the operation was +Libera.Chat network, you will have to ``register'' your nickname. +To do so, switch to the ``irc.libera.chat:6667'' buffer and type +``/msg NickServ register <password>'', replacing ``<password>'' with +your desired password. It should tell you that the operation was successful. @item Talk to people in the channel @@ -514,15 +523,85 @@ Non-interactively, it takes the following keyword arguments. That is, if called with the following arguments, @var{server} and @var{full-name} will be set to those values, whereas -@code{erc-compute-port}, @code{erc-compute-nick} and -@code{erc-compute-full-name} will be invoked for the values of the other -parameters. +@code{erc-compute-port} and @code{erc-compute-nick} will be invoked +for the values of the other parameters. @example -(erc :server "chat.freenode.net" :full-name "Harry S Truman") +(erc :server "irc.libera.chat" :full-name "J. Random Hacker") @end example @end defun +To connect securely over an encrypted TLS connection, use @kbd{M-x +erc-tls}. + +@defun erc-tls +Select connection parameters and run ERC over TLS@. +Non-interactively, it takes the following keyword arguments. + +@itemize @bullet +@item @var{server} +@item @var{port} +@item @var{nick} +@item @var{password} +@item @var{full-name} +@item @var{client-certificate} +@end itemize + +That is, if called with the following arguments, @var{server} and +@var{full-name} will be set to those values, whereas +@code{erc-compute-port} and @code{erc-compute-nick} will be invoked +for the values of the other parameters, and @code{client-certificate} +will be @code{nil}. + +@example +(erc-tls :server "irc.libera.chat" :full-name "J. Random Hacker") +@end example + +To use a certificate with @code{erc-tls}, specify the optional +@var{client-certificate} keyword argument, whose value should be as +described in the documentation of @code{open-network-stream}: if +non-@code{nil}, it should either be a list where the first element is +the file name of the private key corresponding to a client certificate +and the second element is the file name of the client certificate +itself to use when connecting over TLS, or @code{t}, which means that +@code{auth-source} will be queried for the private key and the +certificate. Authenticating using a TLS client certificate is also +referred to as ``CertFP'' (Certificate Fingerprint) authentication by +various IRC networks. + +Examples of use: + +@example +(erc-tls :server "irc.libera.chat" :port 6697 + :client-certificate + '("/home/bandali/my-cert.key" + "/home/bandali/my-cert.crt")) +@end example + +@example +(erc-tls :server "irc.libera.chat" :port 6697 + :client-certificate + `(,(expand-file-name "~/cert-libera.key") + ,(expand-file-name "~/cert-libera.crt"))) +@end example + +@example +(erc-tls :server "irc.libera.chat" :port 6697 + :client-certificate t) +@end example + +In the case of @code{:client-certificate t}, you will need to add a +line like the following to your authinfo file +(e.g. @file{~/.authinfo.gpg}): + +@example +machine irc.libera.chat key /home/bandali/my-cert.key cert /home/bandali/my-cert.crt +@end example + +@xref{Help for users,,,auth, Emacs auth-source Library}, for more on the +@file{.authinfo}/@file{.netrc} backend of @code{auth-source}. +@end defun + @subheading Server @defun erc-compute-server &optional server @@ -692,11 +771,10 @@ stuff, to the current ERC buffer." (erc-send-message (concat "@{Uptime@} [" uname-output "]")))) -;; This causes ERC to connect to the Freenode network upon hitting +;; This causes ERC to connect to the Libera.Chat network upon hitting ;; C-c e f. Replace MYNICK with your IRC nick. (global-set-key "\C-cef" (lambda () (interactive) - (erc :server "chat.freenode.net" - :port "6667" + (erc :server "irc.libera.chat" :port "6667" :nick "MYNICK"))) ;; This causes ERC to connect to the IRC server on your own machine (if @@ -716,13 +794,15 @@ stuff, to the current ERC buffer." ;;; Options -;; Join the #emacs and #erc channels whenever connecting to Freenode. -(setq erc-autojoin-channels-alist '(("freenode.net" "#emacs" "#erc"))) +;; Join the #emacs and #erc channels whenever connecting to +;; Libera.Chat. +(setq erc-autojoin-channels-alist + '(("Libera.Chat" "#emacs" "#erc"))) ;; Rename server buffers to reflect the current network name instead -;; of SERVER:PORT (e.g., "freenode" instead of "chat.freenode.net:6667"). -;; This is useful when using a bouncer like ZNC where you have multiple -;; connections to the same server. +;; of SERVER:PORT (e.g., "Libera.Chat" instead of +;; "irc.libera.chat:6667"). This is useful when using a bouncer like +;; ZNC where you have multiple connections to the same server. (setq erc-rename-buffers t) ;; Interpret mIRC-style color commands in IRC chats @@ -762,7 +842,7 @@ If non, @code{nil}, this is a list of IRC networks and message types to hide, e.g.: @example -(setq erc-network-hide-list (("freenode" "JOIN" "PART" "QUIT") +(setq erc-network-hide-list (("Libera.Chat" "JOIN" "PART" "QUIT") ("OFTC" "JOIN" "PART"")) @end example @end defopt @@ -811,7 +891,7 @@ You can ask questions about using ERC on the Emacs mailing list, @uref{https://lists.gnu.org/mailman/listinfo/help-gnu-emacs}. @item -You can visit the IRC Freenode channel @samp{#emacs}. Many of the +You can visit the IRC Libera.Chat channel @samp{#emacs}. Many of the contributors are frequently around and willing to answer your questions. |