I'm trying to upgrade from emacs-27.2
to emacs-30.0.50
under Ubuntu GNU/Linux.
Now, when I use emacs-30.0.50
, I get this error on startup:
Wrong number of arguments: make-obsolete-variable, 2
I understand that this is due to the fact that the emacs-30.0.50
version of make-obsolete-variable
takes 3 required arguments and one optional argument, while the emacs-27.2
version of make-obsolete-variable
takes only 2 required argument and 1 optional argument.
Unfortunately. make-obsolete-variable
appears in numerous emacs packages that I am using, most of them 3rd-party packages. It will be a major headache for me to upgrade all of those packages.
I don't care if make-obsolete-variable
function is a no-op. What I'm hoping for is some sort of way to tell emacs to turn all those existing make-obsolete-variable
calls into do-nothing calls, but I can't figure out a way to make that happen.
I tried putting the following at the top of my $HOME/.emacs
file, but it doesn't help ...
(fmakunbound 'make-obsolete-variable)
(unintern 'make-obsolete-variable)
(defun make-obsolete-variable (&optional a b c d)
)
After doing this, I get numerous errors similar to this one at emacs startup time:
Warning (comp): /usr/local/share/emacs/site-lisp/wl/elmo-date.el: Error: Wrong number of arguments make-obsolete-variable
Is there anything I can do to stop getting these errors under emacs-30.0.50
without upgrading all of my emacs packages which currently make use the old version of this function call?
To clarify, another reason that I don't want to install all new package versions is that I might end up deciding to go back to emacs-27.2
, in which case I'd have to reinstall all the old packages again. That would be another major headache.
elmo-date.el
does not call the functionmake-obsolete-variable
as far as I am aware. Instead, it callsmake-obsolete
at lines 38, 41, 43, 180 and 182: github.com/wanderlust/wanderlust/blob/master/elmo/elmo-date.el~/.emacs.d/elpa
) to something else (eg `~/.emacs.d/elpa-emacs-27) to keep your old packages around in case of reverting to emacs-27.2. Installing new packages for versions >=28 is pretty much a must because of native compilation.wanderlust
and related code (such aselmo
) is out of date. And theelmo
code that I'm using indeed is callingmake-obsolete-variable
. Again, I'm looking for some sort of shortcut that I can utilize in order to bypass these errors, rather than try to upgrade all my packages.