* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
@ 2022-12-14 22:55 Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-22 23:01 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-01 21:10 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 2 replies; 15+ messages in thread
From: Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-12-14 22:55 UTC (permalink / raw)
To: 60078
Steps to reproduce:
1. Add select method
2. Have a group either created before or in Gnus
3. Launch Gnus
4. Quit Gnus
5. Remove select method
6. Relaunch Gnus
7. execute gnus-group-check-bogus-groups or try to delete a group in
Gnus
Result:
gnus-group-expunge-group: nil does not support expunging
gnus-get-function: Trying to require a method that doesn’t exist [2
times]
Expected result:
Groups gone, diagnostic message if needed.
Either Gnus doesn't find bogus groups for no longer existing select
methods or can't delete them.
In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.35, cairo version 1.17.6) of 2022-12-05 built on 875212
Repository revision: 3114158a384d4c1fdc3e1845bf8a55fca7787916
Repository branch: master
System Description: Arch Linux
Configured using:
'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
--localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
--with-modules --with-libotf --without-gconf --with-libsystemd
--enable-link-time-optimization --with-native-compilation=yes
--with-native-compilation=aot --with-xinput2 --with-pgtk
--without-xaw3d --with-sound=alsa --without-gpm --with-tree-sitter
'--program-transform-name=s/\([ec]tags\)/\1.emacs/'
'CFLAGS=-march=x86-64 -mtune=native -O2 -pipe -fno-plt -fexceptions
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
-fstack-clash-protection -fcf-protection -flto=auto'
'LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto''
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB
Important settings:
value of $LC_MONETARY: fi_FI.UTF-8
value of $LANG: en_GB.UTF-8
locale-coding-system: utf-8-unix
Major mode: Group
Minor modes in effect:
magit-wip-initial-backup-mode: t
magit-wip-before-change-mode: t
magit-wip-after-apply-mode: t
magit-wip-after-save-mode: t
magit-wip-mode: t
global-git-commit-mode: t
magit-auto-revert-mode: t
gnus-topic-mode: t
global-atomic-chrome-edit-mode: t
minions-mode: t
back-button-mode: t
recentf-mode: t
savehist-mode: t
emms-playing-time-display-mode: t
emms-playing-time-mode: t
autocrypt-mode: t
gnus-desktop-notify-mode: t
doom-modeline-mode: t
global-auto-revert-mode: t
org-super-agenda-mode: t
gnus-undo-mode: t
projectile-mode: t
global-company-mode: t
company-mode: t
electric-pair-mode: t
editorconfig-mode: t
frames-only-mode: t
marginalia-mode: t
which-key-mode: t
dired-async-mode: t
hl-line-mode: t
helm-mode: t
helm-minibuffer-history-mode: t
global-so-long-mode: t
change-cursor-mode: t
mode-icons-mode: t
global-emojify-mode: t
emojify-mode: t
shell-dirtrack-mode: t
server-mode: t
helm-autoresize-mode: t
desktop-save-mode: t
save-place-mode: t
delete-selection-mode: t
override-global-mode: t
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
buffer-read-only: t
line-number-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
/home/bidar/.local/private/etc/emacs/lib/w3m/w3m-autoloads hides /home/bidar/.local/private/etc/emacs/lib/w3m/shimbun/w3m-autoloads
/home/bidar/.local/private/etc/emacs/lib/vim-modeline/vim-modeline hides /home/bidar/.local/private/etc/emacs/lib/lisp/vim-modeline
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox-koma-letter hides /home/bidar/.local/private/etc/emacs/lib/lisp/ox-koma-letter
/home/bidar/.local/private/etc/emacs/lib/org-contrib/lisp/ox-groff hides /home/bidar/.local/private/etc/emacs/lib/lisp/ox-groff
/home/bidar/.local/private/etc/emacs/lib/lisp/htmlize hides /home/bidar/.local/private/etc/emacs/lib/htmlize/htmlize
/home/bidar/.local/private/etc/emacs/lib/lisp/cursor-chg hides /home/bidar/.local/private/etc/emacs/lib/cursor-chg/cursor-chg
/home/bidar/.local/private/etc/emacs/lib/cmake-mode/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/home/bidar/.local/private/etc/emacs/lib/transient/lisp/transient hides /usr/share/emacs/30.0.50/lisp/transient
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox hides /usr/share/emacs/30.0.50/lisp/org/ox
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox-texinfo hides /usr/share/emacs/30.0.50/lisp/org/ox-texinfo
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox-publish hides /usr/share/emacs/30.0.50/lisp/org/ox-publish
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox-org hides /usr/share/emacs/30.0.50/lisp/org/ox-org
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox-odt hides /usr/share/emacs/30.0.50/lisp/org/ox-odt
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox-md hides /usr/share/emacs/30.0.50/lisp/org/ox-md
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox-man hides /usr/share/emacs/30.0.50/lisp/org/ox-man
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox-latex hides /usr/share/emacs/30.0.50/lisp/org/ox-latex
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox-koma-letter hides /usr/share/emacs/30.0.50/lisp/org/ox-koma-letter
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox-icalendar hides /usr/share/emacs/30.0.50/lisp/org/ox-icalendar
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox-html hides /usr/share/emacs/30.0.50/lisp/org/ox-html
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox-beamer hides /usr/share/emacs/30.0.50/lisp/org/ox-beamer
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ox-ascii hides /usr/share/emacs/30.0.50/lisp/org/ox-ascii
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org hides /usr/share/emacs/30.0.50/lisp/org/org
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-version hides /usr/share/emacs/30.0.50/lisp/org/org-version
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-timer hides /usr/share/emacs/30.0.50/lisp/org/org-timer
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-tempo hides /usr/share/emacs/30.0.50/lisp/org/org-tempo
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-table hides /usr/share/emacs/30.0.50/lisp/org/org-table
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-src hides /usr/share/emacs/30.0.50/lisp/org/org-src
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-refile hides /usr/share/emacs/30.0.50/lisp/org/org-refile
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-protocol hides /usr/share/emacs/30.0.50/lisp/org/org-protocol
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-plot hides /usr/share/emacs/30.0.50/lisp/org/org-plot
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-persist hides /usr/share/emacs/30.0.50/lisp/org/org-persist
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-pcomplete hides /usr/share/emacs/30.0.50/lisp/org/org-pcomplete
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-num hides /usr/share/emacs/30.0.50/lisp/org/org-num
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-mouse hides /usr/share/emacs/30.0.50/lisp/org/org-mouse
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-mobile hides /usr/share/emacs/30.0.50/lisp/org/org-mobile
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-macs hides /usr/share/emacs/30.0.50/lisp/org/org-macs
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-macro hides /usr/share/emacs/30.0.50/lisp/org/org-macro
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-loaddefs hides /usr/share/emacs/30.0.50/lisp/org/org-loaddefs
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-list hides /usr/share/emacs/30.0.50/lisp/org/org-list
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-lint hides /usr/share/emacs/30.0.50/lisp/org/org-lint
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-keys hides /usr/share/emacs/30.0.50/lisp/org/org-keys
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-inlinetask hides /usr/share/emacs/30.0.50/lisp/org/org-inlinetask
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-indent hides /usr/share/emacs/30.0.50/lisp/org/org-indent
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-id hides /usr/share/emacs/30.0.50/lisp/org/org-id
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-habit hides /usr/share/emacs/30.0.50/lisp/org/org-habit
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-goto hides /usr/share/emacs/30.0.50/lisp/org/org-goto
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-footnote hides /usr/share/emacs/30.0.50/lisp/org/org-footnote
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-fold hides /usr/share/emacs/30.0.50/lisp/org/org-fold
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-fold-core hides /usr/share/emacs/30.0.50/lisp/org/org-fold-core
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-feed hides /usr/share/emacs/30.0.50/lisp/org/org-feed
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-faces hides /usr/share/emacs/30.0.50/lisp/org/org-faces
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-entities hides /usr/share/emacs/30.0.50/lisp/org/org-entities
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-element hides /usr/share/emacs/30.0.50/lisp/org/org-element
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-duration hides /usr/share/emacs/30.0.50/lisp/org/org-duration
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-datetree hides /usr/share/emacs/30.0.50/lisp/org/org-datetree
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-cycle hides /usr/share/emacs/30.0.50/lisp/org/org-cycle
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-ctags hides /usr/share/emacs/30.0.50/lisp/org/org-ctags
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-crypt hides /usr/share/emacs/30.0.50/lisp/org/org-crypt
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-compat hides /usr/share/emacs/30.0.50/lisp/org/org-compat
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-colview hides /usr/share/emacs/30.0.50/lisp/org/org-colview
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-clock hides /usr/share/emacs/30.0.50/lisp/org/org-clock
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-capture hides /usr/share/emacs/30.0.50/lisp/org/org-capture
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-attach hides /usr/share/emacs/30.0.50/lisp/org/org-attach
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-attach-git hides /usr/share/emacs/30.0.50/lisp/org/org-attach-git
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-archive hides /usr/share/emacs/30.0.50/lisp/org/org-archive
/home/bidar/.local/private/etc/emacs/lib/org/lisp/org-agenda hides /usr/share/emacs/30.0.50/lisp/org/org-agenda
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol hides /usr/share/emacs/30.0.50/lisp/org/ol
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol-w3m hides /usr/share/emacs/30.0.50/lisp/org/ol-w3m
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol-rmail hides /usr/share/emacs/30.0.50/lisp/org/ol-rmail
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol-mhe hides /usr/share/emacs/30.0.50/lisp/org/ol-mhe
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol-man hides /usr/share/emacs/30.0.50/lisp/org/ol-man
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol-irc hides /usr/share/emacs/30.0.50/lisp/org/ol-irc
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol-info hides /usr/share/emacs/30.0.50/lisp/org/ol-info
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol-gnus hides /usr/share/emacs/30.0.50/lisp/org/ol-gnus
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol-eww hides /usr/share/emacs/30.0.50/lisp/org/ol-eww
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol-eshell hides /usr/share/emacs/30.0.50/lisp/org/ol-eshell
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol-doi hides /usr/share/emacs/30.0.50/lisp/org/ol-doi
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol-docview hides /usr/share/emacs/30.0.50/lisp/org/ol-docview
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol-bibtex hides /usr/share/emacs/30.0.50/lisp/org/ol-bibtex
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ol-bbdb hides /usr/share/emacs/30.0.50/lisp/org/ol-bbdb
/home/bidar/.local/private/etc/emacs/lib/org/lisp/oc hides /usr/share/emacs/30.0.50/lisp/org/oc
/home/bidar/.local/private/etc/emacs/lib/org/lisp/oc-natbib hides /usr/share/emacs/30.0.50/lisp/org/oc-natbib
/home/bidar/.local/private/etc/emacs/lib/org/lisp/oc-csl hides /usr/share/emacs/30.0.50/lisp/org/oc-csl
/home/bidar/.local/private/etc/emacs/lib/org/lisp/oc-bibtex hides /usr/share/emacs/30.0.50/lisp/org/oc-bibtex
/home/bidar/.local/private/etc/emacs/lib/org/lisp/oc-biblatex hides /usr/share/emacs/30.0.50/lisp/org/oc-biblatex
/home/bidar/.local/private/etc/emacs/lib/org/lisp/oc-basic hides /usr/share/emacs/30.0.50/lisp/org/oc-basic
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob hides /usr/share/emacs/30.0.50/lisp/org/ob
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-tangle hides /usr/share/emacs/30.0.50/lisp/org/ob-tangle
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-table hides /usr/share/emacs/30.0.50/lisp/org/ob-table
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-sqlite hides /usr/share/emacs/30.0.50/lisp/org/ob-sqlite
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-sql hides /usr/share/emacs/30.0.50/lisp/org/ob-sql
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-shell hides /usr/share/emacs/30.0.50/lisp/org/ob-shell
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-sed hides /usr/share/emacs/30.0.50/lisp/org/ob-sed
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-screen hides /usr/share/emacs/30.0.50/lisp/org/ob-screen
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-scheme hides /usr/share/emacs/30.0.50/lisp/org/ob-scheme
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-sass hides /usr/share/emacs/30.0.50/lisp/org/ob-sass
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-ruby hides /usr/share/emacs/30.0.50/lisp/org/ob-ruby
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-ref hides /usr/share/emacs/30.0.50/lisp/org/ob-ref
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-python hides /usr/share/emacs/30.0.50/lisp/org/ob-python
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-processing hides /usr/share/emacs/30.0.50/lisp/org/ob-processing
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-plantuml hides /usr/share/emacs/30.0.50/lisp/org/ob-plantuml
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-perl hides /usr/share/emacs/30.0.50/lisp/org/ob-perl
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-org hides /usr/share/emacs/30.0.50/lisp/org/ob-org
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-octave hides /usr/share/emacs/30.0.50/lisp/org/ob-octave
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-ocaml hides /usr/share/emacs/30.0.50/lisp/org/ob-ocaml
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-maxima hides /usr/share/emacs/30.0.50/lisp/org/ob-maxima
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-matlab hides /usr/share/emacs/30.0.50/lisp/org/ob-matlab
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-makefile hides /usr/share/emacs/30.0.50/lisp/org/ob-makefile
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-lua hides /usr/share/emacs/30.0.50/lisp/org/ob-lua
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-lob hides /usr/share/emacs/30.0.50/lisp/org/ob-lob
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-lisp hides /usr/share/emacs/30.0.50/lisp/org/ob-lisp
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-lilypond hides /usr/share/emacs/30.0.50/lisp/org/ob-lilypond
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-latex hides /usr/share/emacs/30.0.50/lisp/org/ob-latex
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-julia hides /usr/share/emacs/30.0.50/lisp/org/ob-julia
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-js hides /usr/share/emacs/30.0.50/lisp/org/ob-js
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-java hides /usr/share/emacs/30.0.50/lisp/org/ob-java
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-haskell hides /usr/share/emacs/30.0.50/lisp/org/ob-haskell
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-groovy hides /usr/share/emacs/30.0.50/lisp/org/ob-groovy
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-gnuplot hides /usr/share/emacs/30.0.50/lisp/org/ob-gnuplot
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-fortran hides /usr/share/emacs/30.0.50/lisp/org/ob-fortran
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-forth hides /usr/share/emacs/30.0.50/lisp/org/ob-forth
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-exp hides /usr/share/emacs/30.0.50/lisp/org/ob-exp
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-eval hides /usr/share/emacs/30.0.50/lisp/org/ob-eval
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-eshell hides /usr/share/emacs/30.0.50/lisp/org/ob-eshell
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-emacs-lisp hides /usr/share/emacs/30.0.50/lisp/org/ob-emacs-lisp
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-dot hides /usr/share/emacs/30.0.50/lisp/org/ob-dot
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-ditaa hides /usr/share/emacs/30.0.50/lisp/org/ob-ditaa
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-css hides /usr/share/emacs/30.0.50/lisp/org/ob-css
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-core hides /usr/share/emacs/30.0.50/lisp/org/ob-core
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-comint hides /usr/share/emacs/30.0.50/lisp/org/ob-comint
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-clojure hides /usr/share/emacs/30.0.50/lisp/org/ob-clojure
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-calc hides /usr/share/emacs/30.0.50/lisp/org/ob-calc
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-awk hides /usr/share/emacs/30.0.50/lisp/org/ob-awk
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-R hides /usr/share/emacs/30.0.50/lisp/org/ob-R
/home/bidar/.local/private/etc/emacs/lib/org/lisp/ob-C hides /usr/share/emacs/30.0.50/lisp/org/ob-C
/home/bidar/.local/private/etc/emacs/lib/flim/sasl hides /usr/share/emacs/30.0.50/lisp/net/sasl
Features:
(shadow bbdb-message gnus-alias autocrypt-message emacsbug
ietf-drums-date gnus-gravatar gravatar dns url-cache smiley gnus-cite
mail-extr textsec uni-scripts idna-mapping ucs-normalize uni-confusable
textsec-check gnus-async gnus-bcklg bbdb-gnus-aux char-fold misearch
multi-isearch image-file image-converter helm-x-files helm-for-files
helm-external forge-list forge-commands forge-semi forge-bitbucket buck
forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github
ghub-graphql treepy gsexp ghub forge-notify forge-revnote forge-pullreq
forge-issue forge-topic yaml forge-post markdown-mode forge-repo forge
forge-core forge-db emacsql-sqlite-builtin sqlite magit-bookmark
magit-submodule magit-obsolete magit-popup magit-blame magit-stash
magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
magit-remote magit-commit magit-sequence magit-notes magit-worktree
magit-tag magit-merge magit-branch magit-reset magit-files magit-refs
magit-status magit magit-repos magit-apply magit-wip magit-log
magit-diff smerge-mode diff git-commit log-edit add-log magit-core
magit-autorevert magit-margin magit-transient magit-process magit-mode
transient time-stamp gnus-ml gnus-topic autocrypt-gnus nndraft nnmh
utf-7 epa-file network-stream nnfolder bbdb-gnus bbdb-mua nnnil
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-cache winner
tramp-archive tramp-gvfs helm-command generic-x atomic-chrome websocket
minions back-button smartrep recentf tree-widget savehist
org-edit-indirect edit-indirect org-bug bug-search bug-comment-mode
bug-backend-bz-rpc bug-list-mode bug-mode bug-format bug-rpc bug-debug
bug-search-common bug-common-functions bug-persistent-data bug-custom
elfeed-autotag elfeed-score elfeed-score-maint elfeed-score-scoring
elfeed-score-serde elfeed-score-rule-stats elfeed-score-rules
elfeed-score-log elfeed-tube elfeed-tube-utils aio
elfeed-protocol-owncloud elfeed-protocol elfeed-protocol-common
elfeed-show elfeed-search rainbow-delimiters goto-addr ligature
symbol-overlay hideshow vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs
log-view pcvs-util vc bug-reference elfeed-csv elfeed elfeed-curl
elfeed-log elfeed-db elfeed-lib xml-query emms-i18n emms-history
emms-score emms-stream-info emms-metaplaylist-mode emms-bookmarks
emms-cue emms-mode-line-icon emms-browser sort emms-volume
emms-volume-sndioctl emms-volume-mixerctl emms-volume-pulse
emms-volume-amixer emms-playlist-sort emms-last-played emms-player-mpd
tq emms-playing-time emms-lyrics emms-url emms-player-simple
emms-streams emms-show-all emms-tag-editor emms-tag-tracktag
emms-info-mp3info emms-mark emms-mode-line emms-cache emms-playlist-mode
emms-info-native bindat emms-info-libtag emms-info emms-later-do
emms-source-playlist emms-source-file locate emms emms-compat autocrypt
gnus-icalendar org-capture smtpmail-async smtpmail gnus-msg
gnus-desktop-notify doom-modeline doom-modeline-segments
doom-modeline-env doom-modeline-core shrink-path gnus-demon nntp khardel
yaml-mode mastodon-async mastodon mastodon-toot mastodon-iso persist
mastodon-http request autorevert lui-track company-emoji
company-emoji-list helm-circe circe-notifications alert notifications
circe-display-images circe-color-nicks circe lui-irc-colors irc lcs
lui-logging lui-format lui tracking shorten circe-compat bbdb-vcard
bbdb-com bbdb-vcard-vcard21 bbdb bbdb-site timezone org-caldav icalendar
ox-extra ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util
rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-koma-letter
ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox url-dav
url-http url-auth url-gw nsm org-expiry ol-man org-super-agenda ts
org-habit org-eldoc cdlatex reftex reftex-loaddefs reftex-vars
org-appear org-modern guess-language ws-butler selected flyspell
org-element org-persist org-id avl-tree oc-basic ol-eww eww url-queue
mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu
mml2015 mm-view mml-smime smime gnutls dig ol-docview doc-view ol-bibtex
bibtex ol-bbdb ol-w3m ol-doi org-link-doi cal-china lunar solar cal-dst
cal-bahai cal-islam cal-hebrew holidays holiday-loaddefs vim-modeline
company-yasnippet appt org-agenda org-refile org-clock org-protocol
ob-sqlite ob-sql ob-shell ob-python ob-plantuml ob-org ob-octave ob-lua
ob-js ob-gnuplot ob-dot ob-ditaa ob-clojure ob-C outshine
outshine-org-cmds outorg smartparens-org smartparens-text smartparens
org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src
ob-comint org-pcomplete org-list org-footnote org-faces org-entities
ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold
org-fold-core org-keys oc org-loaddefs gnus-sum shr pixel-fill kinsoku
url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus
gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int
gnus-range message sendmail yank-media puny rfc822 mml mml-sec epa epg
rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus
nnheader gnus-util mail-utils range mm-util mail-prsvr org-version
org-compat org-macs noutline outline perl-completion woman man dabbrev
cperl-mode facemenu helm-elisp helm-eval cl cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ggtags
ewoc flycheck-color-mode-line flycheck jka-compr let-alist meson-mode
bitbake-modes bitbake generic autoinsert conf-bitbake-mode conf-mode
bitbake-ff find-file bitbake-mmm sh-script smie executable mmm-mode
mmm-univ mmm-class mmm-region mmm-auto mmm-vars mmm-utils mmm-compat
bitbake-functions bitbake-compat python treesit xterm-color magit-libgit
libgit libegit2 magit-git magit-base which-func imenu edebug debug
backtrace vc-git vc-dispatcher ido magit-section benchmark crm compat-27
diff-mode diary-lib diary-loaddefs cal-menu calendar cal-loaddefs
midnight vlf-setup multi-vterm vterm face-remap term disp-table ehelp
vterm-module term/xterm xterm projectile skeleton ibuf-macs ibuf-ext
ibuffer ibuffer-loaddefs ispell company-oddmuse company-keywords
make-mode company-etags etags fileloop generator xref project
company-gtags company-dabbrev-code company-dabbrev company-files
company-clang company-capf company-cmake company-semantic
company-template company-bbdb company elec-pair editorconfig
editorconfig-core editorconfig-core-handle editorconfig-fnmatch package
url-handlers frames-only-mode marginalia which-key dired-ranger
dired-avfs dired-rainbow dired-hacks-utils dired-async dired-du
find-dired wdired helm-icons all-the-icons all-the-icons-faces
data-material data-weathericons data-octicons data-fileicons
data-faicons data-alltheicons treemacs-icons treemacs-themes
treemacs-core-utils treemacs-macros treemacs-logging
treemacs-customization pfuture hl-line f f-shortdoc shortdoc s
helm-bookmark helm-net browse-url xml url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap helm-adaptive helm-info bookmark helm-mode helm-misc helm-files
image-dired image-dired-tags image-dired-external image-dired-util xdg
image-mode exif filenotify dired-x dired-aux dired dired-loaddefs ffap
tramp tramp-loaddefs trampver tramp-integration cus-edit pp cus-load
files-x tramp-compat parse-time iso8601 time-date ls-lisp helm-buffers
helm-occur helm-tags helm-locate helm-grep wgrep-helm wgrep grep compile
text-property-search helm-regexp format-spec helm-utils helm-help
helm-types so-long cursor-chg mode-icons emojify apropos tar-mode
arc-mode archive-mode ht inline dash color modus-vivendi-theme
modus-themes helm-pass thingatpt password-store with-editor shell
pcomplete comint ansi-osc ansi-color ring server helm
helm-global-bindings helm-easymenu helm-core async-bytecomp helm-source
helm-multi-match helm-lib async auth-source-pass url-parse url-vars
auth-source password-cache printing ps-print ps-print-loaddefs lpr
desktop frameset edmacro kmacro saveplace delsel no-littering epkg-elpa
json map epkg-utils epkg-list epkg-desc wid-edit find-func epkg closql
emacsql-sqlite advice emacsql emacsql-compiler llama compat-26 compat
compat-macs comp comp-cstr warnings icons use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
easy-mmode use-package-core w3m-load rx request-autoloads
persist-autoloads mastodon-autoloads llama-autoloads bbdb-loaddefs
autocrypt-autoloads cl-extra help-mode cl-seq borg derived eieio
byte-opt eieio-core cl-macs gv loaddefs-gen generate-lisp-file lisp-mnt
radix-tree subr-x pcase info cl-loaddefs cl-lib bytecomp byte-compile
rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win
term/common-win pgtk-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify dynamic-setting system-font-setting
font-render-setting cairo gtk pgtk lcms2 multi-tty make-network-process
native-compile emacs)
Memory information:
((conses 16 2997787 2980828)
(symbols 48 106515 938)
(strings 32 536445 226961)
(string-bytes 1 16480282)
(vectors 16 162970)
(vector-slots 8 5707751 257372)
(floats 8 3526 2327)
(intervals 56 50477 2088)
(buffers 992 49))
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2022-12-14 22:55 bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-02-22 23:01 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-23 3:26 ` Eric Abrahamsen
2024-04-01 21:10 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
1 sibling, 1 reply; 15+ messages in thread
From: Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-02-22 23:01 UTC (permalink / raw)
To: Björn Bidar; +Cc: 60078
Björn Bidar <bjorn.bidar@thaodan.de> writes:
> Steps to reproduce:
> 1. Add select method
> 2. Have a group either created before or in Gnus
> 3. Launch Gnus
> 4. Quit Gnus
> 5. Remove select method
> 6. Relaunch Gnus
> 7. execute gnus-group-check-bogus-groups or try to delete a group in
> Gnus
>
> Result:
> gnus-group-expunge-group: nil does not support expunging
> gnus-get-function: Trying to require a method that doesn’t exist [2
> times]
>
> Expected result:
> Groups gone, diagnostic message if needed.
>
> Either Gnus doesn't find bogus groups for no longer existing select
> methods or can't delete them.
Hello Björn, thanks for the bug report. I believe that the "correct" way
to deal with such groups is simply to kill them (C-k in *Group* buffer).
The documenatation says the following about the bogus group:
A group that exists in the ‘.newsrc’ file, but isn’t known to the server
(i.e., it isn’t in the active file), is a _bogus group_. This means
that the group probably doesn’t exist (any more).
So basically if you remove the select method corresponding to a
particular group then Gnus is not able to check for bogus groups.
--
Kuba Ječmínek (http://kubajecminek.cz)
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2024-02-22 23:01 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-02-23 3:26 ` Eric Abrahamsen
2024-02-23 9:22 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 15+ messages in thread
From: Eric Abrahamsen @ 2024-02-23 3:26 UTC (permalink / raw)
To: 60078; +Cc: bjorn.bidar, kuba
Jakub Ječmínek via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs@gnu.org> writes:
> Björn Bidar <bjorn.bidar@thaodan.de> writes:
>
>> Steps to reproduce:
>> 1. Add select method
>> 2. Have a group either created before or in Gnus
>> 3. Launch Gnus
>> 4. Quit Gnus
>> 5. Remove select method
>> 6. Relaunch Gnus
>> 7. execute gnus-group-check-bogus-groups or try to delete a group in
>> Gnus
>>
>> Result:
>> gnus-group-expunge-group: nil does not support expunging
>> gnus-get-function: Trying to require a method that doesn’t exist [2
>> times]
>>
>> Expected result:
>> Groups gone, diagnostic message if needed.
>>
>> Either Gnus doesn't find bogus groups for no longer existing select
>> methods or can't delete them.
>
> Hello Björn, thanks for the bug report. I believe that the "correct" way
> to deal with such groups is simply to kill them (C-k in *Group* buffer).
>
> The documenatation says the following about the bogus group:
>
> A group that exists in the ‘.newsrc’ file, but isn’t known to the server
> (i.e., it isn’t in the active file), is a _bogus group_. This means
> that the group probably doesn’t exist (any more).
>
> So basically if you remove the select method corresponding to a
> particular group then Gnus is not able to check for bogus groups.
My understanding of checking for bogus group is that it should handle
precisely these circumstances: removing groups that no longer have a
corresponding select method.
I tried Björn's recipe in the gnus-mock package, which is the closest
thing I've got to a uncustomized Gnus. Replacing the principle select
method (previously nnmaildir) with nnnil, restarting Gnus, and running
"b", correctly prompted me to remove the three groups that had
previously belonged to the nnmaildir server.
I'm guessing that Björn has some expunging-related customization that
attempts to expunge messages early on, maybe during the active-file
reading that happens as the first step of checking for bogus groups?
Gnus is trying to get the nonexistent select method to expunge its
articles before it has a chance to remove the groups.
Just a guess...
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2024-02-23 3:26 ` Eric Abrahamsen
@ 2024-02-23 9:22 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-23 16:12 ` Eric Abrahamsen
0 siblings, 1 reply; 15+ messages in thread
From: Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-02-23 9:22 UTC (permalink / raw)
To: Eric Abrahamsen; +Cc: 60078, Björn Bidar
"Eric Abrahamsen" <eric@ericabrahamsen.net> writes:
> I tried Björn's recipe in the gnus-mock package, which is the closest
> thing I've got to a uncustomized Gnus. Replacing the principle select
> method (previously nnmaildir) with nnnil, restarting Gnus, and running
> "b", correctly prompted me to remove the three groups that had
> previously belonged to the nnmaildir server.
Can you try that with `gnus-secondary-select-methods'?
--
Kuba Ječmínek (http://kubajecminek.cz)
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2024-02-23 9:22 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-02-23 16:12 ` Eric Abrahamsen
0 siblings, 0 replies; 15+ messages in thread
From: Eric Abrahamsen @ 2024-02-23 16:12 UTC (permalink / raw)
To: Jakub Ječmínek; +Cc: 60078, Björn Bidar
On 02/23/24 09:22 AM, Jakub Ječmínek wrote:
> "Eric Abrahamsen" <eric@ericabrahamsen.net> writes:
>
>> I tried Björn's recipe in the gnus-mock package, which is the closest
>> thing I've got to a uncustomized Gnus. Replacing the principle select
>> method (previously nnmaildir) with nnnil, restarting Gnus, and running
>> "b", correctly prompted me to remove the three groups that had
>> previously belonged to the nnmaildir server.
>
> Can you try that with `gnus-secondary-select-methods'?
Oh weird, in that case I don't get an error, but it also doesn't offer
to remove the groups -- nothing happens at all. I'll look into this a
little more closely.
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2022-12-14 22:55 bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-22 23:01 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-04-01 21:10 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-11 3:38 ` Eric Abrahamsen
1 sibling, 1 reply; 15+ messages in thread
From: Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-04-01 21:10 UTC (permalink / raw)
To: Eric Abrahamsen; +Cc: 60078, Björn Bidar
Eric Abrahamsen <eric@ericabrahamsen.net> writes:
> On 02/23/24 09:22 AM, Jakub Ječmínek wrote:
>> "Eric Abrahamsen" <eric@ericabrahamsen.net> writes:
>>
>>> I tried Björn's recipe in the gnus-mock package, which is the closest
>>> thing I've got to a uncustomized Gnus. Replacing the principle select
>>> method (previously nnmaildir) with nnnil, restarting Gnus, and running
>>> "b", correctly prompted me to remove the three groups that had
>>> previously belonged to the nnmaildir server.
>>
>> Can you try that with `gnus-secondary-select-methods'?
>
> Oh weird, in that case I don't get an error, but it also doesn't offer
> to remove the groups -- nothing happens at all. I'll look into this a
> little more closely.
Have you managed to make any progress, Eric?
Best
--
Kuba Ječmínek (http://kubajecminek.cz)
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2024-04-01 21:10 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-05-11 3:38 ` Eric Abrahamsen
2024-05-12 22:08 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 15+ messages in thread
From: Eric Abrahamsen @ 2024-05-11 3:38 UTC (permalink / raw)
To: 60078; +Cc: Jakub Ječmínek, Björn Bidar
Jakub Ječmínek <kuba@kubajecminek.cz> writes:
> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>
>> On 02/23/24 09:22 AM, Jakub Ječmínek wrote:
>>> "Eric Abrahamsen" <eric@ericabrahamsen.net> writes:
>>>
>>>> I tried Björn's recipe in the gnus-mock package, which is the closest
>>>> thing I've got to a uncustomized Gnus. Replacing the principle select
>>>> method (previously nnmaildir) with nnnil, restarting Gnus, and running
>>>> "b", correctly prompted me to remove the three groups that had
>>>> previously belonged to the nnmaildir server.
>>>
>>> Can you try that with `gnus-secondary-select-methods'?
>>
>> Oh weird, in that case I don't get an error, but it also doesn't offer
>> to remove the groups -- nothing happens at all. I'll look into this a
>> little more closely.
>
> Have you managed to make any progress, Eric?
Ahem...
So it looks like there's multiple things going on here. First of all,
the check for bogus groups explicitly excludes secondary select methods.
Why I do not know, but it's been that way since 2004.
Second, expunging isn't really related to this question. Expunging means
asking a server to delete all deletable articles, and if a group has no
server, then there's no way to do that.
That leaves plain old deleting, and so far as I can tell there's no
problem with deleting groups that have no server present.
So I want to make sure this isn't a misunderstanding about expunging,
and if it isn't, if there's something else I'm missing.
Thanks!
Eric
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2024-05-11 3:38 ` Eric Abrahamsen
@ 2024-05-12 22:08 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-14 0:55 ` Eric Abrahamsen
0 siblings, 1 reply; 15+ messages in thread
From: Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-05-12 22:08 UTC (permalink / raw)
To: Eric Abrahamsen; +Cc: 60078, Björn Bidar
Hello Eric, thanks for looking into it once again.
"Eric Abrahamsen" <eric@ericabrahamsen.net> writes:
> So it looks like there's multiple things going on here. First of all,
> the check for bogus groups explicitly excludes secondary select methods.
> Why I do not know, but it's been that way since 2004.
I believe that this is a bug. The documentation says that the `bogus'
group is such that exists in the `.newsrc' file, but isn’t known to the
server (i.e., it isn’t in the active file).
So it must not be active and must not be foreign. But the definition of
foreign group in `gnus-check-bogus-newsgroups' is different from what
was defined by Lars in 1997:
(defun gnus-group-foreign-p (group)
"Say whether a group is foreign or not."
(and (not (gnus-group-native-p group))
(not (gnus-group-secondary-p group))))
We should use this predicate in `gnus-check-bogus-newsgroups' which
fixes the bug we hit along the way (different behaviour between primary
(native) and secondary select methods).
What do you think?
From a7141acb5361be1c34775bd73434889018f0e9ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Je=C4=8Dm=C3=ADnek?= <kuba@kubajecminek.cz>
Date: Sun, 12 May 2024 23:58:22 +0200
Subject: [PATCH] Fix foreign group predicate in gnus-check-bogus-newsgroups
* lisp/gnus/gnus-start.el (gnus-check-bogus-newsgroups): Use correct
predicate for foreign groups.
---
lisp/gnus/gnus-start.el | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 05ad4303b5c..b01551d8e22 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -1368,9 +1368,7 @@ gnus-check-bogus-newsgroups
(setq info (pop newsrc)
group (gnus-info-group info))
(unless (or (gnus-active group) ; Active
- (and (gnus-info-method info)
- (not (gnus-secondary-method-p
- (gnus-info-method info))))) ; Foreign
+ (gnus-group-foreign-p group)) ; Foreign
;; Found a bogus newsgroup.
(push group bogus)))
(if confirm
--
2.34.1
Best
--
Kuba Ječmínek (http://kubajecminek.cz)
^ permalink raw reply related [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2024-05-12 22:08 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-05-14 0:55 ` Eric Abrahamsen
2024-05-14 20:42 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 15+ messages in thread
From: Eric Abrahamsen @ 2024-05-14 0:55 UTC (permalink / raw)
To: Jakub Ječmínek; +Cc: 60078, Björn Bidar
Jakub Ječmínek via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs@gnu.org> writes:
> Hello Eric, thanks for looking into it once again.
>
> "Eric Abrahamsen" <eric@ericabrahamsen.net> writes:
>
>> So it looks like there's multiple things going on here. First of all,
>> the check for bogus groups explicitly excludes secondary select methods.
>> Why I do not know, but it's been that way since 2004.
>
> I believe that this is a bug. The documentation says that the `bogus'
> group is such that exists in the `.newsrc' file, but isn’t known to the
> server (i.e., it isn’t in the active file).
>
> So it must not be active and must not be foreign. But the definition of
> foreign group in `gnus-check-bogus-newsgroups' is different from what
> was defined by Lars in 1997:
>
> (defun gnus-group-foreign-p (group)
> "Say whether a group is foreign or not."
> (and (not (gnus-group-native-p group))
> (not (gnus-group-secondary-p group))))
>
> We should use this predicate in `gnus-check-bogus-newsgroups' which
> fixes the bug we hit along the way (different behaviour between primary
> (native) and secondary select methods).
>
> What do you think?
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.
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.
Your patch (or at least the understanding behind it) should be part of
the fix, but there will have to be more.
Thanks,
Eric
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2024-05-14 0:55 ` Eric Abrahamsen
@ 2024-05-14 20:42 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-16 17:02 ` Eric Abrahamsen
0 siblings, 1 reply; 15+ messages in thread
From: Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-05-14 20:42 UTC (permalink / raw)
To: Eric Abrahamsen; +Cc: 60078, Björn Bidar
This whole issue sent me really deep, so thank you for sticking by.
"Eric Abrahamsen" <eric@ericabrahamsen.net> 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.
Thanks!
--
Kuba Ječmínek (http://kubajecminek.cz)
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2024-05-14 20:42 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-05-16 17:02 ` Eric Abrahamsen
2024-05-16 19:53 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 15+ messages in thread
From: Eric Abrahamsen @ 2024-05-16 17:02 UTC (permalink / raw)
To: Jakub Ječmínek; +Cc: 60078, Björn Bidar
Jakub Ječmínek via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs@gnu.org> writes:
> This whole issue sent me really deep, so thank you for sticking by.
It's pretty confusing.
> "Eric Abrahamsen" <eric@ericabrahamsen.net> 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 "<directory>") 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?
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2024-05-16 17:02 ` Eric Abrahamsen
@ 2024-05-16 19:53 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-17 2:55 ` Eric Abrahamsen
0 siblings, 1 reply; 15+ messages in thread
From: Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-05-16 19:53 UTC (permalink / raw)
To: Eric Abrahamsen; +Cc: 60078, Björn Bidar
"Eric Abrahamsen" <eric@ericabrahamsen.net> writes:
> [...]
> 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 "<directory>") 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?
Your analysis is brilliant, thank you. So to summarize what bogus group
actually should be:
1. The server of the newsgroup provides `gnus-request-list' method
2. The server has been sucessfully opened
3. The group is not listed in the active file
4. We do not distinguish between native and secondary select methods
and foreign groups.
Is it correct?
If we go back to Björn's bug report though, I still think that the
"correct" way to remove groups without corresponding select method is to
kill them (C-k) and then kill them again from the list of killed
newsgroups. This is actually what `gnus-check-bogus-newsgroups' function
does.
--
Kuba Ječmínek (http://kubajecminek.cz)
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2024-05-16 19:53 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-05-17 2:55 ` Eric Abrahamsen
2024-05-17 20:48 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 15+ messages in thread
From: Eric Abrahamsen @ 2024-05-17 2:55 UTC (permalink / raw)
To: Jakub Ječmínek; +Cc: 60078, Björn Bidar
Jakub Ječmínek via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs@gnu.org> writes:
> "Eric Abrahamsen" <eric@ericabrahamsen.net> writes:
>> [...]
>> 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 "<directory>") 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?
>
> Your analysis is brilliant, thank you. So to summarize what bogus group
> actually should be:
>
> 1. The server of the newsgroup provides `gnus-request-list' method
> 2. The server has been sucessfully opened
> 3. The group is not listed in the active file
> 4. We do not distinguish between native and secondary select methods
> and foreign groups.
>
> Is it correct?
That's what I think, yes, though it would probably be a good idea to
float this on gnus.general and see if anyone has any opinions, I'll do
that in a bit.
> If we go back to Björn's bug report though, I still think that the
> "correct" way to remove groups without corresponding select method is to
> kill them (C-k) and then kill them again from the list of killed
> newsgroups. This is actually what `gnus-check-bogus-newsgroups' function
> does.
Yes, poor Björn didn't really get anything resolved -- I think in his
case the thing to do is just delete the groups.
Eric
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2024-05-17 2:55 ` Eric Abrahamsen
@ 2024-05-17 20:48 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-21 22:48 ` Eric Abrahamsen
0 siblings, 1 reply; 15+ messages in thread
From: Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-05-17 20:48 UTC (permalink / raw)
To: Eric Abrahamsen; +Cc: 60078, Björn Bidar
"Eric Abrahamsen" <eric@ericabrahamsen.net> writes:
> That's what I think, yes, though it would probably be a good idea to
> float this on gnus.general and see if anyone has any opinions, I'll do
> that in a bit.
Great.
> Yes, poor Björn didn't really get anything resolved -- I think in his
> case the thing to do is just delete the groups.
Should we close this one or is there anything else to discuss/fix?
Thanks!
Best
--
Kuba Ječmínek (http://kubajecminek.cz)
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore
2024-05-17 20:48 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-05-21 22:48 ` Eric Abrahamsen
0 siblings, 0 replies; 15+ messages in thread
From: Eric Abrahamsen @ 2024-05-21 22:48 UTC (permalink / raw)
To: Jakub Ječmínek; +Cc: 60078, Björn Bidar
Jakub Ječmínek <kuba@kubajecminek.cz> writes:
> "Eric Abrahamsen" <eric@ericabrahamsen.net> writes:
>
>> That's what I think, yes, though it would probably be a good idea to
>> float this on gnus.general and see if anyone has any opinions, I'll do
>> that in a bit.
>
> Great.
>
>> Yes, poor Björn didn't really get anything resolved -- I think in his
>> case the thing to do is just delete the groups.
>
> Should we close this one or is there anything else to discuss/fix?
I only just posted to gnus.general, maybe let's see what responses are
like, if any, and then decided what to do with this report.
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2024-05-21 22:48 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-14 22:55 bug#60078: 30.0.50; Gnus: Can't remove groups of select methods that don't exist anymore Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-22 23:01 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-23 3:26 ` Eric Abrahamsen
2024-02-23 9:22 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-23 16:12 ` Eric Abrahamsen
2024-04-01 21:10 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-11 3:38 ` Eric Abrahamsen
2024-05-12 22:08 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-14 0:55 ` Eric Abrahamsen
2024-05-14 20:42 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-16 17:02 ` Eric Abrahamsen
2024-05-16 19:53 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-17 2:55 ` Eric Abrahamsen
2024-05-17 20:48 ` Jakub Ječmínek via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-21 22:48 ` Eric Abrahamsen
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).