Subject: bug#57200: 29.0.50; Symbol's function definition is void: update-directory-autoloads

From: Eli Zaretskii <[email-masked]>
Date: Sun, 14 Aug 2022 15:58:22 +0300

> Cc: [email-masked]
> Date: Sun, 14 Aug 2022 14:19:33 +0900 (JST)
> From: Yasuhiro Kimura <[email-masked]>
> 
> Dear Emacs developers,
> 
> I'm a member of FreeBSD Emacs ports maintainance team. In FreeBSD
> ports collections there are 2 Emacs ports, editors/emacs and
> editors/emacs-devel. The former provides latest release of Emacs. The
> latter tracks master branch of Emacs repository and is updated
> regularly.
> 
> Recently we updated editors/emacs-devel from 3d6af11c42 to 11e6c12def
> (both are commits in master branch of emacs repository) and after that
> we faced the problem. There are some ports in ports collections that
> depends on Emacs (ports of ELPA packages, for example). And some of
> such ports fail to build now. I analyzed build errors and found
> something in common.
> 
> * Build fails when editors/emacs-devel is used as Emacs.
> * Build fails when 'update-directory-autoloads' function is used to
>   build port.
> * Build fails with following error message.
>   "Symbol's function definition is void: update-directory-autoloads"
> 
> At first I updated editors/emacs-devel to more recent commit of Emacs
> repository (commit 4e23ecb882 at Sat Aug 13 02:36:54 2022 UTC) but the
> error still happens. So I tried bisect between above 2
> commit. According to the result of it the error happens following
> commit and later.
> 
> ----------------------------------------------------------------------
> commit aa9eaac68e
> Author:     Lars Ingebrigtsen <[email-masked]>
> AuthorDate: Thu Aug 4 17:03:59 2022 +0200
> Commit:     Lars Ingebrigtsen <[email-masked]>
> CommitDate: Thu Aug 4 17:03:59 2022 +0200
> 
>     Move autoload.el to lisp/obsolete/
> ----------------------------------------------------------------------
> 
> Since update-directory-autoloads is defined in autoload.el, it seems
> very likely for me that this commit causes the error.

>From NEWS:

  ** The autoload.el library is now obsolete.
  It is superseded by the loaddefs-gen.el library.

So you are supposed to switch to using loaddefs-gen.el for Emacs 29.