minimize lenth of path to gpg agent socket

Considered using the system tmp dir rather than putting it inside .t/,
but then if TEMP were set to a long path, that would be a problem.
Relative path seems the best approach, and will always be nice and
short.

The only downside of it is, if git-annex somehow changes the cwd
while running, it would break. But git-annex does not do that, and
should never do that.
This commit is contained in:
Joey Hess 2020-03-26 13:04:24 -04:00
parent 40c911e427
commit b426ff6825
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 23 additions and 3 deletions

View file

@ -1574,10 +1574,13 @@ test_crypto = do
where
gpgcmd = Utility.Gpg.mkGpgCmd Nothing
testscheme scheme = do
gpgtmp <- (</> "gpgtest") <$> absPath tmpdir
abstmp <- absPath tmpdir
testscheme' scheme abstmp
testscheme' scheme abstmp = intmpclonerepo $ whenM (Utility.Path.inPath (Utility.Gpg.unGpgCmd gpgcmd)) $ do
-- Use a relative path to avoid too long path to gpg's
-- agent socket.
gpgtmp <- (</> "gpgtmp") <$> relPathCwdToFile abstmp
createDirectoryIfMissing False gpgtmp
testscheme' scheme gpgtmp
testscheme' scheme gpgtmp = intmpclonerepo $ whenM (Utility.Path.inPath (Utility.Gpg.unGpgCmd gpgcmd)) $ do
Utility.Gpg.testTestHarness gpgtmp gpgcmd
@? "test harness self-test failed"
Utility.Gpg.testHarness gpgtmp gpgcmd $ do

View file

@ -0,0 +1,17 @@
[[!comment format=mdwn
username="joey"
subject="""comment 2"""
date="2020-03-26T16:55:30Z"
content="""
Tried to reproduce it here running in a directory with the same lenth, but
no failures. It could have to do with the old version of gpg-agent.
(I don't see how gpg inside the container could talk to gpg-agent outside
the container at all, unless the container shares a filesystem, and even
then, gpg inside the container is being run with a nonstandard home
directory, so it will not try to talk to a gpg-agent socket in the usual
home directory.)
I have a patch that makes the path to the socket file relative, but can't
verify if it will fix the problem. I've applied it anyway.
"""]]