[PATCH] Use /etc/mailname for the hostname part of the email address.

Subsystems: the rest

DORMANTno replies

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

[PATCH] Use /etc/mailname for the hostname part of the email address.

From: Matt Kraai <hidden>
Date: 2016-06-15 22:43:20

From: Matt Kraai <redacted>

/etc/mailname contains the hostname to be used on outgoing email
messages generated locally on Debian systems (cf.
http://www.debian.org/doc/debian-policy/ch-customized-programs.html).
If it available, use it instead of gethostname or gethostbyname.

Signed-off-by: Matt Kraai <redacted>
---

	If this is only appropriate for the Debian package, I
	apologize.  Please let me know if this is the case and I'll
	submit it to the Debian maintainer.

 ident.c |   26 +++++++++++++++++++++++++-
 1 files changed, 25 insertions(+), 1 deletions(-)
diff --git a/ident.c b/ident.c
index 6612d17..3d05ae2 100644
--- a/ident.c
+++ b/ident.c
@@ -43,6 +43,27 @@ static void copy_gecos(const struct passwd *w, char *name, size_t sz)
 
 }
 
+static int getmailname(char *name, size_t len)
+{
+	FILE *f = fopen("/etc/mailname", "r");
+	int i;
+
+	if (!f)
+		return -1;
+	if (!fgets(name, len, f)) {
+		fclose(f);
+		return -1;
+	}
+	fclose(f);
+	for (i = 0; !isspace(name[i]); i++)
+		;
+	if (name[i - 1] != '.')
+		name[i] = '\0';
+	else
+		name[i - 1] = '\0';
+	return 0;
+}
+
 static void copy_email(const struct passwd *pw)
 {
 	/*
@@ -54,7 +75,10 @@ static void copy_email(const struct passwd *pw)
 		die("Your sysadmin must hate you!");
 	memcpy(git_default_email, pw->pw_name, len);
 	git_default_email[len++] = '@';
-	gethostname(git_default_email + len, sizeof(git_default_email) - len);
+	if (getmailname(git_default_email + len,
+			sizeof(git_default_email) - len) < 0)
+		gethostname(git_default_email + len,
+			    sizeof(git_default_email) - len);
 	if (!strchr(git_default_email+len, '.')) {
 		struct hostent *he = gethostbyname(git_default_email + len);
 		char *domainname;
-- 
1.5.2.3

Re: [PATCH] Use /etc/mailname for the hostname part of the email address.

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2016-06-15 22:43:20


On Fri, 6 Jul 2007, Matt Kraai wrote:
From: Matt Kraai <redacted>

/etc/mailname contains the hostname to be used on outgoing email
messages generated locally on Debian systems
I think this is taking us into a bad direction.

The thing is, I actually personally tend to _prefer_ the committer name as 
being "user@hostname" rather than a "real" email address.

It often tells you something much more.

For example, take a look at the kernel archive, and do

	git log --author=torvalds

and notice how the exact author string changes - not just because 
"osdl.org" became "linux-foundation.org", but because it ends up encoding 
which *machine* I did things on.

For example, while I do almost all my work at any time on my "main" 
machine (right now "woody" - not because I'm horny, but because it's an 
Intel woodcrest machine, the way my previous main machine was called "g5" 
because it was an IBM PowerPC G5 machine), but I sometimes do things on 
another machine because that's the machine that showed the problem, or was 
the machine that it got tested on (32-bit x86 things: "macmini" or "evo"), 
or it was just the laptop I use while travelling ("evo" again).

IOW, I don't think the authorship really even _has_ to be seen as a "real 
email" address. The "user@hostname" in many ways is nicer. Sure, when the 
patches come in as emails (which ends up being most of them), it obviously 
ends up being the email, but I don't think that's at all required.

If you actually want to contact the people involved with a patch, you 
should use the "Signed-off-by:" and "Cc:" lines in the commit message, not 
necessarily the author thing!

			Linus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help