Subject: bug#36903: closed (Re: bug#36903: 27.0.50; gnus registry vs. debbugs)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 19 Sep 2019 17:40:03 +0000

Your bug report

#36903: 27.0.50; gnus registry vs. debbugs

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].

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

Subject: Re: bug#36903: 27.0.50; gnus registry vs. debbugs
From: Eric Abrahamsen <[email-masked]>
To: [email-masked]
Date: Thu, 19 Sep 2019 10:39:40 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Eric Abrahamsen <[email-masked]> writes:

> Lars Ingebrigtsen <[email-masked]> writes:
>
>> Eric Abrahamsen <[email-masked]> writes:
>>
>>> I can do that for in-tree code, and my own packages, but who knows what
>>> else is out there that might try something similar.
>>
>> Well, we can't control out-of-tree code, but Gnus should (in general) be
>> able to generate a summary buffer without Gnus having been started -- I
>> mean, that's a design goal.
>
> Okay, I'll make that change in gnus-registry.el, and elsewhere. I'll
> keep that design goal in mind, though I wouldn't be surprised if we run
> into more weirdness in this situation where the user's gnus.el has been
> loaded, but then Gnus itself shut down.

Okay, that's done and pushed.

Subject: 27.0.50; gnus registry vs. debbugs
From: Michael Heerdegen <[email-masked]>
To: [email-masked]
Date: Sat, 03 Aug 2019 09:11:45 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

opening articles in the groups generated by debbugs-gnu-search or
debbugs-gnu-bugs fails for me, because I have set up Gnus to use the
registry:

