Re: [gentoo-dev] [PATCH] elisp-common.eclass: fix for Emacs 29 (explicitly require autoload)

2022-08-18 Thread Ulrich Mueller
> 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)

2022-08-18 Thread Sam James


> 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)

2022-08-18 Thread Maciej Barć

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)

2022-08-18 Thread Sam James


> 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)

2022-08-18 Thread Michael Orlitzky
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)

2022-08-18 Thread Sam James
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