           (funcall handler 'exec-path)
         exec-path))))
 
+;; DEPRECATED Remove once enough packages have adapted to these breaking changes.
 (eval-when! EMACS28+
   (defmacro define-obsolete-variable-alias (obsolete-name current-name &optional when docstring)
     "Make OBSOLETE-NAME a variable alias for CURRENT-NAME and mark it obsolete.

        (locate-file command exec-path exec-suffixes 1)))))

(eval-when! (not (fboundp 'exec-path))
  ;; DEPRECATED Backported from Emacs 27.1
  (defun exec-path ()
    "Return list of directories to search programs to run in remote subprocesses.
The remote host is identified by `default-directory'.  For remote

      (macroexp-progn (nreverse expr)))))

(eval-when! (version< emacs-version "27.1")
  ;; DEPRECATED Backported from Emacs 27. Remove when 26.x support is dropped.
  (defun executable-find (command &optional remote)
    "Search for COMMAND in `exec-path' and return the absolute file name.
Return nil if COMMAND is not found anywhere in `exec-path'.  If
