Thread 'Building BOINC on Windows 7 Ultimate 64 bits - "Software NOT Detected: Build Tools..."'

Message boards : BOINC Manager : Building BOINC on Windows 7 Ultimate 64 bits - "Software NOT Detected: Build Tools..."
Message board moderation

To post messages, you must log in.

1 · 2 · Next

AuthorMessage
Profilepatfla

Send message
Joined: 19 Sep 10
Posts: 25
United States
Message 34839 - Posted: 23 Sep 2010, 0:46:18 UTC

I've been running climateprediction.net in BOINC for several weeks. Thought I'd take a look at the code.

Used a windows svn to downloaded trunk (don't know what version that is) onto Windows and I have it in Visual Studio 2008.

I can build and successfully run 'simple' programs like boinccmd.exe.

However when I build boincmgr I get the following at the end of the build in Visual Studio:

.
.
.
Linking...
LINK : .\Build\Win32\Debug\boincmgr.exe not found or not built by the last incremental link; performing full link
Embedding manifest...
Checking boincmgr.exe dependencies
Initializing BOINC Build Environment for Windows
Software Platform Detected: Visual Studio 2008
Software NOT Detected: Build Tools...
Project : error PRJ0002 : Error result 2 returned from 'C:\Windows\SysWow64\cmd.exe'.


An EXE is produced, however when I try to run boingmgr I get:

d:\Projects\BOINC\src\win_build\Build\Win32\Debug>boincmgr
The application has failed to start because its side-by-side configuration is in
correct. Please see the application event log or use the command-line sxstrace.e
xe tool for more detail.

d:\Projects\BOINC\src\win_build\Build\Win32\Debug>


Side-by-side: after first trying, and failing, to build for 64 bits, I switched to 32 bit builds (on a 64 bit version of Windows 7).

And as I said this does build and run programs such as boinccmd, but not boincmgr.

Software NOT Detected: Build Tools...


Um, just what software tools is the message referring to.

I have the Windows SDK (7.1) installed. And it's working to the extent I can see which is that other boinc projects build and they run.
ID: 34839 · Report as offensive
ProfileJord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15561
Netherlands
Message 34841 - Posted: 23 Sep 2010, 1:44:36 UTC - in response to Message 34839.  

Just the SDK is not enough. You will have to download the boinc_depends_win_vs2008 as well, then go through the .vcproj files in \boinc source\win_build\ to exchange all mention of boinc_depends_win_vs2005 to boinc_depends_win_vs2008.

Problem is, Trac is still down. So you'll have to wait until it's back up if you didn't get those dependencies. Do check out http://boinc.berkeley.edu/trac/wiki/CompileClient when Trac is back up. It'll explain all the necessary steps in a lot more detail.
ID: 34841 · Report as offensive
Profilepatfla

Send message
Joined: 19 Sep 10
Posts: 25
United States
Message 34844 - Posted: 23 Sep 2010, 2:18:31 UTC - in response to Message 34841.  
Last modified: 23 Sep 2010, 2:19:31 UTC

Thanx Jord. I'd downloaded boinc_depends_win_vs2005. Since I'm using vs2008, I should have guessed that there would be a boinc_depends_win_vs2008.

Opened up boincmgr.vcproj with an editor. OK, I see what needs to be done.

When Trac is back up that is.
ID: 34844 · Report as offensive
Profilepatfla

Send message
Joined: 19 Sep 10
Posts: 25
United States
Message 34845 - Posted: 23 Sep 2010, 3:51:54 UTC - in response to Message 34844.  

Trac is back up and so I use svn to download boinc_depends_win_vs2008

This time the vs2008 build finished successfully.

Try to run and get a side-by-side error again. Use sxstrace. It seems something, in my vs2008 build, needs the vc runtime from vs 2005.

ERROR: Cannot resolve reference Microsoft.VC80.DebugCRT,
processorArchitecture="x86",
publicKeyToken="1fc8b3b9a1e18e3b",
type="win32",version="8.0.50727.4053".


(damn - I hate this sort of thing).

Download the vs2005 runtime from MS and installs it. Run boincmgr again and it still fails with a side-by-side error. Why's that?

It seems that 4053 at the end of the vs2005 runtime version number above is some later, patched version and it doesn't correspond to the default vc2005 runtime that I downloaded from MS.

So where is this reference coming from? I don't have vc2005 installed. Did it come from the DLLs copied by updatedepends.cmd (which should, in principle, be vc2008)?
ID: 34845 · Report as offensive
ProfileJord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15561
Netherlands
Message 34850 - Posted: 23 Sep 2010, 12:01:23 UTC - in response to Message 34845.  

Are you building with full VS2008, or the express edition?
Which directory are you running from? If you built a 32bit version only (and the express edition is only allowed to build 32bit, it can't build 64bit), the BOINC Manager part in the least needs to run from anywhere else than c:\program files\boinc\

This is because that's a Windows registered 64bit only programs directory. 32bit programs need to start from c:\program file(x86)\ or completely elsewhere.

Since you built with VS2008, you will also need the Microsoft.VC90.CRT.manifest and msvc*90.dll files in this directory, as well as sqlite3.dll.

sqlite3.dll can be found at \BOINCSource\boinc_depends_win_vs2008\sqlite3\mswin\Win32\Release\bin\
msvc*90.dll can be found at C:\Windows\winsxs\ (do a search).
The manifest file can also be found in C:\Windows\winsxs\ (albeit possibly differently named; do a search for vc90.crt (just that) in the winsxs folder).
ID: 34850 · Report as offensive
Profilepatfla

Send message
Joined: 19 Sep 10
Posts: 25
United States
Message 34868 - Posted: 23 Sep 2010, 18:40:47 UTC - in response to Message 34850.  
Last modified: 23 Sep 2010, 18:51:04 UTC

The error message, again, from sxstrace was:

S:\>grep -i error test.txt
        ERROR: Cannot resolve reference Microsoft.VC80.DebugCRT,processorArchite
cture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.40
53".
ERROR: Activation Context generation failed.

S:\>


You'll note that it says that it can't find the DEBUG version of msvcrt.dll for vs2005. So on a hunch I changed the project config and rebuilt for Release.

This runs - no side-by-side error. Sometime later (when I need to) I'll back up and figure out why the Debug build fails in the way it does. Besides having a working Release build must shed some light on why the Debug build doesn't run.

Next error (which I've already spent some time researching of course):

You currently are not authorized to manage the client.
Please contact your administrator to add you to the 'boinc_users'
local user group.


OK. Computer | Manage | Local Users and Groups: add the id I login under to boinc_users. Logout and back in. Doesn't work. Reboot. Doesn't work.

Obviously something to do with BOINC's authorization subsystem which I'm not yet familiar with.

Now that I have a working build of some kind I can see that it's version 6.11.7 whereas the boincmgr from the pre-built boinc client that I downloaded a while ago (and have been using to run CPDN) is 6.10.58. Which makes sense.
ID: 34868 · Report as offensive
ProfileJord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15561
Netherlands
Message 34870 - Posted: 23 Sep 2010, 19:53:14 UTC - in response to Message 34868.  

Now that I have a working build of some kind I can see that it's version 6.11.7 whereas the boincmgr from the pre-built boinc client that I downloaded a while ago (and have been using to run CPDN) is 6.10.58. Which makes sense.

You can change the version number in version.h in the BOINC Source root directory.

As for your permission error... did you overwrite your installed BOINC with this version? And if you did, was your client installed as a service? If so, that could be why you get that message.

Try running your own built BOINC from its own directory. Do make sure no other BOINC is at that time running, of course.

Debug BOINC.. I always had the strangest of errors with building debug. I can't help you there. If you want to get to the bottom of that, please contact Rom Walton through the BOINC Development email list (requires registration).
ID: 34870 · Report as offensive
Profilepatfla

Send message
Joined: 19 Sep 10
Posts: 25
United States
Message 34873 - Posted: 23 Sep 2010, 20:47:43 UTC - in response to Message 34870.  

As for your permission error... did you overwrite your installed BOINC with this version? And if you did, was your client installed as a service? If so, that could be why you get that message.


Up till now, I've been trying to keep production and development separate, so no I haven't put my newly built images into the production location. The production client is a service which I start and stop simply with:

net stop BOINC
net start BOINC

Try running your own built BOINC from its own directory. Do make sure no other BOINC is at that time running, of course.


Built a devel boinc.exe and it runs without problem. However it doesn't see my production CPDN tasks. Production images are in one location while production data (e.g. client_state.xml) is under c:\programdata\BOINC.

I'd like to see my production tasks registered and running in the devel version of boinc (both boinc.exe and boincmgr.exe) that I've built.

Hmm. How - or can I - temporarily point my devel boinc image installation (6.11.7) against the production data location (produced by 6.10.58)?
ID: 34873 · Report as offensive
ProfileJord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15561
Netherlands
Message 34874 - Posted: 23 Sep 2010, 21:08:03 UTC - in response to Message 34873.  

Up till now, I've been trying to keep production and development separate, so no I haven't put my newly built images into the production location. The production client is a service which I start and stop simply with:

net stop BOINC
net start BOINC

Yeah, well, I just think about something. No matter what BOINC you have on your system, it'll check the registry for paths and how it's installed. When you have a BOINC installed as a service and you start another BOINC client by hand, it'll come across the mention of BOINC being installed as a service in the registry and try to match it against that installed version... and fail.

The only way I know around that is to do a complete clean out and only use the test version or to use the test version on a system which hasn't had BOINC installed. Or install a second Windows on the same system and change to that for testing.

Hmm. How - or can I - temporarily point my devel boinc image installation (6.11.7) against the production data location (produced by 6.10.58)?

It should pick this up automatically, as HKEY_LOCAL_MACHINE\SOFTWARE\Space Sciences Laboratory, U.C. Berkeley\BOINC Setup will tell it where the data directory is. What do the messages show?
ID: 34874 · Report as offensive
Profilepatfla

Send message
Joined: 19 Sep 10
Posts: 25
United States
Message 34875 - Posted: 23 Sep 2010, 23:03:53 UTC - in response to Message 34874.  


It should pick this up automatically, as HKEY_LOCAL_MACHINE\SOFTWARE\Space Sciences Laboratory, U.C. Berkeley\BOINC Setup will tell it where the data directory is. What do the messages show?


As best I can tell, my devel version of boinc puts its registry information in HKCU (Current User) - not HKLM.

http://img710.imageshack.us/img710/4213/boincmgrdevelhkcu.jpg

And judging by the key names I see in the two locations, how BOINC stores its registry information may have changed between 6.10.58 and 6.11.7.
ID: 34875 · Report as offensive
ProfileJord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15561
Netherlands
Message 34877 - Posted: 23 Sep 2010, 23:13:04 UTC - in response to Message 34875.  

No, BOINC Manager's information is at HKCU. When you install BOINC though, it'll put the information about what installation you have (service or not), what the program directory is, what the data directory is etc. in HKLMHKCU\Software\Space Sciences Laboratory, U.C. Berkeley\BOINC Setup\

Any BOINC you run after that will check this registry location.
Starting BOINC Manager, it'll read its information (where to place what in the GUI, which language to use, how big the GUI was when you last opened it, in what position on teh screen etc.) from HKCU\Software\Space Sciences Laboratory, U.C. Berkeley\BOINC Manager\

The screen saver will use HKCU\Software\Space Sciences Laboratory, U.C. Berkeley\BOINC Screensaver\
ID: 34877 · Report as offensive
Profilepatfla

Send message
Joined: 19 Sep 10
Posts: 25
United States
Message 34881 - Posted: 24 Sep 2010, 4:10:09 UTC - in response to Message 34877.  

So how does one build boinc.dll? I don't see a project for it in boinc.sln.

There is a separate .vcproj file named ptp_boinc_dll but when I bring it up in VS 2008, its source file references don't resolve. (and what's the 'ptp' about?).

Have looked around http://boinc.berkeley.edu/trac/wiki/ProjectMain but if there instructions there for boinc.dll, I haven't found them.
ID: 34881 · Report as offensive
ProfileGundolf Jahn

Send message
Joined: 20 Dec 07
Posts: 1069
Germany
Message 34884 - Posted: 24 Sep 2010, 8:21:24 UTC - in response to Message 34881.  

I guess ptp stands for "Progress Thru Processors" (a facebook application).

Gruß,
Gundolf
ID: 34884 · Report as offensive
ProfileJord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15561
Netherlands
Message 34885 - Posted: 24 Sep 2010, 9:23:10 UTC - in response to Message 34881.  

So how does one build boinc.dll? I don't see a project for it in boinc.sln.

BOINC 6.10 and 6.11 (which trunk is) no longer use Boinc.dll
ID: 34885 · Report as offensive
Profilepatfla

Send message
Joined: 19 Sep 10
Posts: 25
United States
Message 34890 - Posted: 24 Sep 2010, 15:50:31 UTC - in response to Message 34884.  

I guess ptp stands for "Progress Thru Processors" (a facebook application).

Gruß,
Gundolf


If the ptp projects are no longer in boinc.sln, what does that say about their current usage?
ID: 34890 · Report as offensive
Profilepatfla

Send message
Joined: 19 Sep 10
Posts: 25
United States
Message 34891 - Posted: 24 Sep 2010, 15:53:15 UTC - in response to Message 34885.  
Last modified: 24 Sep 2010, 15:54:04 UTC

So how does one build boinc.dll? I don't see a project for it in boinc.sln.

BOINC 6.10 and 6.11 (which trunk is) no longer use Boinc.dll


The production BOINC that I have installed running CPDN (climateprediction.net) does use boinc.dll and is version 6.10.58. So maybe 6.10 switched away from the dll at some later minor revision?

My question really is what minimal subset of the new (6.11.7) boinc programs do I need to make and deploy to the old production location to have a working install?
ID: 34891 · Report as offensive
ProfileJord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15561
Netherlands
Message 34893 - Posted: 24 Sep 2010, 16:11:10 UTC - in response to Message 34891.  

OK, Then it's BOINC 6.11 and above that no longer require boinc.dll :-)

Minimum needed, from memory:
boinc.exe
boincmgr.exe
boinccmd.exe
(boincscr.exe if you want to test the screen saver)
boinctray.exe (idle detection program)
ca-bundle.crt (even though it's outdated)
COPYING
COPYRIGHT
dbghelp.dll
dbghelp95.dll
Helvetica.txf (font needed for screen saver)
libcurl.dll
libeay32.dll
Microsoft.VC80.CRT.manifest (when built with VS2005)
Microsoft.VC80.DebugCRT.manifest (when using a debug version)
Microsoft.VC90.CRT.manifest (when built with VS2008)
Microsoft.VC90.DebugCRT.manifest (when using a debug version)
msvcm80.dll (vs2005); msvcm80d.dll when debug
msvcm90.dll (vs2008); msvcm90d.dll when debug
msvcp80.dll; msvcp80d.dll
msvcp90.dll; msvcp90d.dll
msvcr80.dll; msvcr80d.dll
msvcr90.dll; msvcr90d.dll
sqlite3.dll
scrsrv.dll
ssleay32.dll
symsrv.dll
symsrv.yes
zlib1.dll (zlib one)
ID: 34893 · Report as offensive
Profilepatfla

Send message
Joined: 19 Sep 10
Posts: 25
United States
Message 34899 - Posted: 24 Sep 2010, 19:23:38 UTC - in response to Message 34893.  

Maybe I’m not supposed to be doing this, but it seems to me a natural thing that a developer would want to do. So I tried it.

Copied all the new 6.11.7 image files above to a parallel directory and then suspended the 6.10.58 CPDN project and killed its processes. Renamed the two BOINC directory names so that the registry is now pointed to 6.11.7.

Run the new boinc (6.11.7) from the command line - ok that sort of works but it’s not attached to a project. Run bonicmgr – it has various sevice-related problems. I’ve killed the 6.10.58 service process but the service is still registered.

Sc delete boinc

Reboot and start over. This time boinc.exe and boincmgr.exe 6.11.7 seem to talk with other (inter-process communication that is) without apparent problem.

How do I add my existing CPDN project? The only thing I can find is the Add Project/Account wizard and I use that. At one point, it asks “are you an existing project member”? Yes, (maybe that will get it to use my existing data installation?).

Which appears to work except that a new project is created and new tasks allocated and they start to download. Into the same directory, d:\programdata\boinc where the old stuff is also located (but that’s OK because I backed up the folder before beginning this process). Suspend and then Remove the new project.

Maybe there are problems associated with doing so, but what would be nice is if in boincmgr one had “attach to existing project and data”.

Let me guess: there are fundamental differences in the bonic architecture (or something else high-level with wide significance) such that you can’t map a new version of the boinc images onto a data installation that corresponds to an older version of boinc? Even though, in principle, boinc and the projects it runs should be 'relatively' decoupled.
ID: 34899 · Report as offensive
Les Bayliss
Help desk expert

Send message
Joined: 25 Nov 05
Posts: 1654
Australia
Message 34901 - Posted: 24 Sep 2010, 19:47:46 UTC - in response to Message 34899.  

Copy ALL of the data folders to the new location BEFORE installing/running the new version.

ID: 34901 · Report as offensive
Profilepatfla

Send message
Joined: 19 Sep 10
Posts: 25
United States
Message 34902 - Posted: 24 Sep 2010, 20:01:29 UTC - in response to Message 34901.  

Copy ALL of the data folders to the new location BEFORE installing/running the new version.



All the data was in place before running the new version.
ID: 34902 · Report as offensive
1 · 2 · Next

Message boards : BOINC Manager : Building BOINC on Windows 7 Ultimate 64 bits - "Software NOT Detected: Build Tools..."

Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.