Message boards :
Number crunching :
Compiling my own client
Message board moderation
Author | Message |
---|---|
CXI Send message Joined: 23 Apr 99 Posts: 30 Credit: 270,498 RAC: 0 |
I would like to compile the client to run on my FreeBSD servers. However, the web site links are rather circular. When I eventually found a link to the source code directory, there isn't a version there that matches the release version of the client! There are old archived versions and nightly snapshots. Where is the the current release set? Also, the "download and build yourself" page links back to the main boinc page and indicates that you can download clients for all kinds of platforms there. However, I can't find any of these clients to download. Last, the client code that I can find seems to be the code for the main Boinc client itself. Is the source for SAH even available? If so, what is the URL? Thank you. |
AthlonRob Send message Joined: 18 May 99 Posts: 378 Credit: 7,041 RAC: 0 |
I don't know if anybody has tried compiling boinc/s@h for FreeBSD yet or not. PLEASE report back on your progress with it. :-) Don't worry about version numbers, just download the latest nightly source tarball or grab it from CVS. CVS *should* always compile (although it does break sometimes, they usually fix it pretty quickly). You've found the nightly boinc tarballs, the nightly SETI@Home tarballs are here: http://boinc.berkeley.edu/seti_source/nightly/ Instructions on how to compile boinc and SETI@Home for your system can be had here: http://boinc.berkeley.edu/anonymous_platform.php Basically, build the binaries, attach to the project, stop it before it downloads anything, and put the app_info.xml file in place. From then on out it should work... hopefully. I do have access to a FreeBSD box I can test on, so let me know if you run in to any problems. Rob |
Gerard Send message Joined: 4 Feb 00 Posts: 3 Credit: 6,761,722 RAC: 2 |
> Don't worry about version numbers, just download the latest nightly source > tarball or grab it from CVS. CVS *should* always compile (although it does > break sometimes, they usually fix it pretty quickly). I've personally tried four versions of the CVS code on OS X and none of them have compiled. I meet the few prerequisites stated. > > You've found the nightly boinc tarballs, the nightly SETI@Home tarballs are > here: > http://boinc.berkeley.edu/seti_source/nightly/ > > Instructions on how to compile boinc and SETI@Home for your system can be had > here: > http://boinc.berkeley.edu/anonymous_platform.php While I was having the same trouble locating the source, and I thank you for the links, the problem remains that the links to the source code are all circular, never getting to a page with the source code. > > Basically, build the binaries, attach to the project, stop it before it > downloads anything, and put the app_info.xml file in place. From then on out > it should work... hopefully. > Easier said than done. Ex: the directions for Mac OS X: cd /seti_boinc/client; make That's nice. There's no makefile in that directory. make in ".." from there fails almost immediately. ./configure in the appropriate location spews volumes of warnings. In all I've found all of 5 lines of build information, which in my tests don't work. Perhaps they should just hide any reference to build-it-yourself until they get the code and web links in order. |
AthlonRob Send message Joined: 18 May 99 Posts: 378 Credit: 7,041 RAC: 0 |
> I've personally tried four versions of the CVS code on OS X and none of them > have compiled. I meet the few prerequisites stated. What error messages are you receiving? > While I was having the same trouble locating the source, and I thank you for > the links, the problem remains that the links to the source code are all > circular, never getting to a page with the source code. Depends on where you're looking... if you want the boinc source code, boinc.berkeley.edu > community has a lot of information on it. If you're looking for S@H or AP code, start from http://setiboinc.ssl.berkeley.edu/ap/ (the beta site) and read the first paragraph. :-) Just to be sure, you *were* able to get the code, right? > Easier said than done. Ex: the directions for Mac OS X: cd /seti_boinc/client; > make > That's nice. There's no makefile in that directory. make in ".." from there > fails almost immediately. > ./configure in the appropriate location spews volumes of warnings. Those directions need work. If nobody else does it first, I'll send in a patch in hopes they are fixed. :-) What kind of warnings are you getting? To fill in a few blanks: - You must build boinc before you build any applications for it - There must be a ../boinc/ directory in relation to the seti_boinc directory - Always run './configure' before you run 'make' > In all I've found all of 5 lines of build information, which in my tests don't > work. Perhaps they should just hide any reference to build-it-yourself until > they get the code and web links in order. The code is in order, the links are in order. I've been building boinc and seti for several months now... I even have written scripts to automatically download the latest tarballs of each, compile them, and install them in my users's boinc directory. I'd distribute the scripts, but they need a lot of rewriting to take advantage of the anonymous CVS server and multiple platforms. Rob |
CXI Send message Joined: 23 Apr 99 Posts: 30 Credit: 270,498 RAC: 0 |
Well, good news and bad news. I have both the main client and the seti client compiled. It took a good bit of work to do so, installing mysql server for example, which seems a little overkill in order to compile the client. Also, I needed the auto* utilities to run configure, which must be done in order to generate the make files. Last, configure chose my home directory instead of the source directory for the include root path, so I had to edit the make files. After that, it ran but now I'm getting: "Unrecoverable error for result 11se03aa.2459.4976.572166.231_1 (process exited with code 2 (0x2))" Oh well, so close yet so far. Maybe a clean rebuild of the seti client will help, considering all the mucking around I did to get it to work. |
AthlonRob Send message Joined: 18 May 99 Posts: 378 Credit: 7,041 RAC: 0 |
> Well, good news and bad news. I have both the main client and the seti client > compiled. It took a good bit of work to do so, installing mysql server for > example, which seems a little overkill in order to compile the client. Also, I > needed the auto* utilities to run configure, which must be done in order to > generate the make files. Last, configure chose my home directory instead of > the source directory for the include root path, so I had to edit the make > files. After that, it ran but now I'm getting: > > "Unrecoverable error for result 11se03aa.2459.4976.572166.231_1 (process > exited with code 2 (0x2))" > > Oh well, so close yet so far. Maybe a clean rebuild of the seti client will > help, considering all the mucking around I did to get it to work. Under your home directory, do you have boinc/ and a seti_boinc/ directories? Here's essentially how I do this: mkdir bbuild cd bbuild tar -xvzf ../boinc-cvs-blah.tar.gz tar -xvzf ../seti_boinc-cvs-blah.tar.gz cd boinc ./configure && make cd ../seti-boinc ./configure && make ...then put the resulting binaries in place. Rob |
Darren Send message Joined: 2 Jul 99 Posts: 259 Credit: 280,503 RAC: 0 |
Anyone have any suggestions on how to get past this: (cd client; make all) make[1]: Entering directory `/home/darren/boinccompile/seti_boinc/client' g++ -g -O2 -DHAVE_CONFIG_H -DTEXT_UI -DNDEBUG -DCLIENT -I.. -I../db -I/home/darren/boinccompile/boinc/api -I/home/darren/boinccompile/boinc/lib -I/home/darren/boinccompile/boinc/image_libs/ -M *.cpp > dependencies make[1]: Leaving directory `/home/darren/boinccompile/seti_boinc/client' make[1]: Entering directory `/home/darren/boinccompile/seti_boinc/client' g++ -g -O2 -DHAVE_CONFIG_H -DTEXT_UI -DNDEBUG -DCLIENT -I/home/darren/boinccompile/boinc/api -I/home/darren/boinccompile/boinc/lib -I/home/darren/boinccompile/boinc/image_libs/ -I.. -I../db -c -o analyzeReport.o analyzeReport.cpp analyzeReport.cpp: In function `int ReportPulseEvent(float, float, float, int, int, float, float, float*, int)': analyzeReport.cpp:343: error: `assert' undeclared (first use this function) analyzeReport.cpp:343: error: (Each undeclared identifier is reported only once for each function it appears in.) make[1]: *** [analyzeReport.o] Error 1 make[1]: Leaving directory `/home/darren/boinccompile/seti_boinc/client' make: *** [all] Error 2 I can configure and make boinc with no problems. I can configure seti, but the make always ends like this. With my little knowledge of linux, this message does nothing for pointing me to what the problem may be. |
CXI Send message Joined: 23 Apr 99 Posts: 30 Credit: 270,498 RAC: 0 |
> Here's essentially how I do this: > > mkdir bbuild > cd bbuild > tar -xvzf ../boinc-cvs-blah.tar.gz > tar -xvzf ../seti_boinc-cvs-blah.tar.gz > cd boinc > ./configure && make > cd ../seti-boinc > ./configure && make Thanks, I didn't realize, due to the browser cutting off the end of all the file names, that there were zip's AND gzip's in the source directories. The above sequence does indeed work on FreeBSD, assuming I have autoconf, automake, gmake and mysql server installed. Along these line, you pretty much need to meet the requirements for a project server to compile the client, ie everything. Also, while 'regular' make works fine for the Boinc client, the seti application only compiles with gmake due to the dependencies line in the make file. > ...then put the resulting binaries in place. You know, I guess I should have known this, but nowhere does it really say to put the seti binary into the project directory along with the app_info.xml. Well, that kind of is important. :) Anyway, it's computing a work unit right now. Of course, it going to take ages to finish on the old machine, but it works! One small thing, it thinks it's version 0.38 instead of 3.80. |
shaun Send message Joined: 7 Apr 99 Posts: 3 Credit: 62,396 RAC: 0 |
> I don't know if anybody has tried compiling boinc/s@h for FreeBSD yet or not. > PLEASE report back on your progress with it. :-) > > Don't worry about version numbers, just download the latest nightly source > tarball or grab it from CVS. CVS *should* always compile (although it does > break sometimes, they usually fix it pretty quickly). > > You've found the nightly boinc tarballs, the nightly SETI@Home tarballs are > here: > http://boinc.berkeley.edu/seti_source/nightly/ > > Instructions on how to compile boinc and SETI@Home for your system can be had > here: > http://boinc.berkeley.edu/anonymous_platform.php > > Basically, build the binaries, attach to the project, stop it before it > downloads anything, and put the app_info.xml file in place. From then on out > it should work... hopefully. > > I do have access to a FreeBSD box I can test on, so let me know if you run in > to any problems. This is my experience: 532 mkdir boinc 533 rm -rf seti_boinc/ #cleaning up from previous attempts 534 mv boinc-cvs-2004-06-23.tar.gz seti_boinc-client-cvs-2004-06-24.zip bionc 535 mv boinc-cvs-2004-06-23.tar.gz seti_boinc-client-cvs-2004-06-24.zip boinc 536 cd boinc 537 ls 538 tar zxvf boinc-cvs-2004-06-23.tar.gz 539 unzip seti_boinc-client-cvs-2004-06-24.zip 540 cd boinc 541 cd .. 542 ls 543 cd boinc 544 ./configure 545 make #compiled fine 546 make install 547 sudo make install #this installed 548 ls 549 cd client 550 ls 551 ./boinc_3.19_i386-unknown-freebsd5.2 #runs 552 ls 553 cd .. 554 ls 555 pwd 556 ls 557 cd .. 558 ls 559 cd seti_boinc 560 ls 561 d setiathome.pbproj/ #typo 562 cd setiathome.pbproj/ #just looking around 563 ls 564 cd .. 565 ls 566 ./configure #works 567 make #fails with the following shaun@sagan:seti_boinc$ make (cd client; make all) "Makefile", line 132: Could not find dependencies make: fatal errors encountered -- cannot continue *** Error code 1 Stop in /usr/home/shaun/boinc/seti_boinc 568 pwd 569 ls -d ../*boinc* #just to show relative paths shaun@sagan:seti_boinc$ ls -d ../*boinc* ../boinc/ ../boinc-cvs-2004-06-23.tar.gz ../seti_boinc/ ../seti_boinc-client-cvs-2004-06-24.zip So boinc compiles and runs, but seti_boinc does not compile. I am happy to test whatever and the developers are welcome to have an account on this freebsd current box to test on. I can also test on freebsd stable and several releases. Later ... just tried compiling seti_boinc with gmake, which fails with: g++ -g -O2 -DHAVE_CONFIG_H -DTEXT_UI -DNDEBUG -DCLIENT -I/home/shaun/boinc/boinc/api -I/home/shaun/boinc/boinc/lib -I/home/shaun/boinc/boinc/image_libs/ -I.. -I../db -c -o analyzeFuncs.o analyzeFuncs.cpp g++ -g -O2 -DHAVE_CONFIG_H -DTEXT_UI -DNDEBUG -DCLIENT -I/home/shaun/boinc/boinc/api -I/home/shaun/boinc/boinc/lib -I/home/shaun/boinc/boinc/image_libs/ -I.. -I../db -c -o analyzeReport.o analyzeReport.cpp analyzeReport.cpp: In function `int ReportPulseEvent(float, float, float, int, int, float, float, float*, int)': analyzeReport.cpp:343: error: `assert' undeclared (first use this function) analyzeReport.cpp:343: error: (Each undeclared identifier is reported only once for each function it appears in.) gmake[1]: *** [analyzeReport.o] Error 1 gmake[1]: Leaving directory `/usr/home/shaun/boinc/seti_boinc/client' gmake: *** [all] Error 2 thanks |
AthlonRob Send message Joined: 18 May 99 Posts: 378 Credit: 7,041 RAC: 0 |
> Anyone have any suggestions on how to get past this: > analyzeReport.cpp:343: error: `assert' undeclared (first use this function) > analyzeReport.cpp:343: error: (Each undeclared identifier is reported only > once for each function it appears in.) > make[1]: *** [analyzeReport.o] Error 1 > make[1]: Leaving directory `/home/darren/boinccompile/seti_boinc/client' > make: *** [all] Error 2 [EDIT: Removed bad info, inserted better info] Add #include #include ...to the top of every .cpp file that errors out with the ASSERT error. It may be redundant, but something is amiss. What distribution are you using, what glibc verison are you using, and what gcc version have you got? Rob |
AthlonRob Send message Joined: 18 May 99 Posts: 378 Credit: 7,041 RAC: 0 |
> Thanks, I didn't realize, due to the browser cutting off the end of all the > file names, that there were zip's AND gzip's in the source directories. The > above sequence does indeed work on FreeBSD, assuming I have autoconf, > automake, gmake and mysql server installed. Along these line, you pretty much > need to meet the requirements for a project server to compile the client, ie > everything. Also, while 'regular' make works fine for the Boinc client, the > seti application only compiles with gmake due to the dependencies line in the > make file. You do need to meet all the server requirements to build the client... unfortunately. Somebody with some autoconf skills is more than welcome to modify the necessary files and send in patches to produce an option that allows just the building of the client if they have the time and talent. :-) All of seti and boinc is built around utilizing either MSVC++ for Win32 and the GNU building utilities for *nix, so yup... you'll need gmake instead of whatever FreeBSD uses. You should gnu-ize your FreeBSD box anyway... life's happier with GNU utilities. :-) > You know, I guess I should have known this, but nowhere does it really say to > put the seti binary into the project directory along with the app_info.xml. > Well, that kind of is important. :) Yeah, somebody needs to rewrite those instructions and send new ones in... it's near the bottom of my todo list... here, anyway. > Anyway, it's computing a work unit right now. Of course, it going to take ages > to finish on the old machine, but it works! One small thing, it thinks it's > version 0.38 instead of 3.80. 0.38? Or 308? It should saay 308, I think... Rob |
Darren Send message Joined: 2 Jul 99 Posts: 259 Credit: 280,503 RAC: 0 |
> Try removing any mention of analyzeReport from the Makefile in the client > directory and see if that solves the problem. IIRC, we don't need to compile > analyzeReport, it's for the server side of things. Rob, That got me past analyzeReport altogether, but now I'm getting an "assert undeclared" message in lcgamm.cpp lcgamm.cpp: In function `float lcgf(float, float)': lcgamm.cpp:61: error: `assert' undeclared (first use this function) lcgamm.cpp:61: error: (Each undeclared identifier is reported only once for each function it appears in.) lcgamm.cpp: In function `float invert_lcgf(float, float, float)': lcgamm.cpp:99: error: `assert' undeclared (first use this function) make[1]: *** [lcgamm.o] Error 1 make[1]: Leaving directory `/home/darren/boinccompile/seti_boinc/client' make: *** [all] Error 2 Since I don't know what's what (and what's necessary and what isn't), I also tried removing the makefile reference to lcgamm, just to see what that would do. After that I got all the way to working with the analyzeFuncs.cpp then started getting many "undefined reference" messages and it finally died a bit later. Just in case it's of any use, here's the output at the time the "undefined reference" messages started appearing. If it won't help, just disregard everything past this paragraph. Any more advice would be greatly appreciated. Thanks. Darren EDIT: unnecessary crap I included deleted for space. |
AthlonRob Send message Joined: 18 May 99 Posts: 378 Credit: 7,041 RAC: 0 |
> > > Try removing any mention of analyzeReport from the Makefile in the > client > > directory and see if that solves the problem. IIRC, we don't need to > compile > > analyzeReport, it's for the server side of things. > > Rob, > > That got me past analyzeReport altogether, but now I'm getting an "assert > undeclared" message in lcgamm.cpp I edited my post when I found out you can't just cut analyzeReport out. Unfortunately, this seems to be a come-and-go kind of compile bug. :-( What versions of gcc and glibc have you got there on your system? Anyway, if you re-read my post (now that I edited it.. ), there are two #include lines to add to the top of a few .cpp files that should solve all your compile problems, hopefully. :-) Rob |
Darren Send message Joined: 2 Jul 99 Posts: 259 Credit: 280,503 RAC: 0 |
> I edited my post when I found out you can't just cut analyzeReport out. > Unfortunately, this seems to be a come-and-go kind of compile bug. :-( The filenames following the #include don't show in your edit. Remember if you include the "greater than" or "less than" symbols, the board won't show it. > What versions of gcc and glibc have you got there on your system? This system is Mandrake 10 with gcc 3.3.2 and glibc 2.3.3. One of my "lesser" systems is running Mandrake 9.2 with gcc 3.2 and glibc 2.2.5, and this one compiles it all "as is" with no problems, but of course that does me no good for my primary system. |
AthlonRob Send message Joined: 18 May 99 Posts: 378 Credit: 7,041 RAC: 0 |
> > I edited my post when I found out you can't just cut analyzeReport out. > > Unfortunately, this seems to be a come-and-go kind of compile bug. :-( > > The filenames following the #include don't show in your edit. Remember if you > include the "greater than" or "less than" symbols, the board won't show it. Gosh darn it... these boards are ticking me off sometimes. :-) Anyway, it's #include and then stdlib.h and assert.h, inside the angle-brackets. :-) > > What versions of gcc and glibc have you got there on your system? > > This system is Mandrake 10 with gcc 3.3.2 and glibc 2.3.3. One of my "lesser" > systems is running Mandrake 9.2 with gcc 3.2 and glibc 2.2.5, and this one > compiles it all "as is" with no problems, but of course that does me no good > for my primary system. Hmm... I wonder if it's glibc 2.3.3 causing the problems. It's working here with gcc 3.3.2 and glibc 2.3.3. I should find a Slack 10 box to test on... or upgrade my boxes now that it's out... :-) Thanks! Rob |
AthlonRob Send message Joined: 18 May 99 Posts: 378 Credit: 7,041 RAC: 0 |
Also, Darren, I'd like to invite you (and anybody else) to stop by #boinc on irc.freenode.net.... several people in there have compiled boinc. Currently one dude just got around the errors you're posting in FreeBSD (although I think he went to sleep). I've found things like this get fixed better when we're working real-time rather than posting messages that might not be seen anytime soon. :-) http://www.boinc-irc.com and http://logs.boinc-irc.com have information on how to get there... Rob |
Darren Send message Joined: 2 Jul 99 Posts: 259 Credit: 280,503 RAC: 0 |
> Gosh darn it... these boards are ticking me off sometimes. :-) Yeah, that's quite an annoying little "feature" there. You would think that a little thought would have led someone to know that there would be a lot of people posting code for others and they would have had a disable code option that you could check at the time of posting. > Anyway, it's #include and then stdlib.h and assert.h, inside the > angle-brackets. :-) And that did it. All compiled now and just ready to trudge along to some new problem. I owe you a cigar. Thanks much. Darren |
AthlonRob Send message Joined: 18 May 99 Posts: 378 Credit: 7,041 RAC: 0 |
> > Anyway, it's #include and then stdlib.h and assert.h, inside the > > angle-brackets. :-) > > And that did it. All compiled now and just ready to trudge along to some new > problem. I owe you a cigar. Thanks much. Good! I'll bug the developers about it tomorrow and see if we can get them to figure out why it's needing the additional #include's on some hosts and not on others. Maybe get them to fix it, even. (ohh Roooommmmmmmmmm) Just keep answering questions for people and explaining boinc and the cigar is on me. :-) Rob |
Juha Veijalainen Send message Joined: 9 Apr 99 Posts: 3 Credit: 6,256,359 RAC: 0 |
I got the same problems Darren had and got past them thanks to this discussion. But I'm still stuck with a Seti client compile error (see below). Any advice? My system is an Athlon 64 running Suse 9.1 Linux 64-bit installation. Boinc-client compile gave several warnings and also ended up in compile error, but as far as I can tell, Boinc-client binary was created. Seti client compile error. Sources are from nightly build dated 2004-06-25. g++ -g -O2 -DHAVE_CONFIG_H -DTEXT_UI -DNDEBUG -DCLIENT -I/home/juhave/boincsrc/boinc/api -I/home/juhave/boincsrc/boinc/lib -I/home/juhave/boincsrc/boinc/image_libs/ -I.. -I../db -c -o seti.o seti.cpp ../db/xml_util.h: In function `std::vector > base85_decode(const char*, long unsigned int) [with T = unsigned char]': ../db/xml_util.h:786: instantiated from `std::vector > xml_decode_string(const char*, long unsigned int, const char*) [with T = unsigned char]' ../db/xml_util.h:822: instantiated from `std::vector > xml_decode_field(const std::string&, const char*) [with T = unsigned char]' seti.cpp:735: instantiated from here ../db/xml_util.h:383: error: no matching function for call to `min(long int, int)' make[1]: *** [seti.o] Error 1 |
CXI Send message Joined: 23 Apr 99 Posts: 30 Credit: 270,498 RAC: 0 |
> > Anyway, it's computing a work unit right now. Of course, it going to take > ages > > to finish on the old machine, but it works! One small thing, it thinks > it's > > version 0.38 instead of 3.80. > > 0.38? Or 308? It should saay 308, I think... It's weird, the client compiled itself as setiathome-3.8.i386-unknown-freebsd5.1 so I put "38" in the version part of the app_info.xml. This turned into 0.38 when it reported the version number after starting boinc. I don't know why the client binary didn't end up being "-3.0.8.i386", but I edited the client_state to change the value to 308 and edited the app_info the same. All is much better now. |
©2024 University of California
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.