From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.bugs Subject: bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore Date: Thu, 16 May 2024 10:02:51 -0700 Message-ID: <87cypl7kqs.fsf@ericabrahamsen.net> References: <875yedvblv.fsf@thaodan.de> <87jzlgvlfe.fsf@kubajecminek.cz> <878r0hauhl.fsf@ericabrahamsen.net> <87ttj2isyj.fsf@kubajecminek.cz> <875xvh9ppx.fsf@ericabrahamsen.net> <87v83gdt2d.fsf@kubajecminek.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="21903"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: 60078@debbugs.gnu.org, =?UTF-8?Q?Bj=C3=B6rn?= Bidar To: Jakub =?UTF-8?Q?Je=C4=8Dm=C3=ADnek?= Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu May 16 19:04:20 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1s7eWi-0005Tf-DN for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 16 May 2024 19:04:20 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s7eWS-0006DW-NQ; Thu, 16 May 2024 13:04:04 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s7eWR-0006DO-SR for bug-gnu-emacs@gnu.org; Thu, 16 May 2024 13:04:03 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s7eWP-0005Ak-9t for bug-gnu-emacs@gnu.org; Thu, 16 May 2024 13:04:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1s7eWQ-00010Q-AG; Thu, 16 May 2024 13:04:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eric Abrahamsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org, bugs@gnus.org Resent-Date: Thu, 16 May 2024 17:04:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 60078 X-GNU-PR-Package: emacs,gnus Original-Received: via spool by 60078-submit@debbugs.gnu.org id=B60078.17158789873852 (code B ref 60078); Thu, 16 May 2024 17:04:02 +0000 Original-Received: (at 60078) by debbugs.gnu.org; 16 May 2024 17:03:07 +0000 Original-Received: from localhost ([127.0.0.1]:49862 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s7eVW-000104-EY for submit@debbugs.gnu.org; Thu, 16 May 2024 13:03:07 -0400 Original-Received: from mail.ericabrahamsen.net ([52.70.2.18]:40094) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s7eVS-0000za-2b for 60078@debbugs.gnu.org; Thu, 16 May 2024 13:03:05 -0400 Original-Received: from localhost (71-212-21-65.tukw.qwest.net [71.212.21.65]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 7B799FA12D; Thu, 16 May 2024 17:02:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net; s=mail; t=1715878973; bh=MZ7UosMXSnVTpfJJRL7zKWM4Pc8FQM7oNQmjgAyXsfg=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=usy3INrjTU+Hc0XilyyE+3xaK3nnfxM2NW0s370u/Pmy7j9CTjKSL+8gSPkMbxaKD GsHqrQdE9XJL3QNeLnlfnHnmO29R0zJnQc/Emx/XCXzOHmqM0DL8RsPWeyl5uyjoQD N6MYEsSklm0IaIMYeXMvsIj2fl+yD7wUsYWzIs+o= In-Reply-To: <87v83gdt2d.fsf@kubajecminek.cz> ("Jakub =?UTF-8?Q?Je=C4=8Dm=C3=ADnek?= via \"Bug reports for GNU Emacs, the Swiss army knife of text editors\""'s message of "Tue, 14 May 2024 20:42:05 +0000") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:285174 Archived-At: Jakub Je=C4=8Dm=C3=ADnek via "Bug reports for GNU Emacs, the Swiss army kni= fe of text editors" writes: > This whole issue sent me really deep, so thank you for sticking by. It's pretty confusing. > "Eric Abrahamsen" writes: > >> I think you're right about the definition of "foreign", and that there's >> a bug/misunderstanding in code like this, but this check isn't a >> complete fix because `gnus-group-secondary-p' looks up the group's >> method, and the whole reason we're running this code is that the group's >> method no longer exists. (The original/current code also has this >> issue.) If the method is actually gone, groups that used to belong to it >> will also be passed over. > > Then it comes down to you as package maintainer to decide what bogus > group actually is, because current definition makes little sense to > me. For example, if the server is down and Gnus is not able to get > active info, all groups belonging to that server become bogus, which is > a little unfortunate. > >> So I guess there's two scenarios to support: in the first, the server is >> still there but one or more groups are gone (someone's deleted an IMAP >> folder from the server) and in the second the server itself has been >> removed from the user's config files, and we're clearing out the old >> groups. > > Both of these cases can be handled with simple (group-active group) > predicate. Do you have a clue why Lars wanted to handle foreign groups > separately? I've searched (ding) mailing list, old bug reports, > changelogs, commit messages, and everything else I could find but I > found nothing. This code is ancient, so I think we're dealing with both terminology and functionality that has evolved over time. A bit of searching indicates that "bogus" was something of a technical term (in the 90s) in the usenet world, and meant a group that was being deprecated or deleted, where server administrators were encouraged to drop it or at least stop advertising its existence. I think in the Gnus context "bogus" very specifically refers to this. The 90s was also when Gnus was fundamentally a newsreader, with "extras". The primary select method was always going to be a nntp server. So this check may have grown extra functionality over the years, but basically it was just meant to see if any NNTP groups had disappeared from the server. Now we have more types of server where this might be applicable: disappearing IMAP folders, deleted maildir directories, etc. This "foreign" thing is annoying. I guess it just means groups that are created via the Gnus interface (ie "G m" etc) rather than in your config files. But it's more subtle than that, because you don't create groups via your config files, either, you only define select methods. And for groups created via "G m", it's possible to create a group and specify an existing (in-your-config-files) select method as its select method. And if you specify a non-existent select method for the group, that select method will be "created", in that now it will be treated as real, and multiple groups that have the same sexp as their select methods will be treated as having the "same" select method. Where does that leave us? I think there's no safe way to say "this group's select method no longer exists", because in many cases the presence of a sexp like (nnml "") is enough to count as "exists". So I think "bogus" can only mean: "this group belongs to a server that provides a `gnus-request-list' method, but when we request the list, this group isn't in it". I think you're right that simply checking if a group is active shouldn't mean anything, as there are plenty of reasons a group might not be activated. WDYT?