http://bugs.winehq.org/show_bug.cgi?id=19912
Summary: gyp fails its test suite, can't build hello, world with Visual C++ 8's devenv.exe Product: Wine Version: 1.1.28 Platform: PC URL: http://code.google.com/p/gyp/wiki/GypTesting OS/Version: Linux Status: NEW Keywords: download Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
gyp is the makefile generator written for Chromium. (It's kind of like cmake, but is pure python.) It comes with a small test that makes sure it can build a working trivial C program using Visual C++. Sadly, this fails at the moment.
Here's what I tried:
$ cd ~/.wine/drive_c $ svn checkout http://gyp.googlecode.com/svn/trunk/ gyp-read-only $ wget http://winezeug.googlecode.com/svn/trunk/winetricks $ sh winetricks vc2005trial $ sh winetricks python $ wine cmd
cd \Program* cd Microsoft*8 cd Common7\Tools vsvars32.bat cd c:\gyp-read-only c:\python26\python gyptest.py test\hello\gyptest-all.py
This failed at first with File not found because Python wasn't on the path; worked around this with PATH C:\Python26;%PATH%
Rerunning
c:\python26\python gyptest.py test\hello\gyptest-all.py
then failed with something more interesting:
File "C:\gyp-read-only\pylib\gyp\generator\msvs.py", line 538, in _GenerateProject vcuser_filename = '.'.join([vcproj_filename, domain, username, 'user']) TypeError: sequence item 1: expected string, NoneType found
Looking at the code, here's what's failing:
domain = os.environ.get('USERDOMAIN') username = os.environ.get('USERNAME') if not domain or not username: call = subprocess.Popen(['net', 'config', 'Workstation'], stdout=subprocess.PIPE) config = call.communicate()[0] username_re = re.compile('^User name\s+(\S+)', re.MULTILINE) username_match = username_re.search(config) if username_match: username = username_match.group(1) domain_re = re.compile('^Logon domain\s+(\S+)', re.MULTILINE) domain_match = domain_re.search(config) if domain_match: domain = domain_match.group(1)
So I guess our "net" implementation is lacking. Worked around this with SET USERNAME=dank SET USERDOMAIN=kegel.com
That got a bit further:
python.exe test\hello\gyptest-all.py
produced lines like this (duplicate-ish lines removed):
fixme:ole:CoInitializeSecurity (0x33f948,-1,(nil),(nil),0,0,(nil),8,(nil)) - stub! err:ole:TLB_ReadTypeLib Loading of typelib L"C:\Programme\Microsoft Visual Studio 8\Common7\IDE\dte80a.olb" failed with error 2 err:ole:CoGetClassObject class {48443b3b-c1e3-449f-9988-4bfb510951d5} not registered err:ole:CoGetClassObject no class object {5a673b91-a6dc-431d-8758-a53aa4189057} could be created for context 0x17 err:ole:CoGetClassObject no class object {2a811bb2-303b-48b8-82c2-e029a22c3ef2} could be created for context 0x17 fixme:shell:URL_ParseUrl failed to parse L"Microsoft.VisualStudio.CommonIDE" ... err:ole:CoInitializeEx Attempt to change threading model of this apartment from apartment threaded to multi-threaded fixme:ole:CoGetCallerTID stub! fixme:advapi:LookupAccountNameW (null) L"lappy\dank" 0xa0adb58 0xa0adac4 0x8e5bf8 0xa0adabc 0xa0adcf8 - stub fixme:ntdll:NtCreateJobObject stub: 0xa0ae408 1f001f <null> fixme:ntdll:NtIsProcessInJob stub: (nil) 0xffffffff fixme:ntdll:NtAssignProcessToJobObject stub: 0xdead 0x378
and then just sat there.
(Kinda reminds me of http://bugs.winehq.org/show_bug.cgi?id=17096#c2 )