* init_system_name fqdn? @ 2017-06-16 14:17 Ken Olum 2017-06-16 14:33 ` Yuri Khan 2017-06-17 15:29 ` Stefan Monnier 0 siblings, 2 replies; 13+ messages in thread From: Ken Olum @ 2017-06-16 14:17 UTC (permalink / raw) To: emacs-devel A while back, init_system_name tried to find the system's fully qualified domain name. Then this code was taken out, and now it just uses whatever gethostname returns. I think this is a poor choice. Many systems are configured without a fully qualified hostname. Then when you send mail you get "i-did-not-set--mail-host-address--so-tickle-me" in your from address. Of course this is easily fixed by setting mail-host-address, e.g., in site-start.el, but then when you go to report a bug and say "emacs -Q" ... "M-x report-emacs-bug" you are back to "so tickle me". Ken ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: init_system_name fqdn? 2017-06-16 14:17 init_system_name fqdn? Ken Olum @ 2017-06-16 14:33 ` Yuri Khan 2017-06-16 18:10 ` Ken Olum 2017-06-17 15:29 ` Stefan Monnier 1 sibling, 1 reply; 13+ messages in thread From: Yuri Khan @ 2017-06-16 14:33 UTC (permalink / raw) To: Ken Olum; +Cc: Emacs developers On Fri, Jun 16, 2017 at 9:17 PM, Ken Olum <kdo@cosmos.phy.tufts.edu> wrote: > A while back, init_system_name tried to find the system's fully > qualified domain name. Then this code was taken out, and now it just > uses whatever gethostname returns. I think this is a poor choice. Many > systems are configured without a fully qualified hostname. Even if they are, they are not likely to be able to receive email at their configured FQDN. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: init_system_name fqdn? 2017-06-16 14:33 ` Yuri Khan @ 2017-06-16 18:10 ` Ken Olum 2017-06-17 3:45 ` Tim Cross 0 siblings, 1 reply; 13+ messages in thread From: Ken Olum @ 2017-06-16 18:10 UTC (permalink / raw) To: emacs-devel From: Yuri Khan <yuri.v.khan@gmail.com> Date: Fri, 16 Jun 2017 21:33:05 +0700 > Many systems are configured without a fully qualified hostname. Even if they are, they are not likely to be able to receive email at their configured FQDN. I think the Unix hostname setting has nothing to do with how the system is configured on the Internet. So the fact that hostname is set to something with no domain is not relevant to whether users can receive mail. Ken ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: init_system_name fqdn? 2017-06-16 18:10 ` Ken Olum @ 2017-06-17 3:45 ` Tim Cross 2017-06-17 14:17 ` Ken Olum 0 siblings, 1 reply; 13+ messages in thread From: Tim Cross @ 2017-06-17 3:45 UTC (permalink / raw) To: Ken Olum; +Cc: Emacs developers [-- Attachment #1: Type: text/plain, Size: 3207 bytes --] I'm not sure what your expected result is? If the system does not have a fqdn, which is very common, especially with many SOHO users, then what should it be set to if not hostname? I do remember years ago when lots of systems assumed/expected a fqdn. To make things work correctly, you had to define localhost.localdomain as many systems use a test along the lines of "has at least 2 components in the domain name". My current home machine, with a pretty much default Ubuntu setup has a hostname of tim-desktop. If I use hostname -f it is still tim-desktop because this machine does not have a fqdn - I don't have a real domain name, so cannot have a real fqdn. If I did, the system would be configured accordingly and hostname -f wold return the fqdn. Is your concern that even when you have a system setup with a fqdn that emacs is still only using the hostname part i.e. not hostname -f? If so, yes, this is probably incorrect. On the other hand, if you are concerned about the fact that if the system does not have a fqdn, you don't get a 'real' email address (or at least one which looks real, but may have no MX)? If so, I don't think this is something emacs can really do much about and at least an obvious 'bad address' is better as it may alert the user to the problem. Yes, this does mean that when you do emacs -Q on a system without a fqdn, and then try to send a bug report, the address is incorrect, but that is probably the least of your problems. The email is unlikely to be sent as the system is unlikely to have a correctly configure MTA. If it does, it probably should be configured to re-write the from address to be whatever mailhob/smarthost the system uses anyway. I recall a number of threads in the past about this issue and suggestions to do things like change bug reporting to use a web service instead of relying on email. However, most of these alternative solutions either added additional complexity or required additional infrastructure which someone would have to maintain. From memory, managing the additional infrastructure to provide a web service for bug reports and ensuring it was secure and not susceptible to spam/abuse was the real issue. At the end of the day, I don't think being able to send email correctly from emacs -Q is anything Emacs can reliably solve. However, it isn't a big issue - I've found it pretty easy to just select the message, copy it into my mail client and send it that way. From memory, I think there is even some text in the bug report template warning about this and what to do. On 17 June 2017 at 04:10, Ken Olum <kdo@cosmos.phy.tufts.edu> wrote: > From: Yuri Khan <yuri.v.khan@gmail.com> > Date: Fri, 16 Jun 2017 21:33:05 +0700 > > > Many systems are configured without a fully qualified hostname. > > Even if they are, they are not likely to be able to receive email at > their configured FQDN. > > I think the Unix hostname setting has nothing to do with how the system > is configured on the Internet. So the fact that hostname is set to > something with no domain is not relevant to whether users can receive > mail. > > Ken > > -- regards, Tim -- Tim Cross [-- Attachment #2: Type: text/html, Size: 4196 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: init_system_name fqdn? 2017-06-17 3:45 ` Tim Cross @ 2017-06-17 14:17 ` Ken Olum 2017-06-17 16:30 ` Stefan Monnier 2017-06-18 1:48 ` Tim Cross 0 siblings, 2 replies; 13+ messages in thread From: Ken Olum @ 2017-06-17 14:17 UTC (permalink / raw) To: emacs-devel If your system has no fully qualified domain name, i.e., there is no DNS entry that points to this host, then of course you cannot receive and probably cannot send email, and I don't think it's very important exactly how it fails. But if your system is properly set up as an Internet host but gethostname does not return the FQDN (e.g., because you put the short name first in /etc/hosts), then I think init_system_name should use the FQDN. In the cases in which I have observed this, "hostname -f" does return the FQDN. In emacs-24, the procedure of init_system_name was to first do gethostname, but if that didn't return a qualified name, it would try getaddrinfo with ai_canonname, and if that failed look in the list of aliases given by gethostbyname. Later all this code was removed and now it just calls gethostname. Ken ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: init_system_name fqdn? 2017-06-17 14:17 ` Ken Olum @ 2017-06-17 16:30 ` Stefan Monnier 2017-06-18 1:48 ` Tim Cross 1 sibling, 0 replies; 13+ messages in thread From: Stefan Monnier @ 2017-06-17 16:30 UTC (permalink / raw) To: emacs-devel > exactly how it fails. But if your system is properly set up as an > Internet host but gethostname does not return the FQDN (e.g., because > you put the short name first in /etc/hosts), then I think > init_system_name should use the FQDN. How do you suggest Emacs decide whether the "system is properly set up as an Internet host"? Why don't you just set up /etc/hostname (I don't think /etc/hosts is consulted to compute `system-name`) with the FQDN instead of a short name on those hosts that are properly setup as an Internet host? Stefan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: init_system_name fqdn? 2017-06-17 14:17 ` Ken Olum 2017-06-17 16:30 ` Stefan Monnier @ 2017-06-18 1:48 ` Tim Cross 1 sibling, 0 replies; 13+ messages in thread From: Tim Cross @ 2017-06-18 1:48 UTC (permalink / raw) To: Ken Olum; +Cc: Emacs developers [-- Attachment #1: Type: text/plain, Size: 3146 bytes --] If you have a fqdn for a host and hostname -f does not return the fqdn, then your system is not configured correctly. This would likely cause errors or problems with other software as well. Having a FQDN and a DNS entry are not the same thing. You can have a fqdn without a DNS entry, though it isn't very useful of course as nobody else can resolve the fqdn to an IP address (unless you put a manual entry in /etc/hosts of course). There are only incidental relationships between FQDN and the ability to send/receive email. You definitely do not need a fqdn to send email and there are a number of ways to have email delivered to a machine without a fqdn or DNS entry e.g. fetchmail. mailhobs with local /etc/hosts entries with 192.168.x.x or 10.x.x.x addresses etc. There are many different ways for a system to support sending/receiving email and it is extremely unlikely that Emacs will be able to determine this correctly automatically. Any attempt to do so will almost certainly be complex and error prone and a pain to maintain. Add to this that far fewer hosts actually do email anymore. 20 years ago, I always setup a local mail server on my system. Now I rarely do. ISPs now frequently block port 25 and most medium to large organisations have very strict policies in place to prevent users from setting up mail servers due to the frequency of misconfiguration that either caused errors or created an open mail relay which could be used for spam and potentially adversely impact on an organisations reputation or result i their mail being blackholed etc. I think I'm with Stefan on this one. The only sane and maintainable solution is to have emacs check for an explicit mail address configuration set by the user and if none exists, prompt the user for one when sending email. In reality, you will probably have to prompt for the name of the mail server as well and possibly a password as many mail servers now use authenticated smtp and you cannot assume the local host has a configured MTA. Or you just display a message saying to cut and paste your message into your preferred mail client and send it that way. Tim On 18 June 2017 at 00:17, Ken Olum <kdo@cosmos.phy.tufts.edu> wrote: > If your system has no fully qualified domain name, i.e., there is no DNS > entry that points to this host, then of course you cannot receive and > probably cannot send email, and I don't think it's very important > exactly how it fails. But if your system is properly set up as an > Internet host but gethostname does not return the FQDN (e.g., because > you put the short name first in /etc/hosts), then I think > init_system_name should use the FQDN. In the cases in which I have > observed this, "hostname -f" does return the FQDN. > > In emacs-24, the procedure of init_system_name was to first do > gethostname, but if that didn't return a qualified name, it would try > getaddrinfo with ai_canonname, and if that failed look in the list of > aliases given by gethostbyname. Later all this code was removed and now > it just calls gethostname. > > Ken > > -- regards, Tim -- Tim Cross [-- Attachment #2: Type: text/html, Size: 3958 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: init_system_name fqdn? 2017-06-16 14:17 init_system_name fqdn? Ken Olum 2017-06-16 14:33 ` Yuri Khan @ 2017-06-17 15:29 ` Stefan Monnier 2017-06-17 17:10 ` Ken Olum 1 sibling, 1 reply; 13+ messages in thread From: Stefan Monnier @ 2017-06-17 15:29 UTC (permalink / raw) To: emacs-devel > A while back, init_system_name tried to find the system's fully > qualified domain name. Then this code was taken out, and now it just > uses whatever gethostname returns. I think this is a poor choice. It depends on what it's used for. What is your use for it where it's a poor choice? > Many systems are configured without a fully qualified hostname. > Then when you send mail you get > "i-did-not-set--mail-host-address--so-tickle-me" in your from address. Indeed, gethostname doesn't return a good choice for mail-host-address. But of all the machines I have had access to in the last 10 years, not a single one had an FQDN that was a good choice for mail-host-address either. So the only "advantage" of the old code was that it was more complex and could delay startup by 2min in some cases. > Of course this is easily fixed by setting mail-host-address, > e.g., in site-start.el, but then when you go to report a bug and say > "emacs -Q" ... "M-x report-emacs-bug" you are back to "so tickle me". How do you suggest Emacs discovers that it should use "iro.umontreal.ca" (hint: no machine has such an FQDN)? [ Actually, even that is dicey: nowadays "username @ mail-host-address" is likely to be generally wrong. Instead, every user has her own choice of mail service, so user `foo` would want to use `foo63@gnu.org`, user `bar` will want to use `chocolate.bar@gmial.com`. ] Stefan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: init_system_name fqdn? 2017-06-17 15:29 ` Stefan Monnier @ 2017-06-17 17:10 ` Ken Olum 2017-06-17 17:29 ` Stefan Monnier 0 siblings, 1 reply; 13+ messages in thread From: Ken Olum @ 2017-06-17 17:10 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel From: Stefan Monnier <monnier@iro.umontreal.ca> Date: Sat, 17 Jun 2017 11:29:22 -0400 > A while back, init_system_name tried to find the system's fully > qualified domain name. Then this code was taken out, and now it just > uses whatever gethostname returns. I think this is a poor choice. It depends on what it's used for. What is your use for it where it's a poor choice? The hostname of the machine I'm using is "cosmos", because that's what I put in /etc/hostname. Its FQDN is cosmos.phy.tufts.edu, and that's where my email address is. This is what "hostname -f" prints and what the old code used to guess. I connected to a server maintained by the Tufts IT department and it was set up the same way. Indeed, gethostname doesn't return a good choice for mail-host-address. But of all the machines I have had access to in the last 10 years, not a single one had an FQDN that was a good choice for mail-host-address either. So the only "advantage" of the old code was that it was more complex and could delay startup by 2min in some cases. I don't know what was causing this delay, but certainly we don't want it. Can "hostname -f" cause a similar delay? Would you suggest not guessing at all and requiring the installer to set mail-host-address or the user to set user-mail-address before mail can be sent? I think if we're going to guess at all, "hostname -f" or some equivalent code might be a better guess than gethostname(). From: Stefan Monnier <monnier@iro.umontreal.ca> Date: Sat, 17 Jun 2017 12:30:52 -0400 How do you suggest Emacs decide whether the "system is properly set up as an Internet host"? It cannot. The question is whether to guess at all, and if so what to guess. Why don't you just set up /etc/hostname (I don't think /etc/hosts is consulted to compute `system-name`) with the FQDN instead of a short name on those hosts that are properly setup as an Internet host? Of course I could do that. I was thinking that maybe there were other people who have similarly configured systems and would find it easier for emacs to work "of the box" instead of having to change their hostnames. But as you say maybe it's unlikely that guessing would work at all. If that's so, rather than possibly making wrong guesses which would lead replies to be discarded, maybe emacs by default should ask for your email address instead of making any guess. (Then it could set user-mail-address in your init file in the usual way, so it wouldn't have to ask again, except in the case of -Q.) Ken ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: init_system_name fqdn? 2017-06-17 17:10 ` Ken Olum @ 2017-06-17 17:29 ` Stefan Monnier 2017-06-17 18:52 ` Paul Eggert 0 siblings, 1 reply; 13+ messages in thread From: Stefan Monnier @ 2017-06-17 17:29 UTC (permalink / raw) To: Ken Olum; +Cc: emacs-devel > The hostname of the machine I'm using is "cosmos", because that's what I > put in /etc/hostname. Its FQDN is cosmos.phy.tufts.edu, and that's > where my email address is. My understanding of the current state of email in the world is that such a situation is extremely rare nowadays (even though it was pretty standard 20 years ago, indeed). > I don't know what was causing this delay, Misconfigurations. > but certainly we don't want it. Can "hostname -f" cause > a similar delay? I think so, yes (IIRC this happened when /etc/nsswitch.conf would say to consult a DNS server, while the server mentioned in /etc/resolv.conf was currently unreachable). > Would you suggest not guessing at all and requiring the installer to set > mail-host-address or the user to set user-mail-address before mail can > be sent? Yes. I think nowadays, guessing the user-mail-address based on "username" and "system-name" is just hopeless. A better basis for the guess could be ~/.gitconfig. If we want "emacs -Q" to get a valid email without prompting you every time, then we need to store the email somewhere else than ~/.emacs. Stefan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: init_system_name fqdn? 2017-06-17 17:29 ` Stefan Monnier @ 2017-06-17 18:52 ` Paul Eggert 2017-06-17 19:51 ` Lars Ingebrigtsen 0 siblings, 1 reply; 13+ messages in thread From: Paul Eggert @ 2017-06-17 18:52 UTC (permalink / raw) To: emacs-devel; +Cc: Ken Olum Stefan Monnier wrote: > Yes. I think nowadays, guessing the user-mail-address based on > "username" and "system-name" is just hopeless. A better basis for the > guess could be ~/.gitconfig. Yes, perhaps we could default the email address to the output of the command 'git config --get user.email' if the command is successful. This would be a win for my setup, where /etc/hostname contains 'Penguin.CS.UCLA.EDU' (because that's what our local DNS says my machine's name is, and Fedora's setup procedure fills in /etc/hostname from that), but eggert@Penguin.CS.UCLA.EDU does not work as an email address. > If we want "emacs -Q" to get a valid email without prompting you every > time, then we need to store the email somewhere else than ~/.emacs. Yes, defaulting to .gitconfig would have fixed some of the misconfigured emails I've sent from Emacs over the years, when I mistakenly sent email from emacs -Q. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: init_system_name fqdn? 2017-06-17 18:52 ` Paul Eggert @ 2017-06-17 19:51 ` Lars Ingebrigtsen 2017-06-17 22:30 ` Ken Olum 0 siblings, 1 reply; 13+ messages in thread From: Lars Ingebrigtsen @ 2017-06-17 19:51 UTC (permalink / raw) To: Paul Eggert; +Cc: Ken Olum, emacs-devel Paul Eggert <eggert@cs.ucla.edu> writes: > Yes, perhaps we could default the email address to the output of the > command 'git config --get user.email' if the command is successful. Or we could do what every other program that exists now does, and accept that there now is no way of programmatically guessing what the email address is and just ask the user (if the user wants to send an email). -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: init_system_name fqdn? 2017-06-17 19:51 ` Lars Ingebrigtsen @ 2017-06-17 22:30 ` Ken Olum 0 siblings, 0 replies; 13+ messages in thread From: Ken Olum @ 2017-06-17 22:30 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: eggert, emacs-devel From: Lars Ingebrigtsen <larsi@gnus.org> Date: Sat, 17 Jun 2017 21:51:11 +0200 Or we could do what every other program that exists now does, and accept that there now is no way of programmatically guessing what the email address is and just ask the user (if the user wants to send an email). Not quite every program. Mailx and its successor s-nail work without my needing to specify any from address. In my case they guess right, but I don't know what procedure they use. Perhaps it is not such a good idea. Emacs could get your address from git, but what if you don't use git? Presumably there are many other programs that might have some knowledge of your email address also. Which set should we use? Emacs currently accepts the environment variable EMAIL. It's not very standard but a few other programs (e.g., Mutt) use it also. It would be good to keep that at least (and it will be convenient if you report lots of bugs with emacs -Q). Ken ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2017-06-18 1:48 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-06-16 14:17 init_system_name fqdn? Ken Olum 2017-06-16 14:33 ` Yuri Khan 2017-06-16 18:10 ` Ken Olum 2017-06-17 3:45 ` Tim Cross 2017-06-17 14:17 ` Ken Olum 2017-06-17 16:30 ` Stefan Monnier 2017-06-18 1:48 ` Tim Cross 2017-06-17 15:29 ` Stefan Monnier 2017-06-17 17:10 ` Ken Olum 2017-06-17 17:29 ` Stefan Monnier 2017-06-17 18:52 ` Paul Eggert 2017-06-17 19:51 ` Lars Ingebrigtsen 2017-06-17 22:30 ` Ken Olum
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).