Sigh, I love linux distros. Neither calibre nor python hardcode any paths to ssl certs. Those come from the openssl library. See the functions X509_get_default_cert_file_env and X509_get_default_cert_file
IIRC those in turn can be controlled via environment variables SSL_CERT_FILE and SSL_CERT_DIR
Presumably, your distro patches its build of openssl to not use the default path. However, calibre comes with its own bundled dependencies, including the openssl libs, which will therefore not have your distro specific patch. So they will not be able to find the files.
Whatever distro you are using should either set the environment variables, or the symlinks, or better yet stop patching upstream packages willy nilly.
Since I doubt your distro is likely to see reason, your remaining workarounds are to either set those env vars yourself, use symlinks, or delete the bundled openssl libs in the calibre package, which will then cause it to use the distro versions (assuming the C runtimes are ABI compatible).
Last edited by kovidgoyal; 02-19-2015 at 07:20 AM.
|