git-annex/doc/bugs/Creating_a_WebDAV_repo_under_OpenBSD.mdwn
2014-02-07 14:09:33 -04:00

53 lines
2.3 KiB
Markdown

### Please describe the problem.
When creating a https webdav repository under openbsd it complains that /etc/ssl/certs doesn't exist. This is true considering all certs are stored in /etc/ssl/cert.pem.
After /etc/ssl/certs is created it complains about that the certificate has an unknown CA, for obvious reasons.
A workaround is to symlink /etc/ssl/cert.pem in /etc/ssl/certs
### What steps will reproduce the problem?
See below
### What version of git-annex are you using? On what operating system?
5.20140129 under OpenBSD 5.4
### Please provide any additional information below.
[[!format sh """
# If you can, paste a complete transcript of the problem occurring here.
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
WEBDAV_USERNAME=<username> WEBDAV_PASSWORD=<password> git annex initremote box.com type=webdav url=https://dav.box.com/dav/Documents chunksize=100mb encryption=hybrid keyid=<key> mac=HMACSHA512
initremote box.com (encryption setup) (hybrid cipher with gpg key <key>) (testing WebDAV server...)
git-annex: WebDAV failed to write file: /etc/ssl/certs/: getDirectoryContents: does not exist (No such file or directory): user error
failed
git-annex: initremote: 1 failed
# End of transcript or log.
"""]]
> This needs to be fixed in the haskell certificate library.
> I have filed a bug there:
> <https://github.com/vincenthz/hs-certificate/issues/26>
>
> Patch would probably be pretty simple. Based on description, something like
> this:
[[!format patch """
diff --git a/System/Certificate/X509/Unix.hs b/System/Certificate/X509/Unix.hs
index 8463465..74316e9 100644
--- a/System/Certificate/X509/Unix.hs
+++ b/System/Certificate/X509/Unix.hs
@@ -50,7 +50,7 @@ listDirectoryCerts path = (map (path </>) . filter isCert <$> getDirectoryConten
isCert x = (not $ isPrefixOf "." x) && (not $ isHashedFile x)
getSystemCertificateStore :: IO CertificateStore
-getSystemCertificateStore = makeCertificateStore . concat <$> (getSystemPath >>= listDirectoryCerts >>= mapM readCertificates)
+getSystemCertificateStore = makeCertificateStore <$> readCertificates "/etc/ssl/cert.pem"
getSystemPath :: IO FilePath
getSystemPath = E.catch (getEnv envPathOverride) inDefault
"""]]
>
> [[closing|done]] as no changes to git-annex can fix this. --[[Joey]]