-
-
Notifications
You must be signed in to change notification settings - Fork 29.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pull Windows dependencies from GitHub rather than svn.python.org #74635
Comments
Once we've migrated away from svn.python.org for Windows build dependencies, there should be no reason to continue running svn.python.org. |
The reason to keep it running is for all the existing people who are building from source. Unless you're porting all the old versions over and providing instructions for updating old sources? I wouldn't bother - just leave the server up for a few more years. Ben probably knows - can we add a custom message to svn requests? Then we could start publicising an end of life date for it. |
The box svn is running on is at risk of falling over any day. Plus with whatever ancient software it's running, it's surely a security risk to keep running an unmaintained svn instance. I certainly don't want to keep it running for years. I don't think we've ever advertised the svn windows deps as a service we provide the community. Off the top of my head, I'm not sure how to announce that deprecation to svn client users. If you find something on the internets, I can put it on the server. |
Except in the dev guide :) ([after looking] well, linked from the dev guide https://github.com/python/cpython/blob/master/PCbuild/readme.txt#L230 ) Maybe we just need to pick a date and publicise it separately. Is this process PEP-worthy? Considering the amount of decisions we had to make regarding putting code in git, it might be worth writing up how it works in a brief PEP and including an EOL for svn.p.o |
How far along are you with removing the svn.python.org dependency. Does Jan 1 2018 sound okay for the end of svn.python.org? I think a PEP is up to you. Doesn't seem like something that needs to be approved. |
I could imagine people wanting to build old releases. But we have Windows binaries up here: Therefore I don't think it's a problem to discontinue svn.python.org once new releases are migrated to github (but only once those new releases are out). |
I just disabled viewvc on svn.python.org because of a security problem. |
The usage text in build.bat still mentions that svn.exe is required for the '-e' flag. I think it should be updated to reflect the changes made. |
Zach, I just spotted this build log, that appears to have failed to download nuget.exe: http://buildbot.python.org/all/builders/AMD64%20Windows7%20SP1%203.6/builds/339/steps/compile/logs/stdio Guessing the bot is only succeeding because it currently has all the dependencies. Maybe we should consider just checking in nuget.exe? |
Looks like that error is coming from the fact that the Powershell on that buildbot is outdated. As the documentation notes:
Before running the web request command maybe do a |
The buildbot failures currently being blamed on bpo-30916 are actually due to this issue - we actually need Python 3.6 on these machines in order to download the new externals, and they don't have it and we can't get it via Powershell. |
My PR adds a small script to use requests.get/urlretrieve with any version of Python to get nuget.exe. Theoretically, we *could* use this to download everything, but I'd rather minimize our exposure to insecure downloads for machines that don't already have Python 3.6 available. |
Compilation still fails, as some of the buildbots don't have py.exe either. At this stage, our choices are either to fix the buildbots, most easily by copying py.exe into PATH, or to check nuget.exe (4MB) into the source repository. (I guess we can cover a few more % of cases by checking in py.exe, but that still won't get us 100%) Any preferences? |
If the dependencies are in git, why don't you use "git clone" instead of trying a HTTP fetch? |
For example "git clone --depth 1 https://github.com/python/cpython-bin-deps --branch openssl-bin-1.0.2k myopenssldir" |
We can't assume git.exe is available either (build from sdist/hggit/.zip), though I guess we can also use it as a fallback. At least on the buildbots it'll be there. |
I think it's reasonable to mandate the presence of a git install to fetch CPython externals. After all we used to mandate the presence of a svn install... |
How do you get CPython source code if git is not available? Also using |
And we regretted that so much that we changed away from it :) When discussing this changeover plan, Zach and I decided we needed a fallback requiring only OS dependencies. In this case, the Powershell dependency fails on Windows 7 since it does not have the Invoke-WebRequest command (unless you've been installing all your updates). We decided against using git first because then the case that is more reliable (download and extract a .zip file from a URL) would go unused/untested in many cases. We also use the potentially installed python.exe in other places in the build, so it's far from a waste to grab it, and we already required *any* Python dependency to do a full build (docs and/or installer), so it isn't really adding anything there. The bit that was overlooked was the PowerShell on old systems limitation, and the absence of py.exe when you don't have Python 3 installed. |
The buildbots have already successfully built, so I'm declaring this and bpo-30916 resolved. |
Or, use the preexisting convention of the HOST_PYTHON envvar that was used prior to the recent merged PRs |
Is that an actual convention? I didn't see any other references, so I figured Zach had made it up. |
I think that's used on Unix when cross-compiling, but I don't know about Windows... |
Just to note, PowerShell must be updated *manually* (at least on Win7). Plus you need to know what to update to get it. In this case, the Windows Management Framework: https://www.microsoft.com/en-us/download/details.aspx?id=40855 I've installed this on my buildbot apparently concurrently with this conversation. Personally, I'd lean toward recommending this update with Windows 7 machines as it stays closer to "naked" OS + Python checkout for building a new Python. (Although the latest merge kinda makes this a mute point). |
It has existed in the Windows build files since 2.5, when x64 |
I just got a download failure on an AppVeyor build: Downloading nuget... File "<string>", line 1 |
Hmm... looks like there's another way to fail I didn't account for that goes down a different path in the batch file. I'll try being less clever. |
Yeouch, it's been causing AppVeyor builds to get stuck, and then they time out after an hour. Luckily mine is up next in a minute or so, so I'll try to merge quickly and avoid anyone else getting held up. I also restored HOST_PYTHON in the PR, as a fallback for "where do I find a python.exe I can download stuff with" - specific version doesn't matter, as long as it has requests or urlretrieve. |
Ah, there's also a nuget.org outage affecting AppVeyor (but not me because I'm in Italy and so connecting to the EU mirror automatically) - https://appveyor.statuspage.io/ When that recovers it should be fine again. The workaround for those without py.exe is to set PYTHON (or, post-PR, HOST_PYTHON) to a Python 3.6 or later executable. |
Zach - did this get backported to 2.7 or 3.5? It doesn't look like it. |
Has this actually been backported to 3.6? It looks like a lot of Tcl and OpenSSL stuff is being compiled on AppVeyor yet: |
The prebuilt binaries have not, and the OpenSSL change has functional implications and should not be (unless someone wants to make the security justification, but right now I think it's a theoretical rather than an actual benefit). The TclTk build could be, but I haven't gone to the effort to split it up. There's also a separate issue for that part - this bug is for the location of sources. |
This change also broke compilation on AMD64 Windows10 2.7 buildbot: "D:\buildarea\2.7.bolen-windows10\build\PCbuild\pcbuild.proj" (Build target) (1) ->
|
I created the bug bpo-31430 to track this regression. |
This has been backported and working for nearly 3 months now; closing. As for whether to continue operating svn.python.org now that we're officially away from it: that can be determined elsewhere, probably by the box dying and deciding for us :) |
Noooo! I loved Subversion so much! ... just kidding. Thanks for getting rid of Subversion. It became much easier to build CPython on Windows nowadays! |
where
, it doesn't exist on XP #3330Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: