threads / patch / 28680

patcht1304: fall back to $USER if $LOGNAME is not defined

Subject: [PATCH] t1304: fall back to $USER if $LOGNAME is not defined

## tl;dr

3 messages between Oct 14, 2011 and Oct 14, 2011. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

René Scharfe· Oct 14, 2011, 17:44 UTC · lore

For some reason $LOGNAME is not set anymore for me after an upgrade from Ubuntu 11.04 to 11.10. Use $USER in such a case.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
---
The only other use of $LOGNAME is in git-cvsimport, which does the same.
 t/t1304-default-acl.sh |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
Show changes to t/t1304-default-acl.sh +5 −0
diff --git a/t/t1304-default-acl.sh b/t/t1304-default-acl.sh
index b5d89a2..2b962cf 100755
--- a/t/t1304-default-acl.sh
+++ b/t/t1304-default-acl.sh
@@ -25,6 +25,11 @@ else
 	test_set_prereq SETFACL
 fi
 
+if test -z "$LOGNAME"
+then
+	LOGNAME=$USER
+fi
+
 check_perms_and_acl () {
 	test -r "$1" &&
 	getfacl "$1" > actual &&
-- 
1.7.7
Junio C Hamano· Oct 14, 2011, 18:41 UTC · re: René Scharfe · lore

Re: [PATCH] t1304: fall back to $USER if $LOGNAME is not defined

René Scharfe <rene.scharfe@lsrfire.ath.cx> writes:
Show 6 quoted lines
> For some reason $LOGNAME is not set anymore for me after an upgrade from
> Ubuntu 11.04 to 11.10.  Use $USER in such a case.
>
> Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
> ---
> The only other use of $LOGNAME is in git-cvsimport, which does the same.

While the change to assign $USER to $LOGNAME when the latter is not set is not wrong per-se, I have to wonder (1) why this test should use LOGNAME not USER in the first place, and (2) why you lost LOGNAME.

LOGNAME The system shall initialize this variable at the time of login to be the user's login name. See <pwd.h> . For a value of LOGNAME to be portable across implementations of POSIX.1-2008, the value should be composed of characters from the portable filename character set.

Will apply anyway. Thanks.
René Scharfe· Oct 14, 2011, 20:54 UTC · re: Junio C Hamano · lore

Re: [PATCH] t1304: fall back to $USER if $LOGNAME is not defined

Am 14.10.2011 20:41, schrieb Junio C Hamano:
Show 20 quoted lines
> René Scharfe <rene.scharfe@lsrfire.ath.cx> writes:
> 
>> For some reason $LOGNAME is not set anymore for me after an upgrade from
>> Ubuntu 11.04 to 11.10.  Use $USER in such a case.
>>
>> Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
>> ---
>> The only other use of $LOGNAME is in git-cvsimport, which does the same.
> 
> While the change to assign $USER to $LOGNAME when the latter is not set is
> not wrong per-se, I have to wonder (1) why this test should use LOGNAME
> not USER in the first place, and (2) why you lost LOGNAME.
> 
> LOGNAME
> The system shall initialize this variable at the time of login to be the
> user's login name. See <pwd.h> . For a value of LOGNAME to be portable
> across implementations of POSIX.1-2008, the value should be composed of
> characters from the portable filename character set.
> 
> Will apply anyway. Thanks.

Common practise (on Linux at least) seems to be to set both $LOGNAME (from Sys-V) and $USER (from BSD) to the same value, so either could be used. The portable way is to check both.

Both were set before the upgrade on my system, and $LOGNAME is _still_ set if I log onto the console or use sudo or su, but it's _not_ set in a plain Gnome Terminal with bash. I also wonder why that may be.

René

← back to recent threads