Subject: Re: bug#45098: 28.0.50; gnu-elpa: if user says `no' to install package, it aborts the previous function invoked

From: Stefan Monnier <[email-masked]>
Date: Tue, 08 Dec 2020 09:22:18 -0500

>> Problem (2) is largely unsolvable on `gnu-elpa`s side.
>> Basically, the code in `sql-indent-enable` in sql.el does:
>>
>>     (when (fboundp 'sqlind-minor-mode)
>>       (sqlind-minor-mode (if sql-use-indent-support +1 -1)))
>>
>> With `gnu-elpa` installed, `sqlind-minor-mode` is defined (as an
>> autoloaded function), so we call it which in turns loads `gnu-elpa.el`,
>> but from there we can't "uncall" the function.  We could signal
>> a different error than "Abort", and then change the call so it just
>> ignores such errors, or we could have a special hack in `gnu-elpa` for
>> `sqlind-minor-mode` such that when the user decides not to
>> install the package we install a dummy version of the function which
>> does nothing (and then undefines the function), but I'm not sure it's
>> worth the trouble.
>
> Couldn't gnu-elpa just make sqlind-minor-mode into `indentity' (or
> something similar) in these cases?

You're thinking `ignore`, I suspect, and yes that's what I referred to
with "a dummy version of the function which does nothing".

        Stefan