Differences between Python's OpenSSL in SVN and OpenSSL's in GitHub
Hello Python Developers! Why is it that the OpenSSL v1.0.2d that is found on Python's SVN repohttp://svn.python.org/projects/external/openssl-1.0.2d/ is quite different from what OpenSSL has on their GitHub repositoryhttps://github.com/openssl/openssl/tree/OpenSSL_1_0_2d for OpenSSL v1.0.2d? I am asking because I am able to successfully download OpenSSL's GitHub version during the cpython build process but when I try to build cpython, I get failures because Visual Studio isn't able to find files like openssl/opensslconf.h and this is because Python's OpenSSL version in SVN is the only one that has a directory inside the include directory. The GitHub repo is missing this directory however, and these are not the only differences. If I checkout the GitHub version and then replace it with what is in the SVN repo, you get these untracked files. MINFO Makefile Makefile.bak apps/CA.pl apps/md4.c crypto/buildinf.h crypto/buildinf.h.orig crypto/buildinf_amd64.h crypto/buildinf_x86.h crypto/opensslconf.h crypto/opensslconf.h.bak crypto/opensslconf_amd64.h crypto/opensslconf_x86.h inc64/ include/openssl/ ms/bcb.mak ms/libeay32.def ms/nt.mak ms/nt64.mak ms/ntdll.mak ms/ssleay32.def ms/uptable.asm ms/uptable.obj ms/version32.rc out64/ test/bftest.c test/bntest.c test/casttest.c test/constant_time_test.c test/destest.c test/dhtest.c test/dsatest.c test/ecdhtest.c test/ecdsatest.c test/ectest.c test/enginetest.c test/evp_extra_test.c test/evp_test.c test/evptests.txt test/exptest.c test/heartbeat_test.c test/hmactest.c test/ideatest.c test/jpaketest.c test/md2test.c test/md4test.c test/md5test.c test/mdc2test.c test/randtest.c test/rc2test.c test/rc4test.c test/rc5test.c test/rmdtest.c test/rsa_test.c test/sha1test.c test/sha256t.c test/sha512t.c test/shatest.c test/srptest.c test/ssltest.c test/v3nametest.c test/verify_extra_test.c test/wp_test.c tmp/ tmp32/ tmp64/ tools/c_rehash Does anyone know why this is the case? What was the motivation behind these changes? Thanks! Andres Guzman-Ballen Scripting Analyzers & Tools Team Intel Americas, Inc. 1906 Fox Dr, Champaign IL 61820
On 14Aug2015 0856, Guzman-ballen, Andres wrote:
Hello Python Developers!
Why is it that the OpenSSL v1.0.2d that is found on Python’s SVN repo http://svn.python.org/projects/external/openssl-1.0.2d/ is quite different from what OpenSSL has on their GitHub repository https://github.com/openssl/openssl/tree/OpenSSL_1_0_2d for OpenSSL v1.0.2d? I am asking because I am able to successfully download OpenSSL’s GitHub version during the cpython build process but when I try to build cpython, I get failures because Visual Studio isn’t able to find files like openssl/opensslconf.h and this is because Python’s OpenSSL version in SVN is the only one that has a directory inside the include directory. The GitHub repo is missing this directory however, and these are not the only differences.
If I checkout the GitHub version and then replace it with what is in the SVN repo, you get these untracked files.
MINFO
Makefile
Makefile.bak
apps/CA.pl
apps/md4.c
crypto/buildinf.h
crypto/buildinf.h.orig
crypto/buildinf_amd64.h
crypto/buildinf_x86.h
crypto/opensslconf.h
crypto/opensslconf.h.bak
crypto/opensslconf_amd64.h
crypto/opensslconf_x86.h
inc64/
include/openssl/
ms/bcb.mak
ms/libeay32.def
ms/nt.mak
ms/nt64.mak
ms/ntdll.mak
ms/ssleay32.def
ms/uptable.asm
ms/uptable.obj
ms/version32.rc
out64/
test/bftest.c
test/bntest.c
test/casttest.c
test/constant_time_test.c
test/destest.c
test/dhtest.c
test/dsatest.c
test/ecdhtest.c
test/ecdsatest.c
test/ectest.c
test/enginetest.c
test/evp_extra_test.c
test/evp_test.c
test/evptests.txt
test/exptest.c
test/heartbeat_test.c
test/hmactest.c
test/ideatest.c
test/jpaketest.c
test/md2test.c
test/md4test.c
test/md5test.c
test/mdc2test.c
test/randtest.c
test/rc2test.c
test/rc4test.c
test/rc5test.c
test/rmdtest.c
test/rsa_test.c
test/sha1test.c
test/sha256t.c
test/sha512t.c
test/shatest.c
test/srptest.c
test/ssltest.c
test/v3nametest.c
test/verify_extra_test.c
test/wp_test.c
tmp/
tmp32/
tmp64/
tools/c_rehash
Does anyone know why this is the case? What was the motivation behind these changes? Thanks!
Andres Guzman-Ballen
Scripting Analyzers & Tools Team
Intel Americas, Inc.
1906 Fox Dr, Champaign IL 61820
To build OpenSSL on Windows you also need a copy of Perl and you need to run the preparation script to generate some extra code files. Otherwise you don't get a Windows makefile (which we don't use anymore because it builds significantly faster and more reliably with a Visual C++ project) and the generated assembly code. The copy we have in SVN has already had these scripts generated, but nothing else should be different from the original repository. It's possible you got a slightly different version out of github? I believe we use their released tarballs, but Zach will know for sure as he did the last update IIRC. Cheers, Steve
On Fri, Aug 14, 2015 at 10:56 AM, Guzman-ballen, Andres
Hello Python Developers!
Why is it that the OpenSSL v1.0.2d that is found on Python’s SVN repo is quite different from what OpenSSL has on their GitHub repository for OpenSSL v1.0.2d?
The reason for the difference is to avoid requiring Perl to be installed to be able to build Python. The svn.python.org version of openssl-1.0.2d at revision 89058should match 1.0.2d from Github (if it doesn't that's a bug in OpenSSL's packaging or my checking it into SVN). Revision 89059 checks in all of the changes, all of which are made by running 'PCbuild\prepare_ssl.py' on the vanilla sources, and you should be able to produce the same set of changes by running 'PCbuild\prepare_ssl.py' over the sources checked out from Github. Note that to run that script successfully, you'll need to have the Visual Studio environment set up ('PCbuild\env.bat' will do it for you), Perl and NASM on your PATH, and run the script with Python 3.4 or later. Hope this answers your question, -- Zach
participants (3)
-
Guzman-ballen, Andres
-
Steve Dower
-
Zachary Ware