Subject: Re: bug#58474: 29.0.50; gnus does not startup in latest master: (void-variable gnus-local-domain)

From: Uwe Brauer <[email-masked]>
Date: Thu, 13 Oct 2022 12:08:17 +0200

>>> "EZ" == Eli Zaretskii <[email-masked]> writes:

>> From: Uwe Brauer <[email-masked]>
>> Cc: Uwe Brauer <[email-masked]>, [email-masked]
>> Date: Wed, 12 Oct 2022 22:22:21 +0200
>> 
>> > Did you try looking up this variable in NEWS?
>> 
>> 
>> Sigh, I did now, 
>> ** Some functions and variables obsolete since Emacs 24 have been removed:
>> 
>> But no hint how to somehow use it anyhow.

> Look at the code which caused the problem:

>> Debugger entered--Lisp error: (void-variable gnus-local-domain)
>> (or gnus-local-domain (message-make-domain) (system-name) "")
>      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

> So if gnus-local-domain is nil, the code in bbdb already knows how to
> deal with that, it just needs the variable to exist.

> Now look at how this obsolete variable was defined in Emacs 28:

>  (defcustom gnus-local-domain nil

> This is how you have been "using" this variable since Emacs 24: with a
> nil value.  So just

>   (defvar gnus-local-domain nil)

> somewhere in your init file should do.  Better yet, modify bbdb to
> remove all the references to that variable.

Thanks, may I  propose, and I think I will propose it in devel later today:

Why not have a file called 

obsolete-var-funcs.el or backward-compatiblity-var-func.el

That contains these old compatibility code?

Such a file  could be loaded by users who need this sort of compatibility?

In my case such a file would look, for the moment (I have to run more tests)

(define-obsolete-function-alias 'set-face-underline-p
                                'set-face-underline "24.3")

(defcustom gnus-local-domain nil
  "Local domain name without a host name.
The DOMAINNAME environment variable is used instead if it is defined.
If the function `system-name' returns the full Internet name, there is
no need to set this variable."
  :group 'gnus-message
  :type '(choice (const :tag "default" nil)
		 string))
(make-obsolete-variable 'gnus-local-domain nil "24.1")

-- 
I strongly condemn Putin's war of aggression against the Ukraine.
I support to deliver weapons to Ukraine's military. 
I support the ban of Russia from SWIFT.
I support the EU membership of the Ukraine.