Message boards : BOINC Manager : Building BOINC on Windows 7 Ultimate 64 bits - "Software NOT Detected: Build Tools..."
Message board moderation
Author | Message |
---|---|
Send message Joined: 19 Sep 10 Posts: 25 |
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. |
Send message Joined: 29 Aug 05 Posts: 15561 |
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. |
Send message Joined: 19 Sep 10 Posts: 25 |
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. |
Send message Joined: 19 Sep 10 Posts: 25 |
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)? |
Send message Joined: 29 Aug 05 Posts: 15561 |
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). |
Send message Joined: 19 Sep 10 Posts: 25 |
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. |
Send message Joined: 29 Aug 05 Posts: 15561 |
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). |
Send message Joined: 19 Sep 10 Posts: 25 |
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)? |
Send message Joined: 29 Aug 05 Posts: 15561 |
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: 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? |
Send message Joined: 19 Sep 10 Posts: 25 |
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. |
Send message Joined: 29 Aug 05 Posts: 15561 |
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\ |
Send message Joined: 19 Sep 10 Posts: 25 |
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. |
Send message Joined: 20 Dec 07 Posts: 1069 |
I guess ptp stands for "Progress Thru Processors" (a facebook application). Gruß, Gundolf |
Send message Joined: 29 Aug 05 Posts: 15561 |
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 |
Send message Joined: 19 Sep 10 Posts: 25 |
I guess ptp stands for "Progress Thru Processors" (a facebook application). If the ptp projects are no longer in boinc.sln, what does that say about their current usage? |
Send message Joined: 19 Sep 10 Posts: 25 |
So how does one build boinc.dll? I don't see a project for it in boinc.sln. 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? |
Send message Joined: 29 Aug 05 Posts: 15561 |
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) |
Send message Joined: 19 Sep 10 Posts: 25 |
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. |
Send message Joined: 25 Nov 05 Posts: 1654 |
Copy ALL of the data folders to the new location BEFORE installing/running the new version. |
Send message Joined: 19 Sep 10 Posts: 25 |
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. |
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.