Hi Tymofii,
On 08/07/14 19:57, Tymofii Nikolaienko wrote:
Dear Kenneth,
In fact, my motivation for installing EqsyBuild on Cygwin is very
"prosaic": I'd like to have such quantum-chemical
software as NwChem and PSI4 compiled for Windows.
I've succeeded in doing so with GROMACS and some related tools and
with NwChem 6.1 with Gygwin with some
tricks/workaround. However, many efforts with compiling NwChem 6.3 and
PSI4 beta 5 in a variety of ways failed.
Lately, I noted that on a certain Linux machine it was also VERY
problematic to compile above mentioned versions of
NwChem and PSI4. But when I installed GCC 4.7.2 from EasyBuild's
packages everything gone fine! This story makes
me suspect that if I use some EasyBuild's package of GCC under Cygwin
I may also be succeeded.
I'd say that's a very good motivation to play around with EasyBuild in
Cygwin. Interesting!
NWChem is indeed quite painful to get to build. I don't remember PSI as
being particularly bad, but I tend to forget since EasyBuild handles the
nasty bits for us. ;-)
I think that it won't be a problem to try to play around with a
development setup of EasyBuild.
Unfortunately, I'm not very familiar with git/GitHub and Python
(regardless of the fact that recently one
of my friends has strongly advised me to get familiar with Python),
but I have some experience with Cygwin.
OK, let us know if you have any questions, and we will help you out
where we can.
A good way of getting more direct help is to hop in in our #easybuld IRC
channel on the Freenode network (see also
https://github.com/hpcugent/easybuild/wiki/Contact#irc).
Here is the log of cloning files from gitHub under Cygwin:
------------------------------------------------
*$ git clone [email protected]:hpcugent/easybuild-framework.git
*Cloning into 'easybuild-framework'...
The authenticity of host 'github.com (192.30.252.128)' can't be
established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.252.128' (RSA) to the
list of known hosts.
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
*$ git clone [email protected]:hpcugent/easybuild-framework.git
*Cloning into 'easybuild-framework'...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
This git clone is failing because you don't have a public SSH key
uploaded on GitHub (maybe you don't even have an account yet?).
If you want to actively contribute to EasyBuild, you'll need to set that
up and fork the EasyBuild framework repository (and maybe the others too).
*$ git clone https://github.com/hpcugent/easybuild-framework
*Cloning into 'easybuild-framework'...
remote: Reusing existing pack: 32648, done.
remote: Counting objects: 1032, done.
remote: Compressing objects: 100% (588/588), done.
remote: Total 33680 (delta 701), reused 649 (delta 430)
Receiving objects: 100% (33680/33680), 6.20 MiB | 465 KiB/s, done.
Resolving deltas: 100% (23696/23696), done.
----------------------------------------
Here is the next step:
---------------------------------------
*$ ls
*easybuild-framework go
*$ cat go
*#!/bin/bash
export PYTHONHOME=/usr/
export PYTHONPATH=/usr/lib/
cd easybuild-framework
python test/framework/systemtools.py
*$ ./go
*Traceback (most recent call last):
File "test/framework/systemtools.py", line 30, in <module>
from test.framework.utilities import EnhancedTestCase
ImportError: No module named test.framework.utilities
----------------------------------------
Then I followed this [
http://stackoverflow.com/questions/17976158/python-unable-to-import-module
] advice and modified
easybuild-framework\test\framework\systemtools.py by including
import sys
print "AAAAA"
sys.path.append("/cygdrive/k/cygwin/dev-tools/EasyBuild/Kenneth/easybuild-framework")
Actually, all you need to do is put easybuild-framework in your
$PYTHONPATH. In your case:
export
PYTHONPATH=/cygdrive/k/cygwin/dev-tools/EasyBuild/Kenneth/easybuild-framework:$PYTHONPATH
export
PATH=/cygdrive/k/cygwin/dev-tools/EasyBuild/Kenneth/easybuild-framework:$PATH
Then try to run "eb --version".
There's no need to edit the Python files then to get things to just run.
The sys.append is quite a 'dirty' hack (but basically also extends
$PYTHONPATH). ;-)
<snip>
File
"/cygdrive/k/cygwin/dev-tools/EasyBuild/Kenneth/easybuild-framework/easybuild/tools/systemtools.py",
line 296, in get_shared_lib_ext
"unknown system name: %s" % os_type)
*easybuild.tools.systemtools.SystemToolsException: Unable to determine
extention for shared libraries,unknown system name: CYGWIN_NT-5.1*
-------------------------------------
I tried resolving this by modifying
easybuild-framework\easybuild\tools\systemtools.py (backslash by
Windows tradition ;) ) by adding
-------------------------
# constants
AMD = 'AMD'
ARM = 'ARM'
INTEL = 'Intel'
LINUX = 'Linux'
DARWIN = 'Darwin'
CYG51NT = 'CYGWIN_NT-5.1' # <---------------
-------------------------
and
-------------------------
def get_shared_lib_ext():
"""Determine extention for shared libraries
Linux: 'so', Darwin: 'dylib'
"""
shared_lib_exts = {
LINUX: 'so',
DARWIN: 'dylib',
CYG51NT: 'dll'
}
-------------------------
This seems like a good start, yes. The final solution for this would
probably be a bit different, since I don't suspect the .dll depends on
the Cygwin version being used.
After this I got
...
----------------------------------------------------------------------
Ran 11 tests in 27.406s
FAILED (failures=2, errors=5)
-------------------------
But what do all these mean? What should I do next?...
It means most of the tests failed. ;-)
The EasyBuild framework and the tests simply aren't aware of Cygwin or
.ddl, so it's not surprising things go down like this. You'll just need
to take it step by step.
P.S. Would you please advise how to convert
\xd0\xba\xd0\xbe\xd0\xbc\xd0\xb0\xd0\xbd\xd0\xb4\xd0\xb0
\xd0\xbd\xd0\xb5
\xd0\xbd\xd0\xb0\xd0\xb9\xd0\xb4\xd0\xb5\xd0\xbd\xd0\xb0 - like
strings into a printable ones (perhaps, there are some problems due to
cyrryllic encoding on my system...)
I suspect this is due to your locale settings, yes. It looks like Python
is trying to print Unicode stuff, which is going horribly wrong.
You probably know better than myself how to deal with locale issues, I'm
pretty much clueless there...
Thank you for support!
Thank *you* for looking into this! :)
regards,
Kenneth