[cctbxbb] bootstrap.py on windows

R.D. Oeffner rdo20 at cam.ac.uk
Thu Apr 6 08:21:53 PDT 2017


 

Hi Horst, 

I encountered this error too and committed a fix half an hour ago to
cctbx_projectcbflib_adaptbxmsvc_includeunistd.h. If you git pull
cctbx_project and build with libtbx.scons again it should compile. 

Rob 

On 06/04/2017 15:54, Horst Puschmann wrote: 

> Hello Rob, 
> 
> This works fine -- Thank You! 
> 
> ... but then something goes wrong in the compilation: 
> 
> pycbf_wrap.c 
> c:cctbx_17basehdf5-1.8.16includeH5public.h(158) : error C2371: 'ssize_t' : 
> redefinition; different basic types 
> c:cctbx_17basebinpythonincludepyconfig.h(205) : see declaration of 
> 'ssize_t' 
> scons: *** [cbflibpycbfpycbf_wrap.obj] Error 2 
> scons: building terminated because of errors. 
> usr+sys time: 9.47 seconds 
> wall clock time: 4 minutes 22.11 seconds (262.11 seconds total) 
> Process failed with return code 2 
> 
> ;) 
> 
> Horst 
> 
> On 6 April 2017 at 14:37, R.D. Oeffner <rdo20 at cam.ac.uk> wrote:
> 
> Hi Horst, 
> 
> I just committed a fix to bootstrap.py to allow anonymous build. If you get it with: 
> 
> curl https://raw.githubusercontent.com/cctbx/cctbx_project/master/libtbx/auto_build/bootstrap.py [6] > bootstrap.py 
> 
> and then do the build with: 
> 
> C:Python27python.exe bootstrap.py --builder=cctbx 
> 
> this works for me. I did not encounter the RuntimeError you mentioned. 
> 
> Let me know if it doesn't work, 
> 
> Rob 
> 
> On 06/04/2017 12:28, Horst Puschmann wrote: 
> Hello Rob, 
> 
> Yes, this is the command I am using: 
> 
> C:Python27python.exe bootstrap.py --builder=cctbx 
> 
> Everything works fine (and I don't think it's too slow!) -- but that last call to python can not work, since it calls a directory: 
> 
> raise RuntimeError("Could not run %s: File not found" % executable) 
> RuntimeError: Could not run basebinpython: File not found 
> 
> if it called 
> 
> basebinpythonpython instead, it would work. 
> 
> Of course, I don't know what might not work after that step.... 
> 
> Horst 
> 
> On 6 April 2017 at 12:17, R.D. Oeffner <rdo20 at cam.ac.uk> wrote:
> 
> Hi Horst and Markus, 
> 
> Horst are you using a command line such as: 
> 
> C:Pythonpython.exe bootstrap.py --builder=cctbx 
> 
> I realise this is broken because I never tested rigorously for anonymous builds of CCTBX on Windows. Am in the process of fixing this. 
> 
> Markus you are correct that the roundabout way to get hot packages from CCI is because rsync does not exist on Windows. With Git installed on windows curl and a few other Unix tools do exist. This was a quick solution for making a Windows build Phenix, Dials and CCTBX where it has been running smoothly since August last year. The Robocopy calls for deleting files is a solution, albeit cumbersome for deleting very long file paths on Windows (>255 characters). Pythons shutil.rmtree() will fail in such cases. File deletion on Windows is always much slower than on UNIX by design. 
> 
> Making bootstrap.py and Buildbot work on Windows has been taken up a lot of work given that Buildbot seems to has been designed in denial of the existence of Windows and Microsoft until recently have been in denial of open source solutions. 
> 
> Rob 
> 
> On 06/04/2017 10:50, markus.gerstel at diamond.ac.uk wrote: 
> 
> Hi Horst, Rob
> 
> I had a brief look at the bootstrap script. If I understand it correctly only authenticated access is allowed at the moment due to the unique way the download archives are constructed.
> 
> I am not entirely sure why the sequence to download the 'hot' packages (I did not venture further into the bootstrap process) consists of
> * ssh'ing to CCI servers
> * creating a TAR archive
> * downloading said archive via SCP
> * unpacking the archive
> instead of going down the conventional route of
> * downloading the default TAR archive via HTTP (yes, they're called .gz because someone was lazy, but they are .tar.gz files)
> * unpacking the archive
> 
> I suspect that this is due to the absence of CURL on Windows machines combined with how the bootstrap script is intertwined with the buildbot testing system. Internally, the bootstrap script uses an "_add_curl" call to download files. When run within the buildbot testing system this presumably gets replaced by an actual call to the 'curl' program, which doesn't exist on Windows, and so would fail. However, when you run bootstrap.py directly _add_curl actually uses an internal downloading routine, which works.
> (If true, this would simply be one more example of why buildbot determining the layout of bootstrap is both limiting and dangerous. The solution for that of course would be to install CURL for Windows (and/or replace buildbot))
> 
> So I guess the two lines in add_module, https://github.com/cctbx/cctbx_project/blob/master/libtbx/auto_build/bootstrap.py#L1124 [1]
> if self.isPlatformWindows():
> tarurl, arxname, dirpath = MODULES.get_module(module)().get_tarauthenticated(auth=self.get_auth())
> could be removed along with all references to tarauthenticated?
> 
> As Horst already said there is more going wrong here. The ROBOCOPY calls are *incredibly* slow for something that could/should be done in pure python instead (shutil.rmtree?). The ssl 'workaround' uses internal methods, which are not available on older versions of Python.
> 
> The error at the end is presumably that the python interpreter is called python.exe on Windows?
> 
> -Markus
> 
> -----Original Message-----
> From: cctbxbb-bounces at phenix-online.org [mailto:cctbxbb-bounces at phenix-online.org] On Behalf Of R. D. Oeffner
> Sent: 06 April 2017 10:18
> To: horst.puschmann at gmail.com; cctbxbb at phenix-online.org
> Subject: Re: [cctbxbb] bootstrap.py on windows
> 
> Dear Horst,
> 
> I'll look into that. FYI you can also get Windows builds of CCTBX. See email below. You may have to resort using bundles from a few days ago because the two last nightly builds on windows are broken.
> 
> Rob
> 
> -----Original Message-----
> From: R. D. Oeffner
> Sent: Sunday, March 19, 2017 3:49 PM
> To: Billy Poon ; nwmoriarty at lbl.gov
> Subject: Re: Windows builds for cctbx
> 
> There should now be CCTBX builds for Windows in the most recent folders on http://cci.lbl.gov/cctbx_build [2] . They are just the sources and the build directory zipped into an archive and does not include an installation program like the graphical Phenix installer for Windows. Presumably people wanting to use only CCTBX are sufficiently computer savvy to cope with this.
> 
> Rob
> 
> --
> Robert Oeffner, Ph.D.
> Research Associate, The Read Group
> Department of Haematology,
> Cambridge Institute for Medical Research University of Cambridge Cambridge Biomedical Campus Wellcome Trust/MRC Building Hills Road Cambridge CB2 0XY
> 
> www.cimr.cam.ac.uk/investigators/read/index.html [3]
> tel: +44(0)1223 763234 [4]
> mobile: +44(0)7712 887162 [5]
> -----Original Message-----
> From: Horst Puschmann
> Sent: Thursday, April 6, 2017 9:59 AM
> To: cctbxbb at phenix-online.org
> Subject: [cctbxbb] bootstrap.py on windows
> 
> Hello
> 
> I am trying to install the cctbx on a Windows 7 64 bit machine using the 
> following bootstrap.py file:
> 
> https://raw.githubusercontent.com/cctbx/cctbx_project/master/libtbx/auto_build/bootstrap.py [6]
> 
> The script will fail, unless I comment out lines 1101 and 1102:
> 
> #if self.isPlatformWindows():
> #tarurl, arxname, dirpath = 
> MODULES.get_module(module)().get_tarauthenticated(auth=self.get_auth())
> 
> If it tries to execute the commented lines, the error will be "KeyError: 
> 'cciuser' in line 590"
> 
> After commenting this out, it will fail in line 271, with "AttributeError: 
> 'module' object has no attribute '_create_unverified_context'"
> 
> I can get round that with disabling line 247:
> 
> if sys.platform == "win32":
> 
> (i.e. change this to if sys.platform == "xxx":)
> 
> After that, things start downloading. All appears well until the same thing 
> happens again in another bootstrap.py file in 
> modulescctbx_projectlibtbxauto_buildbootstrap.py
> 
> If I disable *that*, it goes further but fails finally with
> 
> ===== Running in build: run configure.py
> Traceback (most recent call last):
> File "bootstrap.py", line 2113, in <module>
> run()
> File "bootstrap.py", line 2108, in run
> enable_shared=options.enable_shared,
> File "bootstrap.py", line 1036, in run
> i.run()
> File "bootstrap.py", line 189, in run
> raise RuntimeError("Could not run %s: File not found" % executable)
> RuntimeError: Could not run basebinpython: File not found
> 
> I guess the automatic tests haven't picked this up, because no 
> authentication is needed, maybe?
> 
> Greetings
> Horst
> 
> Virus-free. www.avg.com [7]
> 
> _______________________________________________
> cctbxbb mailing list
> cctbxbb at phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb [8] 
> 
> _______________________________________________
> cctbxbb mailing list
> cctbxbb at phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb [8]

 

Links:
------
[1]
https://github.com/cctbx/cctbx_project/blob/master/libtbx/auto_build/bootstrap.py#L1124
[2] http://cci.lbl.gov/cctbx_build
[3] http://www.cimr.cam.ac.uk/investigators/read/index.html
[4] tel:+44%201223%20763234
[5] tel:+44%207712%20887162
[6]
https://raw.githubusercontent.com/cctbx/cctbx_project/master/libtbx/auto_build/bootstrap.py
[7] http://www.avg.com
[8] http://phenix-online.org/mailman/listinfo/cctbxbb
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://phenix-online.org/pipermail/cctbxbb/attachments/20170406/36c31348/attachment.htm>


More information about the cctbxbb mailing list