classification
Title: Document nasm-2.10.01 as required version for openssl
Type: enhancement Stage:
Components: Documentation Versions: Python 3.3
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: docs@python Nosy List: brian.curtin, christian.heimes, docs@python, georg.brandl, jeremy.kloth, jkloth, loewis, pitrou, python-dev, skrah, zach.ware
Priority: normal Keywords:

Created on 2012-06-24 20:32 by skrah, last changed 2013-10-06 10:50 by georg.brandl. This issue is now closed.

Messages (14)
msg163849 - (view) Author: Stefan Krah (skrah) * (Python committer) Date: 2012-06-24 20:32
[Antoine]
Ouch. The test failures on the buildbot now seem to point to problems with OpenSSL's SHA1 implementation.

Jeremy, perhaps you can try to run the OpenSSL self-tests?
msg163854 - (view) Author: Stefan Krah (skrah) * (Python committer) Date: 2012-06-24 20:41
Well, as I said in the other issue, I can't reproduce. Apart from
running the self tests, perhaps delete the openssl directory and
start afresh?
msg163972 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-06-25 14:15
By contrast, 2.7 and 3.2 look ok.
msg163973 - (view) Author: Jeremy Kloth (jkloth) * Date: 2012-06-25 14:26
The OpenSSL (64-bit build) does not pass its own tests, while the 32-bit build from the same source works just fine.

Stefan, how did you get your 64-bit build to work?
msg163976 - (view) Author: Stefan Krah (skrah) * (Python committer) Date: 2012-06-25 14:56
It worked out of the box for me. These are the versions I use:

# openssl version:
svn export http://svn.python.org/projects/external/openssl-1.0.1c

# nasm version (installer):
nasm-2.10.01-installer.exe


Let me see what I did:

cd openssl-1.0.1c
nmake -f ms\nt.mak clean
nmake -f ms\nt64.mak clean
cd ..\cpython
Tools\buildbot\clean.bat
Tools\buildbot\clean-amd64.bat
Tools\buildbot\build-amd64.bat
cd PCbuild\amd64

python_d.exe -m test -uall test_hmac
[1/1] test_hmac
1 test OK.
[111184 refs]


python_d.exe -m test -uall test_ssl
[...]
  File "C:\Users\stefan\pydev\cpython\lib\ssl.py", line 513, in do_handshake
    self._sslobj.do_handshake()
ConnectionResetError: [Error 10054] An existing connection was forcibly closed by the remote host


Now I get this error but it seems quite unrelated.
msg163978 - (view) Author: Stefan Krah (skrah) * (Python committer) Date: 2012-06-25 15:06
The openssl self tests also pass here.
msg163979 - (view) Author: Jeremy Kloth (jeremy.kloth) Date: 2012-06-25 15:23
I've narrowed this down to a CPU capabilities issue with OpenSSL.
What CPU are you using?  I have a Q9450 (Core2 Quad)

If I set OPENSSL_ia32cap to 0 the self tests work.  I'm now off to
debug OpenSSL CPUID support... :(
msg163980 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-06-25 15:26
> If I set OPENSSL_ia32cap to 0 the self tests work.  I'm now off to
> debug OpenSSL CPUID support... :(

At this point, I think asking for help on an OpenSSL mailing-list or IRC channel is a good idea.
(unless you want to do the debugging yourself, that is :))
msg163986 - (view) Author: Stefan Krah (skrah) * (Python committer) Date: 2012-06-25 15:40
Jeremy Kloth <report@bugs.python.org> wrote:
> I've narrowed this down to a CPU capabilities issue with OpenSSL.
> What CPU are you using?  I have a Q9450 (Core2 Quad)

Core 2 Duo E8500. But I run Windows under Linux/kvm/qemu, in case that matters.
msg164009 - (view) Author: Jeremy Kloth (jeremy.kloth) Date: 2012-06-25 20:09
Ok, the final verdict on this issue is that nasm is to blame.  I had
nasm 2.09.02 installed.  I upgraded it to version 2.10.01 and
magically OpenSSL started working.

From the nasm changelog is seems that the added instruction sets in
2.10 are required for building OpenSSL with asm optimizations (the
default for Windows from 1.0.1).  This seems like a good candidate for
adding to the devguide (and any other building documents).
msg164039 - (view) Author: Stefan Krah (skrah) * (Python committer) Date: 2012-06-26 06:05
Good that it works now. I've tagged this as a documentation issue.
msg191128 - (view) Author: Roundup Robot (python-dev) Date: 2013-06-14 13:48
New changeset ee3952965934 by Christian Heimes in branch '3.3':
Issue #15172: Document NASM 2.10+ as requirement for building OpenSSL 1.0.1 on Windows
http://hg.python.org/cpython/rev/ee3952965934

New changeset 1b2cbdc9c1d4 by Christian Heimes in branch 'default':
Issue #15172: Document NASM 2.10+ as requirement for building OpenSSL 1.0.1 on Windows
http://hg.python.org/cpython/rev/1b2cbdc9c1d4
msg191129 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2013-06-14 13:50
I got bitten by the bug, too. NASM 2.10 or newer as requirement is now documented in PCbuild/readme.txt.
msg199064 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2013-10-06 10:50
Fixed, I guess?
History
Date User Action Args
2013-10-06 10:50:31georg.brandlsetstatus: open -> closed

nosy: + georg.brandl
messages: + msg199064

resolution: fixed
2013-06-14 13:50:11christian.heimessetnosy: + christian.heimes
messages: + msg191129
2013-06-14 13:48:33python-devsetnosy: + python-dev
messages: + msg191128
2012-06-26 06:05:20skrahsetassignee: docs@python
type: behavior -> enhancement
components: + Documentation, - Tests
title: SHA1 failures on the 64-bit Windows buildbot -> Document nasm-2.10.01 as required version for openssl
keywords: - buildbot
nosy: + docs@python

messages: + msg164039
2012-06-25 20:09:14jeremy.klothsetmessages: + msg164009
2012-06-25 15:40:23skrahsetmessages: + msg163986
2012-06-25 15:26:41pitrousetmessages: + msg163980
2012-06-25 15:23:48jeremy.klothsetmessages: + msg163979
2012-06-25 15:06:25skrahsetmessages: + msg163978
2012-06-25 14:56:02skrahsetmessages: + msg163976
2012-06-25 14:26:46jklothsetmessages: + msg163973
2012-06-25 14:15:09pitrousetmessages: + msg163972
2012-06-24 20:41:02skrahsetmessages: + msg163854
2012-06-24 20:32:27skrahcreate