{"thread":{"id":"66104","subject":"[PATCH 0/1] t7528: fix failure under csh","startedAt":"2026-08-03T00:49:59Z","lastAt":"2026-08-03T14:42:07Z","messageCount":4,"participants":["Kenneth Lorber","brian m. carlson","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":1},"messages":[{"id":"549464","messageId":"20260803004105.36913-1-keni@his.com","threadId":"66104","inReplyTo":null,"subject":"[PATCH 0/1] t7528: fix failure under csh","fromName":"Kenneth Lorber","fromEmail":"keni@his.com","sentAt":"2026-08-03T00:41:02Z","receivedAt":"2026-08-03T00:49:59Z","isPatch":true,"body":"The test suite fails at t7528 when run in an account with tcsh as\nthe login shell due to $SHELL being \"/bin/tcsh\"; similar behaviour\nis expected under other csh-like shells.\n\nFrom ssh-agent(1):\n-s      Generate Bourne shell commands on stdout.  This is the  default\n               if SHELL does not look like it's a csh style of shell.\n\nThis patch explicitly tells ssh-agent to use Bourne shell syntax, thus\nremoving a spurious test failure for users with csh style shells.\n\nAn alternative change would be to have test-lib.sh clear $SHELL; this\nwas rejected as potentially hiding additional similar errors.  There\nare no such additional errors evident currently.\n\nNo additional tests are added as the error is in the setup for\ntesting, not an error in git itself.\n\nKenneth Lorber (1):\n  t7528: fix failure under csh\n\n t/t7528-signed-commit-ssh.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\n-- \n2.43.0\n\n\n"},{"id":"549465","messageId":"20260803004105.36913-2-keni@his.com","threadId":"66104","inReplyTo":"20260803004105.36913-1-keni@his.com","subject":"[PATCH 1/1] t7528: fix failure under csh","fromName":"Kenneth Lorber","fromEmail":"keni@his.com","sentAt":"2026-08-03T00:41:03Z","receivedAt":"2026-08-03T00:49:59Z","isPatch":true,"body":"Explicitly set sh mode for ssh-agent (ssh-agent -s) to prevent\nfailure when user's login shell is csh-like.  The failure is\ncaused by propagation of the $SHELL value from the user's original\nshell despite the test and test harness explictly using sh, which\nmakes ssh-agent emit initialization code for the wrong shell:\n\n> cd t\n> echo $SHELL\n/bin/tcsh\n> ./t7528-signed-commit-ssh.sh --verbose --debug\n[...]\nexpecting success of 7528.2 'sign commits using literal public keys with ssh-agent':\n[...]\n./t7528-signed-commit-ssh.sh: 1: eval: setenv: not found\n./t7528-signed-commit-ssh.sh: 1: eval: setenv: not found\n[...]\n\nSigned-off-by: Kenneth Lorber <keni@his.com>\n---\n t/t7528-signed-commit-ssh.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/t/t7528-signed-commit-ssh.sh b/t/t7528-signed-commit-ssh.sh\nindex b50306b9b3..7bf4a40de2 100755\n--- a/t/t7528-signed-commit-ssh.sh\n+++ b/t/t7528-signed-commit-ssh.sh\n@@ -82,7 +82,7 @@ test_expect_success GPGSSH 'create signed commits' '\n test_expect_success GPGSSH 'sign commits using literal public keys with ssh-agent' '\n \ttest_when_finished \"test_unconfig commit.gpgsign\" &&\n \ttest_config gpg.format ssh &&\n-\teval $(ssh-agent -T || ssh-agent) &&\n+\teval $(ssh-agent -T -s || ssh-agent -s) &&\n \ttest_when_finished \"kill ${SSH_AGENT_PID}\" &&\n \ttest_when_finished \"test_unconfig user.signingkey\" &&\n \tmkdir tmpdir &&\n-- \n2.43.0\n\n\n"},{"id":"549470","messageId":"am_5YymI-UnCT_s1@fruit.crustytoothpaste.net","threadId":"66104","inReplyTo":"20260803004105.36913-2-keni@his.com","subject":"Re: [PATCH 1/1] t7528: fix failure under csh","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2026-08-03T02:13:56Z","receivedAt":"2026-08-03T02:13:58Z","isPatch":true,"body":"On 2026-08-03 at 00:41:03, Kenneth Lorber wrote:\n> Explicitly set sh mode for ssh-agent (ssh-agent -s) to prevent\n> failure when user's login shell is csh-like.  The failure is\n> caused by propagation of the $SHELL value from the user's original\n> shell despite the test and test harness explictly using sh, which\n> makes ssh-agent emit initialization code for the wrong shell:\n> \n> > cd t\n> > echo $SHELL\n> /bin/tcsh\n> > ./t7528-signed-commit-ssh.sh --verbose --debug\n> [...]\n> expecting success of 7528.2 'sign commits using literal public keys with ssh-agent':\n> [...]\n> ./t7528-signed-commit-ssh.sh: 1: eval: setenv: not found\n> ./t7528-signed-commit-ssh.sh: 1: eval: setenv: not found\n> [...]\n> \n> Signed-off-by: Kenneth Lorber <keni@his.com>\n> ---\n>  t/t7528-signed-commit-ssh.sh | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/t/t7528-signed-commit-ssh.sh b/t/t7528-signed-commit-ssh.sh\n> index b50306b9b3..7bf4a40de2 100755\n> --- a/t/t7528-signed-commit-ssh.sh\n> +++ b/t/t7528-signed-commit-ssh.sh\n> @@ -82,7 +82,7 @@ test_expect_success GPGSSH 'create signed commits' '\n>  test_expect_success GPGSSH 'sign commits using literal public keys with ssh-agent' '\n>  \ttest_when_finished \"test_unconfig commit.gpgsign\" &&\n>  \ttest_config gpg.format ssh &&\n> -\teval $(ssh-agent -T || ssh-agent) &&\n> +\teval $(ssh-agent -T -s || ssh-agent -s) &&\n>  \ttest_when_finished \"kill ${SSH_AGENT_PID}\" &&\n>  \ttest_when_finished \"test_unconfig user.signingkey\" &&\n>  \tmkdir tmpdir &&\n\nThis seems reasonable.  SHELL is defined by POSIX as \"a pathname of the\nuser's preferred command language interpreter.\"  When we're running the\ntestsuite, we don't care what that is and always want a POSIX\nsh-compatible output, so using `-s` is the right thing.\n\nI also don't see any other instances of `ssh-agent` in the codebase, so\nthis looks like the only place we need to fix.\n-- \nbrian m. carlson (they/them)\nToronto, Ontario, CA\n"},{"id":"549497","messageId":"xmqqy0enz2o4.fsf@gitster.g","threadId":"66104","inReplyTo":"am_5YymI-UnCT_s1@fruit.crustytoothpaste.net","subject":"Re: [PATCH 1/1] t7528: fix failure under csh","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-08-03T14:42:03Z","receivedAt":"2026-08-03T14:42:07Z","isPatch":true,"body":"\"brian m. carlson\" <sandals@crustytoothpaste.net> writes:\n\n>> @@ -82,7 +82,7 @@ test_expect_success GPGSSH 'create signed commits' '\n>>  test_expect_success GPGSSH 'sign commits using literal public keys with ssh-agent' '\n>>  \ttest_when_finished \"test_unconfig commit.gpgsign\" &&\n>>  \ttest_config gpg.format ssh &&\n>> -\teval $(ssh-agent -T || ssh-agent) &&\n>> +\teval $(ssh-agent -T -s || ssh-agent -s) &&\n>>  \ttest_when_finished \"kill ${SSH_AGENT_PID}\" &&\n>>  \ttest_when_finished \"test_unconfig user.signingkey\" &&\n>>  \tmkdir tmpdir &&\n>\n> This seems reasonable.  SHELL is defined by POSIX as \"a pathname of the\n> user's preferred command language interpreter.\"  When we're running the\n> testsuite, we don't care what that is and always want a POSIX\n> sh-compatible output, so using `-s` is the right thing.\n>\n> I also don't see any other instances of `ssh-agent` in the codebase, so\n> this looks like the only place we need to fix.\n\nThanks for being careful.  Will queue.\n"}]}