git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: shell compatibility issues with SunOS 5.10

From
Brandon Casey <casey@nrlssc.navy.mil>
Date
May 6, 2009, 18:14 UTC
Message-ID
<-ElxRhvpfY_jx1Ps8nJ42rHdrKbR03T1y96WpGK19gM@cipher.nrlssc.navy.mil>
In-Reply-To
<20090506055913.GA9701@dektop>
Nguyen Thai Ngoc Duy wrote:
> Hi,
> 
> I did "make test" on a SunOS 5.10 and it failed.
Show 10 quoted lines
> diff --git a/t/t4200-rerere.sh b/t/t4200-rerere.sh
> index b68ab11..61ccdee 100755
> --- a/t/t4200-rerere.sh
> +++ b/t/t4200-rerere.sh
> @@ -57,7 +57,7 @@ test_expect_success 'conflicting merge' '
>  	test_must_fail git merge first
>  '
>  
> -sha1=$(sed -e 's/	.*//' .git/MERGE_RR)
> +sha1=$(cut -f 1 .git/MERGE_RR)

Are you using /bin/sed? I think it has a problem with tabs. /usr/xpg4/bin/sed works correctly, but it has a problem with files that are not newline terminated. So you will get other errors. I have a set of "ugly" patches that I will follow this email with that allow me to compile on Solaris 10 while skipping the following tests:

   GIT_SKIP_TESTS='
      t3900.2[23]
      t3901.[67]
      t6030.1[23]
      t8005.*
   '
The t3900 and t3901 are due to iconv failures.

The t6030 issues are due to a flaw in Sun's ksh, i.e. /usr/xpg4/bin/sh which I use for testing. This ksh seems to only call a trap that is set within at most the next outer-layer function. In other words, if func1 sets a trap, and calls func2 which calls func3 which exits, then the trap in func1 will _not_ be called. If instead, func2 exits, then the trap will be called. Bisect does such a thing. You should not have a problem with other ksh or bash.

I had assumed t8005 was failing because of iconv, but since you have pointed out the extended RE in grep, some of these should pass. Converting to egrep allows tests 1, 4 and 5 to pass for me. So my skip expression can be changed to t8005.[23].

>  rr=.git/rr-cache/$sha1
>  test_expect_success 'recorded preimage' "grep ^=======$ $rr/preimage"
Patches to follow.
-brandon
Previous: Jeff KingNext: Brandon Casey
Message 11 of 31 in “shell compatibility issues with SunOS 5.10”
  1. Nguyen Thai Ngoc DuyMay 6, 2009
  2. Junio C HamanoMay 6, 2009
  3. Nguyen Thai Ngoc DuyMay 6, 2009
  4. Nguyen Thai Ngoc DuyMay 7, 2009
  5. Johannes SixtMay 6, 2009
  6. Nguyen Thai Ngoc DuyMay 6, 2009
  7. Ralf WildenhuesMay 6, 2009
  8. Johannes SchindelinMay 6, 2009
  9. Nguyen Thai Ngoc DuyMay 6, 2009
  10. Jeff KingMay 6, 2009
  11. Brandon CaseyMay 6, 2009
  12. 0/4 workaround some Solaris sed issuesBrandon Casey, May 6, 2009
  13. 1/4 t4118: add missing '&&'Brandon Casey, May 6, 2009
  14. 2/4 t4118: avoid sed invocation on file without terminating newlineBrandon Casey, May 6, 2009
  15. 3/4 t/annotate-tests.sh: avoid passing a non-newline terminated file to sedBrandon Casey, May 6, 2009
  16. 4/4 t4200: avoid passing a non-newline terminated file to sedBrandon Casey, May 6, 2009
  17. Junio C HamanoMay 6, 2009
  18. Brandon CaseyMay 6, 2009
  19. Junio C HamanoMay 6, 2009
  20. 1/2 t4200: remove two unnecessary linesBrandon Casey, May 6, 2009
  21. 2/2 t4200: convert sed expression which operates on non-text file to perlBrandon Casey, May 6, 2009
  22. Nguyen Thai Ngoc DuyMay 6, 2009
  23. Nguyen Thai Ngoc DuyMay 7, 2009
  24. Brandon CaseyMay 7, 2009
  25. Junio C HamanoMay 7, 2009
  26. Johannes SixtMay 7, 2009
  27. Brandon CaseyMay 7, 2009
  28. Nguyen Thai Ngoc DuyMay 6, 2009
  29. Brandon CaseyMay 7, 2009
  30. Junio C HamanoMay 7, 2009
  31. Brandon CaseyMay 7, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.