Debugger entered--Lisp error: (cl-no-applicable-method registry-lookup nil ("fake+none+nndoc+ephemeral:bug#19892+1"))
  signal(cl-no-applicable-method (registry-lookup nil ("fake+none+nndoc+ephemeral:bug#19892+1")))
  cl-no-applicable-method(#s(cl--generic :name registry-lookup :dispatches ((1 #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>))) (0 #s(cl--generic-generalizer :name eieio--generic-generalizer :priority 50 :tagcode-function cl--generic-struct-tag :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x15640b15a86d>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>)))) :method-table (#s(cl--generic-method :specializers (registry-db t) :qualifiers nil :uses-cnm nil :function #f(compiled-function (db keys) #<bytecode 0x15640bae7b19>))) :options nil) nil ("fake+none+nndoc+ephemeral:bug#19892+1"))
  apply(cl-no-applicable-method #s(cl--generic :name registry-lookup :dispatches ((1 #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>))) (0 #s(cl--generic-generalizer :name eieio--generic-generalizer :priority 50 :tagcode-function cl--generic-struct-tag :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x15640b15a86d>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>)))) :method-table (#s(cl--generic-method :specializers (registry-db t) :qualifiers nil :uses-cnm nil :function #f(compiled-function (db keys) #<bytecode 0x15640bae7b19>))) :options nil) (nil ("fake+none+nndoc+ephemeral:bug#19892+1")))
  #f(compiled-function (&rest args) #<bytecode 0x15640d67eedd>)(nil ("fake+none+nndoc+ephemeral:bug#19892+1"))
  apply(#f(compiled-function (&rest args) #<bytecode 0x15640d67eedd>) nil ("fake+none+nndoc+ephemeral:bug#19892+1"))
  registry-lookup(nil ("fake+none+nndoc+ephemeral:bug#19892+1"))
  gnus-registry-get-or-make-entry("fake+none+nndoc+ephemeral:bug#19892+1")
  gnus-registry-get-id-key("fake+none+nndoc+ephemeral:bug#19892+1" group)
  gnus-registry-register-message-ids()
  run-hooks(gnus-summary-prepare-hook)
  apply(run-hooks gnus-summary-prepare-hook)
  gnus-run-hooks(gnus-summary-prepare-hook)
  gnus-summary-prepare()
  gnus-summary-read-group-1("nndoc+ephemeral:bug#19892" t t nil nil nil)
  gnus-summary-read-group("nndoc+ephemeral:bug#19892" t t nil nil nil nil)
  gnus-group-read-group(t t "nndoc+ephemeral:bug#19892" nil)
  gnus-group-read-ephemeral-group("nndoc+ephemeral:bug#19892" (nndoc "/tmp/gnus-temp-group-RfE2Ck" (nndoc-article-type mbox)) nil (#<buffer *Bugs*> . #<window-configuration>))
  gnus-read-ephemeral-bug-group((19892) "https://debbugs.gnu.org/cgi/bugreport.cgi?bug=%s;m..." (#<buffer *Bugs*> . #<window-configuration>))
  gnus-read-ephemeral-emacs-bug-group((19892) (#<buffer *Bugs*> . #<window-configuration>))
  debbugs-read-emacs-bug-with-gnus(19892 ((cache_time . 1564812360.0822985) (unarchived) (blockedby) (forwarded) (package "emacs") (location . "db-h") (originator . "[email-masked]") (subject . "25.0.50; hideshow: hs-hide-all-non-comment-functio...") (severity . "normal") (fixed (item (key . 27.1) (value))) (found_versions "25.0.50") (msgid . "<[email-masked]>") (mergedwith) (fixed_versions "27.1") (last_modified . 1564773722) (owner) (found (item (key . "25.0.50") (value))) (fixed_date) (id . 19892) (summary) (affects) (keywords "fixed") (source . "unknown") (pending . "done") (found_date) (archived) (done . "Lars Ingebrigtsen <[email-masked]>") (tags "fixed") (date . 1424213161) (bug_num . 19892) (blocks) (log_modified . 1564773722)) nil)
  debbugs-gnu-select-report()

AFAIU the problem is that gnus-registry-db is bound to nil *Bugs* and
that is not expected by the registry (hook) functions.

Similarly, if I do what is suggested in the header of gnus-registry.el:

;; show the marks as single characters (see the :char property in
;; `gnus-registry-marks'):
;; (defalias 'gnus-user-format-function-M 'gnus-registry-article-marks-to-chars)

I even get an error before the above one:

Debugger entered--Lisp error: (cl-no-applicable-method registry-lookup nil ("<[email-masked]>"))
  signal(cl-no-applicable-method (registry-lookup nil ("<[email-masked]>")))
  cl-no-applicable-method(#s(cl--generic :name registry-lookup :dispatches ((1 #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>))) (0 #s(cl--generic-generalizer :name eieio--generic-generalizer :priority 50 :tagcode-function cl--generic-struct-tag :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x15640b15a86d>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>)))) :method-table (#s(cl--generic-method :specializers (registry-db t) :qualifiers nil :uses-cnm nil :function #f(compiled-function (db keys) #<bytecode 0x15640bae7b19>))) :options nil) nil ("<[email-masked]>"))
  apply(cl-no-applicable-method #s(cl--generic :name registry-lookup :dispatches ((1 #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>))) (0 #s(cl--generic-generalizer :name eieio--generic-generalizer :priority 50 :tagcode-function cl--generic-struct-tag :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x15640b15a86d>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode 0x1ffea8c93a83>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x1ffea8c93a6b>)))) :method-table (#s(cl--generic-method :specializers (registry-db t) :qualifiers nil :uses-cnm nil :function #f(compiled-function (db keys) #<bytecode 0x15640bae7b19>))) :options nil) (nil ("<[email-masked]>")))
  #f(compiled-function (&rest args) #<bytecode 0x15640d67eedd>)(nil ("<[email-masked]>"))
  apply(#f(compiled-function (&rest args) #<bytecode 0x15640d67eedd>) nil ("<[email-masked]>"))
  registry-lookup(nil ("<[email-masked]>"))
  gnus-registry-get-or-make-entry("<[email-masked]>")
  gnus-registry-get-id-key("<[email-masked]>" mark)
  gnus-user-format-function-M([2 "bug#19892: 25.0.50; hideshow: hs-hide-all-non-comm..." "Michael Heerdegen <[email-masked]>" #("Tue, 17 Feb 2015 23:45:15 +0100" 0 1 (gnus-time (21731 50299))) "<[email-masked]>" nil -1 117 nil ((Cc . "[email-masked], [email-masked]") (To . "[email-masked]"))])
  (format "%c%c%s%s%2s%c%9s %s" gnus-tmp-unread gnus-tmp-replied (gnus-user-format-function-S gnus-tmp-header) (gnus-user-format-function-g gnus-tmp-header) (gnus-user-format-function-M gnus-tmp-header) gnus-tmp-score-char (gnus-user-date (mail-header-date gnus-tmp-header)) gnus-tmp-indentation)
  (insert (format "%c%c%s%s%2s%c%9s %s" gnus-tmp-unread gnus-tmp-replied (gnus-user-format-function-S gnus-tmp-header) (gnus-user-format-function-g gnus-tmp-header) (gnus-user-format-function-M gnus-tmp-header) gnus-tmp-score-char (gnus-user-date (mail-header-date gnus-tmp-header)) gnus-tmp-indentation))
  (progn (insert (format "%c%c%s%s%2s%c%9s %s" gnus-tmp-unread gnus-tmp-replied (gnus-user-format-function-S gnus-tmp-header) (gnus-user-format-function-g gnus-tmp-header) (gnus-user-format-function-M gnus-tmp-header) gnus-tmp-score-char (gnus-user-date (mail-header-date gnus-tmp-header)) gnus-tmp-indentation)) (put-text-property (point) (progn (insert (format "%-23s" (let* ((val ...) (need ...)) (if (> need 0) (concat nil val ...) val)))) (point)) 'mouse-face gnus-mouse-face) (insert "   ") (add-text-properties (point) (progn (insert gnus-tmp-subject-or-nil) (point)) (cons 'face (cons (list 'font-lock-variable-name-face 'default) '(gnus-face t)))) (insert "\n"))
  eval((progn (insert (format "%c%c%s%s%2s%c%9s %s" gnus-tmp-unread gnus-tmp-replied (gnus-user-format-function-S gnus-tmp-header) (gnus-user-format-function-g gnus-tmp-header) (gnus-user-format-function-M gnus-tmp-header) gnus-tmp-score-char (gnus-user-date (mail-header-date gnus-tmp-header)) gnus-tmp-indentation)) (put-text-property (point) (progn (insert (format "%-23s" (let* (... ...) (if ... ... val)))) (point)) 'mouse-face gnus-mouse-face) (insert "   ") (add-text-properties (point) (progn (insert gnus-tmp-subject-or-nil) (point)) (cons 'face (cons (list 'font-lock-variable-name-face 'default) '(gnus-face t)))) (insert "\n")))
  gnus-summary-prepare-threads((([2 "bug#19892: 25.0.50; hideshow: hs-hide-all-non-comm..." "Michael Heerdegen <[email-masked]>" #("Tue, 17 Feb 2015 23:45:15 +0100" 0 1 (gnus-time (21731 50299))) "<[email-masked]>" nil -1 117 nil ((Cc . "[email-masked], [email-masked]") (To . "[email-masked]"))] ([3 "bug#19892: 25.0.50; hideshow: hs-hide-all-non-comm..." "Lars Ingebrigtsen <[email-masked]>" #("Fri, 02 Aug 2019 21:08:54 +0200" 0 1 (gnus-time (23876 35398))) "<[email-masked]>" "<[email-masked]>" -1 60 nil ((Cc . "[email-masked], [email-masked], [email-masked]...") (To . "Michael Heerdegen <[email-masked]>"))]) ([4 "bug#19892: 25.0.50; hideshow: hs-hide-all-non-comm..." "Lars Ingebrigtsen <[email-masked]>" #("Fri, 02 Aug 2019 21:17:00 +0200" 0 1 (gnus-time (23876 35884))) "<[email-masked]>" "<[email-masked]>" -1 61 nil ((Cc . "[email-masked], [email-masked], [email-masked]...") (To . "Michael Heerdegen <[email-masked]>"))])) ([5 "control message for bug #19892" "Lars Ingebrigtsen <[email-masked]>" #("Fri, 02 Aug 2019 21:21:36 +0200" 0 1 (gnus-time (23876 36160))) "<[email-masked]>" nil -1 8 nil ((To . "[email-masked], [email-masked]"))]) ([1 "Status: 25.0.50; hideshow: hs-hide-all-non-comment..." "bug#19892 <[email-masked]>" #("Sat, 03 Aug 2019 07:07:20 +0000" 0 1 (gnus-time (23877 12968))) "fake+none+nndoc+ephemeral:bug#19892+1" nil -1 10 nil ((To . "bug#19892 <[email-masked]>"))])))
  gnus-summary-prepare()
  gnus-summary-read-group-1("nndoc+ephemeral:bug#19892" t t nil nil nil)
  gnus-summary-read-group("nndoc+ephemeral:bug#19892" t t nil nil nil nil)
  gnus-group-read-group(t t "nndoc+ephemeral:bug#19892" nil)
  gnus-group-read-ephemeral-group("nndoc+ephemeral:bug#19892" (nndoc "/tmp/gnus-temp-group-sYDhIR" (nndoc-article-type mbox)) nil (#<buffer *Bugs*> . #<window-configuration>))
  gnus-read-ephemeral-bug-group((19892) "https://debbugs.gnu.org/cgi/bugreport.cgi?bug=%s;m..." (#<buffer *Bugs*> . #<window-configuration>))
  gnus-read-ephemeral-emacs-bug-group((19892) (#<buffer *Bugs*> . #<window-configuration>))
  debbugs-read-emacs-bug-with-gnus(19892 ((cache_time . 1564812360.0822985) (unarchived) (blockedby) (forwarded) (package "emacs") (location . "db-h") (originator . "[email-masked]") (subject . "25.0.50; hideshow: hs-hide-all-non-comment-functio...") (severity . "normal") (fixed (item (key . 27.1) (value))) (found_versions "25.0.50") (msgid . "<[email-masked]>") (mergedwith) (fixed_versions "27.1") (last_modified . 1564773722) (owner) (found (item (key . "25.0.50") (value))) (fixed_date) (id . 19892) (summary) (affects) (keywords "fixed") (source . "unknown") (pending . "done") (found_date) (archived) (done . "Lars Ingebrigtsen <[email-masked]>") (tags "fixed") (date . 1424213161) (bug_num . 19892) (blocks) (log_modified . 1564773722)) nil)
  debbugs-gnu-select-report()

Hope it's not my fault, but it doesn't really look like that...

TIA,

Michael.