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

3 messages from 2007-07-07 to 2007-07-07. Participants: Matt Kraai, Linus Torvalds, Junio C Hamano.
Thread: https://gitlist.dev/t/8910

## Matt Kraai, 2007-07-07 02:21

Subject: [PATCH] Use /etc/mailname for the hostname part of the email address.
Message-ID: <11837748652889-git-send-email-kraai@ftbfs.org>
URL: https://gitlist.dev/e/11837748652889-git-send-email-kraai%40ftbfs.org

```
From: Matt Kraai <kraai@asturias.ftbfs.org>

/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 <kraai@ftbfs.org>
---

	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

```

## Linus Torvalds, 2007-07-07 02:54

Subject: Re: [PATCH] Use /etc/mailname for the hostname part of the email address.
Message-ID: <alpine.LFD.0.999.0707061945220.31544@woody.linux-foundation.org>
URL: https://gitlist.dev/e/alpine.LFD.0.999.0707061945220.31544%40woody.linux-foundation.org
In-Reply-To: <11837748652889-git-send-email-kraai@ftbfs.org>

```


On Fri, 6 Jul 2007, Matt Kraai wrote:
>
> From: Matt Kraai <kraai@asturias.ftbfs.org>
> 
> /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

```

## Junio C Hamano, 2007-07-07 06:07

Subject: Re: [PATCH] Use /etc/mailname for the hostname part of the email address.
Message-ID: <7vabu8d9w1.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vabu8d9w1.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <alpine.LFD.0.999.0707061945220.31544@woody.linux-foundation.org>

```
Linus Torvalds <torvalds@linux-foundation.org> writes:

> 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.

I remember you said exactly the same thing before.  But I wonder
if "committer" e-mail address is really the place you would want
to use as (one of) the source of reliable information for that
kind of thing.  The information obviously can be used among
people who exchange commits via git-pull, but what about people
whose changes are always fed as e-mailed patches?

For such people, if they would want to encode the auxiliary
information in their author name like you do with g5 and woody,
would you recommend they put the in-body From: header, which may
not be working e-mail addresses to reach them?

```
