debug: add a method to check the state of, and built an SSL cert chain
This is only useful on Windows, and avoids the need to use Internet Explorer to
build the certificate chain. I can see this being extended in the future to
print information about the certificate(s) to help debug issues on any platform.
Maybe even perform some of the python checks listed on the secure connections
wiki page. But for now, all I need is 1) a command that can be invoked in a
setup script to ensure the certificate is installed, and 2) a command that the
user can run if/when a certificate changes in the future.
It would have been nice to leverage the sslutil library to pick up host specific
settings, but attempting to use sslutil.wrapsocket() failed the
'not sslsocket.cipher()' check in it and aborted.
The output is a little more chatty than some commands, but I've seen the update
take 10+ seconds, and this is only a debug command.
#require test-repo slow debhelper
$ . "$TESTDIR/helpers-testrepo.sh"
$ testrepohgenv
Ensure debuild doesn't run the testsuite, as that could get silly.
$ DEB_BUILD_OPTIONS=nocheck
$ export DEB_BUILD_OPTIONS
$ OUTPUTDIR=`pwd`
$ export OUTPUTDIR
$ cd "$TESTDIR"/..
$ make deb > $OUTPUTDIR/build.log 2>&1
$ cd $OUTPUTDIR
$ ls *.deb
mercurial-common_*.deb (glob)
mercurial_*.deb (glob)
main deb should have .so but no .py
$ dpkg --contents mercurial_*.deb | egrep '(localrepo|parsers)'
* ./usr/lib/python2.7/dist-packages/mercurial/parsers*.so (glob)
mercurial-common should have py but no .so or pyc
$ dpkg --contents mercurial-common_*.deb | egrep '(localrepo|parsers)'
* ./usr/lib/python2.7/dist-packages/mercurial/localrepo.py (glob)