{"thread":{"id":"38164","subject":"Interested in helping open source friends on HP-UX?","startedAt":"2014-12-11T07:46:25Z","lastAt":"2015-03-03T22:25:05Z","messageCount":23,"participants":["Junio C Hamano","H.Merijn Brand","Michael J Gruber","Jeff King","David Aguilar"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"253560","messageId":"xmqq4mt2fx2m.fsf@gitster.dls.corp.google.com","threadId":"38164","inReplyTo":null,"subject":"Interested in helping open source friends on HP-UX?","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-12-11T07:46:25Z","receivedAt":"2014-12-11T07:46:25Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Hello, all.\n\nH. Merijn Brand runs a few HP-UX boxes to help perl5 and other open\nsource communities, wants help porting more recent Git on these\nboxes, running HP-UX 10.20, 11.00, and 11.23, and looking for a\nvolunteer.  Please contact him directly if you are interested.\n\nThanks.\n"},{"id":"256277","messageId":"20150218170007.784be6aa@pc09.procura.nl","threadId":"38164","inReplyTo":"xmqq4mt2fx2m.fsf@gitster.dls.corp.google.com","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"H.Merijn Brand","fromEmail":"h.m.brand@xs4all.nl","sentAt":"2015-02-18T16:00:07Z","receivedAt":"2015-02-18T16:00:07Z","isPatch":false,"sender":{"key":"h.m.brand@xs4all.nl","avatar":"https://gravatar.com/avatar/5b8f83ee35c427a646cbea3b104346e00ab3663b99bbf435cddeb75cd4b3857b?d=mp&s=160"},"body":"On Wed, 10 Dec 2014 23:46:25 -0800, Junio C Hamano <gitster@pobox.com>\nwrote:\n\n> Hello, all.\n> \n> H. Merijn Brand runs a few HP-UX boxes to help perl5 and other open\n> source communities, wants help porting more recent Git on these\n> boxes, running HP-UX 10.20, 11.00, and 11.23, and looking for a\n> volunteer.  Please contact him directly if you are interested.\n\nNo-one. Disappointing :(\n\nI started to work on 2.3.0 on HP-UX 11.23/63 ia64\n\n\nDid *anyone* ever test with NO_ICONV?\nToo many tests fail without iconv\n\nIt is *very* hard to decide from the current status if all\nremaining failures are related to (Asian) locale failures and (thus)\ncan be safely ignored (in my environment).\n\n\nSpecifics at the end\n\n\nFAILures from scratch with no iconv:\n--------------------------------------------------------------------------------\nt3513-revert-submodule.sh       Tests: 14 Failed:  5 Failed tests: 1-2, 4, 6-7                   TODO passed:   10-11\nt3900-i18n-commit.sh            Tests: 34 Failed:  8 Failed tests: 15-17, 23-25, 27-28\nt3901-i18n-patch.sh             Tests: 15 Failed:  8 Failed tests: 2-3, 6-7, 9, 11, 14-15\nt4041-diff-submodule-option.sh  Tests: 44 Failed:  5 Failed tests: 5-7, 9-10\nt4201-shortlog.sh               Tests: 11 Failed:  1 Failed tests: 9\nt4204-patch-id.sh               Tests: 15 Failed:  3 Failed tests: 7, 10, 13\nt4205-log-pretty-formats.sh     Tests: 46 Failed: 20 Failed tests: 12-14, 17, 19, 21, 23-29, 31, 33, 35, 37 39, 41-42\nt4210-log-i18n.sh               Tests:  5 Failed:  4 Failed tests: 2-5\nt5100-mailinfo.sh               Tests: 35 Failed: 11 Failed tests: 20-30\nt5570-git-daemon.sh             Tests: 12 Failed:  2 Failed tests: 4-5      Parse errors: No plan found in TAP output\nt6006-rev-list-format.sh        Tests: 54 Failed: 11 Failed tests: 9-10, 12, 25-27, 30-34\nt6041-bisect-submodule.sh       Tests: 14 Failed:  9 Failed tests: 1-2, 4-7, 12-14               TODO passed:   10-11\nt7001-mv.sh                     Tests: 46 Failed:  2 Failed tests: 38-39\nt7102-reset.sh                  Tests: 30 Failed:  1 Failed tests: 2\nt7610-mergetool.sh              Tests: 18 Failed:  1 Failed tests: 18\nt7800-difftool.sh               Tests: 56 Failed:  1 Failed tests: 49\nt8005-blame-i18n.sh             Tests:  5 Failed:  3 Failed tests: 2-4\nt9350-fast-export.sh            Tests: 34 Failed:  1 Failed tests: 4\nFiles=687, Tests=12091\n\nFAILures from scratch with iconv:\n--------------------------------------------------------------------------------\nt3513-revert-submodule.sh       Tests: 14 Failed:  5 Failed tests: 1-2, 4, 6-7                   TODO passed:   10-11\nt3900-i18n-commit.sh            Tests: 34 Failed:  6 Failed tests: 16-17, 24-25, 27-28\nt4204-patch-id.sh               Tests: 15 Failed:  3 Failed tests: 7, 10, 13\nt4210-log-i18n.sh               Tests:  5 Failed:  4 Failed tests: 2-5\nt5100-mailinfo.sh               Tests: 35 Failed:  2 Failed tests: 20, 23\nt5536-fetch-conflicts.sh        Tests:  7 Failed:  3 Failed tests: 3, 6-7\nt5570-git-daemon.sh             Tests: 12 Failed:  2 Failed tests: 4-5      Parse errors: No plan found in TAP output\nt6041-bisect-submodule.sh       Tests: 14 Failed:  9 Failed tests: 1-2, 4-7, 12-14               TODO passed:   10-11\nt7001-mv.sh                     Tests: 46 Failed:  2 Failed tests: 38-39\nt7610-mergetool.sh              Tests: 18 Failed:  1 Failed tests: 18\nt7800-difftool.sh               Tests: 56 Failed:  1 Failed tests: 49\nt8005-blame-i18n.sh             Tests:  5 Failed:  3 Failed tests: 2-4\nFiles=687, Tests=12091\nResult: FAIL\n\nrunning «sh t****.sh -x -i»\n\n\nt/t7001-mv.t\n------------\ncp uses -P flag, which is unknown to HP's (non-GNU) version of cp\n\nChanging the two occurrences from\n\n\t\tcp -R -P -p ../.git/modules/sub .git &&\nto\n\t\trsync -aHl ../.git/modules/sub/ .git/ &&\n\nmake the tests pass (on those systems that have a working rsync)\n\nt/t3513-revert-submodule.sh\n---------------------------\ntar uses z flag, which is unknown to HP's (non-GNU) version of tar\nconfig.mak.uname defines TAR = gtar, but that obviously does not help\n\nputting GNU-tar temporary in from of my $PATH makes the test pass\n/me thinks the z in not required in that test at all\n\n\ttar cf \"$TRASH_DIRECTORY/tmp.tar\" * &&\nand\n\ttar xf \"$TRASH_DIRECTORY/tmp.tar\" &&\n\nwork just as well and prevent the breakage\n\nt/t3900-i18n-commit.sh\n----------------------\nAs my HP boxes have *NO* JP or other space eating asian locale stuff\ninstalled, it is highly likely that *anything* dealing with asian\nlocales will fail. On modern Linux hardware, disk space is cheap. On\nmost HP-UX boxes disk space is expensive and when having nothing to do\nwith Asian languages, removing all Asian-related packages is a fast and\ncheap way to regain disk space.\n\nChanging compare_with to\n\ncompare_with () {\n    case \"$1$2$3\" in\n\t*eucJP*|*ISO-2022-JP*) true ;;\n\t*)\n\t    git show -s $1 | sed -e '1,/^$/d' -e 's/^    //' >current &&\n\t    case \"$3\" in\n\t\t'')\n\t\t    test_cmp \"$2\" current ;;\n\t\t?*)\n\t\t    iconv -f \"$3\" -t UTF-8 >current.utf8 <current &&\n\t\t    iconv -f \"$3\" -t UTF-8 >expect.utf8 <\"$2\" &&\n\t\t    test_cmp expect.utf8 current.utf8\n\t\t    ;;\n\t\tesac\n\t    ;;\n\tesac\n    }\n\nmakes all my tests pass\n\nt/t4204-patch-id.sh\n-------------------\n\nNo idea yet\n\n+ test_patch_id_file_order irrelevant --stable --stable\nAlready on 'same'\ncmp: patch-id_ordered-ordered-order---stable-irrelevant: No such file or directory\n\n$ find * | grep 4204 | grep stable\ntrash directory.t4204-patch-id/patch-id_order---stable-irrelevant\ntrash directory.t4204-patch-id/patch-id_ordered-order---stable-irrelevant\n\nt/t4210-log-i18n\n----------------\n\n$ dump \"trash directory.t4210-log-i18n/actual\"\n00000000  75 74 66 38 0A                                      utf8.\n$ dump \"trash directory.t4210-log-i18n/expect\"\n00000000  6C 61 74 69 6E 31 0A 75  74 66 38 0A                latin1.utf8.\n$ dump \"trash directory.t4210-log-i18n/msg\"\n00000000  6C 61 74 69 6E 31 0A 0A  74 E9 73 74 0A             latin1..t.st.\n\nt/t5100-mailinfo.sh\n-------------------\n+ git mailinfo -u rfc2047/0001-msg rfc2047/0001-patch\n+ 0< rfc2047/0001 1> rfc2047/0001-info\nfatal: cannot convert from US-ASCII to UTF-8\nerror: last command exited with $?=128\n\nt/t5536-fetch-conflicts.sh\n--------------------------\n+ setup_repository ccc +refs/heads/branch1:refs/remotes/origin/branch1 +refs/heads/branch2:refs/remotes/origin/branch1\nInitialized empty Git repository in /pro/3gl/LINUX/git-2.3.0p/t/trash directory.t5536-fetch-conflicts/ccc/.git/\n+ cd ccc\n+ test_must_fail git fetch origin\n+ 2> error\n+ verify_stderr\n+ 0< /var/tmp/sh6096.2\ncmp: EOF on actual\nerror: last command exited with $?=1\nnot ok 3 - fetch conflict: config vs. config\n\nt/t5570-git-daemon.sh\n---------------------\nI will ignore this myself, as I have no intention of using HP-UX as a\ngit server. We already have a dedicated Linux box doing so.\n\n+ test_cmp file clone/file\nok 3 - clone git repository\n\nexpecting success:\n        echo content >>file &&\n        git commit -a -m two &&\n        git push public &&\n        (cd clone && git pull) &&\n        test_cmp file clone/file\n\n+ echo content\n+ 1>> file\n+ git commit -a -m two\n\narg sulong failed. 0, 0x9fffffffbffff058\n\n Setup args failed.\n\nPid 6238 was killed due to failure in writing to user register stack - possible stack overflow.\n[master bca99f0] two\n Author: A U Thor <author@example.com>\n 1 file changed, 1 insertion(+)\n+ git push public\n\nt/t6041-bisect-submodule.sh\n---------------------------\nconfig.mak.uname defines TAR = gtar, but that obviously does not help\n\n+ git_bisect add_sub1\ntar: z: unknown option\ntar: usage  tar [-]{txruc}[eONvVwAfblhm{op}][0-7[lmh]] [tapefile] [blocksize] [[-C directory] file] ...\n\nchanging my $PATH to have a GNU tar in front makes all tests pass\n\n\nt/t7610-mergetool.sh\n--------------------\nHP-UX' mktemp obviously is not compatible with GNU mktemp (which I have\nnot installed/available on HP-UX)\n\n SYNOPSIS\n      mktemp [-c] [-d directory_name] [-p prefix]\n\nResolved 'subdir/file3' using previous resolution.\nAutomatic merge failed; fix conflicts and then commit the result.\n+ git mergetool --no-prompt --tool myecho -- both\n+ 1> actual\nerror: mktemp is needed when 'mergetool.writeToTemp' is true\nerror: last command exited with $?=1\nnot ok 18 - temporary filenames are used with mergetool.writeToTemp\n\n\nt/t7800-difftool.sh\n-------------------\nHP-UX doesn't have readlink\n\n+ git difftool --dir-diff --symlink --extcmd ./.git/CHECK_SYMLINKS branch HEAD\n./.git/CHECK_SYMLINKS: line 5: readlink: command not found\n./.git/CHECK_SYMLINKS: line 5: readlink: command not found\n./.git/CHECK_SYMLINKS: line 5: readlink: command not found\n/pro/3gl/LINUX/git-2.3.0p/git-difftool line 472: No such file or directory\nfatal: 'difftool' appears to be a git command, but we were not\nable to execute it. Maybe git-difftool is broken?\nerror: last command exited with $?=128\nnot ok 49 - difftool --dir-diff --symlink without unstaged changes\n\n\nt/t8005-blame-i18n.sh\n---------------------\nSJIS again, I DO NOT CARE!\n\n+ 1> actual\n+ test_cmp actual expected\nactual expected differ: char 56, line 3\nerror: last command exited with $?=1\nnot ok 2 - blame respects i18n.commitencoding\n\n-- \nH.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/\nusing perl5.00307 .. 5.21   porting perl5 on HP-UX, AIX, and openSUSE\nhttp://mirrors.develooper.com/hpux/        http://www.test-smoke.org/\nhttp://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/\n"},{"id":"256285","messageId":"54E4CFDC.40401@drmicha.warpmail.net","threadId":"38164","inReplyTo":"20150218170007.784be6aa@pc09.procura.nl","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2015-02-18T17:46:04Z","receivedAt":"2015-02-18T17:46:04Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"H.Merijn Brand venit, vidit, dixit 18.02.2015 17:00:\n> On Wed, 10 Dec 2014 23:46:25 -0800, Junio C Hamano <gitster@pobox.com>\n> wrote:\n> \n>> Hello, all.\n>>\n>> H. Merijn Brand runs a few HP-UX boxes to help perl5 and other open\n>> source communities, wants help porting more recent Git on these\n>> boxes, running HP-UX 10.20, 11.00, and 11.23, and looking for a\n>> volunteer.  Please contact him directly if you are interested.\n> \n> No-one. Disappointing :(\n\nWell, how can we help if we don't even know the limitations of that\nplatform?\n\nIn short, you are putting additional restrictions in by not having GNU\ntools around.\n\n> Did *anyone* ever test with NO_ICONV?\n> Too many tests fail without iconv\n\nThere is iconv the library and iconv the command. With NO_ICONV, many\ntests fail for me even on my standard Linux distro. But our tests keep\nusing iconv the command. The subtests which pass in t3900, for example,\nmostly test that certain things fail, for one reason or another...\n\nBut we should guard a few tests in case of NO_ICONV, of course, and\nprobably not use iconv the command in this case either.\n\n> \n> It is *very* hard to decide from the current status if all\n> remaining failures are related to (Asian) locale failures and (thus)\n> can be safely ignored (in my environment).\n> \n> \n> Specifics at the end\n> \n> \n> FAILures from scratch with no iconv:\n> --------------------------------------------------------------------------------\n> t3513-revert-submodule.sh       Tests: 14 Failed:  5 Failed tests: 1-2, 4, 6-7                   TODO passed:   10-11\n> t3900-i18n-commit.sh            Tests: 34 Failed:  8 Failed tests: 15-17, 23-25, 27-28\n> t3901-i18n-patch.sh             Tests: 15 Failed:  8 Failed tests: 2-3, 6-7, 9, 11, 14-15\n> t4041-diff-submodule-option.sh  Tests: 44 Failed:  5 Failed tests: 5-7, 9-10\n> t4201-shortlog.sh               Tests: 11 Failed:  1 Failed tests: 9\n> t4204-patch-id.sh               Tests: 15 Failed:  3 Failed tests: 7, 10, 13\n> t4205-log-pretty-formats.sh     Tests: 46 Failed: 20 Failed tests: 12-14, 17, 19, 21, 23-29, 31, 33, 35, 37 39, 41-42\n> t4210-log-i18n.sh               Tests:  5 Failed:  4 Failed tests: 2-5\n> t5100-mailinfo.sh               Tests: 35 Failed: 11 Failed tests: 20-30\n> t5570-git-daemon.sh             Tests: 12 Failed:  2 Failed tests: 4-5      Parse errors: No plan found in TAP output\n> t6006-rev-list-format.sh        Tests: 54 Failed: 11 Failed tests: 9-10, 12, 25-27, 30-34\n> t6041-bisect-submodule.sh       Tests: 14 Failed:  9 Failed tests: 1-2, 4-7, 12-14               TODO passed:   10-11\n> t7001-mv.sh                     Tests: 46 Failed:  2 Failed tests: 38-39\n> t7102-reset.sh                  Tests: 30 Failed:  1 Failed tests: 2\n> t7610-mergetool.sh              Tests: 18 Failed:  1 Failed tests: 18\n> t7800-difftool.sh               Tests: 56 Failed:  1 Failed tests: 49\n> t8005-blame-i18n.sh             Tests:  5 Failed:  3 Failed tests: 2-4\n> t9350-fast-export.sh            Tests: 34 Failed:  1 Failed tests: 4\n> Files=687, Tests=12091\n> \n> FAILures from scratch with iconv:\n> --------------------------------------------------------------------------------\n> t3513-revert-submodule.sh       Tests: 14 Failed:  5 Failed tests: 1-2, 4, 6-7                   TODO passed:   10-11\n> t3900-i18n-commit.sh            Tests: 34 Failed:  6 Failed tests: 16-17, 24-25, 27-28\n> t4204-patch-id.sh               Tests: 15 Failed:  3 Failed tests: 7, 10, 13\n> t4210-log-i18n.sh               Tests:  5 Failed:  4 Failed tests: 2-5\n> t5100-mailinfo.sh               Tests: 35 Failed:  2 Failed tests: 20, 23\n> t5536-fetch-conflicts.sh        Tests:  7 Failed:  3 Failed tests: 3, 6-7\n> t5570-git-daemon.sh             Tests: 12 Failed:  2 Failed tests: 4-5      Parse errors: No plan found in TAP output\n> t6041-bisect-submodule.sh       Tests: 14 Failed:  9 Failed tests: 1-2, 4-7, 12-14               TODO passed:   10-11\n> t7001-mv.sh                     Tests: 46 Failed:  2 Failed tests: 38-39\n> t7610-mergetool.sh              Tests: 18 Failed:  1 Failed tests: 18\n> t7800-difftool.sh               Tests: 56 Failed:  1 Failed tests: 49\n> t8005-blame-i18n.sh             Tests:  5 Failed:  3 Failed tests: 2-4\n> Files=687, Tests=12091\n> Result: FAIL\n> \n> running «sh t****.sh -x -i»\n> \n> \n> t/t7001-mv.t\n> ------------\n> cp uses -P flag, which is unknown to HP's (non-GNU) version of cp\n> \n> Changing the two occurrences from\n> \n> \t\tcp -R -P -p ../.git/modules/sub .git &&\n> to\n> \t\trsync -aHl ../.git/modules/sub/ .git/ &&\n> \n> make the tests pass (on those systems that have a working rsync)\n\n\"rsync -r -l -o -p -t\" would be the proper equivalent. -aH does more for\nmy rsync. I don't know what HP-UX rsync understands, though.\n\n> t/t3513-revert-submodule.sh\n> ---------------------------\n> tar uses z flag, which is unknown to HP's (non-GNU) version of tar\n> config.mak.uname defines TAR = gtar, but that obviously does not help\n> \n> putting GNU-tar temporary in from of my $PATH makes the test pass\n> /me thinks the z in not required in that test at all\n> \n> \ttar cf \"$TRASH_DIRECTORY/tmp.tar\" * &&\n> and\n> \ttar xf \"$TRASH_DIRECTORY/tmp.tar\" &&\n> \n> work just as well and prevent the breakage\n\nWe can do without z.\n\n> t/t3900-i18n-commit.sh\n> ----------------------\n> As my HP boxes have *NO* JP or other space eating asian locale stuff\n> installed, it is highly likely that *anything* dealing with asian\n> locales will fail. On modern Linux hardware, disk space is cheap. On\n> most HP-UX boxes disk space is expensive and when having nothing to do\n> with Asian languages, removing all Asian-related packages is a fast and\n> cheap way to regain disk space.\n> \n> Changing compare_with to\n> \n> compare_with () {\n>     case \"$1$2$3\" in\n> \t*eucJP*|*ISO-2022-JP*) true ;;\n> \t*)\n> \t    git show -s $1 | sed -e '1,/^$/d' -e 's/^    //' >current &&\n> \t    case \"$3\" in\n> \t\t'')\n> \t\t    test_cmp \"$2\" current ;;\n> \t\t?*)\n> \t\t    iconv -f \"$3\" -t UTF-8 >current.utf8 <current &&\n> \t\t    iconv -f \"$3\" -t UTF-8 >expect.utf8 <\"$2\" &&\n> \t\t    test_cmp expect.utf8 current.utf8\n> \t\t    ;;\n> \t\tesac\n> \t    ;;\n> \tesac\n>     }\n> \n> makes all my tests pass\n\nSo you do have iconv the command, but don't want to link with the library?\n\nAvailability of the locales should be covered by a prerequisite, like we\ndo in t9129.\n\n> t/t4204-patch-id.sh\n> -------------------\n> \n> No idea yet\n> \n> + test_patch_id_file_order irrelevant --stable --stable\n> Already on 'same'\n> cmp: patch-id_ordered-ordered-order---stable-irrelevant: No such file or directory\n> \n> $ find * | grep 4204 | grep stable\n> trash directory.t4204-patch-id/patch-id_order---stable-irrelevant\n> trash directory.t4204-patch-id/patch-id_ordered-order---stable-irrelevant\n\nThe \"Already\"-part is normal output. The rest looks a bit crazy - and\nshell related?\n\n> t/t4210-log-i18n\n> ----------------\n> \n> $ dump \"trash directory.t4210-log-i18n/actual\"\n> 00000000  75 74 66 38 0A                                      utf8.\n> $ dump \"trash directory.t4210-log-i18n/expect\"\n> 00000000  6C 61 74 69 6E 31 0A 75  74 66 38 0A                latin1.utf8.\n> $ dump \"trash directory.t4210-log-i18n/msg\"\n> 00000000  6C 61 74 69 6E 31 0A 0A  74 E9 73 74 0A             latin1..t.st.\n> \n> t/t5100-mailinfo.sh\n> -------------------\n> + git mailinfo -u rfc2047/0001-msg rfc2047/0001-patch\n> + 0< rfc2047/0001 1> rfc2047/0001-info\n> fatal: cannot convert from US-ASCII to UTF-8\n> error: last command exited with $?=128\n\nIs that mailinfo erroring out? Do you have those locales?\n\nOK, I'll have to stop fishing in the dark here.\n\n> t/t5536-fetch-conflicts.sh\n> --------------------------\n> + setup_repository ccc +refs/heads/branch1:refs/remotes/origin/branch1 +refs/heads/branch2:refs/remotes/origin/branch1\n> Initialized empty Git repository in /pro/3gl/LINUX/git-2.3.0p/t/trash directory.t5536-fetch-conflicts/ccc/.git/\n> + cd ccc\n> + test_must_fail git fetch origin\n> + 2> error\n> + verify_stderr\n> + 0< /var/tmp/sh6096.2\n> cmp: EOF on actual\n> error: last command exited with $?=1\n> not ok 3 - fetch conflict: config vs. config\n> \n> t/t5570-git-daemon.sh\n> ---------------------\n> I will ignore this myself, as I have no intention of using HP-UX as a\n> git server. We already have a dedicated Linux box doing so.\n> \n> + test_cmp file clone/file\n> ok 3 - clone git repository\n> \n> expecting success:\n>         echo content >>file &&\n>         git commit -a -m two &&\n>         git push public &&\n>         (cd clone && git pull) &&\n>         test_cmp file clone/file\n> \n> + echo content\n> + 1>> file\n> + git commit -a -m two\n> \n> arg sulong failed. 0, 0x9fffffffbffff058\n> \n>  Setup args failed.\n> \n> Pid 6238 was killed due to failure in writing to user register stack - possible stack overflow.\n> [master bca99f0] two\n>  Author: A U Thor <author@example.com>\n>  1 file changed, 1 insertion(+)\n> + git push public\n> \n> t/t6041-bisect-submodule.sh\n> ---------------------------\n> config.mak.uname defines TAR = gtar, but that obviously does not help\n> \n> + git_bisect add_sub1\n> tar: z: unknown option\n> tar: usage  tar [-]{txruc}[eONvVwAfblhm{op}][0-7[lmh]] [tapefile] [blocksize] [[-C directory] file] ...\n> \n> changing my $PATH to have a GNU tar in front makes all tests pass\n> \n> \n> t/t7610-mergetool.sh\n> --------------------\n> HP-UX' mktemp obviously is not compatible with GNU mktemp (which I have\n> not installed/available on HP-UX)\n> \n>  SYNOPSIS\n>       mktemp [-c] [-d directory_name] [-p prefix]\n> \n> Resolved 'subdir/file3' using previous resolution.\n> Automatic merge failed; fix conflicts and then commit the result.\n> + git mergetool --no-prompt --tool myecho -- both\n> + 1> actual\n> error: mktemp is needed when 'mergetool.writeToTemp' is true\n> error: last command exited with $?=1\n> not ok 18 - temporary filenames are used with mergetool.writeToTemp\n> \n> \n> t/t7800-difftool.sh\n> -------------------\n> HP-UX doesn't have readlink\n> \n> + git difftool --dir-diff --symlink --extcmd ./.git/CHECK_SYMLINKS branch HEAD\n> ./.git/CHECK_SYMLINKS: line 5: readlink: command not found\n> ./.git/CHECK_SYMLINKS: line 5: readlink: command not found\n> ./.git/CHECK_SYMLINKS: line 5: readlink: command not found\n> /pro/3gl/LINUX/git-2.3.0p/git-difftool line 472: No such file or directory\n> fatal: 'difftool' appears to be a git command, but we were not\n> able to execute it. Maybe git-difftool is broken?\n> error: last command exited with $?=128\n> not ok 49 - difftool --dir-diff --symlink without unstaged changes\n> \n> \n> t/t8005-blame-i18n.sh\n> ---------------------\n> SJIS again, I DO NOT CARE!\n> \n> + 1> actual\n> + test_cmp actual expected\n> actual expected differ: char 56, line 3\n> error: last command exited with $?=1\n> not ok 2 - blame respects i18n.commitencoding\n> \n"},{"id":"256287","messageId":"20150218182547.GA6346@peff.net","threadId":"38164","inReplyTo":"54E4CFDC.40401@drmicha.warpmail.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2015-02-18T18:25:47Z","receivedAt":"2015-02-18T18:25:47Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Feb 18, 2015 at 06:46:04PM +0100, Michael J Gruber wrote:\n\n> >> H. Merijn Brand runs a few HP-UX boxes to help perl5 and other open\n> >> source communities, wants help porting more recent Git on these\n> >> boxes, running HP-UX 10.20, 11.00, and 11.23, and looking for a\n> >> volunteer.  Please contact him directly if you are interested.\n> > \n> > No-one. Disappointing :(\n> \n> Well, how can we help if we don't even know the limitations of that\n> platform?\n\nI'm not sure, but I think the original call for help may have been \"I\nwill give you shell access to these boxes if you want to play around\".\n\n> > t/t7001-mv.t\n> > ------------\n> > cp uses -P flag, which is unknown to HP's (non-GNU) version of cp\n> > \n> > Changing the two occurrences from\n> > \n> > \t\tcp -R -P -p ../.git/modules/sub .git &&\n> > to\n> > \t\trsync -aHl ../.git/modules/sub/ .git/ &&\n> > \n> > make the tests pass (on those systems that have a working rsync)\n> \n> \"rsync -r -l -o -p -t\" would be the proper equivalent. -aH does more for\n> my rsync. I don't know what HP-UX rsync understands, though.\n\nIt seems like we could use\n\n  (cd src && tar cf - .) | (cd dst && tar xf -)\n\nhere as a more portable alternative. I don't think we can rely on rsync\nbeing everywhere.\n\n-Peff\n"},{"id":"256291","messageId":"xmqqpp972h1n.fsf@gitster.dls.corp.google.com","threadId":"38164","inReplyTo":"20150218182547.GA6346@peff.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-02-18T18:47:16Z","receivedAt":"2015-02-18T18:47:16Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Wed, Feb 18, 2015 at 06:46:04PM +0100, Michael J Gruber wrote:\n>\n>> Well, how can we help if we don't even know the limitations of that\n>> platform?\n>\n> I'm not sure, but I think the original call for help may have been \"I\n> will give you shell access to these boxes if you want to play around\".\n\nYeah, that probably was my bad---I didn't make it clear enough that the\nrequest for volunteer from H.Merijn was exactly that.\n\n> It seems like we could use\n>\n>   (cd src && tar cf - .) | (cd dst && tar xf -)\n>\n> here as a more portable alternative. I don't think we can rely on rsync\n> being everywhere.\n\nThanks; I wasn't even aware that we used rsync in our tests.  We\ncertainly do not want to rely on it.\n\nWhy not \"cp -r src dst\", though?\n"},{"id":"256293","messageId":"20150218185734.GB7257@peff.net","threadId":"38164","inReplyTo":"xmqqpp972h1n.fsf@gitster.dls.corp.google.com","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2015-02-18T18:57:34Z","receivedAt":"2015-02-18T18:57:34Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Feb 18, 2015 at 10:47:16AM -0800, Junio C Hamano wrote:\n\n> > It seems like we could use\n> >\n> >   (cd src && tar cf - .) | (cd dst && tar xf -)\n> >\n> > here as a more portable alternative. I don't think we can rely on rsync\n> > being everywhere.\n> \n> Thanks; I wasn't even aware that we used rsync in our tests.  We\n> certainly do not want to rely on it.\n\nI don't think we do.\n\nGrepping for rsync in t/, it is mentioned in three places:\n\n  1. In t1509, we use it, but that test script does not run unless you\n     set a bunch of environment variables to enable it.\n\n  2. In a sample patch for t4100. Obviously this one doesn't execute. :)\n\n  3. In t5500, to test \"rsync:\" protocol supported. This is behind a\n     check that we can run rsync at all (though it does not properly use\n     prereqs or use the normal \"skip\" procedure).\n\n> Why not \"cp -r src dst\", though?\n\nI was assuming that the \"-P\" in the original had some purpose. My \"cp\n-r\" does not seem to dereference symlinks, but maybe there is something\nI am missing.\n\n-Peff\n"},{"id":"256302","messageId":"20150218202013.3efafb03@pc09.procura.nl","threadId":"38164","inReplyTo":"54E4CFDC.40401@drmicha.warpmail.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"H.Merijn Brand","fromEmail":"h.m.brand@xs4all.nl","sentAt":"2015-02-18T19:20:13Z","receivedAt":"2015-02-18T19:20:13Z","isPatch":false,"sender":{"key":"h.m.brand@xs4all.nl","avatar":"https://gravatar.com/avatar/5b8f83ee35c427a646cbea3b104346e00ab3663b99bbf435cddeb75cd4b3857b?d=mp&s=160"},"body":"On Wed, 18 Feb 2015 18:46:04 +0100, Michael J Gruber\n<git@drmicha.warpmail.net> wrote:\n\n> H.Merijn Brand venit, vidit, dixit 18.02.2015 17:00:\n> > On Wed, 10 Dec 2014 23:46:25 -0800, Junio C Hamano <gitster@pobox.com>\n> > wrote:\n> > \n> >> Hello, all.\n> >>\n> >> H. Merijn Brand runs a few HP-UX boxes to help perl5 and other open\n> >> source communities, wants help porting more recent Git on these\n> >> boxes, running HP-UX 10.20, 11.00, and 11.23, and looking for a\n> >> volunteer.  Please contact him directly if you are interested.\n> > \n> > No-one. Disappointing :(\n> \n> Well, how can we help if we don't even know the limitations of that\n> platform?\n\nI have offered to give any serious git developer an HP-UX account, so\none can found out themselves. I can then - hopefully - answer any\nremaining question.\n\n> In short, you are putting additional restrictions in by not having GNU\n> tools around.\n\nThere *are* GNU tools around, and I *can* add other tools. I - of\ncourse - cannot install *all* GNU tools. I don't put serious\nrestrictions on the wishes of developers. You ask we play. Mostly.\n\nThe problem here is that I can configure, build, and test any tool\n(git) on my system using every GNU tool I might have available, but\nonce I convert this build into a package/distribution, and people\naround the world download it and expect it to work, it will fail if\nthe tool (git) depends on available system commands that now do not\nmeet the needs of the tool (git).\n\nNote that I have put TAR = gtar in config.mak.uname, but it is not\nconsistently used\n\n> > Did *anyone* ever test with NO_ICONV?\n> > Too many tests fail without iconv\n> \n> There is iconv the library and iconv the command. With NO_ICONV, many\n> tests fail for me even on my standard Linux distro. But our tests keep\n> using iconv the command. The subtests which pass in t3900, for example,\n> mostly test that certain things fail, for one reason or another...\n> \n> But we should guard a few tests in case of NO_ICONV, of course, and\n> probably not use iconv the command in this case either.\n> \n> > It is *very* hard to decide from the current status if all\n> > remaining failures are related to (Asian) locale failures and (thus)\n> > can be safely ignored (in my environment).\n> > \n> > Specifics at the end\n> > \n> > \n> > FAILures from scratch with no iconv:\n> > --------------------------------------------------------------------------------\n> > t3513-revert-submodule.sh       Tests: 14 Failed:  5 Failed tests: 1-2, 4, 6-7                   TODO passed:   10-11\n> > t3900-i18n-commit.sh            Tests: 34 Failed:  8 Failed tests: 15-17, 23-25, 27-28\n> > t3901-i18n-patch.sh             Tests: 15 Failed:  8 Failed tests: 2-3, 6-7, 9, 11, 14-15\n> > t4041-diff-submodule-option.sh  Tests: 44 Failed:  5 Failed tests: 5-7, 9-10\n> > t4201-shortlog.sh               Tests: 11 Failed:  1 Failed tests: 9\n> > t4204-patch-id.sh               Tests: 15 Failed:  3 Failed tests: 7, 10, 13\n> > t4205-log-pretty-formats.sh     Tests: 46 Failed: 20 Failed tests: 12-14, 17, 19, 21, 23-29, 31, 33, 35, 37 39, 41-42\n> > t4210-log-i18n.sh               Tests:  5 Failed:  4 Failed tests: 2-5\n> > t5100-mailinfo.sh               Tests: 35 Failed: 11 Failed tests: 20-30\n> > t5570-git-daemon.sh             Tests: 12 Failed:  2 Failed tests: 4-5      Parse errors: No plan found in TAP output\n> > t6006-rev-list-format.sh        Tests: 54 Failed: 11 Failed tests: 9-10, 12, 25-27, 30-34\n> > t6041-bisect-submodule.sh       Tests: 14 Failed:  9 Failed tests: 1-2, 4-7, 12-14               TODO passed:   10-11\n> > t7001-mv.sh                     Tests: 46 Failed:  2 Failed tests: 38-39\n> > t7102-reset.sh                  Tests: 30 Failed:  1 Failed tests: 2\n> > t7610-mergetool.sh              Tests: 18 Failed:  1 Failed tests: 18\n> > t7800-difftool.sh               Tests: 56 Failed:  1 Failed tests: 49\n> > t8005-blame-i18n.sh             Tests:  5 Failed:  3 Failed tests: 2-4\n> > t9350-fast-export.sh            Tests: 34 Failed:  1 Failed tests: 4\n> > Files=687, Tests=12091\n> > \n> > FAILures from scratch with iconv:\n> > --------------------------------------------------------------------------------\n> > t3513-revert-submodule.sh       Tests: 14 Failed:  5 Failed tests: 1-2, 4, 6-7                   TODO passed:   10-11\n> > t3900-i18n-commit.sh            Tests: 34 Failed:  6 Failed tests: 16-17, 24-25, 27-28\n> > t4204-patch-id.sh               Tests: 15 Failed:  3 Failed tests: 7, 10, 13\n> > t4210-log-i18n.sh               Tests:  5 Failed:  4 Failed tests: 2-5\n> > t5100-mailinfo.sh               Tests: 35 Failed:  2 Failed tests: 20, 23\n> > t5536-fetch-conflicts.sh        Tests:  7 Failed:  3 Failed tests: 3, 6-7\n> > t5570-git-daemon.sh             Tests: 12 Failed:  2 Failed tests: 4-5      Parse errors: No plan found in TAP output\n> > t6041-bisect-submodule.sh       Tests: 14 Failed:  9 Failed tests: 1-2, 4-7, 12-14               TODO passed:   10-11\n> > t7001-mv.sh                     Tests: 46 Failed:  2 Failed tests: 38-39\n> > t7610-mergetool.sh              Tests: 18 Failed:  1 Failed tests: 18\n> > t7800-difftool.sh               Tests: 56 Failed:  1 Failed tests: 49\n> > t8005-blame-i18n.sh             Tests:  5 Failed:  3 Failed tests: 2-4\n> > Files=687, Tests=12091\n> > Result: FAIL\n> > \n> > running «sh t****.sh -x -i»\n> > \n> > \n> > t/t7001-mv.t\n> > ------------\n> > cp uses -P flag, which is unknown to HP's (non-GNU) version of cp\n> > \n> > Changing the two occurrences from\n> > \n> > \t\tcp -R -P -p ../.git/modules/sub .git &&\n> > to\n> > \t\trsync -aHl ../.git/modules/sub/ .git/ &&\n> > \n> > make the tests pass (on those systems that have a working rsync)\n> \n> \"rsync -r -l -o -p -t\" would be the proper equivalent. -aH does more for\n> my rsync. I don't know what HP-UX rsync understands, though.\n\nHP has no rsync. I installed it myself.\nAs HP does not have rsync, it does not conflict. If I would install cp\nhowever, I bet many system-tasks could fall over.\n\n> > t/t3513-revert-submodule.sh\n> > ---------------------------\n> > tar uses z flag, which is unknown to HP's (non-GNU) version of tar\n> > config.mak.uname defines TAR = gtar, but that obviously does not help\n> > \n> > putting GNU-tar temporary in from of my $PATH makes the test pass\n> > /me thinks the z in not required in that test at all\n> > \n> > \ttar cf \"$TRASH_DIRECTORY/tmp.tar\" * &&\n> > and\n> > \ttar xf \"$TRASH_DIRECTORY/tmp.tar\" &&\n> > \n> > work just as well and prevent the breakage\n> \n> We can do without z.\n\nTOP!\n\n> > t/t3900-i18n-commit.sh\n> > ----------------------\n> > As my HP boxes have *NO* JP or other space eating asian locale stuff\n> > installed, it is highly likely that *anything* dealing with asian\n> > locales will fail. On modern Linux hardware, disk space is cheap. On\n> > most HP-UX boxes disk space is expensive and when having nothing to do\n> > with Asian languages, removing all Asian-related packages is a fast and\n> > cheap way to regain disk space.\n> > \n> > Changing compare_with to\n> > \n> > compare_with () {\n> >     case \"$1$2$3\" in\n> > \t*eucJP*|*ISO-2022-JP*) true ;;\n> > \t*)\n> > \t    git show -s $1 | sed -e '1,/^$/d' -e 's/^    //' >current &&\n> > \t    case \"$3\" in\n> > \t\t'')\n> > \t\t    test_cmp \"$2\" current ;;\n> > \t\t?*)\n> > \t\t    iconv -f \"$3\" -t UTF-8 >current.utf8 <current &&\n> > \t\t    iconv -f \"$3\" -t UTF-8 >expect.utf8 <\"$2\" &&\n> > \t\t    test_cmp expect.utf8 current.utf8\n> > \t\t    ;;\n> > \t\tesac\n> > \t    ;;\n> > \tesac\n> >     }\n> > \n> > makes all my tests pass\n> \n> So you do have iconv the command, but don't want to link with the library?\n\nMaybe it is too old?\n\n$ iconv --version\niconv (GNU libiconv 1.14)\nCopyright (C) 2000-2011 Free Software Foundation, Inc.\n\n> Availability of the locales should be covered by a prerequisite, like we\n> do in t9129.\n> \n> > t/t4204-patch-id.sh\n> > -------------------\n> > \n> > No idea yet\n> > \n> > + test_patch_id_file_order irrelevant --stable --stable\n> > Already on 'same'\n> > cmp: patch-id_ordered-ordered-order---stable-irrelevant: No such file or directory\n> > \n> > $ find * | grep 4204 | grep stable\n> > trash directory.t4204-patch-id/patch-id_order---stable-irrelevant\n> > trash directory.t4204-patch-id/patch-id_ordered-order---stable-irrelevant\n> \n> The \"Already\"-part is normal output. The rest looks a bit crazy - and\n> shell related?\n\nI have set SHELL_PATH = /pro/local/bin/bash\n\nThe default /bin/sh on HP-UX is almost as bare as the old bourne shell\nSo, shell related? Likely!\n\n> > t/t4210-log-i18n\n> > ----------------\n> > \n> > $ dump \"trash directory.t4210-log-i18n/actual\"\n> > 00000000  75 74 66 38 0A                                      utf8.\n> > $ dump \"trash directory.t4210-log-i18n/expect\"\n> > 00000000  6C 61 74 69 6E 31 0A 75  74 66 38 0A                latin1.utf8.\n> > $ dump \"trash directory.t4210-log-i18n/msg\"\n> > 00000000  6C 61 74 69 6E 31 0A 0A  74 E9 73 74 0A             latin1..t.st.\n> > \n> > t/t5100-mailinfo.sh\n> > -------------------\n> > + git mailinfo -u rfc2047/0001-msg rfc2047/0001-patch\n> > + 0< rfc2047/0001 1> rfc2047/0001-info\n> > fatal: cannot convert from US-ASCII to UTF-8\n> > error: last command exited with $?=128\n> \n> Is that mailinfo erroring out? Do you have those locales?\n\n$ locale -a\nC\nPOSIX\nC.iso88591\nC.iso885915\nC.utf8\nuniv.utf8\nnl_NL.iso88591\nnl_NL.iso885915@euro\nnl_NL.roman8\nen_GB.iso88591\nen_GB.iso885915@euro\nen_GB.roman8\nen_US.iso88591\nen_US.roman8\nnl_NL.utf8\nen_GB.utf8\nen_US.utf8\n\n> OK, I'll have to stop fishing in the dark here.\n> \n> > t/t5536-fetch-conflicts.sh\n> > --------------------------\n> > + setup_repository ccc +refs/heads/branch1:refs/remotes/origin/branch1 +refs/heads/branch2:refs/remotes/origin/branch1\n> > Initialized empty Git repository in /pro/3gl/LINUX/git-2.3.0p/t/trash directory.t5536-fetch-conflicts/ccc/.git/\n> > + cd ccc\n> > + test_must_fail git fetch origin\n> > + 2> error\n> > + verify_stderr\n> > + 0< /var/tmp/sh6096.2\n> > cmp: EOF on actual\n> > error: last command exited with $?=1\n> > not ok 3 - fetch conflict: config vs. config\n> > \n> > t/t5570-git-daemon.sh\n> > ---------------------\n> > I will ignore this myself, as I have no intention of using HP-UX as a\n> > git server. We already have a dedicated Linux box doing so.\n> > \n> > + test_cmp file clone/file\n> > ok 3 - clone git repository\n> > \n> > expecting success:\n> >         echo content >>file &&\n> >         git commit -a -m two &&\n> >         git push public &&\n> >         (cd clone && git pull) &&\n> >         test_cmp file clone/file\n> > \n> > + echo content\n> > + 1>> file\n> > + git commit -a -m two\n> > \n> > arg sulong failed. 0, 0x9fffffffbffff058\n> > \n> >  Setup args failed.\n> > \n> > Pid 6238 was killed due to failure in writing to user register stack - possible stack overflow.\n> > [master bca99f0] two\n> >  Author: A U Thor <author@example.com>\n> >  1 file changed, 1 insertion(+)\n> > + git push public\n> > \n> > t/t6041-bisect-submodule.sh\n> > ---------------------------\n> > config.mak.uname defines TAR = gtar, but that obviously does not help\n> > \n> > + git_bisect add_sub1\n> > tar: z: unknown option\n> > tar: usage  tar [-]{txruc}[eONvVwAfblhm{op}][0-7[lmh]] [tapefile] [blocksize] [[-C directory] file] ...\n> > \n> > changing my $PATH to have a GNU tar in front makes all tests pass\n> > \n> > \n> > t/t7610-mergetool.sh\n> > --------------------\n> > HP-UX' mktemp obviously is not compatible with GNU mktemp (which I have\n> > not installed/available on HP-UX)\n> > \n> >  SYNOPSIS\n> >       mktemp [-c] [-d directory_name] [-p prefix]\n> > \n> > Resolved 'subdir/file3' using previous resolution.\n> > Automatic merge failed; fix conflicts and then commit the result.\n> > + git mergetool --no-prompt --tool myecho -- both\n> > + 1> actual\n> > error: mktemp is needed when 'mergetool.writeToTemp' is true\n> > error: last command exited with $?=1\n> > not ok 18 - temporary filenames are used with mergetool.writeToTemp\n> > \n> > \n> > t/t7800-difftool.sh\n> > -------------------\n> > HP-UX doesn't have readlink\n> > \n> > + git difftool --dir-diff --symlink --extcmd ./.git/CHECK_SYMLINKS branch HEAD\n> > ./.git/CHECK_SYMLINKS: line 5: readlink: command not found\n> > ./.git/CHECK_SYMLINKS: line 5: readlink: command not found\n> > ./.git/CHECK_SYMLINKS: line 5: readlink: command not found\n> > /pro/3gl/LINUX/git-2.3.0p/git-difftool line 472: No such file or directory\n> > fatal: 'difftool' appears to be a git command, but we were not\n> > able to execute it. Maybe git-difftool is broken?\n> > error: last command exited with $?=128\n> > not ok 49 - difftool --dir-diff --symlink without unstaged changes\n> > \n> > \n> > t/t8005-blame-i18n.sh\n> > ---------------------\n> > SJIS again, I DO NOT CARE!\n> > \n> > + 1> actual\n> > + test_cmp actual expected\n> > actual expected differ: char 56, line 3\n> > error: last command exited with $?=1\n> > not ok 2 - blame respects i18n.commitencoding\n\n-- \nH.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/\nusing perl5.00307 .. 5.21   porting perl5 on HP-UX, AIX, and openSUSE\nhttp://mirrors.develooper.com/hpux/        http://www.test-smoke.org/\nhttp://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/\n"},{"id":"256303","messageId":"20150218202244.61f0dbe4@pc09.procura.nl","threadId":"38164","inReplyTo":"xmqqpp972h1n.fsf@gitster.dls.corp.google.com","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"H.Merijn Brand","fromEmail":"h.m.brand@xs4all.nl","sentAt":"2015-02-18T19:22:44Z","receivedAt":"2015-02-18T19:22:44Z","isPatch":false,"sender":{"key":"h.m.brand@xs4all.nl","avatar":"https://gravatar.com/avatar/5b8f83ee35c427a646cbea3b104346e00ab3663b99bbf435cddeb75cd4b3857b?d=mp&s=160"},"body":"On Wed, 18 Feb 2015 10:47:16 -0800, Junio C Hamano <gitster@pobox.com>\nwrote:\n\n> Jeff King <peff@peff.net> writes:\n> \n> > On Wed, Feb 18, 2015 at 06:46:04PM +0100, Michael J Gruber wrote:\n> >\n> >> Well, how can we help if we don't even know the limitations of that\n> >> platform?\n> >\n> > I'm not sure, but I think the original call for help may have been \"I\n> > will give you shell access to these boxes if you want to play around\".\n> \n> Yeah, that probably was my bad---I didn't make it clear enough that the\n> request for volunteer from H.Merijn was exactly that.\n\nPlus some possible help in how HP-UX is organized plus maybe install\nmore developer tools on request.\n\n> > It seems like we could use\n> >\n> >   (cd src && tar cf - .) | (cd dst && tar xf -)\n> >\n> > here as a more portable alternative. I don't think we can rely on rsync\n> > being everywhere.\n> \n> Thanks; I wasn't even aware that we used rsync in our tests.  We\n> certainly do not want to rely on it.\n\nYou don't. It was a quick hack from me to see if this was the only\ncause of failure for that test\n\n> Why not \"cp -r src dst\", though?\n\n\n-- \nH.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/\nusing perl5.00307 .. 5.21   porting perl5 on HP-UX, AIX, and openSUSE\nhttp://mirrors.develooper.com/hpux/        http://www.test-smoke.org/\nhttp://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/\n"},{"id":"256339","messageId":"54E5BBDD.7040100@drmicha.warpmail.net","threadId":"38164","inReplyTo":"20150218185734.GB7257@peff.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2015-02-19T10:33:01Z","receivedAt":"2015-02-19T10:33:01Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Jeff King venit, vidit, dixit 18.02.2015 19:57:\n> On Wed, Feb 18, 2015 at 10:47:16AM -0800, Junio C Hamano wrote:\n> \n>>> It seems like we could use\n>>>\n>>>   (cd src && tar cf - .) | (cd dst && tar xf -)\n>>>\n>>> here as a more portable alternative. I don't think we can rely on rsync\n>>> being everywhere.\n>>\n>> Thanks; I wasn't even aware that we used rsync in our tests.  We\n>> certainly do not want to rely on it.\n> \n> I don't think we do.\n> \n> Grepping for rsync in t/, it is mentioned in three places:\n> \n>   1. In t1509, we use it, but that test script does not run unless you\n>      set a bunch of environment variables to enable it.\n> \n>   2. In a sample patch for t4100. Obviously this one doesn't execute. :)\n> \n>   3. In t5500, to test \"rsync:\" protocol supported. This is behind a\n>      check that we can run rsync at all (though it does not properly use\n>      prereqs or use the normal \"skip\" procedure).\n> \n>> Why not \"cp -r src dst\", though?\n> \n> I was assuming that the \"-P\" in the original had some purpose. My \"cp\n> -r\" does not seem to dereference symlinks, but maybe there is something\n> I am missing.\n> \n> -Peff\n\nThere's a symlink in sub that needs to be preserved.\n\nI'm cooking up a mini-series covering tar/cp -P so far and hopefully the\nJP encodings later. Do I understand correctly that for Merijin's use\ncase on HP-UX, we want\n\n- as few extra tools (GNU...) as possible for the run time git\n- may get a few more tools installed to run the test\n\nI still don't have a clear picture of the iconv situation: Does your\niconv library require OLD_ICONV to compile? Is there a reason you want\nto disable it?\n\nFailing so many tests with NO_ICONV is certainly not ideal, but I'm not\nsure we should care to protect so many tests with a prerequisite.\n\nMichael\n"},{"id":"256343","messageId":"20150219121438.59050ce8@pc09.procura.nl","threadId":"38164","inReplyTo":"54E5BBDD.7040100@drmicha.warpmail.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"H.Merijn Brand","fromEmail":"h.m.brand@xs4all.nl","sentAt":"2015-02-19T11:14:38Z","receivedAt":"2015-02-19T11:14:38Z","isPatch":false,"sender":{"key":"h.m.brand@xs4all.nl","avatar":"https://gravatar.com/avatar/5b8f83ee35c427a646cbea3b104346e00ab3663b99bbf435cddeb75cd4b3857b?d=mp&s=160"},"body":"On Thu, 19 Feb 2015 11:33:01 +0100, Michael J Gruber\n<git@drmicha.warpmail.net> wrote:\n\n> Jeff King venit, vidit, dixit 18.02.2015 19:57:\n> > On Wed, Feb 18, 2015 at 10:47:16AM -0800, Junio C Hamano wrote:\n> > \n> >>> It seems like we could use\n> >>>\n> >>>   (cd src && tar cf - .) | (cd dst && tar xf -)\n> >>>\n> >>> here as a more portable alternative. I don't think we can rely on rsync\n> >>> being everywhere.\n> >>\n> >> Thanks; I wasn't even aware that we used rsync in our tests.  We\n> >> certainly do not want to rely on it.\n> > \n> > I don't think we do.\n> > \n> > Grepping for rsync in t/, it is mentioned in three places:\n> > \n> >   1. In t1509, we use it, but that test script does not run unless you\n> >      set a bunch of environment variables to enable it.\n> > \n> >   2. In a sample patch for t4100. Obviously this one doesn't execute. :)\n> > \n> >   3. In t5500, to test \"rsync:\" protocol supported. This is behind a\n> >      check that we can run rsync at all (though it does not properly use\n> >      prereqs or use the normal \"skip\" procedure).\n> > \n> >> Why not \"cp -r src dst\", though?\n> > \n> > I was assuming that the \"-P\" in the original had some purpose. My \"cp\n> > -r\" does not seem to dereference symlinks, but maybe there is something\n> > I am missing.\n> > \n> > -Peff\n> \n> There's a symlink in sub that needs to be preserved.\n> \n> I'm cooking up a mini-series covering tar/cp -P so far and hopefully the\n> JP encodings later. Do I understand correctly that for Merijin's use\n\nMerijn, no second j. You can also call me Tux, as that is what the perl\npeople do just because of that :)\n\n> case on HP-UX, we want\n> \n> - as few extra tools (GNU...) as possible for the run time git\n> - may get a few more tools installed to run the test\n\nYou can require as many GNU tools for testing as you like: I'll install\nthem. I just need to be sure they are not required runtime. (tar, cp)\n\n> I still don't have a clear picture of the iconv situation: Does your\n> iconv library require OLD_ICONV to compile?\n\nNo\n\n> Is there a reason you want to disable it?\n\nYes, if I build a package/depot, and the package depends on iconv, it\nis highly likely to fail on the client side after installation, as I do\nnot control the version of iconv/libiconv installed.\n\nAs HP does not have libiconv installed by default, I have experienced\nmany tools to be unusable after installation because of that dependency.\n\nAnother reason is that I built 64bitall, as my CURl and SSL environment\nis 64bitall for every other project on these systems (including Oracle\nrelated, which *only* ships 64bit objects on HP-UX) and the OpenSource\nrepos for HP-UX only ship 32bit software (sad, but true). That implies\nthat I cannot require libiconv.so to be present on the client side.\n\nI'd like my git to be as standalone as possible\n\n> Failing so many tests with NO_ICONV is certainly not ideal, but I'm not\n> sure we should care to protect so many tests with a prerequisite.\n\nHow feasible is it to isolate those tests into separate test files that\npeople that know to not use e.g. Asian can safely ignore them?\n\n> Michael\n\n-- \nH.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/\nusing perl5.00307 .. 5.21   porting perl5 on HP-UX, AIX, and openSUSE\nhttp://mirrors.develooper.com/hpux/        http://www.test-smoke.org/\nhttp://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/\n"},{"id":"256344","messageId":"54E5C6E2.9040101@drmicha.warpmail.net","threadId":"38164","inReplyTo":"20150219121438.59050ce8@pc09.procura.nl","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2015-02-19T11:20:02Z","receivedAt":"2015-02-19T11:20:02Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"H.Merijn Brand venit, vidit, dixit 19.02.2015 12:14:\n> On Thu, 19 Feb 2015 11:33:01 +0100, Michael J Gruber\n> <git@drmicha.warpmail.net> wrote:\n> \n>> Jeff King venit, vidit, dixit 18.02.2015 19:57:\n>>> On Wed, Feb 18, 2015 at 10:47:16AM -0800, Junio C Hamano wrote:\n>>>\n>>>>> It seems like we could use\n>>>>>\n>>>>>   (cd src && tar cf - .) | (cd dst && tar xf -)\n>>>>>\n>>>>> here as a more portable alternative. I don't think we can rely on rsync\n>>>>> being everywhere.\n>>>>\n>>>> Thanks; I wasn't even aware that we used rsync in our tests.  We\n>>>> certainly do not want to rely on it.\n>>>\n>>> I don't think we do.\n>>>\n>>> Grepping for rsync in t/, it is mentioned in three places:\n>>>\n>>>   1. In t1509, we use it, but that test script does not run unless you\n>>>      set a bunch of environment variables to enable it.\n>>>\n>>>   2. In a sample patch for t4100. Obviously this one doesn't execute. :)\n>>>\n>>>   3. In t5500, to test \"rsync:\" protocol supported. This is behind a\n>>>      check that we can run rsync at all (though it does not properly use\n>>>      prereqs or use the normal \"skip\" procedure).\n>>>\n>>>> Why not \"cp -r src dst\", though?\n>>>\n>>> I was assuming that the \"-P\" in the original had some purpose. My \"cp\n>>> -r\" does not seem to dereference symlinks, but maybe there is something\n>>> I am missing.\n>>>\n>>> -Peff\n>>\n>> There's a symlink in sub that needs to be preserved.\n>>\n>> I'm cooking up a mini-series covering tar/cp -P so far and hopefully the\n>> JP encodings later. Do I understand correctly that for Merijin's use\n> \n> Merijn, no second j. You can also call me Tux, as that is what the perl\n> people do just because of that :)\n> \n>> case on HP-UX, we want\n>>\n>> - as few extra tools (GNU...) as possible for the run time git\n>> - may get a few more tools installed to run the test\n> \n> You can require as many GNU tools for testing as you like: I'll install\n> them. I just need to be sure they are not required runtime. (tar, cp)\n> \n>> I still don't have a clear picture of the iconv situation: Does your\n>> iconv library require OLD_ICONV to compile?\n> \n> No\n> \n>> Is there a reason you want to disable it?\n> \n> Yes, if I build a package/depot, and the package depends on iconv, it\n> is highly likely to fail on the client side after installation, as I do\n> not control the version of iconv/libiconv installed.\n> \n> As HP does not have libiconv installed by default, I have experienced\n> many tools to be unusable after installation because of that dependency.\n> \n> Another reason is that I built 64bitall, as my CURl and SSL environment\n> is 64bitall for every other project on these systems (including Oracle\n> related, which *only* ships 64bit objects on HP-UX) and the OpenSource\n> repos for HP-UX only ship 32bit software (sad, but true). That implies\n> that I cannot require libiconv.so to be present on the client side.\n> \n> I'd like my git to be as standalone as possible\n\nOK, so we should use NO_ICONV on HP_UX then.\n\n>> Failing so many tests with NO_ICONV is certainly not ideal, but I'm not\n>> sure we should care to protect so many tests with a prerequisite.\n> \n> How feasible is it to isolate those tests into separate test files that\n> people that know to not use e.g. Asian can safely ignore them?\n> \n>> Michael\n\nWe have the prerequisite mechanism for that, and most probably, the\ntests are \"isolated\" already, in the sense that with NO_ICONV, only\ntrivial setup tests succeed for those test files but all \"proper\" tests\nfail. But I'll check. Need a good test to set the prerequisite, though.\n\nMichael\n"},{"id":"256346","messageId":"20150219125433.GA1591@peff.net","threadId":"38164","inReplyTo":"54E5C6E2.9040101@drmicha.warpmail.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2015-02-19T12:54:33Z","receivedAt":"2015-02-19T12:54:33Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Feb 19, 2015 at 12:20:02PM +0100, Michael J Gruber wrote:\n\n> OK, so we should use NO_ICONV on HP_UX then.\n> \n> >> Failing so many tests with NO_ICONV is certainly not ideal, but I'm not\n> >> sure we should care to protect so many tests with a prerequisite.\n> > \n> > How feasible is it to isolate those tests into separate test files that\n> > people that know to not use e.g. Asian can safely ignore them?\n> \n> We have the prerequisite mechanism for that, and most probably, the\n> tests are \"isolated\" already, in the sense that with NO_ICONV, only\n> trivial setup tests succeed for those test files but all \"proper\" tests\n> fail. But I'll check. Need a good test to set the prerequisite, though.\n\nI took a first pass at this. The results are below (and I am hoping one\nof you can use it as a base to build on, as I do not want to commit to\ndoing the second half, as you will see :) ).\n\nIt passes NO_ICONV through to the test suite, sets up a prerequisite,\ndisables some test scripts which are purely about i18n (e.g.,\nt3900-i18n-commit), and marks some of the scripts with one-off tests\nusing the ICONV prereq.\n\nNote that it also has some code changes around reencode_string_len.\nThese aren't strictly necessary, but they silence gcc warnings when\ncompiled with NO_ICONV. In that case we do:\n\n  #define reencode_string_len(a,b,c,d,e) NULL\n\nbut \"e\" is an out-parameter. We don't promise it is valid if the\nfunction returns NULL (which it does here). I'm kind of surprised the\ncompiler doesn't realize that:\n\n  foo = reencode_string_len(...);\n  if (foo)\n\tbar();\n\nis dead code, since the first line becomes \"foo = NULL\". So that's\noptional.\n\nSo, on to the tricky parts. Here are the failures that remain:\n\n  1. The script builds up a commit history through the script, and later\n     tests depend on this for things like commit timestamps or the exact\n     shape of history. t9350 is an example of this (it has one failing\n     test which can be marked, but then other tests later fail in\n     confusing ways).\n\n  2. The script creates commits with encoded commit messages, then uses\n     those both for cases that care about the encoding, and those that\n     do not. t4041 is an example here. I think it would be best to use\n     vanilla commit mesages for the main body of tests, and then\n     explicitly test the encoding-related features separately. I think\n     t4205 and t6006 are in this boat, too.\n\nI also tested this on a system with a working \"iconv\". If we are\nbuilding with NO_ICONV, I am tempted to say that there should be no need\nto run the \"iconv\" command-line program at all. But t6006, for example,\ndoes it a lot outside of any test_expect_*. Probably it should be:\n\n  test_lazy_prereq ICONV '\n\ttest -z \"$NO_ICONV\" &&\n\tutf8_o=$(printf \"\\303\\263\") &&\n\tlatin1_o=$(printf \"\\363\") &&\n\ttest \"$(echo $utf8_o | iconv -f UTF-8 -t ISO-8559-1)\" = \"$latin1_o\"\n  '\n\nor something, and all of that setup should be wrapped in a\n\"test_expect_success ICONV ...\". Of course that is the easy part. The\nhard part is splitting the ICONV setup from the vanilla commit setup so\nthat the other tests can run.\n\n---\ndiff --git a/Makefile b/Makefile\nindex e8ce649..c460ce8 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -2112,6 +2112,7 @@ endif\n ifdef GIT_TEST_CMP_USE_COPIED_CONTEXT\n \t@echo GIT_TEST_CMP_USE_COPIED_CONTEXT=YesPlease >>$@\n endif\n+\t@echo NO_ICONV=\\''$(subst ','\\'',$(subst ','\\'',$(NO_ICONV)))'\\' >>$@\n \t@echo NO_GETTEXT=\\''$(subst ','\\'',$(subst ','\\'',$(NO_GETTEXT)))'\\' >>$@\n \t@echo GETTEXT_POISON=\\''$(subst ','\\'',$(subst ','\\'',$(GETTEXT_POISON)))'\\' >>$@\n ifdef GIT_PERF_REPEAT_COUNT\ndiff --git a/pretty.c b/pretty.c\nindex 9d34d02..74fe5fb 100644\n--- a/pretty.c\n+++ b/pretty.c\n@@ -1497,7 +1497,7 @@ void format_commit_message(const struct commit *commit,\n \t}\n \n \tif (output_enc) {\n-\t\tint outsz;\n+\t\tint outsz = 0;\n \t\tchar *out = reencode_string_len(sb->buf, sb->len,\n \t\t\t\t\t\toutput_enc, utf8, &outsz);\n \t\tif (out)\ndiff --git a/strbuf.c b/strbuf.c\nindex 88cafd4..6d8ad4b 100644\n--- a/strbuf.c\n+++ b/strbuf.c\n@@ -94,7 +94,7 @@ void strbuf_ltrim(struct strbuf *sb)\n int strbuf_reencode(struct strbuf *sb, const char *from, const char *to)\n {\n \tchar *out;\n-\tint len;\n+\tint len = 0;\n \n \tif (same_encoding(from, to))\n \t\treturn 0;\ndiff --git a/t/t3900-i18n-commit.sh b/t/t3900-i18n-commit.sh\nindex 4bf1dbe..d522677 100755\n--- a/t/t3900-i18n-commit.sh\n+++ b/t/t3900-i18n-commit.sh\n@@ -7,6 +7,11 @@ test_description='commit and log output encodings'\n \n . ./test-lib.sh\n \n+if ! test_have_prereq ICONV; then\n+\tskip_all='skipping i18n tests, iconv not available'\n+\ttest_done\n+fi\n+\n compare_with () {\n \tgit show -s $1 | sed -e '1,/^$/d' -e 's/^    //' >current &&\n \tcase \"$3\" in\ndiff --git a/t/t3901-i18n-patch.sh b/t/t3901-i18n-patch.sh\nindex a392f3d..c4f9d06 100755\n--- a/t/t3901-i18n-patch.sh\n+++ b/t/t3901-i18n-patch.sh\n@@ -7,6 +7,11 @@ test_description='i18n settings and format-patch | am pipe'\n \n . ./test-lib.sh\n \n+if ! test_have_prereq ICONV; then\n+\tskip_all='skipping i18n tests, iconv not available'\n+\ttest_done\n+fi\n+\n check_encoding () {\n \t# Make sure characters are not corrupted\n \tcnt=\"$1\" header=\"$2\" i=1 j=0 bad=0\ndiff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh\nindex 7600a3e..6ac7150 100755\n--- a/t/t4201-shortlog.sh\n+++ b/t/t4201-shortlog.sh\n@@ -159,7 +159,7 @@ $DSCHO (2):\n \n EOF\n \n-test_expect_success !MINGW 'shortlog encoding' '\n+test_expect_success !MINGW,ICONV 'shortlog encoding' '\n \tgit reset --hard \"$commit\" &&\n \tgit config --unset i18n.commitencoding &&\n \techo 2 > a1 &&\ndiff --git a/t/t4210-log-i18n.sh b/t/t4210-log-i18n.sh\nindex e585fe6..12b82f9 100755\n--- a/t/t4210-log-i18n.sh\n+++ b/t/t4210-log-i18n.sh\n@@ -3,6 +3,11 @@\n test_description='test log with i18n features'\n . ./test-lib.sh\n \n+if ! test_have_prereq ICONV; then\n+\tskip_all='skipping i18n tests, iconv not available'\n+\ttest_done\n+fi\n+\n # two forms of é\n utf8_e=$(printf '\\303\\251')\n latin1_e=$(printf '\\351')\ndiff --git a/t/t5100-mailinfo.sh b/t/t5100-mailinfo.sh\nindex 60df10f..d904696 100755\n--- a/t/t5100-mailinfo.sh\n+++ b/t/t5100-mailinfo.sh\n@@ -53,7 +53,7 @@ test_expect_success 'split box with rfc2047 samples' \\\n \n for mail in `echo rfc2047/00*`\n do\n-\ttest_expect_success \"mailinfo $mail\" '\n+\ttest_expect_success ICONV \"mailinfo $mail\" '\n \t\tgit mailinfo -u $mail-msg $mail-patch <$mail >$mail-info &&\n \t\techo msg &&\n \t\ttest_cmp \"$TEST_DIRECTORY\"/t5100/empty $mail-msg &&\ndiff --git a/t/t5550-http-fetch-dumb.sh b/t/t5550-http-fetch-dumb.sh\nindex 6da9422..fde4fbb 100755\n--- a/t/t5550-http-fetch-dumb.sh\n+++ b/t/t5550-http-fetch-dumb.sh\n@@ -204,12 +204,12 @@ test_expect_success 'git client shows text/plain with a charset' '\n \tgrep \"this is the error message\" stderr\n '\n \n-test_expect_success 'http error messages are reencoded' '\n+test_expect_success ICONV 'http error messages are reencoded' '\n \ttest_must_fail git clone \"$HTTPD_URL/error/utf16\" 2>stderr &&\n \tgrep \"this is the error message\" stderr\n '\n \n-test_expect_success 'reencoding is robust to whitespace oddities' '\n+test_expect_success ICONV 'reencoding is robust to whitespace oddities' '\n \ttest_must_fail git clone \"$HTTPD_URL/error/odd-spacing\" 2>stderr &&\n \tgrep \"this is the error message\" stderr\n '\ndiff --git a/t/t7102-reset.sh b/t/t7102-reset.sh\nindex 98bcfe2..a7168d3 100755\n--- a/t/t7102-reset.sh\n+++ b/t/t7102-reset.sh\n@@ -62,14 +62,14 @@ check_changes () {\n \tdone | test_cmp .cat_expect -\n }\n \n-test_expect_success 'reset --hard message' '\n+test_expect_success ICONV 'reset --hard message' '\n \thex=$(git log -1 --format=\"%h\") &&\n \tgit reset --hard > .actual &&\n \techo HEAD is now at $hex $(commit_msg) > .expected &&\n \ttest_cmp .expected .actual\n '\n \n-test_expect_success 'reset --hard message (ISO8859-1 logoutputencoding)' '\n+test_expect_success ICONV 'reset --hard message (ISO8859-1 logoutputencoding)' '\n \thex=$(git log -1 --format=\"%h\") &&\n \tgit -c \"i18n.logOutputEncoding=$test_encoding\" reset --hard > .actual &&\n \techo HEAD is now at $hex $(commit_msg $test_encoding) > .expected &&\ndiff --git a/t/t8005-blame-i18n.sh b/t/t8005-blame-i18n.sh\nindex 847d098..8c3ab28 100755\n--- a/t/t8005-blame-i18n.sh\n+++ b/t/t8005-blame-i18n.sh\n@@ -3,6 +3,11 @@\n test_description='git blame encoding conversion'\n . ./test-lib.sh\n \n+if ! test_have_prereq ICONV; then\n+\tskip_all='skipping i18n tests, iconv not available'\n+\ttest_done\n+fi\n+\n . \"$TEST_DIRECTORY\"/t8005/utf8.txt\n . \"$TEST_DIRECTORY\"/t8005/euc-japan.txt\n . \"$TEST_DIRECTORY\"/t8005/sjis.txt\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex bb1402d..cef41a8 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -940,6 +940,7 @@ test -z \"$NO_PERL\" && test_set_prereq PERL\n test -z \"$NO_PYTHON\" && test_set_prereq PYTHON\n test -n \"$USE_LIBPCRE\" && test_set_prereq LIBPCRE\n test -z \"$NO_GETTEXT\" && test_set_prereq GETTEXT\n+test -z \"$NO_ICONV\" && test_set_prereq ICONV\n \n # Can we rely on git's output in the C locale?\n if test -n \"$GETTEXT_POISON\"\n"},{"id":"256348","messageId":"54E5E347.4070401@drmicha.warpmail.net","threadId":"38164","inReplyTo":"20150219125433.GA1591@peff.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2015-02-19T13:21:11Z","receivedAt":"2015-02-19T13:21:11Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Jeff King venit, vidit, dixit 19.02.2015 13:54:\n> On Thu, Feb 19, 2015 at 12:20:02PM +0100, Michael J Gruber wrote:\n> \n>> OK, so we should use NO_ICONV on HP_UX then.\n>>\n>>>> Failing so many tests with NO_ICONV is certainly not ideal, but I'm not\n>>>> sure we should care to protect so many tests with a prerequisite.\n>>>\n>>> How feasible is it to isolate those tests into separate test files that\n>>> people that know to not use e.g. Asian can safely ignore them?\n>>\n>> We have the prerequisite mechanism for that, and most probably, the\n>> tests are \"isolated\" already, in the sense that with NO_ICONV, only\n>> trivial setup tests succeed for those test files but all \"proper\" tests\n>> fail. But I'll check. Need a good test to set the prerequisite, though.\n> \n> I took a first pass at this. The results are below (and I am hoping one\n> of you can use it as a base to build on, as I do not want to commit to\n> doing the second half, as you will see :) ).\n> \n> It passes NO_ICONV through to the test suite, sets up a prerequisite,\n> disables some test scripts which are purely about i18n (e.g.,\n> t3900-i18n-commit), and marks some of the scripts with one-off tests\n> using the ICONV prereq.\n\nHmm. I know we pass other stuff down, but is this really a good idea? It\nrelies on the fact that the git that we test was built with the options\nfrom there. This assumptions breaks (with) GIT_TEST_INSTALLED, if not more.\n\nBasically, it may break as soon as we run the tests by other means than\n\"make\", which is quite customary if you run single tests.\n\n(And we do pass config.mak down, me thinks, but NO_ICONV may come from\nthe command line.)\n\n> Note that it also has some code changes around reencode_string_len.\n> These aren't strictly necessary, but they silence gcc warnings when\n> compiled with NO_ICONV. In that case we do:\n> \n>   #define reencode_string_len(a,b,c,d,e) NULL\n> \n> but \"e\" is an out-parameter. We don't promise it is valid if the\n> function returns NULL (which it does here). I'm kind of surprised the\n> compiler doesn't realize that:\n> \n>   foo = reencode_string_len(...);\n>   if (foo)\n> \tbar();\n> \n> is dead code, since the first line becomes \"foo = NULL\". So that's\n> optional.\n> \n> So, on to the tricky parts. Here are the failures that remain:\n> \n>   1. The script builds up a commit history through the script, and later\n>      tests depend on this for things like commit timestamps or the exact\n>      shape of history. t9350 is an example of this (it has one failing\n>      test which can be marked, but then other tests later fail in\n>      confusing ways).\n> \n>   2. The script creates commits with encoded commit messages, then uses\n>      those both for cases that care about the encoding, and those that\n>      do not. t4041 is an example here. I think it would be best to use\n>      vanilla commit mesages for the main body of tests, and then\n>      explicitly test the encoding-related features separately. I think\n>      t4205 and t6006 are in this boat, too.\n> \n> I also tested this on a system with a working \"iconv\". If we are\n> building with NO_ICONV, I am tempted to say that there should be no need\n> to run the \"iconv\" command-line program at all. But t6006, for example,\n> does it a lot outside of any test_expect_*. Probably it should be:\n> \n>   test_lazy_prereq ICONV '\n> \ttest -z \"$NO_ICONV\" &&\n> \tutf8_o=$(printf \"\\303\\263\") &&\n> \tlatin1_o=$(printf \"\\363\") &&\n> \ttest \"$(echo $utf8_o | iconv -f UTF-8 -t ISO-8559-1)\" = \"$latin1_o\"\n>   '\n> \n> or something, and all of that setup should be wrapped in a\n> \"test_expect_success ICONV ...\". Of course that is the easy part. The\n> hard part is splitting the ICONV setup from the vanilla commit setup so\n> that the other tests can run.\n\nJeff, you got it wrong. You should do the hard part and leave the easy\npart to us!\n\nThanks anyways, I'll add this to my HP_UX branch.\n\n> ---\n> diff --git a/Makefile b/Makefile\n> index e8ce649..c460ce8 100644\n> --- a/Makefile\n> +++ b/Makefile\n> @@ -2112,6 +2112,7 @@ endif\n>  ifdef GIT_TEST_CMP_USE_COPIED_CONTEXT\n>  \t@echo GIT_TEST_CMP_USE_COPIED_CONTEXT=YesPlease >>$@\n>  endif\n> +\t@echo NO_ICONV=\\''$(subst ','\\'',$(subst ','\\'',$(NO_ICONV)))'\\' >>$@\n>  \t@echo NO_GETTEXT=\\''$(subst ','\\'',$(subst ','\\'',$(NO_GETTEXT)))'\\' >>$@\n>  \t@echo GETTEXT_POISON=\\''$(subst ','\\'',$(subst ','\\'',$(GETTEXT_POISON)))'\\' >>$@\n>  ifdef GIT_PERF_REPEAT_COUNT\n> diff --git a/pretty.c b/pretty.c\n> index 9d34d02..74fe5fb 100644\n> --- a/pretty.c\n> +++ b/pretty.c\n> @@ -1497,7 +1497,7 @@ void format_commit_message(const struct commit *commit,\n>  \t}\n>  \n>  \tif (output_enc) {\n> -\t\tint outsz;\n> +\t\tint outsz = 0;\n>  \t\tchar *out = reencode_string_len(sb->buf, sb->len,\n>  \t\t\t\t\t\toutput_enc, utf8, &outsz);\n>  \t\tif (out)\n> diff --git a/strbuf.c b/strbuf.c\n> index 88cafd4..6d8ad4b 100644\n> --- a/strbuf.c\n> +++ b/strbuf.c\n> @@ -94,7 +94,7 @@ void strbuf_ltrim(struct strbuf *sb)\n>  int strbuf_reencode(struct strbuf *sb, const char *from, const char *to)\n>  {\n>  \tchar *out;\n> -\tint len;\n> +\tint len = 0;\n>  \n>  \tif (same_encoding(from, to))\n>  \t\treturn 0;\n> diff --git a/t/t3900-i18n-commit.sh b/t/t3900-i18n-commit.sh\n> index 4bf1dbe..d522677 100755\n> --- a/t/t3900-i18n-commit.sh\n> +++ b/t/t3900-i18n-commit.sh\n> @@ -7,6 +7,11 @@ test_description='commit and log output encodings'\n>  \n>  . ./test-lib.sh\n>  \n> +if ! test_have_prereq ICONV; then\n> +\tskip_all='skipping i18n tests, iconv not available'\n> +\ttest_done\n> +fi\n> +\n>  compare_with () {\n>  \tgit show -s $1 | sed -e '1,/^$/d' -e 's/^    //' >current &&\n>  \tcase \"$3\" in\n> diff --git a/t/t3901-i18n-patch.sh b/t/t3901-i18n-patch.sh\n> index a392f3d..c4f9d06 100755\n> --- a/t/t3901-i18n-patch.sh\n> +++ b/t/t3901-i18n-patch.sh\n> @@ -7,6 +7,11 @@ test_description='i18n settings and format-patch | am pipe'\n>  \n>  . ./test-lib.sh\n>  \n> +if ! test_have_prereq ICONV; then\n> +\tskip_all='skipping i18n tests, iconv not available'\n> +\ttest_done\n> +fi\n> +\n>  check_encoding () {\n>  \t# Make sure characters are not corrupted\n>  \tcnt=\"$1\" header=\"$2\" i=1 j=0 bad=0\n> diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh\n> index 7600a3e..6ac7150 100755\n> --- a/t/t4201-shortlog.sh\n> +++ b/t/t4201-shortlog.sh\n> @@ -159,7 +159,7 @@ $DSCHO (2):\n>  \n>  EOF\n>  \n> -test_expect_success !MINGW 'shortlog encoding' '\n> +test_expect_success !MINGW,ICONV 'shortlog encoding' '\n>  \tgit reset --hard \"$commit\" &&\n>  \tgit config --unset i18n.commitencoding &&\n>  \techo 2 > a1 &&\n> diff --git a/t/t4210-log-i18n.sh b/t/t4210-log-i18n.sh\n> index e585fe6..12b82f9 100755\n> --- a/t/t4210-log-i18n.sh\n> +++ b/t/t4210-log-i18n.sh\n> @@ -3,6 +3,11 @@\n>  test_description='test log with i18n features'\n>  . ./test-lib.sh\n>  \n> +if ! test_have_prereq ICONV; then\n> +\tskip_all='skipping i18n tests, iconv not available'\n> +\ttest_done\n> +fi\n> +\n>  # two forms of é\n>  utf8_e=$(printf '\\303\\251')\n>  latin1_e=$(printf '\\351')\n> diff --git a/t/t5100-mailinfo.sh b/t/t5100-mailinfo.sh\n> index 60df10f..d904696 100755\n> --- a/t/t5100-mailinfo.sh\n> +++ b/t/t5100-mailinfo.sh\n> @@ -53,7 +53,7 @@ test_expect_success 'split box with rfc2047 samples' \\\n>  \n>  for mail in `echo rfc2047/00*`\n>  do\n> -\ttest_expect_success \"mailinfo $mail\" '\n> +\ttest_expect_success ICONV \"mailinfo $mail\" '\n>  \t\tgit mailinfo -u $mail-msg $mail-patch <$mail >$mail-info &&\n>  \t\techo msg &&\n>  \t\ttest_cmp \"$TEST_DIRECTORY\"/t5100/empty $mail-msg &&\n> diff --git a/t/t5550-http-fetch-dumb.sh b/t/t5550-http-fetch-dumb.sh\n> index 6da9422..fde4fbb 100755\n> --- a/t/t5550-http-fetch-dumb.sh\n> +++ b/t/t5550-http-fetch-dumb.sh\n> @@ -204,12 +204,12 @@ test_expect_success 'git client shows text/plain with a charset' '\n>  \tgrep \"this is the error message\" stderr\n>  '\n>  \n> -test_expect_success 'http error messages are reencoded' '\n> +test_expect_success ICONV 'http error messages are reencoded' '\n>  \ttest_must_fail git clone \"$HTTPD_URL/error/utf16\" 2>stderr &&\n>  \tgrep \"this is the error message\" stderr\n>  '\n>  \n> -test_expect_success 'reencoding is robust to whitespace oddities' '\n> +test_expect_success ICONV 'reencoding is robust to whitespace oddities' '\n>  \ttest_must_fail git clone \"$HTTPD_URL/error/odd-spacing\" 2>stderr &&\n>  \tgrep \"this is the error message\" stderr\n>  '\n> diff --git a/t/t7102-reset.sh b/t/t7102-reset.sh\n> index 98bcfe2..a7168d3 100755\n> --- a/t/t7102-reset.sh\n> +++ b/t/t7102-reset.sh\n> @@ -62,14 +62,14 @@ check_changes () {\n>  \tdone | test_cmp .cat_expect -\n>  }\n>  \n> -test_expect_success 'reset --hard message' '\n> +test_expect_success ICONV 'reset --hard message' '\n>  \thex=$(git log -1 --format=\"%h\") &&\n>  \tgit reset --hard > .actual &&\n>  \techo HEAD is now at $hex $(commit_msg) > .expected &&\n>  \ttest_cmp .expected .actual\n>  '\n>  \n> -test_expect_success 'reset --hard message (ISO8859-1 logoutputencoding)' '\n> +test_expect_success ICONV 'reset --hard message (ISO8859-1 logoutputencoding)' '\n>  \thex=$(git log -1 --format=\"%h\") &&\n>  \tgit -c \"i18n.logOutputEncoding=$test_encoding\" reset --hard > .actual &&\n>  \techo HEAD is now at $hex $(commit_msg $test_encoding) > .expected &&\n> diff --git a/t/t8005-blame-i18n.sh b/t/t8005-blame-i18n.sh\n> index 847d098..8c3ab28 100755\n> --- a/t/t8005-blame-i18n.sh\n> +++ b/t/t8005-blame-i18n.sh\n> @@ -3,6 +3,11 @@\n>  test_description='git blame encoding conversion'\n>  . ./test-lib.sh\n>  \n> +if ! test_have_prereq ICONV; then\n> +\tskip_all='skipping i18n tests, iconv not available'\n> +\ttest_done\n> +fi\n> +\n>  . \"$TEST_DIRECTORY\"/t8005/utf8.txt\n>  . \"$TEST_DIRECTORY\"/t8005/euc-japan.txt\n>  . \"$TEST_DIRECTORY\"/t8005/sjis.txt\n> diff --git a/t/test-lib.sh b/t/test-lib.sh\n> index bb1402d..cef41a8 100644\n> --- a/t/test-lib.sh\n> +++ b/t/test-lib.sh\n> @@ -940,6 +940,7 @@ test -z \"$NO_PERL\" && test_set_prereq PERL\n>  test -z \"$NO_PYTHON\" && test_set_prereq PYTHON\n>  test -n \"$USE_LIBPCRE\" && test_set_prereq LIBPCRE\n>  test -z \"$NO_GETTEXT\" && test_set_prereq GETTEXT\n> +test -z \"$NO_ICONV\" && test_set_prereq ICONV\n>  \n>  # Can we rely on git's output in the C locale?\n>  if test -n \"$GETTEXT_POISON\"\n> \n"},{"id":"256361","messageId":"20150219195622.2828cc6a@pc09.procura.nl","threadId":"38164","inReplyTo":"54E5E347.4070401@drmicha.warpmail.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"H.Merijn Brand","fromEmail":"h.m.brand@xs4all.nl","sentAt":"2015-02-19T18:56:22Z","receivedAt":"2015-02-19T18:56:22Z","isPatch":false,"sender":{"key":"h.m.brand@xs4all.nl","avatar":"https://gravatar.com/avatar/5b8f83ee35c427a646cbea3b104346e00ab3663b99bbf435cddeb75cd4b3857b?d=mp&s=160"},"body":"On Thu, 19 Feb 2015 14:21:11 +0100, Michael J Gruber\n<git@drmicha.warpmail.net> wrote:\n\n> Jeff, you got it wrong. You should do the hard part and leave the easy\n> part to us!\n> \n> Thanks anyways, I'll add this to my HP_UX branch.\n\nI did not mention this in earlier mails. When using the HP C-ANSI-C\ncompiler, MAX_INT is not set.\n\nI had to add\n--8<---\n#ifndef   SIZE_MAX\n#  define SIZE_MAX              (18446744073709551615UL)\n/* define SIZE_MAX              (4294967295U) */\n#  endif\n-->8---\n\nto these files\n\nsha1_file.c\nutf8.c\nwalker.c\nwrapper.c\n\nAnd yes, that could be dynamic and probably be in another header file\n\n-- \nH.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/\nusing perl5.00307 .. 5.21   porting perl5 on HP-UX, AIX, and openSUSE\nhttp://mirrors.develooper.com/hpux/        http://www.test-smoke.org/\nhttp://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/\n"},{"id":"256383","messageId":"20150220014801.GB16124@peff.net","threadId":"38164","inReplyTo":"54E5E347.4070401@drmicha.warpmail.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2015-02-20T01:48:01Z","receivedAt":"2015-02-20T01:48:01Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Feb 19, 2015 at 02:21:11PM +0100, Michael J Gruber wrote:\n\n> > It passes NO_ICONV through to the test suite, sets up a prerequisite,\n> > disables some test scripts which are purely about i18n (e.g.,\n> > t3900-i18n-commit), and marks some of the scripts with one-off tests\n> > using the ICONV prereq.\n> \n> Hmm. I know we pass other stuff down, but is this really a good idea? It\n> relies on the fact that the git that we test was built with the options\n> from there. This assumptions breaks (with) GIT_TEST_INSTALLED, if not more.\n> \n> Basically, it may break as soon as we run the tests by other means than\n> \"make\", which is quite customary if you run single tests.\n> \n> (And we do pass config.mak down, me thinks, but NO_ICONV may come from\n> the command line.)\n\nIt's not quite so bad as you make out. We write the value to the\nGIT-BUILD-OPTIONS file during \"make\", no matter where it comes from, and\nload that in test-lib.sh. So:\n\n  make NO_ICONV=Nope\n  cd t\n  ./t3901-i18n-patch.sh\n\nworks just fine (for this and for any of the other options we mark\nthere).\n\nIt won't work for GIT_TEST_INSTALLED, but that is not a new problem.\nFundamentally you cannot expect to test a version built without option X\nwithout telling git _somehow_ that it was built that way.\n\nI suspect GIT_TEST_INSTALLED is not all that widely used, or somebody\nwould have complained before. But if we really want to support it, I\nthink the right thing is to bake GIT-BUILD-OPTIONS into the binary, so\nthat \"git --build-options\" dumps it. It might also have value for\ndebugging and forensics in general.\n\n> Jeff, you got it wrong. You should do the hard part and leave the easy\n> part to us!\n\nOops. :)\n\n-Peff\n"},{"id":"256408","messageId":"54E70E2B.8000604@drmicha.warpmail.net","threadId":"38164","inReplyTo":"20150220014801.GB16124@peff.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2015-02-20T10:36:27Z","receivedAt":"2015-02-20T10:36:27Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Jeff King venit, vidit, dixit 20.02.2015 02:48:\n> On Thu, Feb 19, 2015 at 02:21:11PM +0100, Michael J Gruber wrote:\n> \n>>> It passes NO_ICONV through to the test suite, sets up a prerequisite,\n>>> disables some test scripts which are purely about i18n (e.g.,\n>>> t3900-i18n-commit), and marks some of the scripts with one-off tests\n>>> using the ICONV prereq.\n>>\n>> Hmm. I know we pass other stuff down, but is this really a good idea? It\n>> relies on the fact that the git that we test was built with the options\n>> from there. This assumptions breaks (with) GIT_TEST_INSTALLED, if not more.\n>>\n>> Basically, it may break as soon as we run the tests by other means than\n>> \"make\", which is quite customary if you run single tests.\n>>\n>> (And we do pass config.mak down, me thinks, but NO_ICONV may come from\n>> the command line.)\n> \n> It's not quite so bad as you make out. We write the value to the\n> GIT-BUILD-OPTIONS file during \"make\", no matter where it comes from, and\n> load that in test-lib.sh. So:\n> \n>   make NO_ICONV=Nope\n>   cd t\n>   ./t3901-i18n-patch.sh\n> \n> works just fine (for this and for any of the other options we mark\n> there).\n\nIt survives a cd, sure... Now, change your config.mak before the cd and\nforget the make. Not everyone does\n\nmake -C t t3901-i18n-patch.sh\n\nThough, having just discovered that shell completion works for that\nform, too, I may do it more often (and then complain about having to use\nGIT_TEST_OPTS ;) )\n\n> It won't work for GIT_TEST_INSTALLED, but that is not a new problem.\n> Fundamentally you cannot expect to test a version built without option X\n> without telling git _somehow_ that it was built that way.\n> \n> I suspect GIT_TEST_INSTALLED is not all that widely used, or somebody\n> would have complained before. But if we really want to support it, I\n> think the right thing is to bake GIT-BUILD-OPTIONS into the binary, so\n> that \"git --build-options\" dumps it. It might also have value for\n> debugging and forensics in general.\n\nYep, that would be helpful in general. I don't think we should worry\nabout GIT_TEST_INSTALLED too much. Who came up with that feature anyway...?\n\nMichael\n"},{"id":"256411","messageId":"20150220104921.GA2467@peff.net","threadId":"38164","inReplyTo":"54E70E2B.8000604@drmicha.warpmail.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2015-02-20T10:49:21Z","receivedAt":"2015-02-20T10:49:21Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Feb 20, 2015 at 11:36:27AM +0100, Michael J Gruber wrote:\n\n> > It's not quite so bad as you make out. We write the value to the\n> > GIT-BUILD-OPTIONS file during \"make\", no matter where it comes from, and\n> > load that in test-lib.sh. So:\n> > \n> >   make NO_ICONV=Nope\n> >   cd t\n> >   ./t3901-i18n-patch.sh\n> > \n> > works just fine (for this and for any of the other options we mark\n> > there).\n> \n> It survives a cd, sure...\n\nI think the interesting thing is that it survives running `./tXXXX`\nrather than running the test through make.\n\n> Now, change your config.mak before the cd and\n> forget the make. Not everyone does\n> \n> make -C t t3901-i18n-patch.sh\n> \n> Though, having just discovered that shell completion works for that\n> form, too, I may do it more often (and then complain about having to use\n> GIT_TEST_OPTS ;) )\n\nYeah, I never use \"make tXXXX\" myself. But nor would I expect the tests\nto respect a version of git I had not actually built. E.g., if you build\nwith NO_PERL, and then remove NO_PERL from your config.mak but do _not_\nactually run \"make\", should that work? Ditto for NO_ICONV, for that\nmatter. The tests must match the binary, and the best guess we have\nabout the binary is the last thing we built.\n\nAdding \"git --build-options\" would give us a better guess (it may not be\nwhat the user _wanted_ to test, but it is what they _are_ testing).\n\n> > I suspect GIT_TEST_INSTALLED is not all that widely used, or somebody\n> > would have complained before. But if we really want to support it, I\n> > think the right thing is to bake GIT-BUILD-OPTIONS into the binary, so\n> > that \"git --build-options\" dumps it. It might also have value for\n> > debugging and forensics in general.\n> \n> Yep, that would be helpful in general. I don't think we should worry\n> about GIT_TEST_INSTALLED too much. Who came up with that feature anyway...?\n\nClearly a crazy person. :) I am not saying it is a _bad_ idea. Only that\nthe responsibility to make sure the installed version matches the\ncurrent build parameters lies with the user (and for that matter, the\ncurrent set of tests; we add new tests that would fail on old versions,\nand you cannot mix and match).\n\nSo an alternate explanation than \"not widely used\" is \"all of the users\nof it are responsible individuals who do not make bogus bug reports to\nthe list\". :)\n\n-Peff\n"},{"id":"256412","messageId":"20150220122407.4183490b@pc09.procura.nl","threadId":"38164","inReplyTo":"20150220104921.GA2467@peff.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"H.Merijn Brand","fromEmail":"h.m.brand@xs4all.nl","sentAt":"2015-02-20T11:24:07Z","receivedAt":"2015-02-20T11:24:07Z","isPatch":false,"sender":{"key":"h.m.brand@xs4all.nl","avatar":"https://gravatar.com/avatar/5b8f83ee35c427a646cbea3b104346e00ab3663b99bbf435cddeb75cd4b3857b?d=mp&s=160"},"body":"On Fri, 20 Feb 2015 05:49:21 -0500, Jeff King <peff@peff.net> wrote:\n\n> On Fri, Feb 20, 2015 at 11:36:27AM +0100, Michael J Gruber wrote:\n> \n> > > It's not quite so bad as you make out. We write the value to the\n> > > GIT-BUILD-OPTIONS file during \"make\", no matter where it comes from, and\n> > > load that in test-lib.sh. So:\n> > > \n> > >   make NO_ICONV=Nope\n> > >   cd t\n> > >   ./t3901-i18n-patch.sh\n> > > \n> > > works just fine (for this and for any of the other options we mark\n> > > there).\n> > \n> > It survives a cd, sure...\n> \n> I think the interesting thing is that it survives running `./tXXXX`\n> rather than running the test through make.\n\nI always use prove\n\n$ prove -v t1234.sh\n\n> > Now, change your config.mak before the cd and\n> > forget the make. Not everyone does\n> > \n> > make -C t t3901-i18n-patch.sh\n> > \n> > Though, having just discovered that shell completion works for that\n> > form, too, I may do it more often (and then complain about having to use\n> > GIT_TEST_OPTS ;) )\n> \n> Yeah, I never use \"make tXXXX\" myself. But nor would I expect the tests\n> to respect a version of git I had not actually built. E.g., if you build\n> with NO_PERL, and then remove NO_PERL from your config.mak but do _not_\n> actually run \"make\", should that work? Ditto for NO_ICONV, for that\n> matter. The tests must match the binary, and the best guess we have\n> about the binary is the last thing we built.\n> \n> Adding \"git --build-options\" would give us a better guess (it may not be\n> what the user _wanted_ to test, but it is what they _are_ testing).\n> \n> > > I suspect GIT_TEST_INSTALLED is not all that widely used, or somebody\n> > > would have complained before. But if we really want to support it, I\n> > > think the right thing is to bake GIT-BUILD-OPTIONS into the binary, so\n> > > that \"git --build-options\" dumps it. It might also have value for\n> > > debugging and forensics in general.\n> > \n> > Yep, that would be helpful in general. I don't think we should worry\n> > about GIT_TEST_INSTALLED too much. Who came up with that feature anyway...?\n> \n> Clearly a crazy person. :) I am not saying it is a _bad_ idea. Only that\n> the responsibility to make sure the installed version matches the\n> current build parameters lies with the user (and for that matter, the\n> current set of tests; we add new tests that would fail on old versions,\n> and you cannot mix and match).\n> \n> So an alternate explanation than \"not widely used\" is \"all of the users\n> of it are responsible individuals who do not make bogus bug reports to\n> the list\". :)\n> \n> -Peff\n\n\n-- \nH.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/\nusing perl5.00307 .. 5.21   porting perl5 on HP-UX, AIX, and openSUSE\nhttp://mirrors.develooper.com/hpux/        http://www.test-smoke.org/\nhttp://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/\n"},{"id":"256479","messageId":"20150221233154.GA90150@gmail.com","threadId":"38164","inReplyTo":"20150218170007.784be6aa@pc09.procura.nl","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2015-02-21T23:31:55Z","receivedAt":"2015-02-21T23:31:55Z","isPatch":false,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"On Wed, Feb 18, 2015 at 05:00:07PM +0100, H.Merijn Brand wrote:\n> On Wed, 10 Dec 2014 23:46:25 -0800, Junio C Hamano <gitster@pobox.com>\n> wrote:\n> \n> > Hello, all.\n> > \n> > H. Merijn Brand runs a few HP-UX boxes to help perl5 and other open\n> > source communities, wants help porting more recent Git on these\n> > boxes, running HP-UX 10.20, 11.00, and 11.23, and looking for a\n> > volunteer.  Please contact him directly if you are interested.\n> \n> No-one. Disappointing :(\n> \n> I started to work on 2.3.0 on HP-UX 11.23/63 ia64\n> \n> \n> Did *anyone* ever test with NO_ICONV?\n> Too many tests fail without iconv\n> \n> It is *very* hard to decide from the current status if all\n> remaining failures are related to (Asian) locale failures and (thus)\n> can be safely ignored (in my environment).\n> \n> \n> Specifics at the end\n> \n> \n> FAILures from scratch with no iconv:\n> --------------------------------------------------------------------------------\n> [...snip...]\n> t7610-mergetool.sh              Tests: 18 Failed:  1 Failed tests: 18\n> t7800-difftool.sh               Tests: 56 Failed:  1 Failed tests: 49\n> [...snip...]\n> \n> FAILures from scratch with iconv:\n> --------------------------------------------------------------------------------\n> [...snip...]\n> t7610-mergetool.sh              Tests: 18 Failed:  1 Failed tests: 18\n> t7800-difftool.sh               Tests: 56 Failed:  1 Failed tests: 49\n> [...snip...]\n\n\nI think it's safe to say that these mergetool and difftool\nfailures are not iconv-related.\n\n\n> t/t7610-mergetool.sh\n> --------------------\n> HP-UX' mktemp obviously is not compatible with GNU mktemp (which I have\n> not installed/available on HP-UX)\n> \n>  SYNOPSIS\n>       mktemp [-c] [-d directory_name] [-p prefix]\n> \n> Resolved 'subdir/file3' using previous resolution.\n> Automatic merge failed; fix conflicts and then commit the result.\n> + git mergetool --no-prompt --tool myecho -- both\n> + 1> actual\n> error: mktemp is needed when 'mergetool.writeToTemp' is true\n> error: last command exited with $?=1\n> not ok 18 - temporary filenames are used with mergetool.writeToTemp\n\n\nWe have prerequisites that can be used by tests to mark specific\ntests as skippable.  It looks like inventing a prereq for mktemp\nwould be helpful here.\n\nMaybe we don't need a global prereq, but certainly checking\nwhether mktemp is compliant for our use case could be used as a\ncriterion for skipping this test.\n\nA further improvement would be to have have test coverage over\nthe failure scenario to ensure that the expected error message\nis reported and that the correct exit code is returned when we\nattempt to use a non-compliant mktemp.\n\nI'd be happy to help review changes to this test.\n\nI'm busy this week(end), but I might be able to poke around next\nweek if you wanted to give me a shell account.\n\nThat said, this error is non-fatal for most use cases ~ as long\nas you don't set mergetool.writeToTemp then mergetool will work\nfine as it will not attempt to use mktemp.\n\n\n> t/t7800-difftool.sh\n> -------------------\n> HP-UX doesn't have readlink\n> \n> + git difftool --dir-diff --symlink --extcmd ./.git/CHECK_SYMLINKS branch HEAD\n> ./.git/CHECK_SYMLINKS: line 5: readlink: command not found\n> ./.git/CHECK_SYMLINKS: line 5: readlink: command not found\n> ./.git/CHECK_SYMLINKS: line 5: readlink: command not found\n> /pro/3gl/LINUX/git-2.3.0p/git-difftool line 472: No such file or directory\n> fatal: 'difftool' appears to be a git command, but we were not\n> able to execute it. Maybe git-difftool is broken?\n> error: last command exited with $?=128\n> not ok 49 - difftool --dir-diff --symlink without unstaged changes\n\n\nThis sounds like another case where a prereq would be helpful.\nIn this instance it'd be a \"readlink\" pre-req.\n\nThe --dir-diff code should probably be a little more careful\nhere, nonetheless.\n\nThe error about, \"fatal: 'difftool' appears to be a git command\"\nseems like it might be something that can be improved.\n\nIt seems like difftool is returning an error code that the\ncaling code is misinterpreting as meaning, \"not able to execute\"\nvs.  the real situation where difftool simply exited with an\n(unexpected) error code.\n\nIt seems like we'd want to catch the error within difftool and\nexit with a known error code.\n-- \nDavid\n"},{"id":"256904","messageId":"54F5CB74.2090403@drmicha.warpmail.net","threadId":"38164","inReplyTo":"20150219195622.2828cc6a@pc09.procura.nl","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2015-03-03T14:55:48Z","receivedAt":"2015-03-03T14:55:48Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"H.Merijn Brand venit, vidit, dixit 19.02.2015 19:56:\n> On Thu, 19 Feb 2015 14:21:11 +0100, Michael J Gruber\n> <git@drmicha.warpmail.net> wrote:\n> \n>> Jeff, you got it wrong. You should do the hard part and leave the easy\n>> part to us!\n>>\n>> Thanks anyways, I'll add this to my HP_UX branch.\n> \n> I did not mention this in earlier mails. When using the HP C-ANSI-C\n> compiler, MAX_INT is not set.\n> \n> I had to add\n> --8<---\n> #ifndef   SIZE_MAX\n> #  define SIZE_MAX              (18446744073709551615UL)\n> /* define SIZE_MAX              (4294967295U) */\n> #  endif\n> -->8---\n> \n> to these files\n> \n> sha1_file.c\n> utf8.c\n> walker.c\n> wrapper.c\n> \n> And yes, that could be dynamic and probably be in another header file\n> \n\nIn compat/regex/regex_internal.h we have\n\n/* For loser systems without the definition.  */\n#ifndef SIZE_MAX\n# define SIZE_MAX ((size_t) -1)\n#endif\n\nDoes this work in your environment?\n\n[Trying to not let this fall into oblivion...]\n\nMichael\n"},{"id":"256905","messageId":"20150303163042.655fe00c@pc09.procura.nl","threadId":"38164","inReplyTo":"54F5CB74.2090403@drmicha.warpmail.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"H.Merijn Brand","fromEmail":"h.m.brand@xs4all.nl","sentAt":"2015-03-03T15:30:42Z","receivedAt":"2015-03-03T15:30:42Z","isPatch":false,"sender":{"key":"h.m.brand@xs4all.nl","avatar":"https://gravatar.com/avatar/5b8f83ee35c427a646cbea3b104346e00ab3663b99bbf435cddeb75cd4b3857b?d=mp&s=160"},"body":"On Tue, 03 Mar 2015 15:55:48 +0100, Michael J Gruber\n<git@drmicha.warpmail.net> wrote:\n\n> H.Merijn Brand venit, vidit, dixit 19.02.2015 19:56:\n> > On Thu, 19 Feb 2015 14:21:11 +0100, Michael J Gruber\n> > <git@drmicha.warpmail.net> wrote:\n> > \n> >> Jeff, you got it wrong. You should do the hard part and leave the easy\n> >> part to us!\n> >>\n> >> Thanks anyways, I'll add this to my HP_UX branch.\n> > \n> > I did not mention this in earlier mails. When using the HP C-ANSI-C\n> > compiler, MAX_INT is not set.\n> > \n> > I had to add\n> > --8<---\n> > #ifndef   SIZE_MAX\n> > #  define SIZE_MAX              (18446744073709551615UL)\n> > /* define SIZE_MAX              (4294967295U) */\n> > #  endif\n> > -->8---\n> > \n> > to these files\n> > \n> > sha1_file.c\n> > utf8.c\n> > walker.c\n> > wrapper.c\n> > \n> > And yes, that could be dynamic and probably be in another header file\n> > \n> \n> In compat/regex/regex_internal.h we have\n> \n> /* For loser systems without the definition.  */\n> #ifndef SIZE_MAX\n> # define SIZE_MAX ((size_t) -1)\n> #endif\n> \n> Does this work in your environment?\n\nI think it does:\n\nmake\n    CC sha1_file.o\n    CC utf8.o\n    CC walker.o\n\"walker.c\", line 119: warning #4232-D: conversion from \"struct object *\" to a\n          more strictly aligned type \"struct commit *\" may cause misaligned\n          access\n                if (process_commit(walker, (struct commit *)obj))\n                                           ^\n\n\"walker.c\", line 124: warning #4232-D: conversion from \"struct object *\" to a\n          more strictly aligned type \"struct tree *\" may cause misaligned\n          access\n                if (process_tree(walker, (struct tree *)obj))\n                                         ^\n\n\"walker.c\", line 132: warning #4232-D: conversion from \"struct object *\" to a\n          more strictly aligned type \"struct tag *\" may cause misaligned access\n                if (process_tag(walker, (struct tag *)obj))\n                                        ^\n\n    CC wrapper.o\n    AR libgit.a\n\n\n> [Trying to not let this fall into oblivion...]\n\nMuch appreciated!\n\n> Michael\n\n\n-- \nH.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/\nusing perl5.00307 .. 5.21   porting perl5 on HP-UX, AIX, and openSUSE\nhttp://mirrors.develooper.com/hpux/        http://www.test-smoke.org/\nhttp://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/\n"},{"id":"256909","messageId":"54F5DBE1.6080004@drmicha.warpmail.net","threadId":"38164","inReplyTo":"20150303163042.655fe00c@pc09.procura.nl","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2015-03-03T16:05:53Z","receivedAt":"2015-03-03T16:05:53Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"H.Merijn Brand venit, vidit, dixit 03.03.2015 16:30:\n> On Tue, 03 Mar 2015 15:55:48 +0100, Michael J Gruber\n> <git@drmicha.warpmail.net> wrote:\n> \n>> H.Merijn Brand venit, vidit, dixit 19.02.2015 19:56:\n>>> On Thu, 19 Feb 2015 14:21:11 +0100, Michael J Gruber\n>>> <git@drmicha.warpmail.net> wrote:\n>>>\n>>>> Jeff, you got it wrong. You should do the hard part and leave the easy\n>>>> part to us!\n>>>>\n>>>> Thanks anyways, I'll add this to my HP_UX branch.\n>>>\n>>> I did not mention this in earlier mails. When using the HP C-ANSI-C\n>>> compiler, MAX_INT is not set.\n>>>\n>>> I had to add\n>>> --8<---\n>>> #ifndef   SIZE_MAX\n>>> #  define SIZE_MAX              (18446744073709551615UL)\n>>> /* define SIZE_MAX              (4294967295U) */\n>>> #  endif\n>>> -->8---\n>>>\n>>> to these files\n>>>\n>>> sha1_file.c\n>>> utf8.c\n>>> walker.c\n>>> wrapper.c\n>>>\n>>> And yes, that could be dynamic and probably be in another header file\n>>>\n>>\n>> In compat/regex/regex_internal.h we have\n>>\n>> /* For loser systems without the definition.  */\n>> #ifndef SIZE_MAX\n>> # define SIZE_MAX ((size_t) -1)\n>> #endif\n>>\n>> Does this work in your environment?\n> \n> I think it does:\n> \n> make\n>     CC sha1_file.o\n>     CC utf8.o\n>     CC walker.o\n> \"walker.c\", line 119: warning #4232-D: conversion from \"struct object *\" to a\n>           more strictly aligned type \"struct commit *\" may cause misaligned\n>           access\n>                 if (process_commit(walker, (struct commit *)obj))\n>                                            ^\n> \n> \"walker.c\", line 124: warning #4232-D: conversion from \"struct object *\" to a\n>           more strictly aligned type \"struct tree *\" may cause misaligned\n>           access\n>                 if (process_tree(walker, (struct tree *)obj))\n>                                          ^\n> \n> \"walker.c\", line 132: warning #4232-D: conversion from \"struct object *\" to a\n>           more strictly aligned type \"struct tag *\" may cause misaligned access\n>                 if (process_tag(walker, (struct tag *)obj))\n>                                         ^\n> \n>     CC wrapper.o\n>     AR libgit.a\n> \n> \n\nHmmh. Did you get these same warnings with the fix you had before? They\ndon't make feel that confident...\n\n>> [Trying to not let this fall into oblivion...]\n> \n> Much appreciated!\n> \n>> Michael\n> \n> \n"},{"id":"256940","messageId":"20150303232505.296fe169@pc09.procura.nl","threadId":"38164","inReplyTo":"54F5DBE1.6080004@drmicha.warpmail.net","subject":"Re: Interested in helping open source friends on HP-UX?","fromName":"H.Merijn Brand","fromEmail":"h.m.brand@xs4all.nl","sentAt":"2015-03-03T22:25:05Z","receivedAt":"2015-03-03T22:25:05Z","isPatch":false,"sender":{"key":"h.m.brand@xs4all.nl","avatar":"https://gravatar.com/avatar/5b8f83ee35c427a646cbea3b104346e00ab3663b99bbf435cddeb75cd4b3857b?d=mp&s=160"},"body":"On Tue, 03 Mar 2015 17:05:53 +0100, Michael J Gruber\n<git@drmicha.warpmail.net> wrote:\n\n> H.Merijn Brand venit, vidit, dixit 03.03.2015 16:30:\n> > On Tue, 03 Mar 2015 15:55:48 +0100, Michael J Gruber\n> > <git@drmicha.warpmail.net> wrote:\n> > \n> >> H.Merijn Brand venit, vidit, dixit 19.02.2015 19:56:\n> >>> On Thu, 19 Feb 2015 14:21:11 +0100, Michael J Gruber\n> >>> <git@drmicha.warpmail.net> wrote:\n> >>>\n> >>>> Jeff, you got it wrong. You should do the hard part and leave the easy\n> >>>> part to us!\n> >>>>\n> >>>> Thanks anyways, I'll add this to my HP_UX branch.\n> >>>\n> >>> I did not mention this in earlier mails. When using the HP C-ANSI-C\n> >>> compiler, MAX_INT is not set.\n> >>>\n> >>> I had to add\n> >>> --8<---\n> >>> #ifndef   SIZE_MAX\n> >>> #  define SIZE_MAX              (18446744073709551615UL)\n> >>> /* define SIZE_MAX              (4294967295U) */\n> >>> #  endif\n> >>> -->8---\n> >>>\n> >>> to these files\n> >>>\n> >>> sha1_file.c\n> >>> utf8.c\n> >>> walker.c\n> >>> wrapper.c\n> >>>\n> >>> And yes, that could be dynamic and probably be in another header file\n> >>>\n> >>\n> >> In compat/regex/regex_internal.h we have\n> >>\n> >> /* For loser systems without the definition.  */\n> >> #ifndef SIZE_MAX\n> >> # define SIZE_MAX ((size_t) -1)\n> >> #endif\n> >>\n> >> Does this work in your environment?\n> > \n> > I think it does:\n> > \n> > make\n> >     CC sha1_file.o\n> >     CC utf8.o\n> >     CC walker.o\n> > \"walker.c\", line 119: warning #4232-D: conversion from \"struct object *\" to a\n> >           more strictly aligned type \"struct commit *\" may cause misaligned\n> >           access\n> >                 if (process_commit(walker, (struct commit *)obj))\n> >                                            ^\n> > \n> > \"walker.c\", line 124: warning #4232-D: conversion from \"struct object *\" to a\n> >           more strictly aligned type \"struct tree *\" may cause misaligned\n> >           access\n> >                 if (process_tree(walker, (struct tree *)obj))\n> >                                          ^\n> > \n> > \"walker.c\", line 132: warning #4232-D: conversion from \"struct object *\" to a\n> >           more strictly aligned type \"struct tag *\" may cause misaligned access\n> >                 if (process_tag(walker, (struct tag *)obj))\n> >                                         ^\n> > \n> >     CC wrapper.o\n> >     AR libgit.a\n> > \n> > \n> \n> Hmmh. Did you get these same warnings with the fix you had before? They\n> don't make feel that confident...\n\nYes, these are unrelated to SIZE_MAX\n\n> >> [Trying to not let this fall into oblivion...]\n> > \n> > Much appreciated!\n> > \n> >> Michael\n\n\n-- \nH.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/\nusing perl5.00307 .. 5.21   porting perl5 on HP-UX, AIX, and openSUSE\nhttp://mirrors.develooper.com/hpux/        http://www.test-smoke.org/\nhttp://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/\n"}]}