Subject: bug#49004: closed (Re: bug#49004: Update IRC-related references to point to Libera.Chat)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 04 Jul 2021 05:26:02 +0000

Your bug report

#49004: Update IRC-related references to point to Libera.Chat

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
49004: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=49004
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#49004: Update IRC-related references to point to Libera.Chat
From: Amin Bandali <[email-masked]>
To: [email-masked]
Cc: [email-masked], Philip Kaludercic <[email-masked]>, Tassilo Horn <[email-masked]>, Eli Zaretskii <[email-masked]>, "J.P." <[email-masked]>
Date: Sun, 04 Jul 2021 01:24:52 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Thank you all for looking and testing this, and sorry for the delay.
I went ahead and pushed the change to 'emacs-27' along with a NEWS
entry and small explanatory blurbs in the erc.texi and rcirc.texi
manuals, and then merged it into 'master' as well.

Best,
amin

Subject: Update IRC-related references to point to Libera.Chat
From: Amin Bandali <[email-masked]>
To: [email-masked]
Cc: [email-masked], [email-masked]
Date: Sun, 13 Jun 2021 11:01:35 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Tags: patch

Hello,

I've prepared the following first revision against emacs-27.
All comments/feedback welcome.

Eli, Lars, are you comfortable with the scope of the changes?

>From 87eb63ef6c1aba452b64946e88371570bacc9394 Mon Sep 17 00:00:00 2001
From: Amin Bandali <[email-masked]>
Date: Sun, 13 Jun 2021 10:37:57 -0400
Subject: [PATCH] Update IRC-related references to point to Libera.Chat

Per GNU and FSF's announcement [0] of moving official IRC channels to
the Libera.Chat IRC network, as well as several Emacs-related channels
following suit [1], 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-emacs/2021-06/msg00000.html
---
 doc/misc/erc.texi        | 47 +++++++++++++++++++++-------------------
 doc/misc/gnus-faq.texi   |  2 +-
 doc/misc/rcirc.texi      | 33 ++++++++++++++--------------
 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        |  6 ++---
 lisp/org/ol-irc.el       |  6 ++---
 10 files changed, 87 insertions(+), 63 deletions(-)

diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi
index d39613c11a..b26a0ca9d5 100644
--- a/doc/misc/erc.texi
+++ b/doc/misc/erc.texi
@@ -131,21 +131,21 @@ Getting Started
 @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.
 
 @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 +158,14 @@ Sample Session
 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 <password>'', replacing ``<password>'' 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 <password>'', replacing ``<password>'' with
+your desired password.  It should tell you that the operation was
+successful.
 
 @item Talk to people in the channel
 
@@ -518,7 +519,7 @@ Connecting
 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 +692,10 @@ Sample Configuration
     (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 +715,15 @@ Sample Configuration
 
 ;;; 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 +763,7 @@ Options
 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 +812,7 @@ Getting Help and Reporting Bugs
 @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 96503138e5..455819745d 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -2144,7 +2144,7 @@ FAQ 8-6
 
 @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 85eab4c443..67107ae57c 100644
--- a/doc/misc/rcirc.texi
+++ b/doc/misc/rcirc.texi
@@ -124,10 +124,11 @@ Internet Relay Chat
 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,15 @@ Getting started with rcirc
 
 @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.''
 
 @cindex port, connecting
 @cindex 6667, default IRC port
@@ -205,13 +206,13 @@ Getting started with rcirc
 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 +483,7 @@ Configuration
 @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 +555,8 @@ Configuration
 
 @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/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index dcda9044a5..2c2f62e76e 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -1793,7 +1793,7 @@ erc-server-322-message
      '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 4a566096cb..ac32b294d3 100644
--- a/lisp/erc/erc-networks.el
+++ b/lisp/erc/erc-networks.el
@@ -290,6 +290,13 @@ erc-server-alist
   ("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 @@ erc-networks-alist
     (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 @@ erc-server-select
 ;; 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 @@ erc-get
 		     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 4f9b0b199f..f04da183c6 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 @@ erc-nickserv-passwords
 
 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 @@ erc-nickserv-passwords
 			(const GalaxyNet)
 			(const GRnet)
 			(const iip)
+                        (const Libera.Chat)
 			(const OFTC)
 			(const QuakeNet)
 			(const Rizon)
@@ -257,6 +259,15 @@ erc-nickserv-alist
      "type\\s-/squery\\s-Trent\\s-identify\\s-<password>"
      "[email-masked]"
      "IDENTIFY" nil "SQUERY" nil)
+    (Libera.Chat
+     "[email-masked]"
+     ;; 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
      "[email-masked]"
      ;; OFTC's NickServ doesn't ask you to identify anymore.
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index 1e055a6c52..2bd58ba937 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -255,7 +255,7 @@ erc-hide-list
 
 (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 @@ erc-mode
 
 ;; 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 @@ erc
 
 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 @@ erc-cmd-MODE
 
 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 655285e0f6..f42dae11a6 100644
--- a/lisp/ldefs-boot.el
+++ b/lisp/ldefs-boot.el
@@ -10679,7 +10679,7 @@ epa-global-mail-mode
 
 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 02965881ea..bfa0fbd5dc 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -56,7 +56,7 @@ rcirc
   :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
      ))
@@ -249,8 +249,8 @@ rcirc-authinfo
   `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\" \"[email-masked]\")
   (\"quakenet.org\" quakenet \"bobby\" \"sekrit\"))"
diff --git a/lisp/org/ol-irc.el b/lisp/org/ol-irc.el
index e3d7651c1a..df62dd0625 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.17.1