classification
Title: Don't mention Perl in Windows build output
Type: enhancement Stage: resolved
Components: Build, Windows Versions: Python 3.5
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: zach.ware Nosy List: loewis, pitrou, python-dev, terry.reedy, tim.golden, zach.ware
Priority: normal Keywords: patch

Created on 2014-04-03 03:39 by zach.ware, last changed 2014-05-09 14:12 by zach.ware. This issue is now closed.

Files
File name Uploaded Description Edit
issue21141.diff zach.ware, 2014-04-03 03:39
issue21141.v2.diff zach.ware, 2014-04-03 20:08 review
Messages (9)
msg215421 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2014-04-03 03:39
Attached is a patch that prevents mentioning Perl in the Windows build output, thereby avoiding giving the indication that Perl is necessary to build Python.

To make this work, the patch converts PCbuild/build_ssl.py into PCbuild/prepare_ssl.py and removes the actual building of OpenSSL from that script.  Instead, prepare_ssl.py takes a directory name as an argument (which is assumed to be a directory containing OpenSSL sources) and does what it has always done to prepare the way for building, except now it does it for both platforms.  PCbuild/build_ssl.bat is also updated to match.

Meanwhile, the actual building is moved entirely within ssl.vcxproj, which now runs a short script that copies buildinf*.h and opensslconf*.h into place and calls nmake with the appropriate makefile (x64 builds also run the appropriate nasm command first).  Since this is all done inside ssl.vcxproj, the dependency on python.vcxproj is dropped, allowing SSL to be built in parallel with pythoncore, tcl, tk, and tix when using the '/m' msbuild command line switch.

As a part of converting build_ssl.py into prepare_ssl.py, the comments at the top of the file have been updated.  Also, some dead code has been trimmed: the "-a" flag has been completely unused for a long time, and debug builds have been disabled as well; all code relating to either feature has been removed.

I've tested this by successfully preparing (once) and building openssl-1.0.1f in both 32 and 64 bit builds.
msg215463 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2014-04-03 20:08
Here's a slightly revised patch, including documentation changes in PCbuild/readme.txt.  Also, this patch doesn't rename build_ssl.(bat|py), so Rietveld should accept the patch as reviewable.  I think the renames should actually happen, though.
msg215476 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2014-04-03 22:33
Can you please explain what this has to do with dropping the mentioning of Perl?
msg215487 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2014-04-04 03:23
Sure; currently, the "ssl" project emits messages from build_ssl.py concerning the finding of Perl.  On a machine with a usable Perl, it's just

   "  Found a working perl at 'C:\Perl\bin\perl.exe'"

On machines without Perl, its the more worrisome

   """
   Can not find a suitable PERL:
    NO perl interpreters were found on this machine at all!
    Please install ActivePerl and ensure it appears on your path
   No Perl installation was found. Existing Makefiles are used.
   """

The last line of that message (and the fact that the ssl-related projects build ok anyway, if using source from svn.python.org) ought to make it clear that Perl really isn't necessary, but removing the messages entirely removes the possibility of misunderstanding.  The messages are still useful if you actually need the preparation part of build_ssl.py, though, so I don't want to just remove them from the script.  Divorcing the building from the preparation has other benefits as well, which IMO would stand on their own, but that wasn't my main goal here.

As for the brief discussion of Perl that remains in readme.txt, I think it should stay as long as we include a mention of how to use non-svn.python.org sources, just so that anyone needing to do a non-standard build will have some warning.  On the other hand, readme.txt could just give the script invocation, and leave it up to the script to recommend Perl if it's not available.
msg218147 - (view) Author: Tim Golden (tim.golden) * (Python committer) Date: 2014-05-09 10:09
I'm at least +0 on this, not because I've ever been that bothered by the Perl messages, but because it tidies things up a little smooths the way very slightly for people trying to build Python on Windows and I'm always ready to support that.
msg218151 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2014-05-09 11:53
+1 for this. The current messages are confusing, and I think I've already installed Perl because of them.
msg218153 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2014-05-09 12:10
The patch looks fine to me, including the renaming. Please apply.
msg218164 - (view) Author: Roundup Robot (python-dev) Date: 2014-05-09 14:10
New changeset 9ef99fafaadd by Zachary Ware in branch 'default':
Issue #21141: The Windows build process no longer attempts to find Perl,
http://hg.python.org/cpython/rev/9ef99fafaadd
msg218165 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2014-05-09 14:12
Committed.  Thanks for the review, Martin, and for the votes of confidence Tim and Antoine!
History
Date User Action Args
2014-05-09 14:12:11zach.waresetstatus: open -> closed
messages: + msg218165

assignee: zach.ware
resolution: fixed
stage: patch review -> resolved
2014-05-09 14:10:16python-devsetnosy: + python-dev
messages: + msg218164
2014-05-09 12:10:04loewissetmessages: + msg218153
2014-05-09 11:53:47pitrousetnosy: + pitrou
messages: + msg218151
2014-05-09 10:09:44tim.goldensetmessages: + msg218147
2014-04-04 03:23:39zach.waresetmessages: + msg215487
2014-04-03 22:33:31loewissetmessages: + msg215476
2014-04-03 20:08:22zach.waresetfiles: + issue21141.v2.diff

messages: + msg215463
2014-04-03 03:39:49zach.warecreate