Earlier in the week, I decided to spurge on a $40/month dedicated server with legacy processors and 8GB of RAM through Joe’s Datacenter (shameless plug: these guys are awesome in every sense of the word — I accidentally hosed the server trying to upgrade CentOS 6 to 7 and put in a support ticket on a Saturday night to get KVM acces. They responded inside 15 minutes and had the KVM attached 5 – 10 minutes later). Anyways, I bought this server to be used as an Android build server. This way, I’m not stuck with my own equipment to build Android on and I can just SSH into a remote server for all my deving. While idly thinking about how to set this up in my head, I came up with the genius idea to turn it into a BOINC slave for when I’m not compiling anything. Enter the several hours of hell I just went through.

Let me tell you now. If you’re trying to install BOINC using the magic shell scripts that dump the binaries to ./BOINC, you’re doing it wrong. You will *always* run into some sort of dependency hell trying to do it this way (e.g. the BOINC client needs libpng16, but other software it depends on need libpng15, and you can’t have both installed at the same time — believe me, I tired). Finally, some Google-fu led me to a forum post which led me to this blog post (in Japanese, but the commands are in English). While this helped, the generate_svn_version.sh script wasn’t working properly due to the checkout to the client_release/7.4/7.4.22 tag (looks like the developers expect it to be run against the remote master instead of a specific tag). To fix this, use the following commands instead (new commands are bolded).

cd boinc-v2
git tag
git checkout client_release/7.4/7.4.22
git branch -D master
git checkout -b master
git config branch.master.remote origin
git status

That got it working for me.