From 348b2aed0c8c3630be4c15c8e70acf7ea9c023af Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sat, 3 Jul 2021 23:39:18 -0400 Subject: [PATCH] Update IRC-related references to point to Libera.Chat Per GNU and FSF's announcements [0, 1] of moving official IRC channels to the Libera.Chat IRC network, as well as several Emacs-related channels following suit [2], update IRC-related references to reflect the migration. [0]: https://lists.gnu.org/archive/html/info-gnu/2021-06/msg00005.html [1]: https://lists.gnu.org/archive/html/info-gnu/2021-06/msg00007.html [2]: https://lists.gnu.org/archive/html/info-gnu-emacs/2021-06/msg00000.html --- doc/misc/erc.texi | 56 ++++++++++++++++++++++++---------------- doc/misc/gnus-faq.texi | 2 +- doc/misc/rcirc.texi | 41 +++++++++++++++++------------ etc/NEWS | 23 +++++++++++++++++ lisp/erc/erc-backend.el | 2 +- lisp/erc/erc-networks.el | 14 +++++++--- lisp/erc/erc-services.el | 27 +++++++++++++------ lisp/erc/erc.el | 11 ++++---- lisp/ldefs-boot.el | 2 +- lisp/net/rcirc.el | 8 +++--- lisp/org/ol-irc.el | 6 ++--- 11 files changed, 128 insertions(+), 64 deletions(-) diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi index d39613c11a9..951535fa316 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 ``irc.freenode.net'' as the IRC server, ``6667'' +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 ``irc.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,14 @@ 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 ``irc.freenode.net:6667'' buffer and type ``/msg -NickServ register '', replacing ``'' with your -desired password. It should tell you that the operation was successful. +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 '', replacing ``'' with +your desired password. It should tell you that the operation was +successful. @item Talk to people in the channel @@ -518,7 +528,7 @@ That is, if called with the following arguments, @var{server} and parameters. @example -(erc :server "irc.freenode.net" :full-name "Harry S Truman") +(erc :server "irc.libera.chat" :full-name "J. Random Hacker") @end example @end defun @@ -691,10 +701,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 "irc.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 @@ -714,13 +724,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 "irc.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 @@ -760,7 +772,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 @@ -809,7 +821,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. diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi index 96503138e56..455819745de 100644 --- a/doc/misc/gnus-faq.texi +++ b/doc/misc/gnus-faq.texi @@ -2144,7 +2144,7 @@ I need real-time help, where to find it? @subsubheading Answer -Point your IRC client to irc.freenode.net, channel #gnus. +Point your IRC client to irc.libera.chat, channel #gnus. @node FAQ 9 - Tuning Gnus @subsection Tuning Gnus diff --git a/doc/misc/rcirc.texi b/doc/misc/rcirc.texi index 85eab4c443e..c636cdee159 100644 --- a/doc/misc/rcirc.texi +++ b/doc/misc/rcirc.texi @@ -124,10 +124,11 @@ server in a network, and servers relay messages from one to the next. Here's a typical example: @cindex redirection to random servers -When you connect to the Freenode network -(@code{http://freenode.net/}), you point your IRC client at the -server @code{irc.freenode.net}. That server will redirect your client -to a random server on the network, such as @code{zelazny.freenode.net}. +When you connect to the Libera.Chat network +(@code{https://libera.chat}), you point your IRC client at the +server @code{irc.libera.chat}. That server will redirect your client +to a random server on the network, such as +@code{zirconium.libera.chat}. @cindex channel name @cindex # starts a channel name @@ -171,15 +172,23 @@ using a different nick. This will prompt you for four things: @table @asis @cindex server, connecting -@cindex Freenode network +@cindex Libera.Chat network @item IRC Server What server do you want to connect to? All the servers in a particular -network are equivalent. Some networks use a round-robin system where a -single server redirects new connections to a random server in the -network. @code{irc.freenode.net} is such a server for the Freenode -network. Freenode provides the network ``for the Free and Open Source -Software communities, for not-for-profit organizations and for related -communities and organizations.'' +network are equivalent. Some networks use a round-robin system where +a single server redirects new connections to a random server in the +network. @code{irc.libera.chat} is such a server for the Libera.Chat +network. Libera.Chat's purpose is ``to provide services such as a +community platform for free open-source software and peer directed +projects on a volunteer basis,'' and was chosen as the official home +of the GNU Project and the Free Software Foundation's IRC channels in +June 2021 in the aftermath of the changes in governance and policies +of the Freenode IRC network. 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}. @cindex port, connecting @cindex 6667, default IRC port @@ -205,13 +214,13 @@ in use, you might for example get assigned the nick @code{alex`}. A space separated list of channels you want to join when connecting. You don't need to join any channels, if you just want to have one-to-one conversations with friends on the same network. If you're new to the -Freenode network, join @code{#emacs}, the channel about all things +Libera.Chat network, join @code{#emacs}, the channel about all things Emacs, or join @code{#rcirc}, the channel about @code{rcirc}. @end table @cindex server buffer When you have answered these questions, @code{rcirc} will create a server -buffer, which will be named something like @file{*irc.freenode.net*}, +buffer, which will be named something like @file{*irc.libera.chat*}, and a channel buffer for each of the channels you wanted to join. @kindex RET @@ -482,7 +491,7 @@ Here's an example of how to set it: @end example By default you will be connected to the @code{rcirc} support channel: -@code{#rcirc} on @code{irc.freenode.net}. +@code{#rcirc} on @code{irc.libera.chat}. @table @code @item :nick @@ -554,8 +563,8 @@ Here is an example to illustrate how you would set it: @example (setq rcirc-authinfo - '(("freenode" nickserv "bob" "p455w0rd") - ("freenode" chanserv "bob" "#bobland" "passwd99") + '(("Libera.Chat" nickserv "bob" "p455w0rd") + ("Libera.Chat" chanserv "bob" "#bobland" "passwd99") ("bitlbee" bitlbee "robert" "sekrit"))) @end example diff --git a/etc/NEWS b/etc/NEWS index 1959bb8f32a..564a7ce7a75 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -30,6 +30,29 @@ applies, and please also update docstrings as needed. * Changes in Emacs 27.3 ++++ +** Update IRC-related references to point to Libera.Chat. +In June 2021, the Free Software Foundation and the GNU Project moved +their official IRC channels from the Freenode network to Libera.Chat +in the aftermath of the changes in Freenode's governance structure and +policies in May and June 2021. The decision-making process took into +account the feedback received from the community against a set of +criteria devised by a working group drawn from both GNU and the FSF +to gauge a chat network's acceptability to software freedom activists. + +For the original announcement and the follow-up update, including more +details, see: + +https://lists.gnu.org/archive/html/info-gnu/2021-06/msg00005.html +https://lists.gnu.org/archive/html/info-gnu/2021-06/msg00007.html + +Given the relocation of GNU and FSF's official IRC channels, as well +as #emacs and various other Emacs-themed channels (see the link below) +to Libera.Chat, IRC-related references in the Emacs repository have +now been updated to point to Libera.Chat. + +https://lists.gnu.org/archive/html/info-gnu-emacs/2021-06/msg00000.html + * Editing Changes in Emacs 27.3 diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index dcda9044a55..2c2f62e76ed 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el @@ -1793,7 +1793,7 @@ See `erc-display-server-message'." nil 's324 ?c channel ?m modes))) (define-erc-response-handler (328) - "Channel URL (on freenode network)." nil + "Channel URL." nil (let ((channel (cadr (erc-response.command-args parsed))) (url (erc-response.contents parsed))) (erc-display-message parsed 'notice (erc-get-buffer channel proc) diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el index 4a566096cb1..ac32b294d3c 100644 --- a/lisp/erc/erc-networks.el +++ b/lisp/erc/erc-networks.el @@ -290,6 +290,13 @@ ("LagNet: Random server" LagNet "irc.lagnet.org.za" 6667) ("LagNet: AF, ZA, Cape Town" LagNet "reaper.lagnet.org.za" 6667) ("LagNet: AF, ZA, Johannesburg" LagNet "mystery.lagnet.org.za" 6667) + ("Libera.Chat: Random server" Libera.Chat "irc.libera.chat" 6667) + ("Libera.Chat: Random Europe server" Libera.Chat "irc.eu.libera.chat" 6667) + ("Libera.Chat: Random US & Canada server" Libera.Chat "irc.us.libera.chat" 6667) + ("Libera.Chat: Random Australia & New Zealand server" Libera.Chat "irc.au.libera.chat" 6667) + ("Libera.Chat: Random East Asia server" Libera.Chat "irc.ea.libera.chat" 6667) + ("Libera.Chat: IPv4 only server" Libera.Chat "irc.ipv4.libera.chat" 6667) + ("Libera.Chat: IPv6 only server" Libera.Chat "irc.ipv6.libera.chat" 6667) ("Librenet: Random server" Librenet "irc.librenet.net" 6667) ("LinkNet: Random server" LinkNet "irc.link-net.org" ((6667 6669))) ("LinuxChix: Random server" LinuxChix "irc.linuxchix.org" 6667) @@ -595,6 +602,7 @@ PORTS is either a number, a list of numbers, or a list of port ranges." (Krono "krono.net") (Krushnet "krushnet.org") (LagNet "lagnet.org.za") + (Libera.Chat "libera.chat") (Librenet "librenet.net") (LinkNet "link-net.org") (LinuxChix "cats\\.meow\\.at\\|linuxchix\\.org") @@ -836,8 +844,8 @@ As an example: ;; think it is worth the effort. (defvar erc-settings - '((pals freenode ("kensanata" "shapr" "anti\\(fuchs\\|gone\\)")) - (format-nick-function (freenode "#emacs") erc-format-@nick)) + '((pals Libera.Chat ("kensanata" "shapr" "anti\\(fuchs\\|gone\\)")) + (format-nick-function (Libera.Chat "#emacs") erc-format-@nick)) "Experimental: Alist of configuration options. The format is (VARNAME SCOPE VALUE) where VARNAME is a symbol identifying the configuration option, @@ -866,7 +874,7 @@ VALUE is the options value.") items nil))))) val)) -(erc-get 'pals 'freenode) +(erc-get 'pals 'Libera.Chat) (provide 'erc-networks) diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el index 4f9b0b199f9..f04da183c64 100644 --- a/lisp/erc/erc-services.el +++ b/lisp/erc/erc-services.el @@ -30,10 +30,10 @@ ;; are made to test if NickServ is the real NickServ for a given network or ;; server. -;; As a default, ERC has the data for the official nickname services on -;; the networks Austnet, BrasNET, Dalnet, freenode, GalaxyNet, GRnet, -;; and Slashnet. You can add more by using M-x customize-variable RET -;; erc-nickserv-alist. +;; As a default, ERC has the data for the official nickname services +;; on the networks Austnet, BrasNET, Dalnet, freenode, GalaxyNet, +;; GRnet, Libera.Chat, and Slashnet. You can add more by using +;; M-x customize-variable RET erc-nickserv-alist. ;; Usage: ;; @@ -43,9 +43,10 @@ ;; (erc-services-mode 1) ;; ;; Add your nickname and NickServ password to `erc-nickserv-passwords'. -;; Using the freenode network as an example: +;; Using the Libera.Chat network as an example: ;; -;; (setq erc-nickserv-passwords '((freenode (("nickname" "password"))))) +;; (setq erc-nickserv-passwords +;; '((Libera.Chat (("nickname" "password"))))) ;; ;; The default automatic identification mode is autodetection of NickServ ;; identify requests. Set the variable `erc-nickserv-identify-mode' if @@ -173,8 +174,8 @@ You can also use \\[erc-nickserv-identify-mode] to change modes." Example of use: (setq erc-nickserv-passwords - \\='((freenode ((\"nick-one\" . \"password\") - (\"nick-two\" . \"password\"))) + \\='((Libera.Chat ((\"nick-one\" . \"password\") + (\"nick-two\" . \"password\"))) (DALnet ((\"nick\" . \"password\")))))" :group 'erc-services :type '(repeat @@ -190,6 +191,7 @@ Example of use: (const GalaxyNet) (const GRnet) (const iip) + (const Libera.Chat) (const OFTC) (const QuakeNet) (const Rizon) @@ -257,6 +259,15 @@ Example of use: "type\\s-/squery\\s-Trent\\s-identify\\s-" "Trent@anon.iip" "IDENTIFY" nil "SQUERY" nil) + (Libera.Chat + "NickServ!NickServ@services.libera.chat" + ;; Libera.Chat also accepts a password at login, see the `erc' + ;; :password argument. + "This\\s-nickname\\s-is\\s-registered.\\s-Please\\s-choose" + "NickServ" + "IDENTIFY" nil nil + ;; See also the 901 response code message. + "You\\s-are\\s-now\\s-identified\\s-for\\s-") (OFTC "NickServ!services@services.oftc.net" ;; OFTC's NickServ doesn't ask you to identify anymore. diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 1e055a6c521..2bd58ba9379 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -255,7 +255,7 @@ A typical value would be \(\"JOIN\" \"PART\" \"QUIT\")." (defcustom erc-network-hide-list nil "A list of IRC networks to hide message types from. -A typical value would be \((\"freenode\" \"MODE\") +A typical value would be \((\"Libera.Chat\" \"MODE\") \(\"OFTC\" \"JOIN\" \"QUIT\"))." :version "25.1" :group 'erc-ignore @@ -1499,7 +1499,7 @@ Defaults to the server buffer." ;; activation -(defconst erc-default-server "irc.freenode.net" +(defconst erc-default-server "irc.libera.chat" "IRC server to use if it cannot be detected otherwise.") (defconst erc-default-port 6667 @@ -2229,7 +2229,7 @@ Non-interactively, it takes the keyword arguments That is, if called with - (erc :server \"irc.freenode.net\" :full-name \"Harry S Truman\") + (erc :server \"irc.libera.chat\" :full-name \"J. Random Hacker\") then the server and full-name will be set to those values, whereas `erc-compute-port', `erc-compute-nick' and `erc-compute-full-name' will @@ -3355,8 +3355,9 @@ to send. If only one word is given, display the mode of that target. -A list of valid mode strings for Freenode may be found at -URL `http://freenode.net/using_the_network.shtml'." +A list of valid mode strings for Libera.Chat may be found at +`https://libera.chat/guides/channelmodes' and +`https://libera.chat/guides/usermodes'." (cond ((string-match "^\\s-\\(.*\\)$" line) (let ((s (match-string 1 line))) diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index b0ab27bc4cf..71b107e071c 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -10679,7 +10679,7 @@ Non-interactively, it takes the keyword arguments That is, if called with - (erc :server \"irc.freenode.net\" :full-name \"Harry S Truman\") + (erc :server \"irc.libera.chat\" :full-name \"J. Random Hacker\") then the server and full-name will be set to those values, whereas `erc-compute-port', `erc-compute-nick' and `erc-compute-full-name' will diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el index 02965881ea5..d4472572d6b 100644 --- a/lisp/net/rcirc.el +++ b/lisp/net/rcirc.el @@ -56,9 +56,9 @@ :group 'applications) (defcustom rcirc-server-alist - '(("irc.freenode.net" :channels ("#rcirc") + '(("irc.libera.chat" :channels ("#rcirc") ;; Don't use the TLS port by default, in case gnutls is not available. - ;; :port 7000 :encryption tls + ;; :port 6697 :encryption tls )) "An alist of IRC connections to establish when running `rcirc'. Each element looks like (SERVER-NAME PARAMETERS). @@ -249,8 +249,8 @@ The ARGUMENTS for each METHOD symbol are: `quakenet': ACCOUNT PASSWORD Examples: - ((\"freenode\" nickserv \"bob\" \"p455w0rd\") - (\"freenode\" chanserv \"bob\" \"#bobland\" \"passwd99\") + ((\"Libera.Chat\" nickserv \"bob\" \"p455w0rd\") + (\"Libera.Chat\" chanserv \"bob\" \"#bobland\" \"passwd99\") (\"bitlbee\" bitlbee \"robert\" \"sekrit\") (\"dal.net\" nickserv \"bob\" \"sekrit\" \"NickServ@services.dal.net\") (\"quakenet.org\" quakenet \"bobby\" \"sekrit\"))" diff --git a/lisp/org/ol-irc.el b/lisp/org/ol-irc.el index e3d7651c1a1..df62dd06257 100644 --- a/lisp/org/ol-irc.el +++ b/lisp/org/ol-irc.el @@ -39,9 +39,9 @@ ;; ;; Links within an org buffer might look like this: ;; -;; [[irc:/irc.freenode.net/#emacs/bob][chat with bob in #emacs on freenode]] -;; [[irc:/irc.freenode.net/#emacs][#emacs on freenode]] -;; [[irc:/irc.freenode.net/]] +;; [[irc:/irc.libera.chat/#emacs/bob][chat with bob in #emacs on Libera.Chat]] +;; [[irc:/irc.libera.chat/#emacs][#emacs on Libera.Chat]] +;; [[irc:/irc.libera.chat/]] ;; ;; If, when the resulting link is visited, there is no connection to a ;; requested server then one will be created. -- 2.39.2