Brandon Casey <casey@xxxxxxxxxxxxxxx> writes: > /usr/xpg*/bin is where Sun puts the POSIX compliant versions of standard > system utilities. > > The binaries in /bin/ retain their historical Solaris behavior. > > Check out the XPG4 man page on a sun. > > Not sure about the best route to take here. /usr/xpg4/bin should probably > be in the user's PATH when git is executed too. I doubt it is limited to git. My experience from the days I had to do things on Solaris boxes several years ago was that it was the only way to have a workable environment to have /usr/xpg*/bin on my PATH. If the contents of the stock /usr/bin has been frozen at the historical state while the outside world made progress, I would imagine that the situation has gotten worse for people who still use tools from /usr/bin and expect their scripts to be portable with anybody else. On Solaris, I expect everybody to build git with SHELL_PATH set to something other than /bin/sh, and binary packaged one (I do not know Solaris have such a packaging system, though) would also be set to avoid the broken /bin/sh. I suspect you could do something like this... Makefile | 13 +++++++++++++ git-sh-setup.sh | 2 ++ 2 files changed, 15 insertions(+), 0 deletions(-) diff --git a/Makefile b/Makefile index 6e21643..081f06a 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,11 @@ all:: # Define V=1 to have a more verbose compile. # +# Define SHELL_PATH to a POSIX shell if your /bin/sh is broken. +# +# Define SANE_TOOL_PATH to a colon-separated list of paths to prepend +# to PATH if your tools in /usr/bin are broken. +# # Define SNPRINTF_RETURNS_BOGUS if your are on a system which snprintf() # or vsnprintf() return -1 instead of number of characters which would # have been written to the final string if enough space had been available. @@ -694,6 +699,7 @@ ifeq ($(uname_S),SunOS) NEEDS_SOCKET = YesPlease NEEDS_NSL = YesPlease SHELL_PATH = /bin/bash + SANE_TOOL_PATH = /usr/xpg5/bin:/usr/xpg4/bin NO_STRCASESTR = YesPlease NO_MEMMEM = YesPlease NO_HSTRERROR = YesPlease @@ -852,6 +858,12 @@ endif -include config.mak.autogen -include config.mak +ifdef SANE_TOOL_PATH +BROKEN_PATH_FIX = s|^. @@PATH@@|PATH=$(SANE_TOOL_PATH)| +else +BROKEN_PATH_FIX = d +endif + ifeq ($(uname_S),Darwin) ifndef NO_FINK ifeq ($(shell test -d /sw/lib && echo y),y) @@ -1251,6 +1263,7 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \ -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ -e 's/@@NO_CURL@@/$(NO_CURL)/g' \ + -e '/^# @@PATH@@/$(BROKEN_PATH_FIX)' \ $@.sh >$@+ && \ chmod +x $@+ && \ mv $@+ $@ diff --git a/git-sh-setup.sh b/git-sh-setup.sh index 8382339..7802581 100755 --- a/git-sh-setup.sh +++ b/git-sh-setup.sh @@ -11,6 +11,8 @@ # exporting it. unset CDPATH +# @@PATH@@:$PATH + die() { echo >&2 "$@" exit 1 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html