Subject: bug#70030: 29.3; package.el confused by ELPA nongnu archive meta-data for `annotate` listing multiple maintainers

From: Herbert Valerio Riedel <[email-masked]>
Date: Wed, 27 Mar 2024 11:17:14 +0100

I'm not sure if this a bug in package.el proper or rather an ELPA
archive bug:

When invoking `M-x describe-package annotate` to describe the `annotate`
package from https://elpa.nongnu.org/nongnu/annotate.html the function
errors out with

    describe-package-1: Wrong type argument: char-or-string-p, ("Bastian Bechtold" . "[email-masked]")

and its backtrace is basically

    Debugger entered--Lisp error: (wrong-type-argument char-or-string-p ("Bastian Bechtold" . "[email-masked]"))
      package--print-email-button((("Bastian Bechtold" . "[email-masked]") ("cage" . "[email-masked]")))
      describe-package-1(annotate)
      #f(compiled-function () #<bytecode -0xc22abc67090fa64>)()
      help--window-setup("*Help*" #f(compiled-function () #<bytecode -0xc22abc67090fa64>))
      describe-package(annotate)

pointing to the function `package--print-email-button` specifically not
being able to deal with the maintainer value

In fact, the 'annotate' meta-data entry in
`~/.emacs.d/elpa/archives/nongnu/archive-contents` looks like

    (annotate .
           [(2 2 1)
            nil "annotate files without changing them" tar
            ((:url . "https://github.com/bastibe/annotate.el")
             (:maintainer
              ("Bastian Bechtold" . "[email-masked]")
              ("cage" . "[email-masked]"))
             (:commit . "a388c39231207f6234ca1af547dbd29995ee476f"))])

as far as I could see, most package entries have rather a maintainer
value such as

    (:maintainer "Jordon Biondo" . "[email-masked]")

or sometimes without an email addr, such as

    (:maintainer "Benjamin Beckwith")

and in some cases even something weird like

    (:maintainer "Andrea Orru <[email-masked]>, Andrew Kelley" . "[email-masked]")

which is surely not intended to be that way...

In GNU Emacs 29.3 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.20,
 cairo version 1.16.0) of 2024-03-25 built on bos03-amd64-034
Repository revision: 73d7d08f3f07a68b198e5ba230a474ba019e6a8a
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12008000