changeset 85820:c38fd117c89c

(install-arch-indep): Fallback to $USER and `id -un' when changing ownership of installed files.
author Glenn Morris <rgm@gnu.org>
date Wed, 31 Oct 2007 03:19:12 +0000
parents 50db25792c24
children 489fadf44183
files Makefile.in
diffstat 1 files changed, 23 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.in	Wed Oct 31 03:17:50 2007 +0000
+++ b/Makefile.in	Wed Oct 31 03:19:12 2007 +0000
@@ -423,6 +423,12 @@
 
 ## Note that the Makefiles in the etc directory are potentially useful
 ## in an installed Emacs, so should not be excluded.
+
+## installuser: 
+## http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg01672.html
+## Nuisance because i) it needs to be the user running install, so
+## configure can't set it; ii) can't (?) use the result of rule
+## commands to set make variables.
 install-arch-indep: mkdir info
 	-set ${COPYDESTS} ; \
 	unset CDPATH; \
@@ -436,6 +442,10 @@
 	mkdir ${COPYDESTS} ; \
 	chmod ugo+rx ${COPYDESTS} ; \
 	unset CDPATH; \
+	for installuser in $${LOGNAME} $${USERNAME} $${USER} \
+	  `id -un 2> /dev/null`; do \
+	  [ -n "$${installuser}" ] && break ; \
+	done ; \
 	for dir in ${COPYDIR} ; do \
 	  dest=$$1 ; shift ; \
 	  [ -d $${dir} ] \
@@ -444,7 +454,7 @@
 	      (cd $${dir}; tar -chf - . ) \
 		| (cd $${dest}; umask 022; \
                    tar -xvf - && cat > /dev/null) || exit 1; \
-	      find $${dest} -exec chown $${LOGNAME:-$$USERNAME} {} ';' ;\
+	      find $${dest} -exec chown $${installuser} {} ';' ;\
 	      for subdir in `find $${dest} -type d ! -name RCS ! -name CVS -print` ; do \
 		chmod a+rx $${subdir} ; \
 		rm -rf $${subdir}/RCS ; \
@@ -492,7 +502,12 @@
 	   echo "Copying etc/$${docfile} to $(DESTDIR)${docdir} ..." ; \
 	   (cd ./etc; tar -chf - $${docfile}) \
 	     |(cd $(DESTDIR)${docdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
-	   (cd $(DESTDIR)$(docdir); chown $${LOGNAME:-$$USERNAME} DOC*; chmod a+r DOC*; \
+	   (cd $(DESTDIR)$(docdir); \
+	    for installuser in $${LOGNAME} $${USERNAME} $${USER} \
+	      `id -un 2> /dev/null`; do \
+	       [ -n "$${installuser}" ] && break ; \
+	    done ; \
+	    chown $${installuser} DOC*; chmod a+r DOC*; \
 	    if test "`echo DOC-*`" != "DOC-*"; then rm -f DOC; fi); \
 	else true; fi
 	-unset CDPATH; \
@@ -504,7 +519,12 @@
 	   echo "Copying lisp/*.el and lisp/*.elc to $(DESTDIR)${lispdir} ..." ; \
 	   (cd lisp; tar -chf - *.el *.elc) \
 	     |(cd $(DESTDIR)${lispdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
-	   (cd $(DESTDIR)${lispdir}; find . -exec chown $${LOGNAME:-$$USERNAME} {} ';') ; \
+	   (cd $(DESTDIR)${lispdir}; \
+	    for installuser in $${LOGNAME} $${USERNAME} $${USER} \
+	      `id -un 2> /dev/null`; do \
+	       [ -n "$${installuser}" ] && break ; \
+	    done ; \
+	    find . -exec chown $${installuser} {} ';') ; \
 	else true; fi
 	-unset CDPATH; \
 	if [ -n "${GZIP_PROG}" ]; \