* [PATCH 1/4] Makefile: use /usr/ucb/install on SunOS platforms rather than ginstall
@ 2009-05-28 2:17 Brandon Casey
2009-05-28 2:17 ` [PATCH 2/4] Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments Brandon Casey
2009-05-28 18:57 ` [PATCH 1/4] Makefile: use /usr/ucb/install on SunOS platforms rather than ginstall Jeff King
0 siblings, 2 replies; 10+ messages in thread
From: Brandon Casey @ 2009-05-28 2:17 UTC (permalink / raw)
To: git; +Cc: Brandon Casey
From: Brandon Casey <drafnel@gmail.com>
We can avoid a GNU dependency by using /usr/ucb/install.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
---
This works for me on Solaris 7 and 10. Any reason not to use it instead
of ginstall?
-brandon
Makefile | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile
index eaae45d..ba78077 100644
--- a/Makefile
+++ b/Makefile
@@ -715,7 +715,7 @@ ifeq ($(uname_S),SunOS)
NO_C99_FORMAT = YesPlease
NO_STRTOUMAX = YesPlease
endif
- INSTALL = ginstall
+ INSTALL = /usr/ucb/install
TAR = gtar
BASIC_CFLAGS += -D__EXTENSIONS__
endif
--
1.6.3.1.24.g152f4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/4] Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments
2009-05-28 2:17 [PATCH 1/4] Makefile: use /usr/ucb/install on SunOS platforms rather than ginstall Brandon Casey
@ 2009-05-28 2:17 ` Brandon Casey
2009-05-28 2:17 ` [PATCH 3/4] Makefile: add section for SunOS 5.7 Brandon Casey
2009-05-28 19:10 ` [PATCH 2/4] Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments Jeff King
2009-05-28 18:57 ` [PATCH 1/4] Makefile: use /usr/ucb/install on SunOS platforms rather than ginstall Jeff King
1 sibling, 2 replies; 10+ messages in thread
From: Brandon Casey @ 2009-05-28 2:17 UTC (permalink / raw)
To: git; +Cc: Brandon Casey
From: Brandon Casey <drafnel@gmail.com>
This library is required on Solaris since hstrerror resides in libresolv.
Additionally, on Solaris 7, inet_ntop and inet_pton reside there too.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
---
Makefile | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile
index ba78077..32b28ea 100644
--- a/Makefile
+++ b/Makefile
@@ -91,6 +91,10 @@ all::
# Define NEEDS_SOCKET if linking with libc is not enough (SunOS,
# Patrick Mauritz).
#
+# Define NEEDS_RESOLV if linking with -lnsl and/or -lsocket is not enough.
+# Notably on Solaris hstrerror resides in libresolv and on Solaris 7
+# inet_ntop and inet_pton additionally reside there.
+#
# Define NO_MMAP if you want to avoid mmap.
#
# Define NO_PTHREADS if you do not have or do not want to use Pthreads.
@@ -697,10 +701,10 @@ endif
ifeq ($(uname_S),SunOS)
NEEDS_SOCKET = YesPlease
NEEDS_NSL = YesPlease
+ NEEDS_RESOLV = YesPlease
SHELL_PATH = /bin/bash
NO_STRCASESTR = YesPlease
NO_MEMMEM = YesPlease
- NO_HSTRERROR = YesPlease
NO_MKDTEMP = YesPlease
OLD_ICONV = UnfortunatelyYes
ifeq ($(uname_R),5.8)
@@ -956,6 +960,9 @@ endif
ifdef NEEDS_NSL
EXTLIBS += -lnsl
endif
+ifdef NEEDS_RESOLV
+ EXTLIBS += -lresolv
+endif
ifdef NO_D_TYPE_IN_DIRENT
BASIC_CFLAGS += -DNO_D_TYPE_IN_DIRENT
endif
--
1.6.3.1.24.g152f4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/4] Makefile: add section for SunOS 5.7
2009-05-28 2:17 ` [PATCH 2/4] Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments Brandon Casey
@ 2009-05-28 2:17 ` Brandon Casey
2009-05-28 2:17 ` [PATCH 4/4] Makefile: introduce SANE_TOOL_PATH for prepending required elements to PATH Brandon Casey
2009-05-28 19:10 ` [PATCH 2/4] Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments Jeff King
1 sibling, 1 reply; 10+ messages in thread
From: Brandon Casey @ 2009-05-28 2:17 UTC (permalink / raw)
To: git; +Cc: Brandon Casey
From: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Brandon Casey <drafnel@gmail.com>
---
Makefile | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
index 32b28ea..8b377f3 100644
--- a/Makefile
+++ b/Makefile
@@ -707,6 +707,15 @@ ifeq ($(uname_S),SunOS)
NO_MEMMEM = YesPlease
NO_MKDTEMP = YesPlease
OLD_ICONV = UnfortunatelyYes
+ ifeq ($(uname_R),5.7)
+ NO_IPV6 = YesPlease
+ NO_SOCKADDR_STORAGE = YesPlease
+ NO_UNSETENV = YesPlease
+ NO_SETENV = YesPlease
+ NO_STRLCPY = YesPlease
+ NO_C99_FORMAT = YesPlease
+ NO_STRTOUMAX = YesPlease
+ endif
ifeq ($(uname_R),5.8)
NO_UNSETENV = YesPlease
NO_SETENV = YesPlease
--
1.6.3.1.24.g152f4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 4/4] Makefile: introduce SANE_TOOL_PATH for prepending required elements to PATH
2009-05-28 2:17 ` [PATCH 3/4] Makefile: add section for SunOS 5.7 Brandon Casey
@ 2009-05-28 2:17 ` Brandon Casey
2009-05-28 19:13 ` Jeff King
0 siblings, 1 reply; 10+ messages in thread
From: Brandon Casey @ 2009-05-28 2:17 UTC (permalink / raw)
To: git; +Cc: Junio C Hamano, Brandon Casey
From: Junio C Hamano <gitster@pobox.com>
Some platforms (like SunOS and family) have kept their common binaries at
some historical moment in time, and introduced new binaries with modern
features in a special location like /usr/xpg4/bin or /usr/ucb. Some of the
features provided by these modern binaries are expected and required by git.
If the featureful binaries are not in the users path, then git could end up
using the less featureful binary and fail.
So provide a mechanism to prepend elements to the users PATH at runtime so
the modern binaries will be found.
Signed-off-by: Brandon Casey <drafnel@gmail.com>
---
I liked this patch. Seems like the right thing to do on Solaris.
-brandon
Makefile | 14 ++++++++++++++
git-sh-setup.sh | 2 ++
2 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
index 8b377f3..3f4708f 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.
@@ -703,6 +708,7 @@ ifeq ($(uname_S),SunOS)
NEEDS_NSL = YesPlease
NEEDS_RESOLV = YesPlease
SHELL_PATH = /bin/bash
+ SANE_TOOL_PATH = /usr/xpg6/bin:/usr/xpg4/bin
NO_STRCASESTR = YesPlease
NO_MEMMEM = YesPlease
NO_MKDTEMP = YesPlease
@@ -871,6 +877,13 @@ endif
-include config.mak.autogen
-include config.mak
+ifdef SANE_TOOL_PATH
+BROKEN_PATH_FIX = s|^. @@PATH@@|PATH=$(SANE_TOOL_PATH)|
+PATH := $(SANE_TOOL_PATH):${PATH}
+else
+BROKEN_PATH_FIX = d
+endif
+
ifeq ($(uname_S),Darwin)
ifndef NO_FINK
ifeq ($(shell test -d /sw/lib && echo y),y)
@@ -1272,6 +1285,7 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
-e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
-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
--
1.6.3.1.24.g152f4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/4] Makefile: use /usr/ucb/install on SunOS platforms rather than ginstall
2009-05-28 2:17 [PATCH 1/4] Makefile: use /usr/ucb/install on SunOS platforms rather than ginstall Brandon Casey
2009-05-28 2:17 ` [PATCH 2/4] Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments Brandon Casey
@ 2009-05-28 18:57 ` Jeff King
1 sibling, 0 replies; 10+ messages in thread
From: Jeff King @ 2009-05-28 18:57 UTC (permalink / raw)
To: Brandon Casey; +Cc: git, Brandon Casey
On Wed, May 27, 2009 at 09:17:05PM -0500, Brandon Casey wrote:
> We can avoid a GNU dependency by using /usr/ucb/install.
> [...]
> This works for me on Solaris 7 and 10. Any reason not to use it instead
> of ginstall?
Certainly it works on Solaris 8; I've been setting it manually to
/usr/ucb/install (though I admit my auto-test script doesn't actually do
the install, I do occasionally run the install manually). I think it is
a sane default.
-Peff
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/4] Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments
2009-05-28 2:17 ` [PATCH 2/4] Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments Brandon Casey
2009-05-28 2:17 ` [PATCH 3/4] Makefile: add section for SunOS 5.7 Brandon Casey
@ 2009-05-28 19:10 ` Jeff King
2009-05-28 19:32 ` Brandon Casey
1 sibling, 1 reply; 10+ messages in thread
From: Jeff King @ 2009-05-28 19:10 UTC (permalink / raw)
To: Brandon Casey; +Cc: git, Brandon Casey
On Wed, May 27, 2009 at 09:17:06PM -0500, Brandon Casey wrote:
> This library is required on Solaris since hstrerror resides in libresolv.
> Additionally, on Solaris 7, inet_ntop and inet_pton reside there too.
Patch works for me on Solaris 8, though it is largely a non-issue:
hstrerror is only used at all if NO_IPV6 is set, and I don't set that
for my build.
-Peff
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 4/4] Makefile: introduce SANE_TOOL_PATH for prepending required elements to PATH
2009-05-28 2:17 ` [PATCH 4/4] Makefile: introduce SANE_TOOL_PATH for prepending required elements to PATH Brandon Casey
@ 2009-05-28 19:13 ` Jeff King
2009-05-29 5:13 ` Junio C Hamano
0 siblings, 1 reply; 10+ messages in thread
From: Jeff King @ 2009-05-28 19:13 UTC (permalink / raw)
To: Brandon Casey; +Cc: git, Junio C Hamano, Brandon Casey
On Wed, May 27, 2009 at 09:17:08PM -0500, Brandon Casey wrote:
> Some platforms (like SunOS and family) have kept their common binaries at
> some historical moment in time, and introduced new binaries with modern
> features in a special location like /usr/xpg4/bin or /usr/ucb. Some of the
> features provided by these modern binaries are expected and required by git.
> If the featureful binaries are not in the users path, then git could end up
> using the less featureful binary and fail.
>
> So provide a mechanism to prepend elements to the users PATH at runtime so
> the modern binaries will be found.
My concern with this is that the PATH bleeds over into things we execute
on behalf of the user, like GIT_EDITOR or snippets in git-filter-branch.
So we can end up surprising users that way.
On the other hand, I don't know how big a problem that is in practice. I
feel like any sane Solaris user is going to have xpg4 in their PATH
these days.
-Peff
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/4] Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments
2009-05-28 19:10 ` [PATCH 2/4] Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments Jeff King
@ 2009-05-28 19:32 ` Brandon Casey
2009-05-28 19:35 ` Jeff King
0 siblings, 1 reply; 10+ messages in thread
From: Brandon Casey @ 2009-05-28 19:32 UTC (permalink / raw)
To: Jeff King; +Cc: git, Brandon Casey
Jeff King wrote:
> On Wed, May 27, 2009 at 09:17:06PM -0500, Brandon Casey wrote:
>
>> This library is required on Solaris since hstrerror resides in libresolv.
>> Additionally, on Solaris 7, inet_ntop and inet_pton reside there too.
>
> Patch works for me on Solaris 8, though it is largely a non-issue:
> hstrerror is only used at all if NO_IPV6 is set, and I don't set that
> for my build.
Ah, in that case I guess NEED_RESOLV should only go in the 5.7 specific
configuration section.
-brandon
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/4] Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments
2009-05-28 19:32 ` Brandon Casey
@ 2009-05-28 19:35 ` Jeff King
0 siblings, 0 replies; 10+ messages in thread
From: Jeff King @ 2009-05-28 19:35 UTC (permalink / raw)
To: Brandon Casey; +Cc: git, Brandon Casey
On Thu, May 28, 2009 at 02:32:20PM -0500, Brandon Casey wrote:
> >> This library is required on Solaris since hstrerror resides in libresolv.
> >> Additionally, on Solaris 7, inet_ntop and inet_pton reside there too.
> >
> > Patch works for me on Solaris 8, though it is largely a non-issue:
> > hstrerror is only used at all if NO_IPV6 is set, and I don't set that
> > for my build.
>
> Ah, in that case I guess NEED_RESOLV should only go in the 5.7 specific
> configuration section.
Well, not exactly. Getting rid of NO_HSTRERROR and then compiling with
NO_IPV6 still requires NEED_RESOLV. It's just that NO_HSTRERROR isn't
even useful unless NO_IPV6 is defined.
-Peff
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 4/4] Makefile: introduce SANE_TOOL_PATH for prepending required elements to PATH
2009-05-28 19:13 ` Jeff King
@ 2009-05-29 5:13 ` Junio C Hamano
0 siblings, 0 replies; 10+ messages in thread
From: Junio C Hamano @ 2009-05-29 5:13 UTC (permalink / raw)
To: Jeff King; +Cc: Brandon Casey, git, Junio C Hamano, Brandon Casey
Jeff King <peff@peff.net> writes:
> On Wed, May 27, 2009 at 09:17:08PM -0500, Brandon Casey wrote:
>
>> Some platforms (like SunOS and family) have kept their common binaries at
>> some historical moment in time, and introduced new binaries with modern
>> features in a special location like /usr/xpg4/bin or /usr/ucb. Some of the
>> features provided by these modern binaries are expected and required by git.
>> If the featureful binaries are not in the users path, then git could end up
>> using the less featureful binary and fail.
>>
>> So provide a mechanism to prepend elements to the users PATH at runtime so
>> the modern binaries will be found.
>
> My concern with this is that the PATH bleeds over into things we execute
> on behalf of the user, like GIT_EDITOR or snippets in git-filter-branch.
> So we can end up surprising users that way.
>
> On the other hand, I don't know how big a problem that is in practice. I
> feel like any sane Solaris user is going to have xpg4 in their PATH
> these days.
I share that feeling, in which case the patch should be no-op.
But I recall the "how about this" patch was done as an illustration of a
possible approach to solve breakage in _tests_; the patch actually does
not touch t/Makefile and would not help tests.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2009-05-29 5:14 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-28 2:17 [PATCH 1/4] Makefile: use /usr/ucb/install on SunOS platforms rather than ginstall Brandon Casey
2009-05-28 2:17 ` [PATCH 2/4] Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments Brandon Casey
2009-05-28 2:17 ` [PATCH 3/4] Makefile: add section for SunOS 5.7 Brandon Casey
2009-05-28 2:17 ` [PATCH 4/4] Makefile: introduce SANE_TOOL_PATH for prepending required elements to PATH Brandon Casey
2009-05-28 19:13 ` Jeff King
2009-05-29 5:13 ` Junio C Hamano
2009-05-28 19:10 ` [PATCH 2/4] Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments Jeff King
2009-05-28 19:32 ` Brandon Casey
2009-05-28 19:35 ` Jeff King
2009-05-28 18:57 ` [PATCH 1/4] Makefile: use /usr/ucb/install on SunOS platforms rather than ginstall Jeff King
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).