Re: [gentoo-dev] [PATCH] elisp-common.eclass: fix for Emacs 29 (explicitly require autoload)
> On Thu, 18 Aug 2022, Sam James wrote: > ${EMACS} ${EMACSFLAGS} \ > + --eval "(require 'autoload)" \ > --eval "(setq make-backup-files nil)" \ > --eval "(setq generated-autoload-file (expand-file-name > \"${f}\"))" \ > -f batch-update-autoloads "${@-.}" Thanks, merged. signature.asc Description: PGP signature
Re: [gentoo-dev] [PATCH] elisp-common.eclass: fix for Emacs 29 (explicitly require autoload)
> On 18 Aug 2022, at 22:28, Maciej Barć wrote: > >> We could do it based on the Emacs version though if the eclass >> has machinery for checking that (new to poking at this area). > > > There are elisp-emacs-version & elisp-check-emacs-version functions. > > Thanks! I think I'm too new to elisp to confidently give a patch to convert to loaddefs-generate though. Best, sam signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] [PATCH] elisp-common.eclass: fix for Emacs 29 (explicitly require autoload)
We could do it based on the Emacs version though if the eclass has machinery for checking that (new to poking at this area). There are elisp-emacs-version & elisp-check-emacs-version functions. On 8/18/22 23:25, Sam James wrote: On 18 Aug 2022, at 21:01, Michael Orlitzky wrote: On Thu, 2022-08-18 at 20:18 +0100, Sam James wrote: Emacs 29's NEWS says: "The autoload.el library is now obsolete." ... ${EMACS} ${EMACSFLAGS} \ + --eval "(require 'autoload)" \ --eval "(setq make-backup-files nil)" \ --eval "(setq generated-autoload-file (expand-file-name \"${f}\"))" \ -f batch-update-autoloads "${@-.}" The batch-update-autoloads docstring says that it "calls 'update- directory-autoloads' on the command line arguments." The function update-directory-autoloads is, in turn, obsoleted in favor of loaddefs- generate from loaddefs-gen.el (which replaces autoload.el). Can we bypass the obsolete autoload.el entirely here, instead calling loaddefs-generate directly? It looks like it might be new as of Emacs 29, so we'd need to handle older versions somehow. We could do it based on the Emacs version though if the eclass has machinery for checking that (new to poking at this area). -- Have a great day! ~ Maciej XGQT Barć OpenPGP_0x14D74A1F43A6AC3C.asc Description: OpenPGP public key OpenPGP_signature Description: OpenPGP digital signature
Re: [gentoo-dev] [PATCH] elisp-common.eclass: fix for Emacs 29 (explicitly require autoload)
> On 18 Aug 2022, at 21:01, Michael Orlitzky wrote: > > On Thu, 2022-08-18 at 20:18 +0100, Sam James wrote: >> Emacs 29's NEWS says: "The autoload.el library is now obsolete." >> >> ... >> >> ${EMACS} ${EMACSFLAGS} \ >> +--eval "(require 'autoload)" \ >> --eval "(setq make-backup-files nil)" \ >> --eval "(setq generated-autoload-file (expand-file-name >> \"${f}\"))" \ >> -f batch-update-autoloads "${@-.}" > > The batch-update-autoloads docstring says that it "calls 'update- > directory-autoloads' on the command line arguments." The function > update-directory-autoloads is, in turn, obsoleted in favor of loaddefs- > generate from loaddefs-gen.el (which replaces autoload.el). > > Can we bypass the obsolete autoload.el entirely here, instead calling > loaddefs-generate directly? > > It looks like it might be new as of Emacs 29, so we'd need to handle older versions somehow. We could do it based on the Emacs version though if the eclass has machinery for checking that (new to poking at this area). signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] [PATCH] elisp-common.eclass: fix for Emacs 29 (explicitly require autoload)
On Thu, 2022-08-18 at 20:18 +0100, Sam James wrote: > Emacs 29's NEWS says: "The autoload.el library is now obsolete." > > ... > > ${EMACS} ${EMACSFLAGS} \ > + --eval "(require 'autoload)" \ > --eval "(setq make-backup-files nil)" \ > --eval "(setq generated-autoload-file (expand-file-name > \"${f}\"))" \ > -f batch-update-autoloads "${@-.}" The batch-update-autoloads docstring says that it "calls 'update- directory-autoloads' on the command line arguments." The function update-directory-autoloads is, in turn, obsoleted in favor of loaddefs- generate from loaddefs-gen.el (which replaces autoload.el). Can we bypass the obsolete autoload.el entirely here, instead calling loaddefs-generate directly?
[gentoo-dev] [PATCH] elisp-common.eclass: fix for Emacs 29 (explicitly require autoload)
Emacs 29's NEWS says: "The autoload.el library is now obsolete." We should therefore explicitly 'require it in order to have the eclass machinery work. Fix build failures with e.g. exec-path-from-shell, flycheck: ``` * Generating autoload file for GNU Emacs ... Error: void-function (batch-update-autoloads) debug-early-backtrace() debug-early(error (void-function batch-update-autoloads)) batch-update-autoloads() command-line-1(("--eval" "(setq make-backup-files nil)" "--eval" "(setq generated-autoload-file (expand-file-name \"exec-path-from-shell-autoloads.el\"))" "-f" "batch-update-autoloads" ".")) command-line() normal-top-level() Symbol’s function definition is void: batch-update-autoloads * elisp-make-autoload-file: batch-update-autoloads failed [ !! ] * ERROR: app-emacs/exec-path-from-shell-1.12::gentoo failed (compile phase): * (no error message) ``` See https://www.mail-archive.com/freebsd-pkg-fallout@freebsd.org/msg1982134.html and https://lists.gnu.org/archive/html/bug-gnu-emacs/2022-08/msg01259.html. Thanks-to: John Turner Signed-off-by: Sam James --- eclass/elisp-common.eclass | 1 + 1 file changed, 1 insertion(+) diff --git a/eclass/elisp-common.eclass b/eclass/elisp-common.eclass index 47c8132192ca..2715c26c91a8 100644 --- a/eclass/elisp-common.eclass +++ b/eclass/elisp-common.eclass @@ -329,6 +329,7 @@ elisp-make-autoload-file() { EOF ${EMACS} ${EMACSFLAGS} \ + --eval "(require 'autoload)" \ --eval "(setq make-backup-files nil)" \ --eval "(setq generated-autoload-file (expand-file-name \"${f}\"))" \ -f batch-update-autoloads "${@-.}" -- 2.37.2